软工视频、文档之面向过程的软件设计方法

在这里插入图片描述

软件设计目标和任务

一、目标

1.用信息域表示的软件、功能、性能需求并进行数据、系统结构和过程设计
2.开发阶段信息流
在这里插入图片描述

二、任务

1.从工程管理的角度来看,软件设计分两步:概要设计和详细设计
2.从技术观点来看,分为数据设计、系统结构设计、过程设计
在这里插入图片描述

三、软件设计基础

(自顶向下,逐步细化)
1.关键结构
程序模块结构和数据结构
2.程序机构
树状结构、网状结构
3.软件设计的两个要点
模块化:将大而复杂的系统划分为易于理解的单纯地模块结构
抽象化:软件系统进行模块设计时,可有不同的抽象层次

概要设计原则过程

一、概要设计过程

制定规划、
系统结构的总体设计、
处理方式设计
数据结构设计
可靠性设计
概要设计阶段文档、
概要设计评审

二、结构图

1.模块:
以功能或功能缩写做模块名
2.模块调用关系与接口:
在这里插入图片描述
3.模块间的信息传递
4.模块有条件的调用另一模块(菱形表示条件、弧形表示循环):
在这里插入图片描述
5.程序系统结构图
在这里插入图片描述

在这里插入图片描述

三、模块独立性

1.模块三属性:
功能:实现什么功能
逻辑:模块内部怎么做
状态:木块的所处的环境
2.模块独立性:
软件系统中每个模块涉及软件的具体的子功能,用耦合和内聚来进行度量独立性(高内聚,低耦合)
3.耦合:(尽量使用数据耦合,少用控制耦合,限制公共耦合,完全不同内容耦合)
1)非直接耦合:两个模块之间没有直接关系,叫做非直接耦合
2)数据耦合:两个模块进行访问时,彼此只进行数据参数的输入输出信息交换
3)标记耦合:一组模块通过参数表(数据结构)传递记录信息
4)控制耦合:通过控制变量来明显的控制选择另一模块的功能
5)外部耦合:模块和外部设备或环境相连,进行传递交换信息。
6)公共耦合:多个模块通过一个公共数据环境进行实现信息交换。(松散和紧密公共耦合)
在这里插入图片描述
7)内容耦合:两个模块不加限制的互相调用或代码重迭;一个模块有多个输入输出口
在这里插入图片描述

4.内聚:
1)功能内聚:模块内的各个部分都是完成具体功能的不可缺少的组成
2)信息内聚:模块完成多个功能,各个功能在同一数据结构上进行。
3)通信内聚:一个模块内各功能部分都是用相同输入,或相同输出
4)过程内聚:用流程图做为工具设计程序时,将流程图中某一部分划分为组成模块
5)时间内聚:要求所有功能必须在同一时间段内执行
6)逻辑内聚:模块将相关的功能组合在一起
7)巧合内聚:模块内各部分没有关系,或有关系但很松散
在这里插入图片描述

四、结构化设计方法

1.过程:
研究分析审查数据流图
根据数据流图决定问题类型:变换型和事务型
针对不同类型分别进行处理
2.系统结构图的模块
1)传入模块:物理输入,逻辑输出
2)传出模块:一般逻辑输出
3)变换模块
4)协调模块

在这里插入图片描述

扫描二维码关注公众号,回复: 8684075 查看本文章

3.变换型系统结构图
取数据、变换数据、给出数据
在这里插入图片描述
4.事务型系统结构图
接受一个事务,根据事物的特点,选择合适方式并给出结果
在这里插入图片描述
5.变换分析
重画数据流图
区分有效(逻辑)输入、输出和变换部分
进行一级分解,设计上层模块
进行二级分解,设计输入输出和中心变换部分的中下层模块
在这里插入图片描述
6.注意:
1)选择模块设计时,必须讲一个模块的所有可能分析完后,再进行下一个模块
2)设计下层模块时,应考虑模块的耦合和内聚问题
3)使用黑箱技术,将模块看成一个“黑箱”
4)模块划分时,一个模块的直接下属模块要在5个左右
5)以下情况停止功能分解:
1:模块不可以细分为明显的子任务
2:当分解成用户提供的模块或程序库的子程序时
3:模块的界面是输入输出设备传送信息时
4:模块不宜再分解的过小时
7.事务分析
与变换分析相同,自顶而下,逐步细化分解,建立系统到结构图
识别事务源
规定适当的事务型结构
识别各种事务和它们定义的操作
利用公用模块
对每个事务或联系密切的事务建立一个事务处理模块
对事务处理模块规定全部下层模块
对操作模块规定它们的全部细节模块

