软件工程第四章——软件设计
软件设计
是软件生命周期中的一个活动
是进行软件编码的基础
是软件需求分析被转化为软件的内部结构
是连接用户需求和软件技术的桥梁
好的设计的特点
- 设计必须实现在分析模型中包含的所有明确要求,必须满足客户所期望的所有隐含要求
- 设计必须对编码人员、测试人员及后续的维护人员是可读可理解的
- 设计应提供该软件的完整视图,从实现的角度解决数据、功能及行为等各领域方面的问题
设计质量属性
- 功能性
- 易用性
- 可靠性
- 性能
- 可支持性(包括:扩展性,适应性,可维护性)
设计指导原则
- 设计应该是一种架构
- 设计应该是模块化的
- 设计应该包含数据、体系结构、接口和组件各个方面
应该设计出系统所用的数据结构
应该设计出展现独立功能特性的各组件
应该设计出各组件与外部环境连接的各接口
- 设计由软件需求分析过程中获得信息驱动,采用可重复使用的方法导出
- 设计应该采用正确清楚的表示法
设计相关概念
- 抽象
- 体系结构
- 设计模式
- 模块化
- 信息隐藏
- 功能独立
- 精化
- 重构
设计技术(面向过程)
数据设计
体系结构设计
系统需要执行的函数功能组件集(如数据库、计算模块)
组件之间通信、协同和合作的连接器
组件集成构成系统的约束
设计人员通过分析系统组成部分的已知特性,理解其整体特性的语义模型分析
体系架构组织与细化的基本问题
- 控制架构
- 数据传递
部署设计
输出部署架构,实施规范,实施计划
接口设计
结构化的总体设计方法
系统结构图中的模块
传入:
传入模块一从下属模块取得数据,经过某些处理,再将其传送给上级模块。它传送的数据流叫做逻辑输入数据流。
传出:
传出模块一从上级模块获得数据,进行某些处理,再将其传送给下属模块。它传送的数据流叫做逻辑输出数据流。
变换:
变换模块一它从上级模块取得数据,进行特定的处理,转换成其它形