软件工程总体设计方案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息科学与技术学院 闵笛
软件工程
① 制定规范
❖ 为软件开发小组制定在进行软件设计时,应 该共同遵守的标准,以便协调组内各成员的 工作。
信息科学与技术学院 闵笛
软件工程
② 软件结构设计
❖ 包括: ❖ 将系统按功能划分成模块 ❖ 确定每个模块的功能 ❖ 确定模块之间的调用关系 ❖ 确定模块之间的接口,即模块之间传递的信息 ❖ 评价模块结构的质量
学生
❖
认识复杂事物和现象时, 抽出事物本质的共同特
大学生
性而暂不考虑它们的细 节。
湛江师范学院的学生
❖ ② 软件开发中的抽象 湛师信息学院的学生
❖ 过程的抽象 ❖ 数据的抽象
湛师信息学院11计本的学 生
信息科学与技术学院 闵笛
软件工程
抽象
❖ 什么是抽象思想?
在认识事物、分析和解决问题的过程中,忽略那 些与当前研究目标不相关的部分, 以便将注意力 集中于与当前目标相关的方面
信息科学与技术学院 闵笛
软件工程
软件设计的目标和任务
❖ 软件需求:解决“做什么”
❖ 软件设计:解决“怎么做”.
❖ 软件设计的任务:以软件需求规格说明书为 依据,着手实现软件的需求,并将设计的结 果反映在“设计规格说明书”文档中。
❖ 软件设计的重要性:是软件开发阶段的第一
步,最终影响软件实现的成败和软件维护的
信息科学与技术Βιβλιοθήκη Baidu院 闵笛
软件工程
② 模块化的优点
❖ 模块化是软件解决复杂问题所具备的手段, 可降低软件复杂性,减少开发工作量,从而 降低开发成本,提高软件生产率,以下是模 块化的依据。
信息科学与技术学院 闵笛
软件工程
③ 模块化与软件成本的关系
接口
信息科学与技术学院 闵笛
软件工程
④ 模块的基本属性
软件工程
第五章总体设计
❖ 5 . 1 设计过程 ❖ 5 . 2 设计原理 ❖ 5 . 3 启发规则 ❖ 5 . 4 描绘软件结构的图形工具 ❖ 5 . 5 面向数据流的设计方法 ❖ 5 . 6 小结 ❖ 习题
信息科学与技术学院 闵笛
软件工程
学习要求
❖ 掌握: ❖ 1 、软件设计过程中应遵循的基本原理和相
软件工程
将需求分析模型转换为软件设计
❖ 软件结构设计以需求分析中得到的数据流图 为基础而进行。
信息科学与技术学院 闵笛
软件工程
第一个阶段总体设计的任务
❖ ① 制定规范 ❖ ② 设计软件系统结构(简称软件结构) ❖ ③ 处理方式设计 ❖ ④数据结构及数据库设计 ❖ ⑤ 可靠性设计 ❖ ⑥ 编写概要设计文档 ❖ ⑦ 概要设计评审
外表
抽象 形体 衣着 性格 头发 脸形 领带 逐步求精
信息科学与技术学院 闵笛
软件工程
自顶向下,逐步求精的基本思想
❖ 将功能、信息的说明分为多个层次,最高层 也最抽象 ― 仅仅只是概念性地描述功能或信 息,不提供功能的内部工作情况或信息的内 部结构;
❖ 设计者从最高层开始,仔细推敲,进行功能 和信息的细化,给出下层实现的细节;
❖ 逐步求精:为了能集中精力解决主要问题而 尽量推迟对问题细节的考虑。
❖ 可把逐步求精看作是一项把一个时期内必须 解决的种种问题按优先级排序的技术。
❖ 逐步求精是一种自顶向下的设计策略,按这 种设计策略,程序的体系结构是通过逐步精 化处理过程的层次而设计出来的。
信息科学与技术学院 闵笛
软件工程 逐步求精的例子
件结构,从中选出最佳方案和最合理的软件
结构,从而用较低成本开发出较高质量的软
件系统。
信息科学与技术学院 闵笛
软件工程
软件设计的两个阶段
❖ 第二阶段:详细设计(过程设计) ❖ 确定模块内部的算法和数据结构;选定某种
过程的表达形式来描述各种算法;产生精确 描述各模块程序过程的详细文档,并进行评 审。
信息科学与技术学院 闵笛
❖ 软件开发实际上就是一个从高层次抽象到低 层次抽象逐步过渡的过程。
❖ 一个复杂的系统先用一些高级的抽象概念构 造和理解,这些高级概念又用较低级的概念 构造和理解,如此进行下去,直到具体元素。
信息科学与技术学院 闵笛
软件工程
抽象例子
抽象
外表
形体 衣着 性格
信息科学与技术学院 闵笛
软件工程
5 . 2. 3 逐步求精
❖ 接口:指模块的输入与输出。 ❖ 功能:指模块实现什么功能。 ❖ 模块化好处: ❖ 模块化使软件容易测试和调试,因而有助提
高软件的可靠性。 ❖ 模块化能提高软件的可修改性。 ❖ 模块化有助于软件开发工程的组织管理。
信息科学与技术学院 闵笛
软件工程
5.2.2 抽象( Abstraction )
❖ ① 什么是抽象?
关概念; ❖ 2 、描绘软件结构的图形工具的运用; ❖ 3 、面向数据流设计方法概念;变换分析、
事务分析法过程和应用。 ❖ 理解: ❖ 1 、典型的总体设计过程包括的步骤; ❖ 2 、设计中的启发式规则;信息科学与技术学院 闵笛
软件工程
重点和难点
❖ 重点: ❖ 软件设计过程中应遵循的基本原理; ❖ 面向数据流的设计方法 ❖ 难点: ❖ 变换分析、事务分析法的过程和应用
信息科学与技术学院 闵笛
软件工程
5 . 2 . 1 模块化(Modularity )
❖ ① 什么是模块和模块化思想? ❖ 采取自顶向下的方式,逐层把软件系统划分
成若干可单独命名和可编址的部分- “ 模 块” ,每个模块完成一个特定的子功能;所 有模块按某种方法组成一个整体,完成整个 系统所要求的功能。 ❖ 软件系统就是通过这些模块的组合来实现。
难易程度。
信息科学与技术学院 闵笛
软件工程
软件设计的两个阶段
❖ 第一阶段:概要设计(总体设计)
❖ 根据软件需求,设计软件系统结构和数据结
构,确定程序的组成模块及模块之间的相互 关系。
❖ 回答“概括地说,系统应该如何实现?”。
❖ 其重要性是:站在全局高度,从较抽象的层
次上分析对比多种可能的系统实现方案和软
❖ 随着每个后续细化逐步的完成,提供越来越
信息科学与技术学院 闵笛
软件工程
③ 处理方式设计
❖ 包括: ❖ 功能设计:确定实现功能算法,评估算法的
性能. ❖ 性能设计:确定实现性能需求必须的算法和
模块间的控制方式
信息科学与技术学院 闵笛
软件工程
5.1 设计的过程
信息科学与技术学院 闵笛
软件工程
5. 2 设计原理
❖ 5.2.1模块化 ❖ 5.2.2抽象 ❖ 5.2.3逐步求精 ❖ 5.2.4信息隐蔽和局部化 ❖ 5.2.5模块独立
软件工程
① 制定规范
❖ 为软件开发小组制定在进行软件设计时,应 该共同遵守的标准,以便协调组内各成员的 工作。
信息科学与技术学院 闵笛
软件工程
② 软件结构设计
❖ 包括: ❖ 将系统按功能划分成模块 ❖ 确定每个模块的功能 ❖ 确定模块之间的调用关系 ❖ 确定模块之间的接口,即模块之间传递的信息 ❖ 评价模块结构的质量
学生
❖
认识复杂事物和现象时, 抽出事物本质的共同特
大学生
性而暂不考虑它们的细 节。
湛江师范学院的学生
❖ ② 软件开发中的抽象 湛师信息学院的学生
❖ 过程的抽象 ❖ 数据的抽象
湛师信息学院11计本的学 生
信息科学与技术学院 闵笛
软件工程
抽象
❖ 什么是抽象思想?
在认识事物、分析和解决问题的过程中,忽略那 些与当前研究目标不相关的部分, 以便将注意力 集中于与当前目标相关的方面
信息科学与技术学院 闵笛
软件工程
软件设计的目标和任务
❖ 软件需求:解决“做什么”
❖ 软件设计:解决“怎么做”.
❖ 软件设计的任务:以软件需求规格说明书为 依据,着手实现软件的需求,并将设计的结 果反映在“设计规格说明书”文档中。
❖ 软件设计的重要性:是软件开发阶段的第一
步,最终影响软件实现的成败和软件维护的
信息科学与技术Βιβλιοθήκη Baidu院 闵笛
软件工程
② 模块化的优点
❖ 模块化是软件解决复杂问题所具备的手段, 可降低软件复杂性,减少开发工作量,从而 降低开发成本,提高软件生产率,以下是模 块化的依据。
信息科学与技术学院 闵笛
软件工程
③ 模块化与软件成本的关系
接口
信息科学与技术学院 闵笛
软件工程
④ 模块的基本属性
软件工程
第五章总体设计
❖ 5 . 1 设计过程 ❖ 5 . 2 设计原理 ❖ 5 . 3 启发规则 ❖ 5 . 4 描绘软件结构的图形工具 ❖ 5 . 5 面向数据流的设计方法 ❖ 5 . 6 小结 ❖ 习题
信息科学与技术学院 闵笛
软件工程
学习要求
❖ 掌握: ❖ 1 、软件设计过程中应遵循的基本原理和相
软件工程
将需求分析模型转换为软件设计
❖ 软件结构设计以需求分析中得到的数据流图 为基础而进行。
信息科学与技术学院 闵笛
软件工程
第一个阶段总体设计的任务
❖ ① 制定规范 ❖ ② 设计软件系统结构(简称软件结构) ❖ ③ 处理方式设计 ❖ ④数据结构及数据库设计 ❖ ⑤ 可靠性设计 ❖ ⑥ 编写概要设计文档 ❖ ⑦ 概要设计评审
外表
抽象 形体 衣着 性格 头发 脸形 领带 逐步求精
信息科学与技术学院 闵笛
软件工程
自顶向下,逐步求精的基本思想
❖ 将功能、信息的说明分为多个层次,最高层 也最抽象 ― 仅仅只是概念性地描述功能或信 息,不提供功能的内部工作情况或信息的内 部结构;
❖ 设计者从最高层开始,仔细推敲,进行功能 和信息的细化,给出下层实现的细节;
❖ 逐步求精:为了能集中精力解决主要问题而 尽量推迟对问题细节的考虑。
❖ 可把逐步求精看作是一项把一个时期内必须 解决的种种问题按优先级排序的技术。
❖ 逐步求精是一种自顶向下的设计策略,按这 种设计策略,程序的体系结构是通过逐步精 化处理过程的层次而设计出来的。
信息科学与技术学院 闵笛
软件工程 逐步求精的例子
件结构,从中选出最佳方案和最合理的软件
结构,从而用较低成本开发出较高质量的软
件系统。
信息科学与技术学院 闵笛
软件工程
软件设计的两个阶段
❖ 第二阶段:详细设计(过程设计) ❖ 确定模块内部的算法和数据结构;选定某种
过程的表达形式来描述各种算法;产生精确 描述各模块程序过程的详细文档,并进行评 审。
信息科学与技术学院 闵笛
❖ 软件开发实际上就是一个从高层次抽象到低 层次抽象逐步过渡的过程。
❖ 一个复杂的系统先用一些高级的抽象概念构 造和理解,这些高级概念又用较低级的概念 构造和理解,如此进行下去,直到具体元素。
信息科学与技术学院 闵笛
软件工程
抽象例子
抽象
外表
形体 衣着 性格
信息科学与技术学院 闵笛
软件工程
5 . 2. 3 逐步求精
❖ 接口:指模块的输入与输出。 ❖ 功能:指模块实现什么功能。 ❖ 模块化好处: ❖ 模块化使软件容易测试和调试,因而有助提
高软件的可靠性。 ❖ 模块化能提高软件的可修改性。 ❖ 模块化有助于软件开发工程的组织管理。
信息科学与技术学院 闵笛
软件工程
5.2.2 抽象( Abstraction )
❖ ① 什么是抽象?
关概念; ❖ 2 、描绘软件结构的图形工具的运用; ❖ 3 、面向数据流设计方法概念;变换分析、
事务分析法过程和应用。 ❖ 理解: ❖ 1 、典型的总体设计过程包括的步骤; ❖ 2 、设计中的启发式规则;信息科学与技术学院 闵笛
软件工程
重点和难点
❖ 重点: ❖ 软件设计过程中应遵循的基本原理; ❖ 面向数据流的设计方法 ❖ 难点: ❖ 变换分析、事务分析法的过程和应用
信息科学与技术学院 闵笛
软件工程
5 . 2 . 1 模块化(Modularity )
❖ ① 什么是模块和模块化思想? ❖ 采取自顶向下的方式,逐层把软件系统划分
成若干可单独命名和可编址的部分- “ 模 块” ,每个模块完成一个特定的子功能;所 有模块按某种方法组成一个整体,完成整个 系统所要求的功能。 ❖ 软件系统就是通过这些模块的组合来实现。
难易程度。
信息科学与技术学院 闵笛
软件工程
软件设计的两个阶段
❖ 第一阶段:概要设计(总体设计)
❖ 根据软件需求,设计软件系统结构和数据结
构,确定程序的组成模块及模块之间的相互 关系。
❖ 回答“概括地说,系统应该如何实现?”。
❖ 其重要性是:站在全局高度,从较抽象的层
次上分析对比多种可能的系统实现方案和软
❖ 随着每个后续细化逐步的完成,提供越来越
信息科学与技术学院 闵笛
软件工程
③ 处理方式设计
❖ 包括: ❖ 功能设计:确定实现功能算法,评估算法的
性能. ❖ 性能设计:确定实现性能需求必须的算法和
模块间的控制方式
信息科学与技术学院 闵笛
软件工程
5.1 设计的过程
信息科学与技术学院 闵笛
软件工程
5. 2 设计原理
❖ 5.2.1模块化 ❖ 5.2.2抽象 ❖ 5.2.3逐步求精 ❖ 5.2.4信息隐蔽和局部化 ❖ 5.2.5模块独立