Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Engineering Design Resolution & Design Principles."— Presentation transcript:

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

2 © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2 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  To arrange these principles in a taxonomy to help understand and remember them

3 © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 3 Topics  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

4 © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 4 A Generic Software Engineering Design Process

5 © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 5 Architectural 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.

6 © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 6 Detailed 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.

7 © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7 Architectural Design Specifications  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

8 © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8 Detailed Design Specifications  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

9 © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 9 Engineering Design Principles 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.

10 © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 10 Basic 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.

11 © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 11 Constructive 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.

12 © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 12 Modularity A modular program is composed of well-defined, conceptually simple, and independent units that communicate through well-defined interfaces.

13 © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 13 Advantages of Modularity  Easier to understand and explain  Easier to document  Easier to change  Easier to test and debug  More reusable  Easier to tune

14 © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 14 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.

15 © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 15 Modularity 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.

16 © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 16 Modularity 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.

17 © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 17 Implementability Principles  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.

18 © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 18 Aesthetic Principles  Beauty—Beautiful (simple and powerful) design are better.  Are there other aesthetic principles? Symmetry Balance Proportion

19 © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 19 Relationships Among Principles  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.

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

21 © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 21 Summary 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

22 © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 22 Summary 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.


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

Similar presentations


Ads by Google