5.3 软件设计(掌握)
需求阶段解决“做什么”的问题,而软件设计阶段解决“怎么做”的问题。软件设计分为结构化设计与面向对象设计。
5.3.1 结构化设计(掌握)
结构化设计(SD)是一种面向数据流的方法,其目的在于确定软件结构。它以SRS和SA阶段所产生的DFD和数据字典等文档为基础,是一个自顶向下、逐层分解、逐步求精和模块化的过程。
从管理角度讲,其分为概要设计和详细设计两个阶段
概要设计(总体结构设计):主要任务是确定软件系统的结构,将系统的功能需求进行模块划分,形成软件的模块结构图,即系统结构图
详细设计:主要任务是为每个模块设计实现细节。例如:输入/输出 设计、处理流程设计、数据存储设计、用户界面设计、安全性和可靠性设计等。
1、模块结构
在SD中,这种功能分解就是将系统划分为模块,模块是组成系统的基本单位。
(1)信息隐藏与抽象
信息隐藏原则要求采用封装技术,将程序模块的实现细节隐藏起来。系统中的模块应该设计成:“黑盒”,模块外部只能使用模块接口说明中给出的信息。
(2)模块化
模块是实现功能的基本单位,它一般具有功能、逻辑和状态3个基本属性。其中,功能是指该模块“做什么”,逻辑是描述模块内部“怎么做”,状态是该模块使用时的环境和条件。
软件设计阶段,先确定模型的外部特性,在确定它的内部特性。
(3)耦合
耦合表示模块之间联系的程度。
(4)内聚
内聚表示模块内部各代码成分之间联系的紧密程度。一个好的内聚模块应当恰好做目标单一的一件事情。
在模块的分解中应尽量减少模块的耦合,力求增加模块的内聚,遵循“高内聚、低耦合”的设计原则。
2、系统结构图
系统结构图(SC)又称为模块结构图,它是软件概要设计阶段的工具,反映系统的功能实现和模块之间的联系与通信,包括各模块之间的层次结构,即、反映了系统的总体结构。
详细设计的主要任务是:设计每个模块的实现算法、所需的局部数据结构。
详细设计的目标有两个:实现模块功能的算法要逻辑上正确;算法描述要简明易懂。
详细设计必须遵循概要设计来进行。如果需要更改概要设计,必须经过项目经理的同意。详细设计应该完成详细设计文档,主要是模块的详细设计方案说明。
详细设计的表示工具有图形工具、表格工具和语言工具
(1)图形工具
具体的图形有:业务流程图、程序流程图、问题分析图(PAD)、NS流程图
(2)表格工具
可以用一张表来描述过程的细节,在这三张表格中列出了各种可能得操作和相应的条件。
(3)语言工具
例如伪码或PDL(过程设计语言)等。
PDL优点:可以作为注释直接插在源程序中,可以使用普通的文本编辑工具或文字处理工具产生和管理;
PDL不足:不如图形工具形象直观
5.3.2 面向对象设计(掌握)
面向对象设计(OOD)基本思想包括抽象、封装、可扩展性(继承、多态)
OOD的主要任务是对类和对象进行设计。
常用的面向对象设计原则:
在OOD中,类可以分为3中类型:实体类、控制类和边界类
5.3.3 统一建模语言(掌握)
统一建模语言(UML)结构包括:构造块、规则和公共机制。
1、UML中的事物
UML中的事物也称为建模元素,包括结构事物、行为事物、分组事物和注释事物。
2、UML中的关系
UML用关系把事物结合在一起,主要有4种关系:依赖、关联、泛化和实现:
3、UML2.0-14种图
4、UML视图
逻辑视图、进程视图、实现视图、部署视图、用例视图
5.3.4 设计模式(掌握)
根据处理范围不同,设计模式可分为类模式和对象模式
根据目的和用途不同,设计模式可分为创建型模式(创建对象)、结构型模式(处理类或对象的组合)和行为型模式(描述类或对象的交互以及职责的分配)
标签:13,攻略,内聚,软考,视图,模块,UML,设计,工具 From: https://blog.csdn.net/weixin_46095822/article/details/142821993