1.4 软件的设计方法
软件设计的主要方法有面向数据流的软件设计方法、面向数据结构的软件设计方法和面向对象的软件设计方法3种。
面向数据流的软件设计是以需求分析阶段产生的数据流图为基础,按一定的步骤映射成的软件结构,因此又称“结构化设计(Structured Design,SD)”。这个方法与结构化分析(SA)衔接,构成了完整的结构化分析与设计技术,是目前使用最广泛的软件设计方法之一。将需求分析中得到的数据流程图(Data Flow Diagram,DFD)转化为软件结构,必须要了解DFD的类型和结构,DFD一般可以分为变换型和事务型。变换型的DFD是由输入、变换和输出3部分组成,变换型数据处理的工作过程一般分为3步:取得数据、变换数据和给出数据,这3步体现了变换型DFD的基本思想。变换是系统的主加工,变换输入端的数据流为系统的逻辑输入,输出端为逻辑输出。变换型的DFD如图1-2所示。
图1-2 变换型DFD
若某个加工处理将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入的值选择其中一条路径来执行,这种特征的DFD称为事务型DFD,这个加工节点称为事务处理中心。事务型DFD如图1-3所示。
图1-3 事务型DFD
面向数据结构的软件设计方法,是用数据结构作为程序设计的基础。这种方法的最终目的是得出对程序处理过程的描述,最适合于在详细设计阶段使用。也就是说,在完成了软件结构设计之后,可以使用面向数据结构的方法来设计每个模块的处理过程。使用面向数据结构的设计方法,当然首先需要分析确定数据结构,并且用适当的工具清晰地描述数据结构。比较有代表性的是Jackson程序设计方法。
面向对象的软件设计方法就是把面向对象的思想应用到软件工程中,并指导开发维护软件。它是一种支持模块化设计和软件重用的编程方法,把程序设计的主要活动集中在建立对象和对象之间的联系上,所以一个面向对象的程序就是相互关联的对象的集合。面向对象的程序设计主要特点是抽象、封装、继承和多态。