结构化方法是一种面向功能或者说面向数据流的方法,结构化方法包括针对需求分析的结构化分析方法(SA)、针对软件设计阶段的结构化设计方法(SD)、针对软件开发阶段的结构化编程方法(SP)
结构化分析方法(SA)
结构化分析方法强调系统的模块化和层次化,通过数据流程图、数据字典等工具来描述系统的数据流动和处理过程,结构化分析的模型包括功能模型,数据模型和行为模型,其中功能模型一般通过数据流图进行建模,数据模型通过实体联系图进行建模,行为模型通过状态转换图进行建模。而数据字典则是配合各方进行相应的数据的解读的工具。
数据流图DFD
数据流图建模方法,也称之为过程建模或功能建模方法。用于描述系统的功能、数据流动和处理过程。DFD以图形符号的形式展示系统中的数据流、处理过程和数据存储,帮助分析师和设计师理解系统的功能和交互关系。DFD方法由四种基本元素组成:数据流、处理加工、数据存储和外部实体。
实体联系图E-R图
实体联系图是通过将实体和属性联系起来的方式来描述现实世界的概念模型,E-R图中包含实体,属性和联系三种元素,其中实体用矩形表示,属性用椭圆表示,联系用菱形表示。
状态转换图STD
状态转换图用于描述系统重对象或系统的状态及其之间的转换关系。状态转换图通常用于对系统的状态机进行建模和分析,STD主要包含三种基本元素:状态、转移、事件
数据字典
数据字典是一种用户可以访问的记录数据库和应用程序元数据的目录。数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑等进行定义和描述。简而言之,数据字典是描述数据的信息集合,是对系统中所有的数据元素定义的集合。
结构化设计方法SD
结构化设计是一种面向数据流的设计方法,它以软件需求规格说明书SRS和结构化分析SA阶段产生的数据流图和数据字典等文档为基础,是一个自顶向下,逐步求精和模块化的过程。SD的基本思想是将软件设计成相对独立且具有单一功能的模块组成的结构,分为概要设计和详细设计两个阶段。
概要设计:确定软件系统的结构,对软件系统进行模块划分,确定每个模块的功能、接口和模块之间的调用关系。
详细设计:为每个模块设计实现的细节。
结构化的基本原则包括:
信息隐蔽
模块独立(高内聚、低耦合)
保持模块的大小适中
尽可能减少调用深度
多扇入、少扇出
单入口、单出口
模块的作用域应该在模块之内
功能应该是可预测的
结构化编程方法SP
结构化程序设计方法将系统划分为若干功能模块,各模块按要求独立编程,在组合构建成相应的软件系统。结构化程序设计采用自顶向下、逐步求精的设计方法,各个模块通过顺序、选择、循环的控制结构进行连接,并且只有一个入口和出口。结构化程序设计中程序=算法+数据结构。结构化程序设计的原则可以归纳为:自顶向下、逐步求精、清晰第一、效率第二、书写规范、缩进格式、基本结构、组合而成。
面对对象方法OO
面对对象方法认为客观世界是由对象组成的,对象由属性和操作组成,对象可按其属性进行分类,对象之间的联系通过消息实现,对象具有封装性、继承性和多态性。面向对象开发方法是以用例为驱动的、以体系结构为中心的、迭代和渐增式的开发过程。主要包括需求分析、系统分析、系统设计和系统实现四个阶段,与结构化开发不同的是,面对对象方法的各个阶段是迭代进行的。
面对对象分析OOA
面对对象分析方法中模型有五个层次(主题层、对象类层、结构层、属性层、服务层)和五个活动(定义主题、标识对象类、结构标识、定义属性、定义服务)组成。在这种方法中定义了两种对象之间的结构:分类和组装结构。
OOA原则包括
抽象
封装
集成
分类
聚合
关联
消息通信
粒度控制
行为分析
OOA的基本步骤为:确定对象和类、确定结构、确定主题、确定属性、确定方法
面对对象设计OOD
面对对象设计方法是OOA的延续,基本思想包括:抽象、封装、可扩展性;其中可扩展性通过继承和多态来实现;在OOD中类可以分为3中:
实体类
控制类
边界类
面对对象编程OOP
面对对象编程是一种计算机编程框架,OOP达到了软件工程的三个主要目标:重用性,灵活性和扩展性。OOP=对象+类+继承+多态+消息。其基本特点有
封装
继承
多态