文档介绍:软件工程
主编曹哲高诚
中国水利水电出版社
BeiHuaZLL
ZhangLingling
是后续开发步骤及软件维护工作的基础。
如果没有设计,只能建立一个不稳定的系统结构
软件设计:
BeiHuaZLL
ZhangLingling
软件工程
第 7 章软件设计基础
概念
基本概念
设计
过程
设计
工具
说明
与评审
BeiHuaZLL
ZhangLingling
软件设计过程
Text
Text
技术角度
与
管理角度
详细设计
概要设计
过程设计
数据设计
结构设计
概要设计
根据需求确定软件和数据的总体框架
详细设计
将“概设”结果进一步精化成算法表示和数据结构
结构设计
确定程序各主要部件之间的关系
数据设计
把信息描述转换为实现软件所要求的数据结构
过程设计
完成每一部件的过程化描述
BeiHuaZLL
ZhangLingling
抽象与逐步求精
抽象
抽出事务的本质特性而暂时不考虑它们的细节。是控制复杂性的基本策略。
定义
需求
设计
实现
软件系统被描述为基于计算机的大系统的一个组成部分
软件用问题域约定的****惯用语表达
概要设计过渡到详细设计时,抽象级再一次降低
编码完成后达到了抽象的最低级
过程抽象
把完成一个特定功能的动作序列抽象为一个过程名和参数表
数据抽象
把一个数据对象的定义(或描述)抽象为一个数据类型名
BeiHuaZLL
ZhangLingling
抽象1:
该CAD软件系统配有与绘图员进行可视化通信的图
形界面,能用鼠标代替绘图工具画各种直线和曲线;
能完成所有几何计算以及所有截面视图和辅助视图的
设计。图形设计的结果保存在图形文件中,图形文件
可以包含几何的、正文的和其他各种补充设计信息。
考虑适用于低级CAD的图形软件包
CAD软件任务
创建二维图形
管理图形文件
用户界面
显示图形
任务
抽象2:
CAD软件任务;
用户界面子任务;
创建二维图形子任务;
显示图形子任务;
管理图形文件子任务;
end CAD.
抽象3(仅以“创建二维图形任务”为例)
PROCEDURE创建二维图形
REPEAT UNTIL<创建图形任务终止>
……
END REPETITION;
END PROCEDURE.;
DO WHILE
<出现与数字仪的交互时>
数字仪接口任务;
判断作图请求;
线:画线任务;
圆:画圆任务;
……
END;
DO WHILE
<出现与键盘的交互时>
键盘接口任务;
选择分析或计算;
辅助视图:辅助视图任务;
截面视图:截面视图任务;
……
END;
BeiHuaZLL
ZhangLingling
数据对象:
TYPE drawing IS STRUCTURE DEFINED
number IS STRING LENTH(12);
geometry DEFINED…
notes IS STRING LENTH(256);
bom DEFINED…
END drawing TYPE;
数据抽象
blueprint IS INSTANCE OF drawing;
或 schematic IS INSTANCE OF drawing;
BeiHuaZLL
ZhangLingling
逐步求精
逐步求精
为了能集中精力解决主要问题而
尽量推迟对问题细节的考虑
抽
象
求精
BeiHuaZLL
ZhangLingling
模块化与信息隐藏
模块
理论
依据
理想的
属性
大小
I/O、功能,程序、数据
程序、程序段、子程序
一个功能、易理解、独立
例:库存管理系统的模块划分
事务接收模块
更新库存清单
订货处理
生成报表
例:人事管理系统
输入职工档案
职工档案管理系统
生成职工档案报表系统
最小成本
区域M
O
软件总成本
用于接口的成本
每个模块成本之和
模块总数
成本或
工作量
信息隐藏
内聚度
耦合度
分治法:
C(P1+P2)>C(P1)+C(P2)
E(P1+P2)>E(P1)+E(P2
BeiHuaZLL
ZhangLingling
信息隐藏
模块内所含信息对那些不需要这些信息的模块不可访问,每个模块只完成一个相对独立的特定功能。
模块独立性(Module independence)
好设计的关键:每个模块完成一个相对独立的子功能,
并且与其它模块间的接口简单。
独立性的度量:耦合(Coupling)&内聚(Cohesion)
BeiHuaZLL