前言
前面的学习对软件工程中的计划、需求分析有了一定的了解,今天将软件设计方法方面的知识进行总结。
导图
软件设计阶段的任务主要是完成软件设计的概要设计和详细设计。
概要设计阶段只要是完成系统的结构设计,包括划分模块以及模块的层次。而详细设计阶段主要是完成数据设计,例如对数据的描述,定义等。
为了实现软件设计阶段的工作,需要有一些技术基础,包括:
1.自顶向下,逐步细化:将软件的体系结构按自顶向下方式,对各个层次的过程逐层细化。把一个大的问题,分解成若干个子问题,从顶层开使进行划分,一直到不能再分解为止。
2.软件结构包括两部分:程序的模块结构和数据结构,软件的体系结构通过划分的过程:需求分析——确立的目标系统——模型出发——对整个问题进行分解,再对子问题进行求解。
程序结构图:
3.结构图:反应程序中之间的层次调用关系和联系。
4.所谓模块,是指具有相对独立性的,由数据说明,执行语句等程序对象构成的集合。
这是一张程序的系统结构图:
宽度:表示任一层模块数的多少,也就是每一层当中有多少个模块!
深度:表示模块的层次数。即图中有多少个层次。
扇出:表示每一模块带出的多少,也就是负载。例如,C的扇出为2,B的扇出为1.
扇入:表示这个模块被多少个模块调用。例如T的扇入为4,注意的是,扇入一般为1—5之间。
模块的独立性是指每个模块只需完成系统要求的独立子功能,与其他模块的联系少!一般遵循高内聚、低耦合的原则。
系统结构图中的模块主要包括以下模块:
传入模块:从下属模块中取得数据,经过某些处理,传入上级模块,传送的是逻辑数据流。
传出模块:从上级模块获得数据处理之后传到下级模块。
变换模块:从上级模块取得数据,经过特定处理之后,又返回到下级模块。
协调模块:对所有的下属模块进行协调和管理,例如d图中把X经过协调之后,变成了Y。
程序流程图:五种基本控制结构
N-S图:也叫盒图,五种基本控制结构
PAD图:问题分析图
使用问题分析图的好处是:
1.使用PAD图一定是结构化的程序
2.用PAD图描述的流程图比较清晰
3.可以表示程序的逻辑结构,易懂而且便于我们记忆。
4.嵌套层次清晰,可以很容易的将PAD图转变为高级的程序
5.可以描述数据结构
6.支持自顶向下,逐步求精方法使用。