![-设计与实现[]PPT课件_第1页](http://file1.renrendoc.com/fileroot_temp2/2020-4/20/6fa62725-d65b-49f9-b360-e36942041013/6fa62725-d65b-49f9-b360-e369420410131.gif)
![-设计与实现[]PPT课件_第2页](http://file1.renrendoc.com/fileroot_temp2/2020-4/20/6fa62725-d65b-49f9-b360-e36942041013/6fa62725-d65b-49f9-b360-e369420410132.gif)
![-设计与实现[]PPT课件_第3页](http://file1.renrendoc.com/fileroot_temp2/2020-4/20/6fa62725-d65b-49f9-b360-e36942041013/6fa62725-d65b-49f9-b360-e369420410133.gif)
![-设计与实现[]PPT课件_第4页](http://file1.renrendoc.com/fileroot_temp2/2020-4/20/6fa62725-d65b-49f9-b360-e36942041013/6fa62725-d65b-49f9-b360-e369420410134.gif)
![-设计与实现[]PPT课件_第5页](http://file1.renrendoc.com/fileroot_temp2/2020-4/20/6fa62725-d65b-49f9-b360-e36942041013/6fa62725-d65b-49f9-b360-e369420410135.gif)
已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第七章设计与实现 2 学习引导 本章的目标是介绍运用UML进行面向对象软件设计 并了解系统实现时的问题 主要内容 理解一般的面向对象设计过程中最重要的活动 理解用于记录面向对象设计的一些不同的模型 知道设计模式的思想 以及如何将其用于设计知识和经验的复用 了解实现软件时需要考虑的关键因素 包括软件复用和开源开发 3 软件设计 软件设计和实现是软件工程过程中的一个阶段 在此阶段开发出可执行的软件系统 对简单的系统来说 软件设计和实现就是软件过程的全部 其他的所有活动都融汇在这个过程中 但是 对于大型的系统 软件设计和实现只是一系列软件工程过程 如需求工程 检验和有效性验证等 中的一个 4 7 1利用UML进行面向对象设计 1系统上下文和与系统外部的交互2体系结构的设计3对象识别4设计模型5对象接口描述 4 统一建模语言 UML 提供对面向对象设计的广泛支持 开发系统设计的过程 就是由概念设计转变为详细的面向对象的设计 需要完成如下几个步骤 5 案例1 野外气象站系统 面向对象的设计Wildernessweatherstation 野外气象站系统是一个数据收集系统 收集偏远地区的天气条件数据的实时系统 野外气象站隶属于气象制图系统中的一个子系统 该系统自动地收集气象数据来生成气象图 以 野外气象站系统 这个案例的设计部分来讲解面向对象的设计活动 6 气象站子系统设计过程 气象制图系统是一个复杂的系统 以其中的气象站子系统的面向对象设计过程为例进行面向对象设计过程的说明 面向对象设计过程阶段如下 1 了解并定义上下文和系统的外部交互2 设计系统体系结构3 识别出系统中的主要对象4 开发设计模型5 描述对象接口 7 step1系统上下文建模型 目的 了解待开发软件和外部环境之间存在的关系 决定系统所需要具备的功能 决定系统的构成 以便它能有效地与环境进行通信 采用从外部的观点描述应用 从系统的用户和操作员的观点进行描述 这样描述 就是在定义系统的上下文 Context 8 使用关联模型表示系统的静态体系结构用关联来表示实体之间的关系 只需用简单的方框图 就能描述系统总的体系结构 系统上下文的描述方法 每个气象站所在环境中的系统都包含气象信息系统 机载卫星系统和控制系统 连线上的基数关系说明环境中有一个控制系统 但有多个气象站 以及一个卫星和一个通用气象信息系统 9 用例模型实现对系统中的交互建模 使用UML中的用例模型可以实现对系统和环境的交互建模用用例模型建立系统和环境间的交互模型 气象站的用例模型给出了通过气象站与外部实体间的交互来开启和关闭 上报采集的数据 仪器测试和校准 10 气象站系统的用例模型 用例图 能用简单的自然语言来描述的交互过程 这有助于识别系统中的对象和操作 只有结合用例描述的用例图才能表达丰富的含义 见下页 11 从这个报告用例中可以看出 需要一个代表采集天气数据的仪器对象需要一个代表对天气数据总结的对象还需要两个操作 请求气象数据的操作和发送气象数据的操作 12 step2体系结构的设计 设计体系结构的前提条件完成软件系统中的交互设计完成系统环境的定义具备有关体系结构设计的一般性知识和具体的领域知识 13 如何考虑系统的非功能性需求 用例与基于用例的模型主要注重的是功能性设计 在大多数面向对象方法中 都通过用例来获取系统的所需功能性需求 用例设计之后是体系结构设计 体系结构是确保满足非功能需求 如可维护性 效率和可靠性 的主要工具 一个良好的设计 应该同时采用用例和其他获取功能性需求的方法 并通过使用构架产生一个符合非功能需求的设计 14 气象站系统的高层体系结构非功能需求考虑 子系统之间的可靠的互联和通信实时操作的支持 15 气象站系统的高层体系结构 分布式体系结构 这种体系结构的主要优点在于它易于支持不同配置的子系统 因为消息的发送方无需特别指定消息的接收子系统 16 数据采集系统体系结构 Transmitter和Receiver对象与通信管理有关 WeatherData对象封装仪器采集的信息并将其传输给气象信息系统 这种结构属于生产者 消费者模式 17 step3对象类的识别 体系结构的设计过程 也是识别对象类的过程 如何识别对象类 1 对系统的自然语言描述做文法分析 对象和属性是名词 操作或服务是动词2 使用应用领域中的真实实体名字 例如飞机 职务 管理者 事件 请求 交互 会议 位置 办公室 机构单元 公司 现存系统的信息存储结构可以用来识别对象 3 基于情景 用例 的分析识别 识别出系统使用的各个情景 分析情景 识别出需要的对象 属性和操作 18 识别气象站系统中的对象类 一个气象站系统是一套用来控制一些设备的软件包 通过仪器收集气象数据 并进行数据处理 结果传输给气象系统以便进一步处理 该仪器包括空中和地表温度计 thermometers 风速计 anemometer 风向标 windvane 气压计 barometer 数据定期收集 当发出一个命令传输气象数据 气象站的数据采集过程和总结 综述数据传输到计算机时 收到请求映射 19 气象站系统中的对象类 20 step4设计模型 设计模型是系统需求和系统实现之间的桥梁描述系统中包含的对象或对象类 以及它们之间的不同类型关系 对设计模型进行抽象 删去模型与系统需求之间的不必要的细节关联消除相互冲突的需求 在不同细节层次开发不同的模型 为程序员提供充分的细节 21 系统描述者 设计者和程序员之间存在直接或间接的联系 设计的一个重要步骤是要决定需要什么样的设计模型和设计模型的细节层次 依赖所开发的系统类型 顺序数据处理系统和嵌入式实时系统需要使用不同的设计模型 减少模型使用的数量可降低设计的成本和完成设计过程所需要的时间 系统设计中注意的问题 22 1 静态模型 通过系统对象类及其之间的关系来描述系统的静态结构 在这一阶段需要记录的重要关系有泛化关系 使用 被使用关系和组成关系 2 动态模型 描述系统的动态结构和系统对象 不是对象类 之间的交互 需要记录的交互包括由对象请求的服务序列以及系统状态与这些对象交互之间的关联方式 两类设计模型 23 本系统中用到的几种模型 1 子系统模型 说明对象的逻辑分组 每个分组构成一个子系统 使用类的图表格式来表示 每个子系统是一个包的形式存在 子系统模型是静态模型 2 序列模型 说明对象交互的序列 使用UML序列或协作图来表示 序列模型是动态模型 3 状态机模型 说明单个对象如何响应事件来改变它们的状态 它们使用UML的状态图来表示 子系统模型是一种最有帮助的静态模型 因为它说明了设计如何由一组逻辑上相关联的对象来构成 24 25 序列图 记录对象交互发生的序列 1 参与交互的对象水平地排列 每个对象有一条垂直的线条与之连接 2 时间以垂直方向表示 时间的进展是沿着垂直的虚线向下 3 对象之间的交互表示为带有标号的箭头 该箭头是与垂直线段相连的 注意 这些不是数据流 而是表示交互中的基本消息或事件 4 对象生命线上的细长方形表示这个对象是系统中控制对象的时间 在这个长方形的顶端时刻接管控制 在长方形的底部放弃控制 26 气象站系统中数据采集的操作序列图该图给出了当外部制图系统从气象站请求数据时的交互序列 27 气象站系统中数据采集的操作序列图 数据收集系统的对象 1 satComms对象接收从气象信息系统发来的天气报告请求 并发出收到回复 已发消息中的实线箭头表明外部系统并不等待回复 继续进行其他处理 2 satComms通过卫星链接向WetherStation发送消息 创建一个采集气象数据的汇总 3 WeatherStation向CommsLink对象发送包含数据汇总的消息 这里的虚线箭头表明WeathStation对象类的实例会等待回复 4 CommsLink调用WeatherData对象中的summarize方法并等待回复 5 计算出气象数据汇总并通过CommsLink对象返回给WeatherStation 6 WeatherStation调用Satcomms对象 通过卫星通信系统将汇总数据传输给气象信息系统 28 状态机模型 状态机模型表示单个对象对不同事件的响应行为示例 WeatherStation对象的状态图 它给出了该对象如何响应各种不同服务的请求 29 Shutdown 停机Transmission 传输Summarising 求和 气象站的状态图 气象站系统的状态图描述了气象站对象是如何对请求的各种服务进行响应的 30 状态图的必要性 状态图是一种很有用的系统或对象操作的高层模型 并不是所有的系统对象都需要状态图 很多系统对象相对简单 使用状态图反而给设计增加了不必要的细节 31 step5接口描述 什么是接口 Interface 接口 只是一个标识 它是系统对外部所具有的行为的一个映射 外部可得到的方法 结合系统的内部 每个接口代表某些相关的系统功能子集 内部可作用的功能 内部功能 32 接口描述 需要定义服务的标记和语义 接口可以用UML中与类图一样的符号来描述 但没有属性部分 UML的格式标记 要包含在名字部分中 对象接口设计关心的是如何详细描述一个对象或一组对象的接口细节 33 气象站系统的接口 34 7 3实现问题 实现阶段主要完成软件的可执行版本 主要工作就是编写代码 参见编程规范 按要求编写程序 35 代码实现中的几个问题 1 复用多数现代软件都是对现有组件或系统的复用 开发一个软件时 应该尽可能地多的使用现有代码 2 配置管理开发过程中 每个生成的软件组件都会有很多不同版本 如果没有很好地在配置管理系统中追踪这些版本 有可能在系统中使用错误版本的组件 3 宿主机 目标机开发软件产品通常不会在与软件开发环境相同的计算机上运行 更多的是开发时使用一台计算机 宿主机 运行时使用另一台计算机 目标机 宿主机和目标机的系统也有可能是一样的类型 但是更经常是完全不同的环境 36 1复用的层次 1 抽象层 该层中并不是直接复用软件 而是运用软件设计中的成功抽象 抽象知识复用的代表方式是设计模式和体系结构模式 2 对象层 在这一层可直接复用库中的对象 代替自己编写代码 实现这类复用时 必须妄到一个合适的库 分析对象和方法是否提供所需的功能 3 组件层 组件是一组通过相互合作实现相关功能和服务的对象及对象类集合 通常需要增加自己的代码对组件进行调整和扩展 4 系统层 在这一层 我们复用整个应用系统 通常涉及这些系统的相关配置 通过添加和修改代码 如果复用的是软件的生产线 或者通过使用系统自身的配置界面 37 2配置管理 配置管理包含如下3个基本活动 1 版本管理2 系统集成3 问题追踪 38 3宿主机 目标机开发 多数软件开发是基于宿主机 日标机模型的 软件在一台计算机 宿主机 上开发 但在另一台机器 目标机 中运行 39 对于分布式系统而言 应该考虑如下三个方面的问题1 组件的软硬件需求Cuda2 系统可用性需求备用的组件3 组件通信部署在同一个平台 或者距离比较近的平台上 减少通信延迟 40 4开源开发 开源 OpenSource 开放源码 被非赢利软件组织 美国的OpenSourceInitiative协会 注册为认证标记 并对其进行了正式的定义 用于描述那些源码可以被公众使用的软件 并且此软件的使用 修改和发行也不受许可证的限制 41 开源例子 LinuxJavaApachemySQLBSDfreeBSDFirefoxWordPressBIND 42 开源软件许可证 开源并不意味着源代码可以自由的使用 从法律上讲 代码的开发人员任然拥有该代码 因此 关于如何使用开源 逐步形成了3中通用模式 GNU通用公共许可 GPL GNU宽松的通用公共许可 LGPL Berkley标准分布 BSD 许可 43 GNUGPL 指如果我们用GPL许可证的开源软件 那么我们必须也将自己的软件开源 44 GNULGPL 指我们可以编写链接到开源代码的组件 而无需公布自己的组件代码 但是如果我们更改了这些许可下的组件 那么就需要开源 45 BSD BSD开源协议是一个给于使用者很大自由的协议 可以自由的使用 修改源代码 也可以将修改后的代码作为开源或
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 为学文言文讲解
- 中山水幕电影施工方案
- 励磁系统改造施工方案
- 超六类网线施工方案
- 会计从业资格考试讲课及答案解析
- 精神卫生护理选择题题库及答案解析
- 地板砖打磨施工方案
- 巫山公路生态砖施工方案
- 带导管患者的管路护理
- 项目管理季度工作总结
- 第08讲+建议信(复习课件)(全国适用)2026年高考英语一轮复习讲练测
- 2024广东省产业园区发展白皮书-部分1
- 2025年国家网络安全宣传周网络安全知识考核试题
- 2025四川蜀道建筑科技有限公司招聘16人备考练习题库及答案解析
- 生态视角下陕南乡村人居环境适老化设计初步研究
- “研一教”双驱:名师工作室促进区域青年教师专业发展的实践探索
- 任务一切中断时的接发列车办法授课颜保凡课件
- 情侣合伙开店合同范例
- 800 稳定大底
- 金属结构制造与安装-第七章平板钢闸门的安装ppt课件
- 保护性约束技术操作流程
评论
0/150
提交评论