- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件体系结构与设计 第8章 构件级设计 第8章 构件级设计 什么是构件 设计基于类的构件 实施构件级设计 WebApp的构件级设计 基于构件的开发 第8章 构件级设计 一套完整的软件构件是在体系结构设计的过程中定义的。体系结构设计第一次迭代完成之后,就应该开始构件级设计。构件级的设计过程包含一系列活动,这些活动逐渐降低描述软件的抽象层次。构件级设计最终在接近于代码的抽象层次上描述软件。构件级设计阶段定义了数据结构、算法、接口特征和分配给每个软件构件的通信机制,全部的数据和软件的程序结构都已经建立起来,其目的是把设计模型转化为运行软件。但是现有设计模型的抽象层次相对较高,而可运行程序的抽象层次相对较低。这种转化具有挑战性,因为可能会在软件过程后期阶段引入难于发现和改正的微小错误。 第8章 构件级设计 根据所开发软件的特点,可以从3个不同的角度来进行构件设计。面向对象的视角注重细化来自于问题域和基础设施域的设计类。传统的视角细化3种不同的构件或模块:控制模块、问题域模块和基础设施模块。在这两种视角中,都需要应用那些能够得到高质量软件的基本设计原则和概念。当从过程视角考虑时,构件设计采用了可复用的软件构件和设计模式,这些都是基于构件级的软件工程的关键要素。 8.1 什么是构件 通常,构件是指计算机软件中的一个模块化的构造块。OMG(Object Management Group,对象管理组织)统一建模语言(UML)规范这样定义构件:“系统中模块化的、可部署的和可替换的部件,该部件封装了实现并暴露一组接口。” 构件存在于软件体系结构中,因而构件在完成所建系统的需求和目标中起着重要作用。由于构件驻留于软件体系结构的内部,它们必须与其他的构件和存在于软件边界以外的实体(如其他系统、设备和人员)进行通信和合作。 8.1.1 面向对象的观点 在面向对象的软件工程环境中,构件包括一组协作的类(在某些情况下,构件可以包含一个单独的类)。构件中的每个类都得到详细阐述,包括所有的属性和与其实现相关的操作。作为细节设计的一部分,所有与其他设计类相互通信协作的接口必须定义。为此,设计师需要从需求模型开始,详细描述分析类(对于构件而言该类与问题域相关)和基础类(对于构件而言该类为问题域提供了支持性服务)。 8.1.1 面向对象的观点 为了说明设计细化过程,考虑为一个高级印刷车间构造软件。软件的目的是为了收集前台的客户需求,对印刷业务进行定价,然后把印刷任务交给自动生产设备。在需求工程中得到了一个称为PrintJob的分析类。分析过程中定义的属性和操作在图8-1的上方给出了注释。 8.1.1 面向对象的观点 设计中,PrintJob被定义为软件体系结构的一个构件,用简化的UML符号表示的该构件(图中灰底“设计构件”)显示在图8-1中部靠右的位置。注意到PrintJob有两个接口:computeJob和initiateJputeJob具有对任务进行定价的功能,initiateJob能够把任务传给生产设备。这两个接口在图下方的左边给出(即棒棒糖式符号)。 8.1.1 面向对象的观点 构件级设计将由此开始。必须对PrintJob构件的细节进行细化,以提供指导实现的足够信息。通过不断补充作为构件PrintJob的类的全部属性和操作,来逐步细化最初的分析类。正如图8-1右下部分的描述,细化后的设计类PrintJob包含更多的属性信息和构件实现所需要的更广泛的操作描述。computeJob和initiateJob接口隐含着与其他构件(图中没有显示出来)的通信和协作。 8.1.1 面向对象的观点 例如,computePageCost()(computeJob接口的组成部分)操作可能与包含任务定价信息的PricingTable构件进行协作。checkPriority()操作(initiateJob接口的组成部分)可能与JobQueue构件进行协作,用来判断当前等待生产的任务类型和优先级。 8.1.1 面向对象的观点 对于体系结构设计组成部分的每个构件都要实施细化,之后,要对每个属性、每个操作和每个接口进行进一步的细化。适合每个属性的数据结构必须予以详细说明。另外还要说明实现与操作相关的处理逻辑的算法细节,最后是实现接口所需机制的设计。对于面向对象软件,还包含对实现系统内部对象间消息通信机制的描述。 8.1.2 传统观点 在传统软件工程环境中,一个构件就是程序的一个功能要素,程序由处理逻辑及实现处理逻辑所需的内部数据结构以及能够保证构件被调用和实现数据传递的接口构成。传统构件也称为模块,作为软件体系结构的一部分,它承担如下3个重要角色之一: ① 控制构件,协调问题域中所有其他构件的调用; ② 问题域构件,实现客户需要的全部功能或部分功能; ③
您可能关注的文档
最近下载
- 新质生产力赋能云南高原特色现代农业高质量发展的路径研究.docx VIP
- 博世:以文化为基因,提升领导力 – 博世高潜人才发展与教练文化.pdf VIP
- 儿童发育性协调障碍的筛查、评估和诊断指南(2025).pptx VIP
- GBT 29611-2013 生橡胶 玻璃化转变温度的测定 差示扫描量热法(DSC).pdf
- NB_T 20160-2021 压水堆核电厂不锈钢水池覆面施工技术规程.pdf VIP
- 2025党校入党积极分子发展对象考试题库(含答案).docx VIP
- (电厂)三级安全教育考试题(附含答案).docx VIP
- 施工现场平面布置及施工道路平面图.pdf VIP
- 2015办公用品采购表申请表做办公用品采购流程.doc VIP
- 例谈基于语篇分析的中学英语阅读教学设计.pdf VIP
有哪些信誉好的足球投注网站
文档评论(0)