Engineering Design Resolution & Design Principles

22
1 © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Engineering Design Engineering Design Resolution & Design Resolution & Design Principles Principles

description

Engineering Design Resolution & Design Principles. Objectives. To distinguish architectural and detailed design To catalog the contents of architectural and detailed design specifications To present acronyms for design specifications To present engineering design principles - PowerPoint PPT Presentation

Transcript of Engineering Design Resolution & Design Principles

Page 1: Engineering Design Resolution & Design Principles

1© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Engineering Design Engineering Design Resolution & Design Resolution & Design PrinciplesPrinciples

Page 2: Engineering Design Resolution & Design Principles

2© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

ObjectivesObjectives

To distinguish architectural and detailed design

To catalog the contents of architectural and detailed design specifications

To present acronyms for design specifications

To present engineering design principles To arrange these principles in a

taxonomy to help understand and remember them

Page 3: Engineering Design Resolution & Design Principles

3© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

TopicsTopics

Architectural and detailed design in the engineering design process

Architectural design specifications Detailed design specifications Engineering design principles Basic principles Constructive principles A software engineering design

principles taxonomy

Page 4: Engineering Design Resolution & Design Principles

4© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

A Generic A Generic Software Software EngineerinEngineering Design g Design ProcessProcess

Generic Software Engineering DesignSRS : ProblemDesign Document : Solution

Analysis

ArchitecturalDesign

DesignDocument

SRS

[adequate architecture]

[else]

[adequate detailed design]

[adequate architecture]

Analyze SRS

Generate/ImproveCandidate Architectures

Evaluate CandidateArchitectures

Select Architecture

Finalize Architecture

Generate/Improve DetailedDesign Alternatives

Evaluate DetailedDesign Alternatives

[else]

Select DetailedDesign

Finalize Design

[else]

DetailedDesign

Page 5: Engineering Design Resolution & Design Principles

5© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Architectural DesignArchitectural Design

High-level design Black boxes Every program has an architecture

Architectural design is the activity

of specifying a program’s major parts; their responsibilities,

properties, and interfaces; and the relationships and interactions

among them.

Architectural design is the activity

of specifying a program’s major parts; their responsibilities,

properties, and interfaces; and the relationships and interactions

among them.

Page 6: Engineering Design Resolution & Design Principles

6© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Detailed DesignDetailed Design

Mid- and low-level design Black boxes Detailed design shades into coding

Detailed design is the activity of specifying the internal elements

of all major program parts; their structure, relationships, and processing; and often their

algorithms and data structures.

Detailed design is the activity of specifying the internal elements

of all major program parts; their structure, relationships, and processing; and often their

algorithms and data structures.

Page 7: Engineering Design Resolution & Design Principles

7© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Architectural Design Architectural Design SpecificationsSpecifications

Decomposition—Program parts or modules Responsibilities—Data and behavior Interfaces—An interface is a boundary

across which entities communicate. Collaborations—Who does what when? Relationships—Uses, dependencies, etc. Properties—Performance, reliability, etc. States and Transitions—Externally visible

DeSCRIPTR

Page 8: Engineering Design Resolution & Design Principles

8© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Detailed Design Detailed Design SpecificationsSpecifications

Decomposition—Sub-system parts or units Responsibilities—Data and behavior Interfaces—Public features Collaborations—Who does what when? Relationships—Inheritance, associations, etc. Properties—Performance, reliability, etc. States and Transitions—Externally visible Packaging and Implementation—Scope, visibility,

etc. Algorithms, Data Structures, and Types—Maybe

DeSCRIPTR-PAID

Page 9: Engineering Design Resolution & Design Principles

9© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Engineering Design Engineering Design PrinciplesPrinciples

Design principles are statements about what makes a design better.

• Basic principles state characteristics that make a design better able to meet stakeholder needs and desires.

• Constructive principles state, based on experience, that certain engineering design characteristics make a design better.

Page 10: Engineering Design Resolution & Design Principles

10© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Basic PrinciplesBasic Principles

Feasibility—A design is acceptable only if it can be realized.

Adequacy—Designs that meet more stakeholder needs and desires, subject to constraints, are better.

