《软件工程实践者的研究方法chapter09cn构件设计.ppt》由会员分享,可在线阅读,更多相关《软件工程实践者的研究方法chapter09cn构件设计.ppt(14页珍藏版)》请在优知文库上搜索。
1、These slides are designed to accompany Software Engineering:A Practitioners Approach,7/e(McGraw-Hill,2009).Slides copyright 2009 by Roger Pressman.1第九章n构件级设计构件级设计Slide Set to accompanySoftware Engineering:A Practitioners Approach,7/e by Roger S.PressmanSlides copyright 1996,2001,2005,2009 by Roger S
2、.PressmanFor non-profit educational use onlyMay be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering:A Practitioners Approach,7/e.Any other reproduction or use is prohibited without the express written permission of the author.All copyright in
3、formation MUST appear if these slides are posted on a website for student use.什么是构件?nOMG Unified Modeling Language Specification OMG01 defines a component as n“a modular,deployable,and replaceable part of a system that encapsulates implementation and exposes a set of interfaces.”nOO view:a component
4、 contains a set of collaborating classesnConventional view:logic,the internal data structures that are required to implement the processing logic,and an interface that enables the component to be invoked and data to be passed to it.These courseware materials are to be used in conjunction with Softwa
5、re Engineering:A Practitioners Approach,6/e and are provided with permission by R.S.Pressman&Associates,Inc.,copyright 1996,2001,20052什么是构件?n构件是计算机软件中的一个模块化的构造块。nOMG UML规范对构件的定义:系统中模块化的、可配置的和可替换的部件,该部件封装了实现并暴露了一组接口。nOMG Unified Modeling Language Specification OMG01 defines a component as“a modular,d
6、eployable,and replaceable part of a system that encapsulates implementation and exposes a set of interfaces.”These courseware materials are to be used in conjunction with Software Engineering:A Practitioners Approach,6/e and are provided with permission by R.S.Pressman&Associates,Inc.,copyright 1996
7、,2001,20053什么是构件?n在面向对象软件工程环境中,构件包括一组协作的类(有时,一个构件只包含一个单独的类)。nOO view:a component contains a set of collaborating classes。These courseware materials are to be used in conjunction with Software Engineering:A Practitioners Approach,6/e and are provided with permission by R.S.Pressman&Associates,Inc.,co
8、pyright 1996,2001,20054什么是构件?n与面向对象的构件相似,传统的软件构件也来自分析模型。不同的是,传统的软件构件是以分析模型中的数据流要素作为导出构件的基础。These courseware materials are to be used in conjunction with Software Engineering:A Practitioners Approach,6/e and are provided with permission by R.S.Pressman&Associates,Inc.,copyright 1996,2001,20055面向对象构件T
9、hese courseware materials are to be used in conjunction with Software Engineering:A Practitioners Approach,6/e and are provided with permission by R.S.Pressman&Associates,Inc.,copyright 1996,2001,20056PrintJobcom puteJobinitiateJobnum berO fPages num berO fSi des paperType paperW ei ght paperSi ze p
10、aperC ol or m agni fi cati on col orRequi rem ents producti onFeatures col l ati onO pti ons bi ndi ngO pti ons coverStock bl eed pri ori ty total JobC ost W O num ber Pri ntJobcom putePageC ost()com putePaperC ost()com puteProdC ost()com puteTotal JobC ost()bui l dW orkO rder()checkPri ori ty()pass
11、Jobto Producti on()el aborated desi gn cl ass co m p u teJo bcom putePageC ost()com putePaperC ost()com puteProdC ost()com puteTotal JobC ost()i n i ti ateJo bbui l dW orkO rder()checkPri ori ty()passJobto Producti on()design com ponentnum berO fPages num berO fSides paperType m agnification product
12、ionFeaturesPrintJobcom puteJobCost()passJobtoPrinter()analysis class基本设计原则n开关原则/The Open-Closed Principle(OCP).“A module component should be open for extension but closed for modification.nLiskov替换原则/The Liskov Substitution Principle(LSP).“Subclasses should be substitutable for their base classes.n依
13、赖倒置原则/Dependency Inversion Principle(DIP).“Depend on abstractions.Do not depend on concretions.”n接口分离原则/The Interface Segregation Principle(ISP).“Many client-specific interfaces are better than one general purpose interface.n重用-发布等价原则/The Release Reuse Equivalency Principle(REP).“The granule of reus
14、e is the granule of release.”n 公共闭合原则/The Common Closure Principle(CCP).“Classes that change together belong together.”n全部重用原则/The Common Reuse Principle(CRP).“Classes that arent reused together should not be grouped together.”These courseware materials are to be used in conjunction with Software En
15、gineering:A Practitioners Approach,6/e and are provided with permission by R.S.Pressman&Associates,Inc.,copyright 1996,2001,20057OCP 原则n模块应该对外延具有开放性,对修改具有封闭性。n参看例子。Sensor.docxThese courseware materials are to be used in conjunction with Software Engineering:A Practitioners Approach,6/e and are provi
16、ded with permission by R.S.Pressman&Associates,Inc.,copyright 1996,2001,20058DIP原则n依赖于抽象,而非具体实现。ndip.docxThese courseware materials are to be used in conjunction with Software Engineering:A Practitioners Approach,6/e and are provided with permission by R.S.Pressman&Associates,Inc.,copyright 1996,2001,20059组件级别设计nP179。These courseware materials are to be used in conjunction with Software Engineering:A Practitioners Approach,6/e and are provided with permission by R.S.Pressman&Associates,Inc.,copy