【软工】面向过程的软件设计方法

一、软件设计的目标和任务

这里写图片描述

根据用信息域表示的软件需求,以及功能和性能需求,进行

数据设计
系统结构设计(概要,详细)
过程设计(根据过程性描述生成源代码)

这里写图片描述

如果没有设计,只能建立一个不稳定的系统结构。
这里写图片描述

1、软件设计的任务

1. 概要设计:

总体设计,将软件的需求转化为数据结构和软件的系统结构。

2. 详细设计:

过程设计,通过对结构细化,得到软件详细结构和算法。

二、软件设计的基础

自顶向下,逐步细化
软件结构:(程序的模块,数据)
程序结构:(树状、网状)
结构图
模块化
抽象化
信息隐蔽

三、模块独立性

1.模块用“矩形框”表示
2.模块的调用关系和接口

这里写图片描述

3.模块间的信息传递
4.表示模块A有条件的调用另一个模块,用“菱形框 ”表示;循环调用,用“弧形 ”表示

这里写图片描述

5.模块的基本属性:

功能:实现什么功能
逻辑:描述模块内部怎么做
状态:该模块使用时的环境和条件

6.耦合、内聚:用来度量模块独立性(高内聚低耦合),每个模块之间的耦合越少越好

这里写图片描述

非直接耦合:两个模块之间没有 直接关系(这种耦合是最弱的)
数据耦合:仅有数据传输,提倡使用
标记耦合:共用数据的一部分,稍加改动可变程数据耦合,弱耦合提倡使用

控制耦合:中耦合,少用
外部耦合:肯定有,局限在模块内,和外部数据相连,较强耦合
公共耦合:较强耦合,尽量避免,SQL语句都是公共耦合,多个模块相互作用产生公共耦合

这里写图片描述

内容耦合:一个模块多个入口,不通过正常的入口,使用数据,产生内容耦合

这里写图片描述

模块内聚

这里写图片描述
功能内聚:最高内聚,按功能划分模块
信息内聚:顺序内聚,每一功能有唯一入口点
通信内聚:公用数据
过程内聚:上一个的输出是下一个的输入
时间内聚:模块中任务必须在同一时间段执行
逻辑内聚:把几种相关功能组合在一起,效率不高浪费内存
巧合内聚:松散型的

四、结构化设计方法

首先研究、分析和审查数据流图
数据处理问题:变换型和事务型
分析处理

在系统中的模块(传入模块、传出模块、变换模块、协调模块)

这里写图片描述

变换型系统结构图
这里写图片描述

这里写图片描述

事务型系统结构图:关键要找出事务中心,如何调度事务,多条道供你选择
这里写图片描述

五、数据设计和文件设计

1、数据设计的原则

用于软件的系统化方法也适用于数据
确定所有的数据结构和在每种数据结构上施加的操作
应当建立一个数据词典并用它来定义数据和软件的设计
低层数据设计的决策应推迟到设计过程的后期
数据结构的表示只限于那些必须直接使用该数据结构内数据的魔铠才知道
应当建立一个存放有效数据结构及相关操作的库
软件设计和程序设计语言应当支持抽象数据类型的定义和实现

2、文件设计

1. 整理数据元素
2. 分析数据关系
3. 逻辑设计
这里写图片描述

4. 理解文件特性
5. 确定文件的组织方式

  顺序文件
  直接存取文件

六、过程设计

1、工具

1. 图形工具
2. 表格工具
3. 语言工具

2、程序流程图

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

3、N-S图(盒图)

这里写图片描述

4、问题分析图(PAD)

这里写图片描述

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值