软 件 工 程

35
第 14 第 第第第第第 第 第 第 第

Upload: melyssa-patterson

Post on 30-Dec-2015

56 views

Category:

Documents


4 download

DESCRIPTION

软 件 工 程. 第 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 体系结构设计的定量指导 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 软 件 工 程

第 14章 体系结构设计 

软 件 工 程

Page 2: 软 件 工 程

第 14章 体系结构设计

14.1 软件体系结构      14.1.1  什么是体系结构      14.1.2  为什么体系结构重要

14.2 数据设计14.2.1  数据建模、数据结构、数据库和数据             仓库14.2.2  构件级的数据设计

Page 3: 软 件 工 程

第 14章 体系结构设计

14.3 体系结构风格14.3.1  风格和模式的简略分类14.3.2  组织和精化

14.4 分析可选的体系结构设计14.4.1  一种体系结构权衡分析方法14.4.2  体系结构设计的定量指导14.4.3  体系结构复杂性

Page 4: 软 件 工 程

第 14章 体系结构设计

14.5 映射需求到软件体系结构14.5.1  变换流14.5.2  事务流

14.6 变换映射14.6.1  一个例子14.6.2  设计步骤

Page 5: 软 件 工 程

第 14章 体系结构设计

14.7 事务映射14.7.1  一个例子14.7.2  设计步骤

14.8 精化体系结构设计

14.9 小结

Page 6: 软 件 工 程

第 14章 体系结构设计

设计主要任务是从信息需求中综合出 :

数据结构的表示程序结构接口特征过程细节

Page 7: 软 件 工 程

体系结构是一种表示,使得软件工程师能够:

1) 分析“设计”在满足其陈述的需求方面的效力

2) 在进行“设计”改变仍然相对容易的阶段考虑体系结构的可能选择

3) 减少和软件构造相关联的风险

14.1  软件体系结构

Page 8: 软 件 工 程

14.1.2  为什么体系结构重要

• 软件体系结构的表示启动开发基于计算机系统感兴趣的所有各方(风险承担者)的通信

• 体系结构突出了早期设计抉择• 体系结构建立了一个模型

Page 9: 软 件 工 程

14.2  数据设计

数据仓库的特征: 面向主题 集成性 时变性 非易失性

数据建模数据结构数据库数据仓库

Page 10: 软 件 工 程

数据规约原则:

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

14.2.2  构件级的数据设计

Page 11: 软 件 工 程

5. 只有直接使用数据结构内部模块才能看到该数据结构的表示

6.应该开发一个由有用的数据结构和应用于其上的操作组成的库

7.软件设计和程序设计语言应该支持抽象数据类型的规约和实现

数据规约原则:

Page 12: 软 件 工 程

14.3  体系结构风格

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

Page 13: 软 件 工 程

14.3.1  风格和模式的简略分类

体系结构风格:• 数据为中心的体系结构• 数据流体系结构• 调用和返回体系结构• 面向对象体系结构• 层次式体系结构

Page 14: 软 件 工 程

14.3.2  组织和精化

评估导出的体系结构:•控制 --在体系结构中如何管理控制?•数据 --构件中如何进行数据通信?

Page 15: 软 件 工 程

14.4  分析可选的体系结构设计

方法:1.迭代法来评估设计权衡

2.用伪定量的技术来评估设计质量

Page 16: 软 件 工 程

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

14.4.1  一种体系结构权衡分析方法

Page 17: 软 件 工 程

14.4.2  体系结构设计的定量指导

频谱分析模型 -- 从最好到最坏

整体的总的分值S最坏总的分值Sw最好分值Sb

计算频谱指标 Is :

Is=[(S-Sw)/( Sb-Sw)]*100

Page 18: 软 件 工 程

改善指标 Imp:

Imp=Is1-Is2

如果 Imp是正值,则系统1相对于系统 2完善

频谱分析模型

Page 19: 软 件 工 程

设计选择分析模型 -- 需要评估

设计选择指标d:d=(Ns/Na)*100Ns-- 体系结构达到的设计量纲的数量Na-- 设计空间中总的设计量纲数设计选择指标越高,越接近理想的系统

Page 20: 软 件 工 程

一种用于评估所提出的体系结构的整体复杂性的技

术是考虑体系结构中构件间的依赖关系,这些依赖

关系是由系统中的信息 /控制流控制的。

三种类型的依赖: 共享依赖 流依赖 约束依赖

14.4.3  体系结构复杂性

Page 21: 软 件 工 程

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

14.5  映射需求到软件体系结构

Page 22: 软 件 工 程

14.5.1  变换流

输入流 变换中心 输出流

Page 23: 软 件 工 程

事务流 -- 信息流可以沿多条路径之一触发其他数据流

事务流的特征是数据沿某输入路径流动,该路径将外部信息转换成事务,估计事务的价值,根据其价值,启动沿很多“动作路径”之一的流

14.5.2  事务流

Page 24: 软 件 工 程

14.5.2  事务流

T

………

事务

事务中心

动作路径

Page 25: 软 件 工 程

14.6  变换映射

设计步骤1. 评审基本系统模型2. 评审和精化软件的数据流图3. 确定 DFD 含有变换流还是事务流特征4. 划分输入和输出流的边界,隔离变换中心5. 完成“第一级因子化”。6. 完成“第二级因子化” 7. 用提高软件质量的启发信息,精化第一次迭

代得到的程序结构

Page 26: 软 件 工 程
Page 27: 软 件 工 程

SafeHomede的第 0层DFD

 SafeHomede软件系统

用户命令和数据

显示信息控制面板

传感器 传感器状态

警铃

电话线

警告类型

电话号码拨音

控制面板显示

Page 28: 软 件 工 程

SafeHomede的第 1层DFD控制面板

与用户交互

控制面板显示密码

电话号码拨音传感器状态

显示信息

配置请求用户命令和数据

配置系统

警铃电话线传感器

配置信息

显示信息和状态

监控传感器

激活/不激活系统

传感器信息密码处理

警告类型检验 id信息

开始停止

状态信息

Page 29: 软 件 工 程

监控传感器的第 2层DFD

电话号码拨音传感器状态

配置数据

显示格式

配置信息 产生警告信息

拨号

评估设置

传感器信息

读传感器

警告类型

传感器 id类型

传感器 id类型定位

Page 30: 软 件 工 程

SafeHomede的第一层CFD控制面板

与用户交互

控制面板显示

显示活动状态(完成、在处理中)

配置系统

警铃电话线传感器

配置信息

显示信息和状态

监控传感器

激活/不激活系统

警告信号

密码处理传感器事件

警告状态

闪烁标志

开/关切换

超时

Page 31: 软 件 工 程

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

到的程序结构

14.7  事务映射

Page 32: 软 件 工 程

14.7  事务映射

Page 33: 软 件 工 程
Page 34: 软 件 工 程

14.8  精化体系结构设计

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

Page 35: 软 件 工 程

14.7  小结

设计优化应在满足模块化要求的前提下尽量减少模块数量,在满足信息需

求的前提下尽量减少复杂数据结构。