《软件工程导论》期末复习总结( 七 )


(2)软件总体设计的总原则:由宏观到微观、逐步求精的原则,定性定量分析相结合、分解与协调相结合和模型化方法,并要兼顾系统的通用性、关联性、整体性和层次性 。根据系统的总体结构、功能、任务和目标的要求分解系统,使各子系统之间互相协调配合,实现系统的整体优化 。
(3)软件总体设计的过程:①软件工程模块化;②抽象和逐步求精;③模块的内聚和耦合**(力求高内聚、低耦合)**;④子系统及模块的划分;⑤信息隐藏 。
(4)软件体系结构设计的三要素:①程序构件的层次结构、②构件之间交互的方式、③数据的结构 。
(5)子系统及模块的划分应考虑:①高内聚、低耦合;②模块大小适当;③模块的层次结构;④软件层次结构(深度、宽度、少扇入、多扇出)
(6)软件总体设计的方法:①结构化设计方法;②面向数据结构的设计方法;③原型法 。
? ①结构化设计方法(SD):
? 概念:是一种典型的面向数据流(核心和关键)的设计方法,主要完成软件总体结构设计 。分为总体设计和详细设计两个阶段 。
? 总体设计步骤:①从DFD图导出初始的模块结构图;②改进初始的模块结构图 。
? 详细设计任务:对模块图中每个模块的过程进行描述 。常用描述方式:流程图、N-S(结构流程)图、PAD(问题分析)图等 。
? 目标:确定设计软件结构的一个系统化的途径 。
? ②面向数据结构的设计方法:开发方法 。基本步骤分为3步:一是建立数据结构,对应结构化方法的需求分析;二是以数据结构为基础,对应的建立程序结构,对应结构化方法的总体设计;三是列出程序中要用到的各种基本操作,对应结构化方法的详细设计 。
③原型法:适合于软件规模较大、要求复杂、系统服务不清晰的情况 。特别是当性能要求较高时,需要对软件设计原型先做一些试验 。其在整个软件开发策略或设计阶段均可使用,目的是为了不断取得反馈并进行改进 。
3.模块结构图(SC)是准确描述表达软件结构的图形表示方法,可反映模块之间的层次调用关系和联系 。模块结构图常用的组成符号:
一般DFD图可分为两种典型类型:①中心变换型;②事务处理型 。对不同结构的DFD图,采用不同的技术将其转换为初始的模块结构图 。中心变换型对应倒置的三叉树 。事务处理型对应倒置的二叉树 。
①中心变换型:基本呈线性形状,特点是明显分为“输入—处理—输出”三部分,对这种类型的DFD图的转换采用变换分析技术 。
②事务处理型:常呈辐射状,特点是一个加工(事务中心)将它的输出分离成若干种发散的数据流 。
4.软件设计方法可以分为三大类:①面向数据流的设计(也称过程驱动设计);②面向数据结构的设计(也称数据驱动设计);③面向对象设计 。
5.软件具有层次性和过程性特征 。层次性反映了其整体性质,常用结构图表示 。过程性反映了其局部性质,常用框图等表示 。
6.软件详细设计:
(1)主要任务:①模块功能及算法设计;②模块内的数据结构设计;③模块接口设计;④数据库、网络、代码、接口、界面等其他设计;⑤模块测试用例设计;⑥编写详细设计文档;⑦详细设计评审 。
(2)3个原则:①详细设计是为后续具体编程实现做准备;②处理过程应简明易懂;③选择器恰当的描述工具表述模块算法 。
(3)设计方法选择的原则:①过程描述便于理解、复审和维护,可自然转换成代码,并保证代码与详细设计完全一致 。详细设计常使用结构化程序设计方法,其是一种设计程序技术,采用自顶向下、逐步求精的设计方法和单入口单出口的控制结构,只用顺序、选择、循环三种基本控制结构就能实现任何单入口/出口程序 。