Economy—Design that can be built for less money, in less time, with less risk, are better.

Changeability—Design that make a program easier to change are better.

Page 11: Engineering Design Resolution & Design Principles

11© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Constructive PrinciplesConstructive Principles

Modularity principles—Good design are modular; these principles help evaluate whether designs specify good modules.

Implementability principles—Good designs are easier to build; these principles help evaluate whether designs will be easy to implement.

Aesthetic principles—Good design are beautiful; these principles help pick out beautiful designs.

Page 12: Engineering Design Resolution & Design Principles

12© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

ModularityModularity

A modular program is composed of well-defined, conceptually simple,

and independent units that communicate through well-defined

interfaces.

A modular program is composed of well-defined, conceptually simple,

and independent units that communicate through well-defined

interfaces.

Page 13: Engineering Design Resolution & Design Principles

13© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Advantages of Advantages of ModularityModularity

Easier to understand and explain Easier to document Easier to change Easier to test and debug More reusable Easier to tune

Page 14: Engineering Design Resolution & Design Principles

14© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

What Is a Module?What Is a Module?

Immediate parts are those directly below the whole in the parts hierarchy.

Program• Sub-programs or sub-systems

Packages, compilation units Classes, functions

» Attributes, operations, blocks - Lines of code

A module is a program unit with parts.

A module is a program unit with parts.

Page 15: Engineering Design Resolution & Design Principles

15© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Modularity Principles 1Modularity Principles 1

Small Modules—Designs with small modules are better.

Information Hiding—Each module should shield the details of its internal structure and processing from other modules.

Least Privilege—Modules should not have access to unneeded resources.

Page 16: Engineering Design Resolution & Design Principles

16© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Modularity Principles 2Modularity Principles 2

Coupling—Module coupling should be minimized.

• Coupling is the degree of connection between pairs of modules.

Cohesion—Modules cohesion should be maximized.

• Cohesion is the degree to which a module’s parts are related to one another.

Page 17: Engineering Design Resolution & Design Principles

17© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Implementability Implementability PrinciplesPrinciples

Simplicity—Simpler designs are better.

Software reuse is the use of existing artifacts to build new software products; reusable artifacts are called assets.

Design with Reuse—Designs that reuse existing assets are better.

Design for Reuse—Designs that produce reusable assets are better.

Page 18: Engineering Design Resolution & Design Principles

18© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Aesthetic PrinciplesAesthetic Principles

Beauty—Beautiful (simple and powerful) design are better.

Are there other aesthetic principles?• Symmetry• Balance• Proportion

Page 19: Engineering Design Resolution & Design Principles

19© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Relationships Among Relationships Among PrinciplesPrinciples

Some principles usually support one another.

• Cohesion, Coupling, Information Hiding• Simplicity, Beauty• Simplicity, Small Modules

Some principles are often in conflict.• Simplicity, Design for Reuse• Small Modules, Design for Reuse• Cohesion, Small Modules

Support or conflict may depend on the case at hand.

Page 20: Engineering Design Resolution & Design Principles

20© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Design Principles Design Principles TaxonomyTaxonomy

Engineering Design Principles

Basic

Constructive

Feasibility

Adequacy

Changeability

Economy

Modularity

Implementability

Aesthetic

Small Modules

Information Hiding

Least Privilege

Coupling

Cohesion

Simplicity

Design with Reuse

Design for Reuse

Beauty

Page 21: Engineering Design Resolution & Design Principles

21© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Summary 1Summary 1

Architectural design is high-level specification of major program parts.

Detailed design is mid-level and low-level specification of program units.

DeSCRIPTR specifications for architectural design

DeSCRIPTR-PAID specifications for detailed design

Page 22: Engineering Design Resolution & Design Principles

22© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Summary 2Summary 2

The basic principles of Adequacy, Economy, Feasibility, and Changeability are about meeting stakeholder needs.

The constructive principles are based on engineering experience.

• Modularity principles: Small Modules, Information Hiding, Least Privilege, Coupling, and Cohesion

• Implementability principles: Simplicity, and Design with and for Reuse.

• Aesthetic principle: Beauty.