第三篇——软件工程之结构化设计方法

   软件工程有很大的一个章节介绍结构化分析方法。对于结构化分析,我认为它是总体和细节的桥梁,把一个软件总体分红几个块,不一样的块负责不一样的内容,好比数据输入,数据处理,数据输出;而后在块的基础上敲定细节,须要读入哪些数据,数据的类型,怎么读入数据,数据输入后的计算、查询、添加、删除、修改,数据输出的格式等等。一个软件多是一个很大的工程,可是它也是由许多小部件搭建起来的,如何肯定这些小部件,这时候就须要用到结构化分析方法。对于结构化的具体知识,结合书上的内容,作了一个整理。可能不完善,可是对于基本概念的掌握颇有帮助。编程

  结构化分析方法是在模块化,自顶向下逐步细化及结构化程序设计基础之上发展起来的,能够分为两类:一类是根据系统系统的数据流进行设计,还有一类是根据系统的数据结构进行设计。数据结构

   软件设计的5个原则:模块化

1 分而治之:将大型复杂的问题分解成许多容易的小问题,软件的体系设计,模块化设计都是分而治之的具体策略。函数

2 模块独立性:指软件系统中每一个模块只设计软件要求的具体子功能,与软件系统中其余模块的借口是简单的。耦合性越高,模块独立性越若弱。设计

3 提升抽象层次:抽象是指护士一个主题中与当前目标无关的方面,以便更注意与当前目标有关的方面。软件设计时,尽可能提升软件的抽象层次,按抽象级别从高到低进行软件设计,将软件的体系结构,按自顶向下方式,对各个层次的过程细节和数据细节逐层细化,直到用程序设计的语句可以实现为止。固然实现这个过程须要咱们对软件的接口,模块的运行等等有足够的熟悉。接口

4 复用性设计:指在构造新的软件的时候,没必要从零作起,能够直接使用已有的软构件便可组装成新的系统。程序设计

5 灵活性设计:引入灵活性的方法有,下降耦合并提升内聚(易于提升替换功能);创建抽象(建立有多态操做的接口和父类);不要将代码写死(消除代码中的常数);抛出异常(由操做的调用者处理异常);使用并建立可复用的代码。基础

   模块结构及表示:软件

   一个软件系统须要不少模块(包括程序设计中的函数和子程序)组成,称不能再分解的模块为原子模块。若是一个软件系统的所有实际加工(数据处理或计算)都有原子模块来完成,而其余全部非原子模块仅仅执行控制或协调功能,这样的系统就是彻底因子分解的系统,可是大多数系统作不到彻底因子分解。软件工程

模块通常分为四类:传入模块、传出模块、变换模块(从上级调用模块取得数据,进行特定的处理,转换成其余形式,再将加工结果返回给调用模块)、协调模块。

   传入模块:取得输入数据,通过某些处理,再将其传送给其余模块;

 传出模块:输出数据,在输出以前可能进行某些处理,数据可能被传输到系统的外部,也可能会输出到其余模块进行进一步的处理,但最终目的是输出到系统的外部;

 变换模块:也叫加工模块,从上级调用模块取得数据,进行特定的数据处理,转换成其余形式,再将加工结果返回给调用模块;

 协调模块:经过调用,协调和管理其余模块来完成特定的功能;

模块的结构有树状结构和网状结构。

 在树状结构中,位于最上层的根部是顶层模块,它是程序的主模块,与其联系的有若干下属模块,各下属模块还能够进一步引出更下一层的下属模块;

 网状结构则彻底不一样,在网状结构中,任意两个模块之间均可以有调用关系,任何两个模块都是平等的,没有从属关系;

结构图(SC):清楚地反映软件模块之间的层次调用关系和联系,它不只严格地定义了各个模块的名字,功能和接口,并且还集中地反映了设计思想。

 在结构图中,两个模块之间用单向箭头联结。箭头从调用模块指向被调用模块,表示调用模块调用了被调用模块,可是被调用模块执行完成后,控制又返回到调用模块;为了表示在模块之间传递的数据或者控制信息,在联合模块的箭头旁边给出短箭头,而且用尾端带有空心圆的短箭头表示数据信息,用尾端带有实心圆的短箭头表示控制信息。一般在短箭头的附近应注有信息的名字。当模块A有条件地调用另外一个模块B时,在模块A的箭头尾部标以一个菱形符号。当一个模块A反复地调用模块C和模块D时,在调用箭头尾部则标以一个弧形符号。

 在多层次的结构图中,模块结构的层次数成为结构图的深度。结构图的深度在必定意义上反映了程序结构的规模和复杂程度。对于中等规模程度的程序,其结构图的深度约为10左右。结构图中同一层模块的最大模块数称为结构图的宽度。模块的扇入和扇出:扇出表示一个模块直接调用或控制下属模块的数目,扇入则定义为调用或控制一个给定模块的调用模块的数目。多扇入的模块一般是公用模块。

 在软件工程这门课程中,结构化是比较实用的一章,掌握结构化设计的方法,对于咱们在软件编程中有流程指导做用。

相关文章
相关标签/搜索