软件工程结构化设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构与算法设计
实现与测试
结构化设计的工作内容及步骤
结构化设计的工作内容:
结构化设计首先是根据数据流图类型将问题分析划分 为事务型问题和(或)变换型问题,分别将它们映射 成事务型或变换型结构图;
然后对映射得到的结构图进行综合和评价改进; 最后按照有关规范编写总体设计说明书进行复审。
结构化设计的工作步骤
结构图---通过使用矩形和连接线来表示系统的不同模块 以及其活动和子活动的工具。适用于变换型结构和事务 性结构的目标系统。
伪代码—自然语言和程序设计语言共同表示程序结构。
结构化设计的任务
任务:在设计阶段,主要是将需求分析阶段得到 的DFD转换为 软件结构和数据结构。
目标:划分子系统并使子系统之间是高内聚低耦 合的,从而提高软件的可理解性和可维护性。
(1)用户手册
(2)测试计划
(3)详细项目开发实现计划
(4)数据库设计结果
9.审查与复审概要设计文档
设计原则
软件系统的模块化是指整个软件被划分成若干单独 命名和可编址的部分,称之为模块。这些模块可以 被组装起来以满足整个问题的需求。
抽象
➢ 软件系统进行模块设计时,可有不同的抽象层次。 ➢ 在最高的抽象层次上,可以使用问题所处环境的语言概括
③ 模块间的信息传递:当一个模块调用另一个模 块时,调用模块把数据或控制信息传送给被调用 模块,以使被调用模块能够运行。而被调用模块 在执行过程中又把它产生的数据或控制信息回送 给调用模块。
④ 在模块A的箭头尾部标以一个菱形符号,表示 模块A有条件地调用另一个模块B。当一个在调用 箭头尾部标以一个弧形符号,表示模块A反复调 用模块C和模块D。
第4章 结构化设计
本章要点 结构化设计任务、工作内容及步骤 总体设计的过程 设计原则、启发规则 面向数据流的设计方法 详细设计任务及原则 代码及用户界面设计 基于组件的设计方法 结构化设计说明书结构
结构化设计概述
结构化设计是面向数据流的传统软件开发方法,
以数据流为中心构建软件的分析和设计模型。其工 具:
开发阶段的信息流
从工程管理的角度来看,软件设计分两步完成。
➢ 概要设计,将软件需求转化为数据结构和软件 的系统结构。
➢ 详细设计,即过程设计。通过对结构表示进行 细化,得到软件的详细的数据结构和算法。
系统设计过程示意图
需求开发
概要设计阶段
体系结构设计
详细设计阶段
用户界面设计 数据库设计 模块设计
图4-1所示
结构化总体设计
准则:
模块化 抽象与逐步求精 信息隐蔽和局部化 模块独立性
目标:
概括地回答系统应该如何实现。
总体设计过程
1.设计系统方案 2.选取一组合理的方案 3.推荐最佳实施方案 4.功能分解 5.软件结构设计 6.数据库设计、文件结构的设计 7.制定测试计划
8.编写概要设计文档
程序结构
程序结构表明了程序各个部件(模块 )的组织情况,是软件的过程表示。
结构图反映程序中模块之间的层次调用关系和联 系:它以特定的符号表示模块、模块间的调用关 系和模块间信息的传递
① 模块:模块用矩形框表示,并用模块的名字标 记它。
② 模块的调用关系和接口:模块之间用单向箭头 联结,箭头从调用模块指向被调用模块。
初始的SC
主模块
由变换分 析产生 输入模块 主加工模块
输入模块
Leabharlann Baidu
事务控制模块
由事务分 接受模块 动作发送模块 析产生
动作1模块 动作2模块 动作3模块27
变换分析设计方法
步骤:
(1)区分传入、变换中心、 传出部分,在
DFD 上标明分界线。
ab A BC
地描述问题的解法。 ➢ 在较低的抽象层次上,则采用过程化的方法。
信息隐蔽
由 parnas 方法提倡的信息隐蔽是指,每个模块的实现 细节对于其它模块来说是隐蔽的。也就是说,模块中所 包含的信息(包括数据和过程)不允许其它不需要这些 信息的模块使用。
一致性
整个软件系统(文档和程序)的各个模块均应使用一致 的概念、符号、术语;接口一致;规格说明与系统行为 一致;设计工具、方法和编码风格一致等。
面向数据流的设计方法
系统结构的两种典型形式:
变换型结构 事务型结构
系统数据流的两种形式:
变换型数据流 事务型数据流
基本模型
变换型 结构
输入
变换 中心
特征
输出
由输入、变 换中心和输 出三部分组 成
接受 事务型 路径 结构
事务 中心
动 具有在多种 作 事务中选择 路 执行某类事 径 物的能力
总体设计的启发规则
将软件的体系结构按自顶向下方式,对各个层次的过程细 节和数据细节逐层细化,直到用程序设计语言的语句能够 实现为止,从而最后确立整个的体系结构。
软件结构包括两部分。程序的模块结构和数据的结构 软件的体系结构通过一个划分过程来完成。该划分过程从
需求分析确立的目标系统的模型出发,对整个问题进行分 割,使其每个部分用一个或几个软件成份加以解决,整个 问题就解决了
传入
T
事务中心
变换 传出
大型系统DFD中,变换型和事务型结构往 往共存
变换流示意图
外部 表示
信息流 输入流
交换流
输出流
内部 表示
系统结构图的组成
传入模块 ─ 从下属模块取得数据,经过某些处理 ,再将其传送给上级模块。它传送的数据流叫做 逻辑输入数据流。
传出模块 ─ 从上级模块获得数据,进行某些处理 ,再将其传送给下属模块。它传送的数据流叫做 逻辑输出数据流。
根据用信息域表示的软件需求,以及功能和性能 需求,进行 ➢ 数据设计 ➢ 系统结构设计 ➢ 过程设计
数据设计侧重于数据结构的定义。 系统结构设计定义软件系统各主要成份之间的关
系。
过程设计则是把结构成份转换成软件的过程性描 述。在编码步骤,根据这种过程性描述,生成源 程序代码,然后通过测试最终得到完整有效的软 件。
变换模块 ─ 它从上级模块取得数据,进行特定的 处理,转换成其它形式,再传送回上级模块。它 加工的数据流叫做变换数据流。
协调模块 ─ 对所有下属模块进行协调和管理的模 块。
A
X,Y Z
B A
1
Z
C
2
B
C
A根据内
部判断决
定是否调
A
用B
B
C
A按另一判定 结果选择调用 C或D
D
A
B
C
A根据内在的循环重复调用B、C等模 块
实现与测试
结构化设计的工作内容及步骤
结构化设计的工作内容:
结构化设计首先是根据数据流图类型将问题分析划分 为事务型问题和(或)变换型问题,分别将它们映射 成事务型或变换型结构图;
然后对映射得到的结构图进行综合和评价改进; 最后按照有关规范编写总体设计说明书进行复审。
结构化设计的工作步骤
结构图---通过使用矩形和连接线来表示系统的不同模块 以及其活动和子活动的工具。适用于变换型结构和事务 性结构的目标系统。
伪代码—自然语言和程序设计语言共同表示程序结构。
结构化设计的任务
任务:在设计阶段,主要是将需求分析阶段得到 的DFD转换为 软件结构和数据结构。
目标:划分子系统并使子系统之间是高内聚低耦 合的,从而提高软件的可理解性和可维护性。
(1)用户手册
(2)测试计划
(3)详细项目开发实现计划
(4)数据库设计结果
9.审查与复审概要设计文档
设计原则
软件系统的模块化是指整个软件被划分成若干单独 命名和可编址的部分,称之为模块。这些模块可以 被组装起来以满足整个问题的需求。
抽象
➢ 软件系统进行模块设计时,可有不同的抽象层次。 ➢ 在最高的抽象层次上,可以使用问题所处环境的语言概括
③ 模块间的信息传递:当一个模块调用另一个模 块时,调用模块把数据或控制信息传送给被调用 模块,以使被调用模块能够运行。而被调用模块 在执行过程中又把它产生的数据或控制信息回送 给调用模块。
④ 在模块A的箭头尾部标以一个菱形符号,表示 模块A有条件地调用另一个模块B。当一个在调用 箭头尾部标以一个弧形符号,表示模块A反复调 用模块C和模块D。
第4章 结构化设计
本章要点 结构化设计任务、工作内容及步骤 总体设计的过程 设计原则、启发规则 面向数据流的设计方法 详细设计任务及原则 代码及用户界面设计 基于组件的设计方法 结构化设计说明书结构
结构化设计概述
结构化设计是面向数据流的传统软件开发方法,
以数据流为中心构建软件的分析和设计模型。其工 具:
开发阶段的信息流
从工程管理的角度来看,软件设计分两步完成。
➢ 概要设计,将软件需求转化为数据结构和软件 的系统结构。
➢ 详细设计,即过程设计。通过对结构表示进行 细化,得到软件的详细的数据结构和算法。
系统设计过程示意图
需求开发
概要设计阶段
体系结构设计
详细设计阶段
用户界面设计 数据库设计 模块设计
图4-1所示
结构化总体设计
准则:
模块化 抽象与逐步求精 信息隐蔽和局部化 模块独立性
目标:
概括地回答系统应该如何实现。
总体设计过程
1.设计系统方案 2.选取一组合理的方案 3.推荐最佳实施方案 4.功能分解 5.软件结构设计 6.数据库设计、文件结构的设计 7.制定测试计划
8.编写概要设计文档
程序结构
程序结构表明了程序各个部件(模块 )的组织情况,是软件的过程表示。
结构图反映程序中模块之间的层次调用关系和联 系:它以特定的符号表示模块、模块间的调用关 系和模块间信息的传递
① 模块:模块用矩形框表示,并用模块的名字标 记它。
② 模块的调用关系和接口:模块之间用单向箭头 联结,箭头从调用模块指向被调用模块。
初始的SC
主模块
由变换分 析产生 输入模块 主加工模块
输入模块
Leabharlann Baidu
事务控制模块
由事务分 接受模块 动作发送模块 析产生
动作1模块 动作2模块 动作3模块27
变换分析设计方法
步骤:
(1)区分传入、变换中心、 传出部分,在
DFD 上标明分界线。
ab A BC
地描述问题的解法。 ➢ 在较低的抽象层次上,则采用过程化的方法。
信息隐蔽
由 parnas 方法提倡的信息隐蔽是指,每个模块的实现 细节对于其它模块来说是隐蔽的。也就是说,模块中所 包含的信息(包括数据和过程)不允许其它不需要这些 信息的模块使用。
一致性
整个软件系统(文档和程序)的各个模块均应使用一致 的概念、符号、术语;接口一致;规格说明与系统行为 一致;设计工具、方法和编码风格一致等。
面向数据流的设计方法
系统结构的两种典型形式:
变换型结构 事务型结构
系统数据流的两种形式:
变换型数据流 事务型数据流
基本模型
变换型 结构
输入
变换 中心
特征
输出
由输入、变 换中心和输 出三部分组 成
接受 事务型 路径 结构
事务 中心
动 具有在多种 作 事务中选择 路 执行某类事 径 物的能力
总体设计的启发规则
将软件的体系结构按自顶向下方式,对各个层次的过程细 节和数据细节逐层细化,直到用程序设计语言的语句能够 实现为止,从而最后确立整个的体系结构。
软件结构包括两部分。程序的模块结构和数据的结构 软件的体系结构通过一个划分过程来完成。该划分过程从
需求分析确立的目标系统的模型出发,对整个问题进行分 割,使其每个部分用一个或几个软件成份加以解决,整个 问题就解决了
传入
T
事务中心
变换 传出
大型系统DFD中,变换型和事务型结构往 往共存
变换流示意图
外部 表示
信息流 输入流
交换流
输出流
内部 表示
系统结构图的组成
传入模块 ─ 从下属模块取得数据,经过某些处理 ,再将其传送给上级模块。它传送的数据流叫做 逻辑输入数据流。
传出模块 ─ 从上级模块获得数据,进行某些处理 ,再将其传送给下属模块。它传送的数据流叫做 逻辑输出数据流。
根据用信息域表示的软件需求,以及功能和性能 需求,进行 ➢ 数据设计 ➢ 系统结构设计 ➢ 过程设计
数据设计侧重于数据结构的定义。 系统结构设计定义软件系统各主要成份之间的关
系。
过程设计则是把结构成份转换成软件的过程性描 述。在编码步骤,根据这种过程性描述,生成源 程序代码,然后通过测试最终得到完整有效的软 件。
变换模块 ─ 它从上级模块取得数据,进行特定的 处理,转换成其它形式,再传送回上级模块。它 加工的数据流叫做变换数据流。
协调模块 ─ 对所有下属模块进行协调和管理的模 块。
A
X,Y Z
B A
1
Z
C
2
B
C
A根据内
部判断决
定是否调
A
用B
B
C
A按另一判定 结果选择调用 C或D
D
A
B
C
A根据内在的循环重复调用B、C等模 块