五、软件模块结构的改进

1)模块功能的完善化(执行规定的功能、出错处理部分、给调用者返回结束标志)
2)消除重复功能,改善软件结构(局部相似,完全相似)
在这里插入图片描述
3)模块的作用范围在控制范围之内(控制范围指本身和从属模块,作用范围时其中的一个判定点的作用范围)
在这里插入图片描述
4)尽可能减少高扇出结构,随着深度增大扇入
在这里插入图片描述
5)减少病态连接(直接病态联接,公共数据域病态联接,通信模块病态联接)
6)模块大小要适中(语句行50到100左右,一页纸内最多不超过500行)
7)设计功能可预测模块,避免过分受限制模块
8)软件包应满足设计约束和可移植性

六、设计的后处理

1)为每一个模块写一个处理说明
2)为每一模块提供一份接口说明
3)确定全局、局部数据结构
4)指出所有的设计约束限制
5)进行概要设计评审

七、数据设计和文件设计

1.数据设计原则
1)用于软件的系统化方法也适用于数据
2)确定所有的数据结构和在每种数据结构上施加的操作
3)应当建立一个数据字典并用它定义数据和软件设计
4)底层数据设计的决策推迟到设计过程的后期
5)数据结构表示仅限于那些必须直接使用该数据结构内数据的模块才知道
6)建立一个存放有效数据结构及相关操作的库
7)软件设计和程序设计语言应当支持抽象数据类型的定义和实现
2.文件设计
1)文件逻辑设计(概要设计阶段)
1:整理必须的数据元素
2:分析数据间的关系
3:确定文件的逻辑设计
4:理解文件特性
5:确定文件组织形式(顺序、直接存取文件)(文件:索引顺序文件、分区文件、虚拟存储文件、倒排文件)
6:确定文件的存储介质
7:确定文件的记录格式
8:估算存取时间和存储容量
2)文件物理设计(详细设计阶段)

过程设计(详细设计)

一、任务

对多采用的算法的逻辑关系进行分析,细化内部模块

二、利用工具

图形工具、表格工具、语言工具

三、程序流程图(程序框图)

1.标准符号:
在这里插入图片描述
2.程序框图五种基本结构:
在这里插入图片描述
3.循环注释
在这里插入图片描述
4.多口判断
在这里插入图片描述

四、N-S图(也叫盒图)

1.五种基本控制结构
在这里插入图片描述
2.N-S嵌套图:
在这里插入图片描述

五、问题分析图(PAD)

1.五种基本控制结构允许递归使用:
在这里插入图片描述

六、判定表

1.建立判定表
1)列出与一个具体过程或模块有关的所有处理
2)列出过程执行期间的条件
3)将特定条件取值组合和特定的处理匹配,先去不可能发生的取值组合
4)将右部每一纵列规定为一个处理规则
2.判定表
在这里插入图片描述
在这里插入图片描述
8.PDL(伪代码)
用户描述功能模块的算法设计和加工细节的语言,可用于定义数据结构和控制结构。
9.PDL特点
提供全部结构化控制结构、数据说明和模块特征
规定关键字一律大写,其他单词一律小写,或规定关键字加下划线,或规定他们为黑体字
概要设计说明书 详细设计说明书
引言 引言
编写目的 编写目的
项目背景 项目背景
定义 定义
参考资料 参考资料
任务概述 总体设计
目标 需求概述
运行环境 软件结构
需求概述 程序描述
条件与限制 功能
总体设计 性能
处理流程 输入项目
总体结构与模块外部设计 输出项目
功能分配 算法
接口设计 程序逻辑
内、外部接口 接口
数据结构设计 储存分配
逻辑、物理结构设计 限制条件
数据结构与程序关系 测试要点
运行设计
运行模块组合
运行控制
运行时间
出错处理设计
出错输出信息
出错处理对策
安全保密设计
维护设计

发布了63 篇原创文章 · 获赞 5 · 访问量 2857

猜你喜欢

转载自blog.csdn.net/TGB__15__ZYB/article/details/98874745