- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十章 面向对象设计 10.1 面向对象的系统设计 系统设计是将分析模型变换到系统设计模型。 在系统设计的过程中,开发者定义了项目的设计目标,将系统分解为粒度更小的子系统,这些子系统可以由多个团队分别实现。 开发者还要选择构造系统的策略。 系统设计后得到的是一个包括子系统分解和每个策略的清晰描述模型。 系统设计由一些活动组成,每一活动都专注于整个问题中某一个部分的系统分解,这些活动是: 标识系统目标。开发者标识并区分应进行优化的各种系统属性的优先次序。 设计初始子系统分解。根据用例和分析模型,开发者将系统分解成一些小部分。在此活动中,开发者将标准体系结构的设计作为设计工作的起始点。 求精子系统分解以对应设计目标。初始分解大都不满足全部的设计目标。开发者必须不断分解求精,直到所有的设计目标都满足为止。 系统的构建主要包括系统设计、对象设计和实现三个活动。 在系统设计过程中,我们将注意力放在实现系统所必需考虑的过程、数据结构和软硬件构件上面。许多彼此有冲突的准则和约束,在分解系统的时候必须得到折衷。 10.1.1系统设计概述 分析所得到的结果即需求模型,需求模型包括如下内容: 一个描述非功能需求和约束的集合,其内容涉及:最大响应时间、最小吞吐量、可靠性、操作系统平台等等; 一个用例模型,从参与者的视角描述了系统功能 一个对象模型,描述了系统所操纵的多个实体; 每一个用例对应一个序列图,展示了参与用例的对象之间的交互顺序。 分析模型不包含系统内部的结构信息和硬件配置信息。分析模型不包含系统是如何实现方面的信息。 系统设计包括如下内容: 设计目标,描述了开发者应该进行优化的系统性质; 软件体系结构,描述了根据子系统任务进行的子系统分解、子系统之间的依赖关系、子系统到硬件的映射和诸如对控制流、访问控制和数据存储的决策; 边界用例,描述了系统的配置、起始点、关闭点和异常处理问题。 设计目标通过非功能需求获取。当需要在多个设计问题之间做权衡时,设计目标可以指导开发者做出正确的决策。 分解子系统构成了系统设计的主要内容。开发者将系统分解为多个容易管理的部分,以控制系统开发过程中的复杂性:每个子系统分配给一个团队,由该团队独立实现该子系统。 10.1.2 系统设计概念 系统设计的主要活动是进行子系统分解,并在此基础上定义子系统/构件之间的接口。 1. 子系统与类 为降低解域的复杂性,我们将一个系统分解成多个子系统,这些子系统由若干个表示解域的类构成。子系统与一定数量的任务相对应,这些任务由单个程序员或单个开发团队来处理。 对在前面已经描述过的火灾报警与调度系统中,经过分解可以得到: (1)调度者接口子系统,以实现调度者的用户接口; (2)现场工作人员接口子系统,以实现现场工作人员的用户接口; (3)事件管理子系统负责实现事件的创建、修改和存储; (4)资源管理子系统负责跟踪可用资源(如救火车和救护车); (5)地图管理子系统负责描绘地图和位置; (6)通告子系统用于实现现场工作人员的终端与调度者群体之间的通信。 意外事故响应的信息系统的子系统分解 包图 大系统将问题复杂化。“攻克”复杂问题的经典方法是“分而治之”。结构化方法采用功能分解来解决这个问题。 面向对象技术解决这个问题的基本思路是将许多类集合成一个高内聚、低耦合的类的集合。UML把这种分组机制称为包。不仅类可以运用包的机制,任何模型元素都可运用包的机制。 包图是在 UML 中用类似于文件夹的符号表示的模型元素的组合。系统中的每个元素都只能为一个包所有,一个包可嵌套在另一个包中。使用包图可以将相关元素归入一个系统。一个包中可包含附属包、图表或单个元素。 UML指导将类组成包的原则是依赖性:设有两个元素X、Y,如果修改(语法的或语义的)元素X的定义引起对元素Y的定义的修改,则称元素Y依赖于元素X。 包图关系中的依赖性 包图显示类的包以及这些包之间的依赖关系。它们都是类图中的元素,因此包图是另一种 类图。 如果两个包中的任意两个类之间存在依赖关 系,则这两个包之间存在依赖关系。 但包的依赖是不传递的。 一个包图可以是任何一种的UML图组成,通常是UML用例图或UML类图。 包是一个UML结构,它使得你能够把诸如用例或类之类模型元件组织为组。 创建一个包图是为了 描述你的需求高阶概述。 描述你的设计的高阶概述。 在逻辑上把一个复杂的图模块化。 组织Java源代码。 包图符号 包图的可见性 当一个包包含子包时,指向该包的依赖可采用构造型《transparent》和《opaque》来表明嵌套包的可见性。 一个指向该包的子包的依赖能看见该包中的公有类、这些类的公有方法以及该子包的类及其方法。 将包中与外界有联系的操作组成一个表示包的公有行为的类,以
您可能关注的文档
最近下载
- 烟草考试真题及答案.doc VIP
- 2025年最新人教版八年级(初二)数学上册教学计划及进度表(新课标,新教材).docx
- 外研版高中《英语》(新标准)选择性必修一Unit1 单元整体教学设计附作业设计.docx VIP
- 5.1《论语》十二章 课件(共48张PPT)统编版高中语文选择性必修上册.pptx VIP
- 计算机网络实验报告(8)网络地址转换NAT配置、网络端口地址转换NAPT配置.pdf VIP
- 工程材料及成形技术基础-全套PPT课件.pptx
- 单证员考试试题.pdf VIP
- 地面空压机安装技术措施.docx VIP
- 工程建设法规的案例.ppt VIP
- 农产品食品检验员职业技能竞赛理论考试题库(含答案).docx VIP
文档评论(0)