构架设计方法PPT课件.ppt_第1页
构架设计方法PPT课件.ppt_第2页
构架设计方法PPT课件.ppt_第3页
构架设计方法PPT课件.ppt_第4页
构架设计方法PPT课件.ppt_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

上午11时35分 设计架构DesigningArchitecture 第九周 王湖南wanghunan 1 提纲 构架结构与视图演变交付生命期模型 EDLC 构架设计 ADD方法 2 1构架结构和视图 软件构架的定义某个软件或计算机系统的软件构架是该系统的一个或多个结构 他们由软件元素 这些元素之间的外部可见属性和这些元素之间的关系组成 3 1 1视图 现代的软件系统非常复杂 我们很难一下子就理解他们 正确的做法是任何时刻我们只关注软件系统的一个或几个结构 这正如不同的医生关注病人的不同部分视图 视图是构架元素内聚集的表述 由系统涉众编写和阅读 它由一个元素集合表示和元素之间的关系组成 用于表示构架中的某个结构 4 1 2构架结构 结构 结构是元素本身的集合 他们存在于软件和硬件中 比如 模块结构是系统的模块和其组织的结构 模块视图是该结构的表示构架结构根据元素的主要特性可以分为三类 模块结构组件 连接器结构分配结构 5 1 3软件结构 常见的软件构架结构 6 1 3 1模块结构 模块结构的元素是模块 模块表示一种考虑系统的基于代码的方法 模块结构要回答的问题 1 分配给每个模块的主要功能责任2 允许模块使用的其它软件元素3 它实际使用的其它软件是什么4 什么模块通过泛化和特化 类的继承 关系与其它模块相关 7 1 3 1模块结构 基于模块的结构包括如下内容 1 分解 任务分解 分解模块通过 是一个子模块 的关系将彼此关联起来 它展示了如何将大的模块分解为小模块 直到很容易理解为止该方法适用于资源分配 项目结构化和规划 信息隐藏等 8 1 3 1模块结构 2 使用 调用关系 使用单元也是模块 过程或模块结构上的资源 这些单元通过 使用 关系彼此关联该结构单元用于设计子集 设计扩展等 便于系统的增量式开发比如 我们为一个系统设计数据处理 我们可能有很多处理被调用 但开始时我们只完成有限的实际处理单元 然后再扩展 9 1 3 1模块结构 3 分层 特殊的使用关系 当以一种特定的方式小心地控制该结构中的使用关系时 就出现了由层组成的系统 在该系统中 一个层就是相关功能的一个一致的集合 在一个严格的分层结构中 第n层只能使用第n 1层提供的服务分成适用于增量式开发 在 虚拟机 上实现可移植性 操作系统多采用分层结构 10 1 3 1模块结构 4 类或泛化该结构中的模块单元是类 关系是 继承自 或 是一个实例 该结构适用于面向对象的编程中 从一个公共的模板中产生快速的 相近的实现 11 1 3 2组件 连接器结构 该结构的元素是运行时的组件和连接器该结构回答如下问题 1 什么是主要的执行组件 它们之间如何交互2 什么是主要的共享数据存储3 数据在系统中经过了哪些地方4 系统的哪些部分可以并行运行5 系统执行时 其结构可能发生的变化 12 1 3 2组件 连接器结构 组件结构包括如下内容1 进程或通信进程此处的单元为通过通信 同步和 或排除操作将彼此相连的进程或线程该结构用于调度分析 性能分析等 13 1 3 2组件 连接器结构 2 并发该结构能够使设计师确定并行的机会以及可能出现的资源争用的位置 单元是组件 连接器是 逻辑线程 其适用于确定存在资源争用 线程交叉 连接 被创建或被杀死的位置 14 1 3 2组件 连接器结构 3 共享数据或存贮库该结构由创建 存储和访问持久数据的组件和连接器组成该结构展示了软件元素如何产生数据和使用数据 可以使用该结构确保良好的性能和数据完整性 15 1 3 2组件 连接器结构 4 客户机 服务器组件是客户机和服务器 连接器是协议以及它们共享来执行系统工作的消息该结构适用于关注点的分离 支持可修改性 物理分布和负载平衡 16 1 3 3分配结构 分配结构展示了软件元素 创建并执行软件的一个或多个外部环境中的元素之间的关系它回答如下问题 1 每个软件元素在什么处理器上执行2 在开发 测试和系统构建期间 每个元素都存储在什么文件中3 分配给开发小组的软件元素是什么 17 1 3 3分配结构 1 部署该结构展示了如何将软件分配给硬件处理和通信元素该结构的元素是软件 硬件和通信路径 关系是 分配给 和 移植到 该结构用于工程人员对性能 数据完整性 可用性和安全性进行推断 18 1 3 3分配结构 2 实现该结构展示了软件元素是如何映射到系统开发 集成或配置控制环境中的文件结构上 这对于开发活动和构架构成的管理非常重要 19 1 3 3分配结构 3 工作分配该结构将实现和集成模块的责任分配给开发小组该构架适用于项目管理 最佳利用专业技术等 具有管理和构架两层含义 20 1 4构架之间的关联 上面描述的各种构架都提供了关于某一系统不同的考察视角和设计线索 他们都是有用而且有效的 这些构架之间是相互关联的 一个项目往往将某种构架作为主要构架 并根据结构的需要考虑运用其它构架并不是所有的系统都需要在构架上采用多种结构结构代表了构架的主要工程设计平衡点 21 1 4通常我们会选择那些结构 1 模块视图结构 这是关键的抽象2 进程 该视图解决功能的并发和分布问题3 开发 该视图展示了软件模块 库 子系统和开发单元的组织4 部署 该视图将其它元素映射到了处理和通信节点上 22 2 演变交付生命期模型 任何一个好的系统都具有的两个特性 1 存在一个强大的构架构想2 应用管理良好的迭代式增量开发周期演变交付生命期 EvolutionaryDeliveryLifecycle 模型使开发的软件系统具有上述两个特征 它也是微软公司采用的软件开发策略的基础 23 2 1演变交付生命期模型说明 演变交付生命期模型的意图是通过获得用户和客户反馈 并在发布最终版本前通过几个版本进行迭代该模型的目的是支持具有上市时间压力且产品的功能具有不同优先级的组织 因为它能够使该组织将产品的任何一次迭代发布出去 24 2 2构架在演变交付生命期中的位置 构架作为软件开发过程中的基础 在整个软件的生命期中有其特定的位置在演变交付生命期模型中 构架位于初始需求和骨架系统之间 参见下图 25 演变交付生命期模型 EDLC ADD设计 26 2 3构架驱动因素的概念 功能 质量和商业需求的某个集合塑造了构架 我们把这些塑造需求称为构架驱动因素为了确定构架驱动因素 需要识别优先级最高的业务目标 我们使用质量属性场景 表示质量属性 和用例 表示功能 来表述这些业务目标 27 2 3 1构架驱动因素举例 变电站综合自动化仿真系统 28 模拟机柜 29 模拟操作开关 30 主线路图 31 2 3 3仿真系统的主要功能 一次设备的模拟二次设备模拟 保护功能 主电路图模拟 监控功能 操作人机界面的模拟 控制功能 不同设备之间的交互关系模拟不同变电站具有不同的设备和布局 32 2 3 4仿真系统的构架驱动因素 可修改性 因为要适应于不同的变电站可测试性 对于所作的输入要能够做出相应的反应性能 能够在指定的时间内完成响应 33 2 4开始我们的构架设计 我们在业务目标列表中选择对构架影响最大的需求 通常少于10个 这些需求就构成了构架驱动因素比如 空中交通管制系统中的可用性和性能在确定了构架驱动因素之后 就可以开始我们的构架设计了 34 3 设计构架 属性驱动的设计方法 AttributeDrivenDesign ADD 该方法可以用于设计一个满足一定质量需求和功能需求的构架ADD把一组质量属性场景作为输入 并使用对质量属性实现和构架之间的关系的了解 对构架进行设计 35 3 1ADD设计方法 ADD方法将模块分解过程建立在软件必须满足的质量属性之上 它是一个递归分解过程 其中在每个阶段都选择适当的战术和构架模式来满足一组质量属性场景 然后对功能进行分配 以实例化由该模式所提供的模型类型 36 3 1 1ADD设计方法的过程 ADD设计原则把质量属性的限制加到模块分解过程中去 37 3 1 2ADD设计的结果 在了解了构架驱动因素之后 我们开始进行ADD设计ADD设计的结果是构架的模块分解视图和其他视图的最初几个层次ADD并不得到视图的所有细节 当我们做出更为详细的设计决策之后就能够得到最后的构架了 38 3 2ADD设计的样例 我们使用ADD方法为家庭信息系统中的车库门开关器设计一个产品线构架 39 3 3ADD方法的步骤 ADD构架设计方法的执行步骤 选择要分解的系统 对分解模块进行求精 对需要进一步分解的每个模块重复上述两个步骤 40 3 3 1对分解的模块进行求精 根据下面的步骤对模块进行求精从具体的质量场景和功能需求集合中选择构架驱动因素选择满足构架驱动因素的构架模式 根据用来实现驱动因素的战术创建模式 41 3 3 1对分解的模块进行求精 实例化模块并根据用例分配功能 使用多个视图进行表示定义子模块的接口 该分解提供了模块和对模块交互类型的限制验证用例和质量属性场景并对其进行求精 使它们成为子模块的限制 42 3 3 2选择构架驱动因素 车库门系统的构架驱动因素 用于开 关门的设备和控制装置不同 应该可以直接从产品线构架中推导出一组特定控制装置的产品构架不同产品中使用的处理器可能不同 应该可以直接从产品线构架中推导出每个特定处理器的产品构架 43 3 3 2选择构架驱动因素 如果车库门在下降过程中检测到一个障碍物 它必须在0 1秒内停止应该可以在家庭信息系统内使用特定于产品的诊断协议来诊断和管理车库门开关器 应该可以直接产生一个反映该协议的构架 44 3 3 3选择构架模式 这一步的目标是建立一个由模块类型组成的总体构架模式 该模式通过组合选定的战术满足了构架驱动因素两个因素支配了战术的选择 构架驱动因素本身实现战术的模式对其它质量属性产生的副作用 也就是要权衡选择的战术 45 3 3 3选择构架模式 根据该系统的构架驱动因素我们知道 由于该系统要实现一个产品线 因此可修改性是它需要支持的一个重要质量属性 另外 在遇到障碍物的时候车库门需要在0 1秒内停下来 因此性能也是它要满足的一个质量属性 46 3 3 3选择构架模式 针对可修改性 我们采用的战术就是 局部化变更 具体战术为 语义一致性和信息隐藏 我们使用单独的模块来处理用户接口 通讯和传感器 这些模块被称为虚拟机针对性能 我们采用提高计算效率和精心调度的战术来保证关键性能计算在规定的时间内完成 47 3 3 3选择构架模式 48 3 3 4实例化模块和分配功能 质量属性构架驱动因素通过战术的使用确定模块的分解结构我们将前面的构架模式实例化 比如 我们把管理障碍物检测和停止车库门升降的责任分配给关键性能部分 而将诊断能力分配给非关键性能部分 虚拟机的责任则标识为通信和传感器两部分 49 3 3 4 1车库门开关器的第一级分解 50 3 3 4 2表示构架的视图 并发视图 这是组件 连接器视图中的一种 用于对系统的动态执行过程建模 通过该视图我们可以讨论并发和同步的几个问题 两个用户同时执行类似的功能 这有助于识别资源争用或数据完整性问题 比如车库门系统 一个人在远程关门 另一个人利用控制器进行关门操作 51 3 3 4 2表示构架的视图 一个用户同时执行多个功能 这有助于揭示数据交换和活动控制问题启动系统 这为系统中永久运行的活动及如何初始化提供了一个良好的概念关闭系统 这有助于揭示清除问题 52 3 3 4 2表示构架的视图 并发视图 53 3 3 4 2表示构架的视图 部署视图 如果系统中使用了多个处理器或硬件系统 则需要考虑部署视图部署视图导致了并发视图的虚拟线程 并发视图又分解为特定处理其中的虚拟线程和在处理器间传输的消息部署视图有助于确定是否需要某些模块的多个实例 54 3 3 4 2表示构架的视图 55 3 3 5定义子模块的接口 模块的接口展示了所提供的服务和所要求的属性 他对其它接口可以使用的服务和可以依赖的接口编写文档 来揭示子模块的交互假定模块视图的编档 1 信息的生产者 消费者2 要求模块提供服务并使用他们的交互模式 56 3 3 5定义子模块的接口 并发视图的编档 线程间的交互组件活动的信息组件同步 序列化部署视图的编档 硬件要求通信需求 57 3 3 6验证并求精用例 功能需求 验证分解是否正确每个子模块都有一部分从分析功能需求中分解得出的责任 车库门系统的模块用户接口 识别用户请求升 降门模块障碍物检测通讯虚拟机 管理与家庭信息系统的通信传感器 激励器虚拟机 诊断 调度等 58 3 3 6 1验证并求精质量属性场景 对质量属性场景进行求精 然后分配给子模块 可以通过分解完全满足质量属性场景通过对子模块的有限制的分解来满足质量属性场景分解是中性的质量属性场景可能不满意当前的分解 此时需要再分解 59 3 4形成团队结构 在构架的模块分解结构的最初几个层次稳定后 就可以把这些模块分配给开发小组 这就是工作分配视图构架对开发组织结构的形成产生重要影响 开发小组根据模块的划分构成 开发小组的结构和对小组间交流的控制就是影响大型项目开发成功与否的重要因素 60 3 4形成团队结构 分配任务的原则1 开发小

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论