©2009BUPTTSEG第六章软件设计修佳鹏media@bupt.edu.cn软件工程模型与方法Models&MethodsofSoftwareEngineering2©2009BUPTTSEG北京邮电大学通信软件工程中心本章内容6.1软件设计历史及目标6.2软件设计的重要性6.3软件设计过程6.4软件概要设计步骤6.5软件详细设计步骤6.6软件设计原则6.7软件设计基础6.8软件体系结构3©2009BUPTTSEG北京邮电大学通信软件工程中心本章要解决的问题相对于分析而言,设计是什么?为什么要进行设计?软件设计在软件开发过程中处于什么位置?经过软件需求分析,确定了系统必须“做什么”的问题,这些功能是如何在系统中得以实现的的呢?为了实现合理分配系统功能并尽可能提高处理用户需求的性能,系统中这些功能之间是什么关系呢?为了满足用户在处理业务过程中的一些习惯,怎样合理而又灵便的分配系统界面功能呢?4©2009BUPTTSEG北京邮电大学通信软件工程中心6.1软件设计历史及目标早期的设计工作集中在模块化程序的开发标准和自顶向下求精软件结构的方法,称为结构化程序设计的理论。将数据流或数据结构转化为设计的方法;面向对象的软件设计方法如今,在软件设计方面的着重点已转移到软件体系结构和可用于实现软件体系结构的设计模式。5©2009BUPTTSEG北京邮电大学通信软件工程中心软件设计的目标首先,设计通常是开发活动的第一步。设计定义为:“应用各种技术和原理,对设备、过程或系统做出足够详细的定义,使之能够在物理上得以实现”。软件设计是软件工程过程中的技术核心,也是后续开发步骤及软件维护工作的基础。软件设计的最基本目标就是回答“概括地描述系统如何实现用户所提出来的功能和性能等方面的需求”软件设计的最终目标是要取得最佳方案。“最佳”是指在所有候选方案中,就节省开发费用,降低资源消耗,缩短开发时间的条件,选择能够赢得较高的生产率、较高的可靠性和可维护性的方案。6©2009BUPTTSEG北京邮电大学通信软件工程中心设计模型与分析模型的关系数据词典数据流图实体关系图状态转换图加工控制规规格格说说明明数据对象描述过程设计接口设计系统结构设计数据设计7©2009BUPTTSEG北京邮电大学通信软件工程中心6.2软件设计的重要性软件设计是开发阶段中最重要的步骤,它提供了软件结构的内外表示,使得软件的质量评价成为可能,也是质量得以保证的关键步骤。软件设计是将用户要求准确地转化成为最终的软件产品的唯一途径。也是后续开发步...