- 1、本文档共45页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
1第9章构件级设计什么是构件?OMG统一建模语言标准[OMG01]是这样定义构件的:“系统模块化的、可部署的和可替换的部件,该部件封装了实现并暴露一组接口。””OO观点:构件包含一组协作的类传统观点:一个构件包含处理逻辑,实现处理逻辑所需的内部数据结构以及能保证构件被调用和实现数据传递的接口。
2OO构件细化后的设计类分析类设计构件
3模块 传统控件也称为模块,作为软件体系结构的一局部,承担以下的3个角色之一:控制构件,协调问题域中所有其他控件的调用:问题域构件,实现客户需要的全部或者局部功能根底设施构件,负责完成问题域中所需支持处理的功能
4传统构件设计构件细化后的模块
5根本设计原那么开闭原那么(OCP)。“模块[构件]应该对外延具有开放性,对修改具有封闭性”。Liskov替换原那么(LSP)。“子类可以替换它们的基类”。依赖倒置原那么(DIP)。“依赖于抽象,而非具体实现”。接口别离原那么(ISP)。“多个客户专用接口比一个通用接口要好”。发布复用等价性原那么(REP)。“复用的粒度就是发布的粒度”。共同封装原那么(CCP)。“一同变更的类应该合在一起”。共同复用原那么(CRP).。“不能一起复用的类不能被分到一组”。来源:Martin,R.,“设计原那么和设计模式”下载:,2000.
6设计指导方针构件对那些已经被确定为体系结构模型一局部的构件应该建立命名约定,并对其做进一步的细化和精华,使其成为构件级模型的一局部。接口接口提供关于通信和协作的重要信息(也可以帮助我们实现OPC原那么)。依赖与继承这种方法很好,模型依赖关系是自左向右,继承关系是自底向上(基类)。
7内聚性传统观点:模块的专一性OO观点::内聚性意味着构件或者类只封装相互关联密切,以及与构件或类自身有密切关系的属性和操作。内聚分类功能的,当一个模块只完成某一组特定操作并返回结果时分层的,由包、构件和类来实现。高可以访问低,反之不可通信的,访问相同数据的所有操作在一个类中有序的过程的暂时的实用的
8耦合性传统观点构件之间彼此联系、构件和外部世界联系程度的一种度量OO观点:类之间彼此联系程度的一种定性度量耦合分类内容,一个构件暗中修改其他构件的内部结构共用,当大量的构件都要使用同一个全局变量时控制,当操作A调用操作B,并且向B传递控制标记时标记,当类B被声明为类A某一操作中的一个参数类型时数据,当操作需要传递长串的数据参数时历程调用,当一个操作调用另外一个操作时类型使用,当构件A使用了在构件B定义的一个数据类型时包含或者导入,当构件A引入或者包含一个构件B的包或者内容时外部,当一个构件和根底设施构件进行通信和协作时
9构件级设计-I步骤1:标识出所有与问题域相对应的设计类。步骤2:确定所有与根底设施域相对应的设计类。步骤3:细化所有不需要作为可复用构件的设计类。步骤3a:在类或构件协作时说明消息的细节。步骤3b:为每个构件确定适当的接口。
10构件级设计-II步骤3c:细化属性,并且定义实现属性所需要的数据类型和数据结构。步骤3d:详细描述每个操作的处理流。步骤4:说明持久数据源(数据库和文件)并确定管理数据源所需要的类。步骤5:开发并且细化类或构件的行为表示。步骤6:细化部署图以提供额外的实现细节。步骤7:考虑每个构件级设计表示,并且时刻考虑其他可选方案。
11协作图
12重构
13活动图
14状态图
15WebApps的构件设计WebApp构件是(1)定义良好的聚合功能,为最终用户处理内容,或提供计算或数据处理。(2)内容和功能的聚合包,提供最终用户所需的功能。因此,WebApp构件级设计通常包括内容设计元素和功能设计元素。
16WebApps内容设计关注于内容对象,以及包装展示给WebApp最终用户的方式以SafeHomeAssured的基于网络视频监控功能为例可以为视频监控器功能定义很多潜在的内容构件:(1)内容对象表示具有传感器与摄像头等特殊图标位置的空间布局〔平面图〕(2)采集到的极小的视频缩略图〔每个都是一个独立的数据对象〕(3)专用摄像头的视频流窗口可以对每种构架单独命名并作为一个包进行操作
17WebApps功能设计现代Web应用系统提供了更加成熟的处理功能:(1)执行本地化处理,从而动态地产生内容和导航功能;(2)提供适合于WebApp业务领域的计算或数据处理;(3)提供高级的数据库查询和访问;(4)建立与外部系统的数据接口。为了实现这些〔及许多其他〕能力,Web工程师必须设计和创立WebApp功能构件,这些构件在形式上类似于传统的软件构件。
18设计传统构件处理逻辑的设计是由算法设计的根本原那么和结构化编程支配数据结构的设计由系统开发的数据模型定义接口的设计是由协作支配
文档评论(0)