软件工程方法与奥践 第1章软件工程引论 子教
软件工程方法与实践 第 1 章 软件工程引论 电 子教 案
第1章软件工程引论 11软件工程诞生背景 12软件工程学 13软件工程方法学基本原理 ⊙1.4小结
第 1 章 软件工程引论 1.1 软件工程诞生背景 1.2 软件工程学 1.3 软件工程方法学基本原理 1.4 小结
111软件的特性 1.软件(产品)的固有特性 外部特征:软件是一种非实物型(非物理)的信息产品 内部特性:软件是一个具有高度抽象性和严密逻辑性的逻 辑系统 ①复杂性 ②一致性 ③易变性 ④不可见性,或称为不可视化
1.1.1 软件的特性 1. 软件(产品)的固有特性 外部特征:软件是一种非实物型(非物理)的信息产品; 内部特性:软件是一个具有高度抽象性和严密逻辑性的逻 辑系统。 ① 复杂性 ② 一致性 ③ 易变性 ④ 不可见性,或称为不可视化
111软件的特性 2.软件(产品)的生产特性 ①软件开发不同于硬件设计。软件开发更依赖于开发人 员的素质、智力,以及对人员的组织和管理。 ②软件生产形式不同于硬件制造。软件成为产品之后, 其制造仅仅是简单的复制。 ③软件维护不同于硬件维修。软件产品虽然不会磨损和 老化,但在使用过程中的维护比硬件产品复杂得多,而且 维护过程难以控制,甚至还可能产生新的错误
1.1.1 软件的特性 2. 软件(产品)的生产特性 ① 软件开发不同于硬件设计。软件开发更依赖于开发人 员的素质、智力,以及对人员的组织和管理。 ② 软件生产形式不同于硬件制造。软件成为产品之后, 其制造仅仅是简单的复制。 ③ 软件维护不同于硬件维修。软件产品虽然不会磨损和 老化,但在使用过程中的维护比硬件产品复杂得多,而且 维护过程难以控制,甚至还可能产生新的错误
112软件危机 1.软件危机的突出表现 软件开发和维护过程的高成本、低质量和难以维护 ①软件产品的供需差不断扩大,使得人们为不能充分利 用计算机硬件提供的巨大潜力而苦恼。 ②软件、硬件的成本在计算机系统总投资中的比例迅速 逆转。 ③对软件开发成本和进度的估计常常很不准确,经常会 出现开发的拖延现象,降低了软件开发组织的信誉
1.1.2 软件危机 1.软件危机的突出表现 软件开发和维护过程的高成本、低质量和难以维护。 ① 软件产品的供需差不断扩大,使得人们为不能充分利 用计算机硬件提供的巨大潜力而苦恼。 ② 软件、硬件的成本在计算机系统总投资中的比例迅速 逆转。 ③ 对软件开发成本和进度的估计常常很不准确,经常会 出现开发的拖延现象,降低了软件开发组织的信誉
112软件危机 ④软件开发人员和用户之间的信息交流往往很不充分, 经常会出现“闭门造车”的产品。 ⑤软件规模的增长,带来了它的复杂度的增加;而软件 的可靠性往往随着软件规模的增长而下降,质量保证越 来越困难。 ⑥软件生产形式是自由化的“个体作坊”式,软件开发 方法是优劣共存的“合成捏合”技术。 ⑦软件往往需要不断地“修修补补”,不可维护性突出
1.1.2 软件危机 ④ 软件开发人员和用户之间的信息交流往往很不充分, 经常会出现“闭门造车”的产品。 ⑤ 软件规模的增长,带来了它的复杂度的增加;而软件 的可靠性往往随着软件规模的增长而下降,质量保证越 来越困难。 ⑥ 软件生产形式是自由化的“个体作坊”式,软件开发 方法是优劣共存的“合成/捏合”技术。 ⑦ 软件往往需要不断地“修修补补”,不可维护性突出
112软件危机 2.产生软件危机的原因 ①软件独有的特性给开发和维护带来困难; ②软件人员的错误认识; ③软件生产技术进步缓慢; ④软件维护成本和维护难度急剧增加
1.1.2 软件危机 2.产生软件危机的原因 ① 软件独有的特性给开发和维护带来困难; ② 软件人员的错误认识; ③ 软件生产技术进步缓慢; ④ 软件维护成本和维护难度急剧增加
113软件危机解决途径 ①软件开发应该是一种组织良好、管理严密、各类人员 协同配合、共同完成的生产项目;必须充分吸取和借鉴 人类长期以来从事各种工程项目所积累的行之有效的概 念、原理、技术和方法。 ②应该推广和使用在软件开发实践中总结出来的成功的 技术和方法,并且研究探索更好、更有效的技术和方法, 尽快纠正在计算机早期发展阶段形成的一些错误概念和 做法
1.1.3 软件危机解决途径 ① 软件开发应该是一种组织良好、管理严密、各类人员 协同配合、共同完成的生产项目;必须充分吸取和借鉴 人类长期以来从事各种工程项目所积累的行之有效的概 念、原理、技术和方法。 ② 应该推广和使用在软件开发实践中总结出来的成功的 技术和方法,并且研究探索更好、更有效的技术和方法, 尽快纠正在计算机早期发展阶段形成的一些错误概念和 做法
113软件危机解决途径 ③应该制定软件开发过程的规范和标准。因为人类的 切生产活动只有纳入科学的、规范的轨道,执行有约束 力的标准化,才是最高效的 ④应该开发和使用更多、更好的软件工具( Software Tools)。借鉴“利用机械工具可以放大人的体力”原理, 软件工具可以“放大”人的智力
1.1.3 软件危机解决途径 ③ 应该制定软件开发过程的规范和标准。因为人类的一 切生产活动只有纳入科学的、规范的轨道,执行有约束 力的标准化,才是最高效的。 ④ 应该开发和使用更多、更好的软件工具(Software Tools)。借鉴“利用机械工具可以放大人的体力”原理, 软件工具可以“放大”人的智力
121软件工程化思想 软件工程( Software Engineering)是从技术和管理两个方 面,研究如何更好地开发和维护软件的一门新兴学科。 软件工程化基本思想是把软件当做一种需要计划、分析、 设计、实现、测试、维护和管理的工程产品,要求在一系 列仔细地控制和系统化的执行过程中研制(开发)出来。 软件(产品)=程序+文档 即计算机软件不仅仅是程序,还应该有一整套记录软件开 发过程的文档资料
1.2.1 软件工程化思想 软件工程(Software Engineering)是从技术和管理两个方 面,研究如何更好地开发和维护软件的一门新兴学科。 软件工程化基本思想是把软件当做一种需要计划、分析、 设计、实现、测试、维护和管理的工程产品,要求在一系 列仔细地控制和系统化的执行过程中研制(开发)出来。 软件(产品)= 程序+文档 即计算机软件不仅仅是程序,还应该有一整套记录软件开 发过程的文档资料