结构化设计
一、前面学习了采用结构化分析的方法对需求进行完整、准确、具体的需求后,就进入到软件设计阶段,包括概要设计(怎么实现?共分为几个模块?)和详细设计(每个模块的数据结构等)两个阶段。软件设计阶段采用的方法是结构化设计方法。
结构化分析为结构化设计提供了重要的输入信息,也就是说,设计是依托在分析上面的。下面贴图细数结构化分析与结构化设计的关系
由图也可以看到,结构化设计大体分为:数据设计体系结构设计和接口设计。
二、具体介绍上述设计方法前,必须明确软件设计的一些概念和原理
(1)模块化:把程序划分成可独立命名和独立运行的模块
(2)抽象:抽象出许多层次,忽略细节
(3)逐步求精:从高层到低层逐步细化,提供越来越多细节
(4)信息隐藏:一个模块的实现细节等内部信息,对于不需要这些信息的模块来说是不能访问的
三、模块独立:低耦合,高内聚
耦合:模块与模块之间
内聚:一个模块内部
四、启发规则
(1)改进软件结构,提高模块独立性
(2)模块规模适中
(3)深度、宽度、扇出和扇入都应适当
深度:层次数
宽度:同一层次模块数
扇出:一个模块控制的模块数
扇入:有多少个上级模块直接调用这个模块
(4)模块的作用域(影响)应该在控制域(从属,子节点)之内
(5)降低模块接口复杂度
(6)设计单入口单出口模块
(7)模块功能应该可以预测
五、表示软件结构的图形工具
(1)层次图和HIPO图
(2)结构图
六、面向数据流的设计方法
把信息流映射成软件结构,信息流的类型决定了映射方法,信息流有变换流和事务流两种类型。所以映射方法有变流分析和事务分析。
七、人机界面设计
(1)设计问题
①系统响应时间
②用户帮助设施
③出错信息处理
④命令交互
(2)设计过程
(3)设计指南
八、过程设计
过程设计应该在数据设计、体系结构设计和接口设计之后进行,是详细设计的主要内容。它并不是具体编写程序,过程设计的目标不仅仅是逻辑上正确的实现每个模块的功能,更重要的是设计出的处理过程应该简明易懂。实现这一目标的关键设计是结构程序设计。
结构程序设计叙述如下
九、过程设计的工具:描述程序处理过程的工具
(1)程序流程图
(2)盒图(N/S)
(3)PAD图
(4)判定表
(5)判定树
(6)过程设计语言:伪码
十、面向数据结构的设计方法:根据数据结构设计(每个模块)程序处理过程的方法
使用面向数据结构的设计方法,首先要分析确定数据结构,并用适当工具清晰地描绘数据结构,下面介绍了几种工具。
(1)Jackson图
(2)改进的Jackson图
(3)Jackson方法
效率不高,昨天还偷懒了,555555....明天继续~