《软件工程》笔记2

结构化设计

一、前面学习了采用结构化分析的方法对需求进行完整、准确、具体的需求后,就进入到软件设计阶段,包括概要设计(怎么实现?共分为几个模块?)和详细设计(每个模块的数据结构等)两个阶段。软件设计阶段采用的方法是结构化设计方法。

结构化分析为结构化设计提供了重要的输入信息,也就是说,设计是依托在分析上面的。下面贴图细数结构化分析与结构化设计的关系


《软件工程》笔记2_第1张图片
《软件工程》笔记2_第2张图片

由图也可以看到,结构化设计大体分为:数据设计体系结构设计和接口设计。

二、具体介绍上述设计方法前,必须明确软件设计的一些概念和原理

(1)模块化:把程序划分成可独立命名和独立运行的模块

(2)抽象:抽象出许多层次,忽略细节

(3)逐步求精:从高层到低层逐步细化,提供越来越多细节

(4)信息隐藏:一个模块的实现细节等内部信息,对于不需要这些信息的模块来说是不能访问的

三、模块独立:低耦合,高内聚

耦合:模块与模块之间

内聚:一个模块内部

四、启发规则

(1)改进软件结构,提高模块独立性

(2)模块规模适中

(3)深度、宽度、扇出和扇入都应适当

深度:层次数

宽度:同一层次模块数

扇出:一个模块控制的模块数

扇入:有多少个上级模块直接调用这个模块

(4)模块的作用域(影响)应该在控制域(从属,子节点)之内

(5)降低模块接口复杂度

(6)设计单入口单出口模块

(7)模块功能应该可以预测

五、表示软件结构的图形工具

(1)层次图和HIPO图

(2)结构图

六、面向数据流的设计方法

把信息流映射成软件结构,信息流的类型决定了映射方法,信息流有变换流和事务流两种类型。所以映射方法有变流分析和事务分析。

七、人机界面设计

(1)设计问题

①系统响应时间

②用户帮助设施

③出错信息处理

④命令交互

(2)设计过程

(3)设计指南

八、过程设计

过程设计应该在数据设计、体系结构设计和接口设计之后进行,是详细设计的主要内容。它并不是具体编写程序,过程设计的目标不仅仅是逻辑上正确的实现每个模块的功能,更重要的是设计出的处理过程应该简明易懂。实现这一目标的关键设计是结构程序设计。

结构程序设计叙述如下

《软件工程》笔记2_第3张图片

九、过程设计的工具:描述程序处理过程的工具

(1)程序流程图

(2)盒图(N/S)

(3)PAD图

(4)判定表

(5)判定树

(6)过程设计语言:伪码

十、面向数据结构的设计方法:根据数据结构设计(每个模块)程序处理过程的方法

使用面向数据结构的设计方法,首先要分析确定数据结构,并用适当工具清晰地描绘数据结构,下面介绍了几种工具。

(1)Jackson图

(2)改进的Jackson图

(3)Jackson方法


效率不高,昨天还偷懒了,555555....明天继续~

你可能感兴趣的:(《软件工程》笔记2)