单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第四章 软件设计,*,第4章 软件设计,软件设计的任务、目标与文档,软件设计原理与优化准则,软件的结构设计,数据库设计概论,1,第四章 软件设计,本章导读:,软件设计是软件开发的核心。是在需求分析和设计的基础上进行的。,本章论述,软件设计的任务及目标、软件设计的概念、原理和设计准则、软件设计常用的方法以及多,层结构设计技术、设计文档和管理文档编写的参考指南、数据库设计方法,数据模型设计案例分析。,2,第四章 软件设计,软件设计是后续开发步骤及软件维护工作的基础。如果没有设计,只能建立一个不稳定的系统结构,为什么要进行软件设计?,3,第四章 软件设计,概要设计说明书,详细设计说明书,软件设计,软件设计做什么?,简单地说,软件设计就是根据需求分析的“做什么(What to do?)”,确定系统应该“怎么做”(How to do?)。,需求规格说明书,4,第四章 软件设计,工程管理角度:,概要设计:,将软件需求转化为软件的系统结构,形成概要设计规格书。,详细设计:,过程设计和界面设计。形成详细设计规格书。,5,第四章 软件设计,工程技术角度:,数据设计:,包括数据结构、文件和数据库的设计。,结构设计:,选择合理的体系结构,对系统进行分解和划分。,过程设计:,通过对结构表示进行细化,得到软件详细的界面、数据结构和程序算法。,6,第四章 软件设计,开发阶段的工作流,软件设计的任务,软件设计的目标,软件设计的文档,一、,软件设计的任务、目标与文档,7,第四章 软件设计,1、开发阶段的工作流,8,第四章 软件设计,设计阶段选用合适的设计方法进行系统结构、数据结构、界面表示和实现过程的设计。,结构设计:,定义软件组成及各主要成分之间的关系,构造软件系统的整体框架;,数据设计:,完成数据结构的定义;,过程设计:,对系统框架、数据结构和界面表示进行细化,对各结构成分所实现的功能,用很接近程序的软件表示形式进行过程性描述。,编码设计:,将过程描述转换为某种程序设计语言的源代码。,软件测试:,即对设计结果进行验证,得到完整有效地软件系统。,9,第四章 软件设计,2、软件设计的具体任务,制定规范,结构设计,处理方式设计,数据结构及数据库设计,可靠性设计,(质量设计),编写软件设计文档,设计审查和复审,详细设计,10,第四章 软件设计,制定规范,制定在设计时应该共同遵守的标准,以便协调组内各成员的工作。,确定设计目标和最合适的设计方法。,规定编码的信息形式和接口规约,。,确定命名规范。,确定构件重用策略。,面向模块(部件或构件)进行设计。,规定设计文档的,规范,。,规定代码编写,规范。,概要设计方法;,详细设计和编程方法。,11,第四章 软件设计,结构设计,将系统按功能划分成模块的层次结构,确定每个模块的功能、与需求相对应,确定模块间的调用关系,确定模块间的接口,评估模块划分的质量,基于功能层次结构建立系统。,12,第四章 软件设计,处理方式设计,确定,算法,,评估算法的性能,确定模块间的控制方式,周转时间,响应时间,吞吐量,精度,确定外部信号的接收发送形式,13,第四章 软件设计,数据结构及数据库设计,14,第四章 软件设计,确定,I/O,文件的数据结构,确定算法所必需的逻辑数据结构,确定对逻辑数据结构所操作的程序模块,限制和确定各个数据设计的影响范围,确定接口数据其详细的数据结构和使用规则,目的:保证数据完整性和安全性。,数据结构的设计:,15,第四章 软件设计,目的:确定数据库的模式、子模式。,概念结构设计:,可以用,E-R,模型表示,也可以用,3NF,关系群表示,逻辑结构设计:,是将概念模型转换成,DBMS,支持的数据模型。,物理结构设计,:,设计数据模式的一些物理细节,选定存储结构和存取方法,以获得数据库的最佳存取效率。,数据库设计:,16,第四章 软件设计,防卫性设计:,在软件设计中就插入自动检错,报错和纠错的功能,一致性设计:,在并发处理过程中使用封锁和解除封锁机制保持数据不被破坏,冗余性设计:,数据的保护性设计,17,第四章 软件设计,在软件开发的一开始就应确定软件可靠性和其它质量指标,考虑相应措施,确保所做的设计具有良好的质量特性,使软件易于修改和易于维护。,(5)可靠性设计(质量设计),18,第四章 软件设计,概要设计规格说明书,数据库设计,规格,说明书,详细设计,规格,说明书,用户使用手册,测试计划与测试标准,(6)编写软件设计文档,19,第四章 软件设计,可追溯性:,需求复盖,确认,接口:,内部接口与外部接口定义的确认。,风险:,确认技术条件、预算范围。,实用性:,确认对于需求的实用性。,技术清晰度:,确认代码的可实现性,可维护性:,确认可维护性,质量:,确认质量特征,各种选择方案:,选择方案的标准,限制:,评估限制的现实性,与需求的一致性,其它具体问题:,对文档、可测试性、设计过程等进行评估,(7)设计审查和复审,20,第四章 软件设计,(8)详细设计,确定软件各模块内的算法和数据结构。,选定某种过程的表达形式来描述各种算法。,进行详细设计的评审,在详细设计过程中,需要完成的工作是:,21,第四章 软件设计,节省开发费用、,降低资源消耗、,缩短开发时间、,能够赢得较高的生产效率、,较高的可靠性、,可维护性的方案。,3、软件设计的目标,软件设计的最终目标:,取得最佳方案,22,第四章 软件设计,功能、性能,都符合指定的要求;,软件是,可维护,的,可方便地进行修改,;,除了代码,还有一套配置齐全的,文档,。,开发的软件满足以下特点:,23,第四章 软件设计,4、软件设计文档,概要设计规格书,详细设计规格书,数据库设计规格书,用户操作手册,测试计划与标准,软件设计文档格式与内容,按照CMM的要求,规范化处理。,软件设计规格书,24,第四章 软件设计,概要设计说明书要点,导言,软件体系结构和系统结构设计,模块(部件)功能分配,数据结构设计,接口设计,检查列表,详细请见P,482,25,第四章 软件设计,详细设计说明书要点,主要设计思想与方法,模块实现过程设计,接口实现过程设计,主要算法和数据结构说明,界面设计,检查列表,详细请见P,483,26,第四章 软件设计,管理文档,概要设计说明书评审记录表,详细设计说明书评审记录表,27,第四章 软件设计,突出设计书评审中不符合项的跟踪记录。,不符合项主要是在系统功能、性能、接口的设计上存在的遗漏或缺陷。,只有不符合项为零时,评审才能通过。,因此,评审可能进行多次。,意见指出不符合项、强项和弱项。,评审结论就是通过或不通过。,记录表要点:,28,第四章 软件设计,思考题,软件设计的具体任务包括哪些内容?,数据的保护性设计指的是什么?,软件设计的目标是什么?,29,第四章 软件设计,