软件设计的目标和任务。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一. 模 块 化
5.2 设计原理
结论:分而治之,各个击破 ?将模块无限分割下去?
单个模块的开发成本小,几乎可忽略不计; 模块之间接口的开发成本呢?
一. 模 块 化
模块数目与软件成本的关系
5.2 设计原理
模块数目为M时,软件开发成本最小
二. 抽 象
5.2 设计原理
抽象:把一定事物、状态或过程中共性的方面集中 和概括起来,暂时忽略它们之间的差异。
管理 图形文件任务
End 图形软件包
二. 抽 象
5.2 设计原理
抽象2.过程层次的抽象(仅以管理图形文件任务为例) PROCEDURE drawing file management task IF OpenFile THEN input filename; open the file; display the file; ELSE IF SaveFile THEN input save filename; save the file; END IF
设想供选择的方案 选取合理的方案
系统流程图 组成系统的物理元素清单 成本/效益分析 实现这个系统的进度计划
推荐最佳方案 功能分解 设计软件结构(模块化思想)
5.51.1设设计计过过程程
总体设计的步骤
设计数据库 制定测试计划 书写文档
系统说明 用户手册 测试计划 详细的实现计划 数据库设计结果
END PROCEDURE. 抽象3.实现层次的抽象(程序设计语言描述)
二. 抽 象
5.2 设计原理
CAD软件中的数据抽象举例:
STRUCT coordinate { int x; int y }; CLASS Drawing //parent class
{ PUBLIC : coordinate startpoint, endpoint; …… };
述。在编码步骤,根据这种过程性描述,生成源 程序代码,然后通过测试最终得到完整有效的软 件。
软件设计的重要性:是软件开发时期的第一个步, 最终影响软件实现的成败和软件维护的难易程度。
软件设计的两个阶段
从工程管理的角度来看,软件设计分两 步完成。 总体设计:将软件需求转化为数据结构和 软件的系统结构。 详细设计:即过程设计。通过对结构表示 进行细化,得到软件的详细的数据结构和 算法。
抽象的思想:处理复杂系统的惟一有效的方法是用 层次的方式构造和分析它。
抽象层次: ✓最高抽象级别——面向问题的语言 ✓较低抽象级别——面向问题和实现的语言 ✓最低抽象级别——面向实现的语言
软件设计中的两类抽象: ✓ 过程抽象:功能-> 过程、函数 ✓ 数据抽象:数据对象定义、描述->数据类型名
三. 逐 步 求 精
5.2 设计原理
逐步求精: 为了能集中精力解决主要问题而尽量推迟对问 题细节的考虑。
逐步求精的思想: 对一个事物的认识是一个从高层次抽象向低层 次抽象逐步转化和过渡的过程。
Miller法则: 一个人在任何时候都只能把注意力集中在 (7+2)个知识块上。
三. 逐 步 求 精
审查和复审
5.1 设计过程
设计原理
模块化 抽象 逐步求精 信息隐藏和局部化 模块独立
5.2 设计原理
一. 模 块 化
5.2 设计原理
模块:模块是由边界元素限定的相邻程序元素(例如,数据说明, 可执行的语句)的序列,而且有一个总体标识符代表它。如: OO的对象、方法。
模块化思想:模块化就是把程序划分成独立命名且可独立访问的 模块,每个模块完成一个子功能,把这些模块集成起来构成一个 整体,可以完成指定的功能满足用户的需求。
CLASS Line : PUBLIC Drawing { …… }; CLASS Curve : PUBLIC Line { …… }; CLASS StraightLine : PUBLIC Line { …… };
Curve objCurve1; //objCurve1 is a instance of Curve StraightLine objSL2 ; //objSL2 is a instance of StraightLine
软件设计的两个阶段
第5章 总体设计
第5章 总体设计
5.1 设计过程 5.2 设计原理 5.3 启发规则 5.4 描绘软件结构的图形工具 5.5 面向数据流的设计方法 5.6 小结 习题
重点和难点
重点: 软件设计过程中应遵循的基本原理 面向数据流设计方法
难点: 变换分析、事务分析法过程和应用
总体设计的步骤
“分而治之”是模块化思想的依据:把复杂的问题分解为若干个 易于处理的小问题。
一. 模 块 化
5.2 设计原理
令C(X):问题X的复杂程度,E(X):解决X问题所需 的工作量
规律1:若两个问题P1,P2 C(P1) > C(P2),则E(P1) > E(P2)
规律2:某问题P可以分成P1,P2,P=P1+P2 则: C(P1+P2) > C(P1)+C(P2) 所以: E(P1+P2) > E(P1)+E(P2)
软件设计的目标和任务
软件需求:解决“做什么” 软件设计:解决“怎么做” 软件设计的任务:以软件需求规格说明书
为依据,进行
数据设计 系统结构设计 过程设计
软件设计的目标和任务
数据设计侧重于数据结构的定义 系统结构设计定义软件系统各主要成分之间的关
系 过程设计则是把结构成分转换成软件的过程性描
5.2 设计原理
Hale Waihona Puke Baidu
求精实际上是细化过程 求精要求设计者细化原始陈述,随着每个后续求 精(即细化)步骤的完成而提供越来越多的细节。
抽象与求精是一对互补的概念 抽象使得设计者能够说明过程和数据,同时却忽 略低层细节。事实上,可以把抽象看作是一种通 过忽略多余的细节同时强调有关的细节,而实现 逐步求精的方法。求精则帮助设计者在设计过程 中逐步揭示出低层细节。这两个概念都有助于设 计者在设计演化过程中创造出完整的设计模型。
5.2 设计原理
二. 抽 象
例子:讨论一个在不同抽象级别上的软件设计所具有
的形式。
CAD图形软件包可以画
抽象1.总体结构层次
各种直线和曲线,能完成
的抽象
所有几何图形的计算.图 图形软件包 软件任务
形设计的结果存于图形文 件中,图形文件可包含几 何的、正文的和其它各种 设计信息。
图形用户界面 创建 二维图形任务 显示 图形任务
相关文档
最新文档