- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
构件级设计元素 软件的构件级设计完全类似于某个房屋中的一组详细绘图(以及规格说明)。这些绘图描绘了每个房间内的布线和管道、电器插座和开关、水龙头、水池、浴室、浴盆、下水道、壁橱和储藏室的位置,还说明了所使用的地板、装饰以及和房间相关的任何细节。软件的构件级设计完整地描述了每个软件构件的内部细节。为此,构件级设计为所有本地数据对象定义数据结构,为所有在构件内发生的处理定义算法细节,并定义允许访问构件操作(行为)的接口。 构件级设计元素 在面向对象的软件工程中,使用UML图表现的构件如图7-6所示。图中表示的构件名为SensorManagement(SafeHome安全功能的一部分)。虚线箭头连接了构件和名为Sensor的类。SensorManagement构件完成所有和SafeHome传感器相关的功能,包括监测和配置传感器。 构件的设计细节可以在很多不同的抽象级下建模。活动图可以用于表示处理逻辑,构件详细的处理流可以使用伪代码表示,也可以使用一些图形(如流程图或盒图)来表示。 SAFEHOME实例[30] 图7-6 SensorManagement的UML构件图 部署级设计元素 部署级设计元素指明软件功能和子系统将如何在支持软件的物理计算环境内分布。例如SafeHome产品元素被配置为在三个主要的计算环境内运行——基于住宅的PC、SafeHome控制面板和位于CPI公司的服务器(提供基于Internet的系统访问)。 在设计过程中,开发的UML部署图以及随后的精化如图7-7所示。图中显示了三个计算环境(实际上,还可能包括传感器、摄像头和其他的环境)。图中标识出了每个计算元素中的子系统。如个人计算机中有完成安全、监视、住宅管理和通信功能的子系统。此外,还设计了一个外部访问子系统以管理外界资源对SafeHome系统的访问。细化每个子系统,用以说明该子系统所实现的构件。 SAFEHOME实例[31] 图8-7 SafeHome的UML部署图 部署级设计元素 图7-7所示的图使用描述符形式,这意味着部署图显示了计算环境但并没有明确地说明配置细节。在后面的阶段或构建开始时,应该用实例形式重新为部署图提供这些细节,明确每个实例的部署(专用的称为硬件配置)。 小结 课本143页 作业 P143页 7.12 7.13 模块化 似乎可以得出结论:如果我们无限制地划分软件,那么开发它所需的工作量会变得小到可以忽略!然而,其他因素开始起作用,导致这个结论不成立。如图7-2所示,开发某个独立软件模块的工作量的确随着模块数增加而下降,给定同样的需求,更多的模块意味着每个模块的规模更小。然而,随着模块数量增加,集成模块的工作量也在增加。事实上,的确存在一个模块数量M可以带来最小的开发成本。但是,我们缺乏必要的技术来精确地预测M。 模块化 图7-2 模块化和软件成本 模块化 模块化设计(以及由其产生的程序)使开发工作更容易规划;可以定义和交付软件增量;更容易实施变更;能够更有效地开展测试和调试;可以进行长期维护而没有严重的副作用。 信息隐蔽 模块化概念让每个软件设计师面对一个基本问题:我们将如何分解一个软件解决方案以求获得最好的模块集合?信息隐蔽原则建议模块应该具有的特征是:每个模块对其他所有模块都隐蔽自己的设计决策。即模块应该规定并设计成模块中包含的信息(算法和数据)不被不需要这些信息的其他模块访问。 信息隐蔽 隐蔽意味着通过定义一系列独立的模块可以得到有效的模块化,独立模块相互之间只交流实现软件功能所必需的那些信息。抽象有助于定义构成软件的过程实体。隐蔽定义并加强了模块内的过程细节和模块所使用的任何局部数据结构的访问约束。 把信息隐蔽用做模块化系统的一个设计标准,在测试和随后的软件维护过程中,在需要修改时将提供最大的益处。因为大多数数据和程序对软件的其他部分是隐蔽的,因此在修改过程中,无意地引入错误并传播到软件其他地方的可能性会很小。 功能独立 功能独立的概念是模块化、抽象概念和信息隐蔽的直接结果。通过开发具有专一功能和避免与其他模块过多交互的模块,可以实现功能独立。即,我们希望软件设计时要使每个模块仅涉及需求的某个特定子功能,并且当从程序结构的其他部分观察时,每个模块只有一个简单的接口。 功能独立 具有有效模块化的软件更容易开发,这是因为功能被分隔而且接口被简化。独立模块更容易维护和测试,因为修改设计或修改代码所引起的副作用被限制,减少了错误扩散,而且模块复用也成为可能。功能独立是优秀设计的关键,而设计又是软件质量的关键。 独立性可以使用两条定性的标准评估:内聚性和耦合性。 内聚性显示了某个模块内相关功能的强度;耦合性显示了模块间的相互依赖性。 功能独立 内聚性是信息隐蔽概念的自然扩展。一个内聚的模块执行一个独立的任务,与程序的其他部分构件只需要很
您可能关注的文档
最近下载
- GCB6.0操作手册.pdf VIP
- 省级优秀课件小学红色文化主题班会《红色交通证》.pptx VIP
- 《车间质量培训》课件.ppt VIP
- 第八届中国(淄博)国际陶瓷博览会ren体彩绘教学幻灯片.ppt VIP
- AP微积分AB 2014年真题 (选择题+问答题) AP Calculus AB 2014 Released Exam and Answers (MCQ+FRQ).pdf VIP
- delem DA61操作手册(中文).pdf VIP
- 新疆叶城县2025年上半年公开招聘辅警试题含答案分析.docx VIP
- 学堂在线 临床中成药应用 综合考试答案.docx VIP
- 离心泵与.ppt VIP
- 《离心泵.ppt VIP
文档评论(0)