③共京宽大学 BEDING UNIVERSITY OF POSTS AND TELECOMMUNICATIONS 软件工程模型与方法 TSEG Models methods of sE Telecommunications Software Engineering Grou 第六章软件设计 肖丁diao(@bupt.edu.cn 通软件中心 ⊙2008 BUPTTSEG
© 2008 BUPT TSEG 软件工程模型与方法 Models & Methods of SE 第六章 软件设计 肖丁 dxiao@bupt.edu.cn
共京部電大学 本章内容 ◆6.1软件设计历史及目标 ◆6,2软件设计的重要性 ◆63软件设计过程 ◆64软件概要设计步骤 ◆65软件详细设计步骤 66软件设计原则 ◆6.7软件设计基础 ◆68软件体系结构 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 2 本章内容 ◆ 6.1 软件设计历史及目标 ◆ 6.2 软件设计的重要性 ◆ 6.3 软件设计过程 ◆ 6.4 软件概要设计步骤 ◆ 6.5 软件详细设计步骤 ◆ 6.6 软件设计原则 ◆ 6.7 软件设计基础 ◆ 6.8 软件体系结构
共京部電大学 引言 ◆相对于分析而言,设计是什么?为什么要进行设 ◆软件设计在软件开发过程中出于什么位置? ◆盆过錾件票裘 殺皙功貔寔如喬笑缆甭户的余的 呢? 为了实现 雇罷 分配系统功能并尽可 处理用 求的 ,系统中这些功能之 嚮踅存 么芙系 痒奁罱叟炱約秀岦紊害鲵能嚨习惯,怎 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 3 引言 ◆ 相对于分析而言,设计是什么?为什么要进行设 计? ◆ 软件设计在软件开发过程中出于什么位置? ◆ 经过软件需求分析,确定了系统必须“做什么” 的功能,然而这些功能是如何实现用户的需求的 呢? ◆ 为了实现合理分配系统功能并尽可能提高处理用 户需求的性能,系统中这些功能之间是什么关系 呢? ◆ 为了满足用户在处理业务过程中的一些习惯,怎 样合理而又灵便的分配系统界面功能呢? ◆ ……
共京部電大学 611软件设计历史 ◆早期的设计工作集中在模块化程序的开发 标准和自顶向下求精软件结构的方法,称 为结构化程序设计的理论 ◆之后提出了将数据流或数据结构转化为设 计定义的方法,之后又提出了一种面向对 象方法来导出软件设计。 ◆如今,在软件设计方面的着重点已转移到 软件体系结构和可用于实现软件体系结构 的设计模式 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 4 6.1.1 软件设计历史 ◆ 早期的设计工作集中在模块化程序的开发 标准和自顶向下求精软件结构的方法,称 为结构化程序设计的理论。 ◆ 之后提出了将数据流或数据结构转化为设 计定义的方法,之后又提出了一种面向对 象方法来导出软件设计。 ◆ 如今,在软件设计方面的着重点已转移到 软件体系结构和可用于实现软件体系结构 的设计模式
3壮人季61.2软件设计方法的通用特征 各种软件设计方法都具有各自独特的表示 符号体系,而这些方法都具有以下共同特 征 一种用于将分析模型变换到设计模型的表示 机制; 用于表示功能件构件及其接口的符号体系; 用于求精和划分的启发信息和机制; 质量评价的指导原则 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心 5
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 5 6.1.2 软件设计方法的通用特征 ◆ 各种软件设计方法都具有各自独特的表示 符号体系,而这些方法都具有以下共同特 征: ➢ 一种用于将分析模型变换到设计模型的表示 机制; ➢ 用于表示功能件构件及其接口的符号体系; ➢ 用于求精和划分的启发信息和机制; ➢ 质量评价的指导原则
共京部電大学 613(软件)设计的定义 首先,设计通常是开发活动的第一步 设计定义为:“应用各种技术和原理,对设备、过程或系 统做出足够详细的定义,使之能够在物理上得以实现” ◆软件设计是软件工程过程中的技术核心,是构造和验证软 件所需的三项技术活动之一。软件设计也是后续开发步骤 及软件维护工作的基础。 软件设计的最基本目标就是回答“概括地描述系统如何实 现用户所提出来的功能和性能等方面的需求? 软件设计的最终目标是要取得最佳方案 “最佳”是指在所有候选方案中,就节省开发费用,降低资源消 耗,缩短开发时间的条件,选择能够赢得较高的生产率、较高的 可靠性和可维护性的方案。 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 6 6.1.3 (软件)设计的定义 ◆ 首先,设计通常是开发活动的第一步。 ◆ 设计定义为:“应用各种技术和原理,对设备、过程或系 统做出足够详细的定义,使之能够在物理上得以实现”。 ◆ 软件设计是软件工程过程中的技术核心,是构造和验证软 件所需的三项技术活动之一。软件设计也是后续开发步骤 及软件维护工作的基础。 ◆ 软件设计的最基本目标就是回答“概括地描述系统如何实 现用户所提出来的功能和性能等方面的需求? ◆ 软件设计的最终目标是要取得最佳方案。 ➢ “最佳”是指在所有候选方案中,就节省开发费用,降低资源消 耗,缩短开发时间的条件,选择能够赢得较高的生产率、较高的 可靠性和可维护性的方案
共京部電大学 621软件设计的重要性 ◆软件设计是开发阶段中最重要的步骤,它 提供了软件结构的内外表示,使得软件的 质量评价成为可能,也是质量得以保证的 关键步骤 软件设计是将用户要求准 确地转化成为最终的软件 维护 产品的唯一途径。也是后 续开发步骤及软件维护工 测试 测试 实现 实现 作的基础。如果没有设计, 只能建立一个不稳定的系 有软件设计 没有软件设计 统。 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 7 6.2.1 软件设计的重要性 ◆ 软件设计是开发阶段中最重要的步骤,它 提供了软件结构的内外表示,使得软件的 质量评价成为可能,也是质量得以保证的 关键步骤 软件设计是将用户要求准 确地转化成为最终的软件 产品的唯一途径。也是后 续开发步骤及软件维护工 作的基础。如果没有设计, 只能建立一个不稳定的系 统
3共家季62.2设计模型与分析模型的关系 数 据 对 体 实数 规 象/关 据 格 过程设计 描 系数据词典」流说 述 图明 接口设计 状态转换图 系统结构设计 掉制规格鸢鸲 数据设计 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 8 6.2.2 设计模型与分析模型的关系 数据词典 数 据 流 图 实 体 关 系 图 状态转换图 加 工 控 制 规 规 格 格 说 说 明 明 数 据 对 象 描 述 过程设计 接口设计 系统结构设计 数据设计
共京部電大学 63软件设计过程 ◆从工程管理的角度,软件设计分成: 概要设计:将软件需求转化为数据结构和软件 的系统结构,并建立接口 详细设计:即过程设计,通过对软件结构进行 细化,得到各功能模块的详细数据结构和算法 详细设计 概要设计 数据设计 技术观点 系统结构设计 过程设计 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心 9
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 9 6.3 软件设计过程 ◆ 从工程管理的角度,软件设计分成: ➢ 概要设计:将软件需求转化为数据结构和软件 的系统结构,并建立接口 ➢ 详细设计:即过程设计,通过对软件结构进行 细化,得到各功能模块的详细数据结构和算法 过程设计 系统结构设计 数据设计 概要设计 详细设计 技 术 观 点 管 理 观 点
共京部電大学 63软件设计过程 系统结构设计:定义了软件系统各主要成份之间 的关系 其中包括软件的接口设计,它特指软件内部各成份之 间、软件与其它协同系统之间及软件与用户之间的交 互机制的设计; ◆数据设计:将实体关系图中描述的对象和关系, 以及数据词典中描述的详细数据内容转化为数据 结构的定义; ◆过程设计:把系统结构设计转换成软件的过程性 描述 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心 10
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 10 6.3 软件设计过程 ◆ 系统结构设计:定义了软件系统各主要成份之间 的关系。 ➢ 其中包括软件的接口设计,它特指软件内部各成份之 间、软件与其它协同系统之间及软件与用户之间的交 互机制的设计; ◆ 数据设计:将实体关系图中描述的对象和关系, 以及数据词典中描述的详细数据内容转化为数据 结构的定义; ◆ 过程设计:把系统结构设计转换成软件的过程性 描述