资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,These slides are designed to accompany,Software Engineering:A Practitioners Approach,7/e,(McGraw-Hill,2009)Slides copyright 2009 by Roger Pressman.,*,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,1,Chapter 8,Design Concepts,Software Engineering:A Practitioners Approach,7/e,by Roger S.Pressman,1Chapter 8Design ConceptsSoftw,2,Design,Good software design should exhibit:,Firmness(,稳定性,):,A program should not have any bugs that inhibit its function.,Commodity(,适用性,):,A program should be suitable for the purposes for which it was intended.,Delight(,令人愉快,):,The experience of using the program should be pleasurable one.,2DesignGood software design sh,3,Analysis Model=Design Model,3Analysis Model=Design Mode,4,3 Characters of Design Quality,the design must implement all of the explicit(,明确的,)requirements,contained in the analysis model,and it must accommodate all of the implicit(,隐含的,)requirements desired by the customer.,the design must be a readable,understandable guide,for those who generate code and for those who test and subsequently support the software.,the design should provide a complete picture(,全貌,)of the software,addressing the data,functional,and behavioral domains from an implementation perspective.,43 Characters of Design Qualit,5,Quality Guidelines,A design should exhibit an architecture,that(1)has been created using recognizable architectural styles or patterns,(2)is composed of components that exhibit good design characteristics and(3)can be implemented in an evolutionary fashion,A design should be modular,;that is,the software should be logically partitioned into elements or subsystems,A design should contain representations,of data,architecture,interfaces,and components.,A design should lead to data structures that are appropriate,for the classes to be implemented.,A design should lead to components that exhibit independent functional characteristics.,A design should lead to interfaces that reduce the complexity,of connections between components and with the external environment.,A design should be derived using a repeatable method,that is driven by information obtained during software requirements analysis.,A design should be represented using a notation that effectively communicates its meaning.,5Quality GuidelinesA design sh,6,Design Principles,The design should be traceable to the analysis model.,The design should not reinvent(,彻底改造,)the wheel.,The design should“minimize the distance”between the software and the problem as it exists in the real world.,The design should exhibit uniformity and integration.,The design should be structured to accommodate change.,The design should be assessed for quality as it is being created,not after the fact.,The design should be reviewed to minimize conceptual(semantic)errors.,Design is not coding,coding is not design.,From Davis DAV95,6Design PrinciplesThe design s,7,Fundamental Concepts,Abstraction,data,procedure,Architecture(,架构,),the overall structure of the software,Patterns,conveys(,承载,)the essence(,精髓,)of a proven design solution,Modularity,compartmentalization(,划分,)of data and function,Information hiding,controlled interfaces,Functional independence,single-minded function and low coupling,Aspects,a mechanism for understanding how global requirements affect design,Refactoring(,重构,),a reorganization technique that simplifies the design,Design Classes,provide design detail that will enable analysis classes to be implemented,7Fundamental ConceptsAbstracti,8,Data Abstraction,door,implemented as a data structure,manufacturer,model number,type,swing direction,inserts,lights,weight,opening mechanism,8Data Abstractiondoorimplement,9,Procedural Abstraction,open,implemented with a knowledge of the,object that is associated with enter,details of enter,algorithm,9Procedural Abstractionopenimp,10,Architecture,“The overall structure of the software and the ways in which that structure provides conceptual integrity for a system.”,Structural properties.,This aspect of the architectural design representation defines the components of a system(e.g.,modules,objects)and the manner in which those components are packaged and interact with one another.For example,objects encapsulate both data and the processing that manipulates the data.,Extra-functional properties.,The architectural design description should address how the design architecture achieves requirements for performance,capacity,reliability,security,adaptability,and other system characteristics.,Families(,族,)of related systems.,The architectural design should draw upon repeatable patterns that are commonly encountered in the design of families of similar systems.The design should have the ability to reuse architectural building blocks.,10Architecture“The overall str,11,Architecture,In the simplest form,architecture is the struc
展开阅读全文