1 / 35

软 件 工 程

软 件 工 程. 第 14 章  体系结构设计. 第 14 章 体系结构设计. 14.1 软件体系结构 14.1.1 什么是体系结构 14.1.2 为什么体系结构重要 14.2 数据设计 14.2.1 数据建模、数据结构、数据库和数据 仓库 14.2.2 构件级的数据设计. 第 14 章 体系结构设计. 14.3 体系结构风格 14.3.1 风格和模式的简略分类 14.3.2 组织和精化 14.4 分析可选的体系结构设计 14.4.1 一种体系结构权衡分析方法 14.4.2 体系结构设计的定量指导

Download Presentation

软 件 工 程

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 软 件 工 程 第14章 体系结构设计

  2. 第14章体系结构设计 14.1软件体系结构 14.1.1 什么是体系结构 14.1.2 为什么体系结构重要 14.2数据设计 14.2.1 数据建模、数据结构、数据库和数据 仓库 14.2.2 构件级的数据设计

  3. 第14章体系结构设计 14.3 体系结构风格 14.3.1 风格和模式的简略分类 14.3.2 组织和精化 14.4 分析可选的体系结构设计 14.4.1 一种体系结构权衡分析方法 14.4.2 体系结构设计的定量指导 14.4.3 体系结构复杂性

  4. 第14章体系结构设计 14.5映射需求到软件体系结构 14.5.1 变换流 14.5.2 事务流 14.6变换映射 14.6.1 一个例子 14.6.2 设计步骤

  5. 第14章体系结构设计 14.7事务映射 14.7.1 一个例子 14.7.2 设计步骤 14.8 精化体系结构设计 14.9 小结

  6. 第14章体系结构设计 设计主要任务是从信息需求中综合出: • 数据结构的表示 • 程序结构 • 接口特征 • 过程细节

  7. 14.1 软件体系结构 体系结构是一种表示,使得软件工程师能够: • 分析“设计”在满足其陈述的需求方面的效力 • 在进行“设计”改变仍然相对容易的阶段考虑体系结构的可能选择 • 减少和软件构造相关联的风险

  8. 14.1.2 为什么体系结构重要 • 软件体系结构的表示启动开发基于计算机系统感兴趣的所有各方(风险承担者)的通信 • 体系结构突出了早期设计抉择 • 体系结构建立了一个模型

  9. 14.2 数据设计 数据仓库的特征: • 面向主题 • 集成性 • 时变性 • 非易失性 数据建模 数据结构 数据库 数据仓库

  10. 14.2.2 构件级的数据设计 数据规约原则: 1.用于功能和行为的系统分析原则也应用于数据 2.应该标识所有的数据结构以及其上完成的操作 3.应当建立数据字典,并用于数据设计和程序设计 4.低层的设计决策应该推迟到设计过程的后期

  11. 数据规约原则: 5.只有直接使用数据结构内部模块才能看到该数据结构的表示 6.应该开发一个由有用的数据结构和应用于其上的操作组成的库 7.软件设计和程序设计语言应该支持抽象数据类型的规约和实现

  12. 14.3 体系结构风格 风格描述一种系统范畴: • 一组构件:它们完成系统所需的某种功能 • 一组连接子:它们使能构件间的“通信,协调和合作” • 约束:定义构件可以如何被集成到一起形成系统 • 语义模型:使得设计者能通过分析系统的构成成分的 • 已知性质而理解系统的整体性质。

  13. 14.3.1 风格和模式的简略分类 体系结构风格: • 数据为中心的体系结构 • 数据流体系结构 • 调用和返回体系结构 • 面向对象体系结构 • 层次式体系结构

  14. 14.3.2 组织和精化 • 评估导出的体系结构: • 控制--在体系结构中如何管理控制? • 数据--构件中如何进行数据通信?

  15. 14.4 分析可选的体系结构设计 方法:1.迭代法来评估设计权衡 2.用伪定量的技术来评估设计质量

  16. 14.4.1 一种体系结构权衡分析方法 迭代法来评估设计权衡: • 收集场景 • 诱导需求、约束和环境描述 • 描述体系结构风格/模式 • 孤立地考虑每个属性来评估质量属性 • 标识质量属性对各种体系结构属性的敏感性 • 用第5步中的敏感性分析评审候选体系结构

  17. 14.4.2 体系结构设计的定量指导 频谱分析模型--从最好到最坏 整体的总的分值S 最坏总的分值Sw 最好分值Sb 计算频谱指标Is: Is=[(S-Sw)/( Sb-Sw)]*100

  18. 频谱分析模型 改善指标Imp: Imp=Is1-Is2 如果Imp是正值,则系统1相对于系统2完善

  19. 设计选择分析模型--需要评估 设计选择指标d: d=(Ns/Na)*100 Ns--体系结构达到的设计量纲的数量 Na--设计空间中总的设计量纲数 设计选择指标越高,越接近理想的系统

  20. 14.4.3 体系结构复杂性 一种用于评估所提出的体系结构的整体复杂性的技 术是考虑体系结构中构件间的依赖关系,这些依赖 关系是由系统中的信息/控制流控制的。 三种类型的依赖: • 共享依赖 • 流依赖 • 约束依赖

  21. 14.5 映射需求到软件体系结构 数据流向程序结构的变迁六步过程: • 建立数据流的类型 • 指明流的边界 • 将DFD映射到程序结构 • 用“因子化”的方法定义控制的层次结构 • 用设计测度和启发信息对结构进行求精 • 精化体系结构描述

  22. 14.5.1 变换流 • 输入流 • 变换中心 • 输出流

  23. 14.5.2 事务流 • 事务流--信息流可以沿多条路径之一触发其他数据流 • 事务流的特征是数据沿某输入路径流动,该路径将外部信息转换成事务,估计事务的价值,根据其价值,启动沿很多“动作路径”之一的流

  24. 14.5.2 事务流 … 事务 … T 动作路径 事务中心 … … … …

  25. 14.6 变换映射 设计步骤 • 评审基本系统模型 • 评审和精化软件的数据流图 • 确定DFD含有变换流还是事务流特征 • 划分输入和输出流的边界,隔离变换中心 • 完成“第一级因子化”。 • 完成“第二级因子化” • 用提高软件质量的启发信息,精化第一次迭代得到的程序结构

  26. SafeHomede的第0层DFD 控制面板显示 用户命令 和数据 显示信息 控制面板 警告类型 SafeHomede 软件系统 警铃 传感器 状态 电话号码 拨音 传感器 电话线

  27. SafeHomede的第1层DFD 控制 面板 配置 系统 用户命令 和数据 配置请求 配置信息 与用户 交互 显示信息 控制 面板 显示 激活/不 激活系统 开始 停止 状态信息 密码 显示信息 和状态 警 铃 密码 处理 检验id信息 传感器信息 电 话 线 警告类型 监控 传感器 传感器 传感器状态 电话号码拨音

  28. 监控传感器的第2层DFD 传感器信息 显示格式 警告类型 配置信息 传感器id 类型定位 产生警告 信息 配置数据 评估设置 拨号 读传感器 传感器id类型 传感器状态 电话号码拨音

  29. 显示活动状态(完成、在处理中) 闪烁标志 SafeHomede的第一层CFD 控制 面板 配置 系统 配置信息 开/关切换 与用户 交互 控制 面板 显示 激活/不 激活系统 显示信息 和状态 超时 密码 处理 警 铃 警告 信号 警告 状态 电 话 线 传感器 事件 监控 传感器 传感器

  30. 14.7 事务映射 设计步骤 • 评审基本系统模型 • 评审和精化软件的数据流图 • 确定DFD含有变换流还是事务流特征 • 标识事务中心和每条动作路径上的流特征 • 因子化并精化该事务结构和每条动作路径的结构 • 用提高软件质量的启发信息,精化第一次迭代得到的程序结构

  31. 14.7 事务映射

  32. 14.8 精化体系结构设计 • 为每个模块开发处理说明 • 为每个模块提供接口描述 • 定义局部和全局数据结构 • 标出所有各种设计限制/局限 • 进行设计评审 • 进行精化(如果需要的话)

  33. 14.7 小结 • 设计优化应在满足模块化要求的前提下尽量减少模块数量,在满足信息需 求的前提下尽量减少复杂数据结构。

More Related