《软件工程软件工程学概述》由会员分享,可在线阅读,更多相关《软件工程软件工程学概述(26页珍藏版)》请在金锄头文库上搜索。
1、电子与信息工程学院电子与信息工程学院电子与信息工程学院电子与信息工程学院 计算机系计算机系计算机系计算机系软软件件工工程程导导论论第第 1 章章 软件工程学概述软件工程学概述1.2 1.2 软件危机软件危机软件危机软件危机1.3 1.3 软件工程软件工程软件工程软件工程1.4 1.4 软件生命周期软件生命周期软件生命周期软件生命周期1.5 1.5 软件过程软件过程软件过程软件过程1.1 1.1 软件软件软件软件2024/8/12电子与信息工程学院电子与信息工程学院电子与信息工程学院电子与信息工程学院 计算机系计算机系计算机系计算机系软软件件工工程程导导论论第第 1 章章 软件工程学概述软件工程
2、学概述1.1 1.1 软件软件软件软件 软件:软件:软件:软件:程序以及开发、使用和维护程序所程序以及开发、使用和维护程序所程序以及开发、使用和维护程序所程序以及开发、使用和维护程序所需要的所有文档。需要的所有文档。需要的所有文档。需要的所有文档。 软件:软件:软件:软件:计算机程序、方法、规则、相关的计算机程序、方法、规则、相关的计算机程序、方法、规则、相关的计算机程序、方法、规则、相关的文档资料以及在计算机上运行程序时所必需文档资料以及在计算机上运行程序时所必需文档资料以及在计算机上运行程序时所必需文档资料以及在计算机上运行程序时所必需的数据。(的数据。(的数据。(的数据。(1983 19
3、83 IEEEIEEE) Institute of Electrical Institute of Electrical and Electronic and Electronic Engineers Engineers ( (软件程序文档数据软件程序文档数据软件程序文档数据软件程序文档数据) )软件与程序的主要区别是:软件与程序的主要区别是:软件与程序的主要区别是:软件与程序的主要区别是: 规模庞大、复杂度高规模庞大、复杂度高规模庞大、复杂度高规模庞大、复杂度高2024/8/12电子与信息工程学院电子与信息工程学院电子与信息工程学院电子与信息工程学院 计算机系计算机系计算机系计算机系软软件件
4、工工程程导导论论第第 1 章章 软件工程学概述软件工程学概述1.2 1.2 软件危机软件危机软件危机软件危机1.2.1 1.2.1 软件危机介绍软件危机介绍软件危机介绍软件危机介绍 1. 1.软件危机软件危机软件危机软件危机 是指在计算机软件的开发和维护过程中所遇到的一是指在计算机软件的开发和维护过程中所遇到的一是指在计算机软件的开发和维护过程中所遇到的一是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。系列严重问题。系列严重问题。系列严重问题。 (1 1)如何开发软件,以满足对软件日益增长的需求;)如何开发软件,以满足对软件日益增长的需求;)如何开发软件,以满足对软件日益增长的需求;
5、)如何开发软件,以满足对软件日益增长的需求; (2 2)如何维护数量不断膨胀的已有软件。如何维护数量不断膨胀的已有软件。如何维护数量不断膨胀的已有软件。如何维护数量不断膨胀的已有软件。 软件萧条软件萧条软件萧条软件萧条(software depressionsoftware depression) 软件困扰软件困扰软件困扰软件困扰(software afflictionsoftware affliction) 2024/8/12电子与信息工程学院电子与信息工程学院电子与信息工程学院电子与信息工程学院 计算机系计算机系计算机系计算机系软软件件工工程程导导论论第第 1 章章 软件工程学概述软件工程
6、学概述2. 2.软件危机的典型表现软件危机的典型表现软件危机的典型表现软件危机的典型表现 (1 1)对软件开发成本和进度的估计常常很不准确;)对软件开发成本和进度的估计常常很不准确;)对软件开发成本和进度的估计常常很不准确;)对软件开发成本和进度的估计常常很不准确; (2 2)用户对)用户对)用户对)用户对“ “已完成的已完成的已完成的已完成的” ”软件系统不满意的现象软件系统不满意的现象软件系统不满意的现象软件系统不满意的现象经常发生;经常发生;经常发生;经常发生; (3 3)软件产品的质量往往靠不住;)软件产品的质量往往靠不住;)软件产品的质量往往靠不住;)软件产品的质量往往靠不住; (4
7、 4)软件常常是不可维护的;)软件常常是不可维护的;)软件常常是不可维护的;)软件常常是不可维护的; (5 5)软件通常没有合适的文档资料)软件通常没有合适的文档资料)软件通常没有合适的文档资料)软件通常没有合适的文档资料 (6 6)软件成本在计算机系统总成本中所占比例逐)软件成本在计算机系统总成本中所占比例逐)软件成本在计算机系统总成本中所占比例逐)软件成本在计算机系统总成本中所占比例逐年上升;年上升;年上升;年上升; (7 7)软件开发生产率提高的速度,远远跟不上计)软件开发生产率提高的速度,远远跟不上计)软件开发生产率提高的速度,远远跟不上计)软件开发生产率提高的速度,远远跟不上计算机应
8、用迅速普及深入的趋势。算机应用迅速普及深入的趋势。算机应用迅速普及深入的趋势。算机应用迅速普及深入的趋势。2024/8/12电子与信息工程学院电子与信息工程学院电子与信息工程学院电子与信息工程学院 计算机系计算机系计算机系计算机系软软件件工工程程导导论论第第 1 章章 软件工程学概述软件工程学概述1.2.2 1.2.2 软件危机产生的原因软件危机产生的原因软件危机产生的原因软件危机产生的原因 1. 1.软件本身的特点软件本身的特点软件本身的特点软件本身的特点 (1 1)软件是逻辑部件而不是物理部件,缺乏)软件是逻辑部件而不是物理部件,缺乏)软件是逻辑部件而不是物理部件,缺乏)软件是逻辑部件而不
9、是物理部件,缺乏“ “可见性可见性可见性可见性” ”,管理和控制软件开发过程相当困难;,管理和控制软件开发过程相当困难;,管理和控制软件开发过程相当困难;,管理和控制软件开发过程相当困难; (2 2)软件维护较难;)软件维护较难;)软件维护较难;)软件维护较难; (3 3)软件规模庞大。)软件规模庞大。)软件规模庞大。)软件规模庞大。 2. 2.软件开发与维护的方法不正确软件开发与维护的方法不正确软件开发与维护的方法不正确软件开发与维护的方法不正确 (1 1)忽视需求分析)忽视需求分析)忽视需求分析)忽视需求分析 (2 2)轻视软件维护)轻视软件维护)轻视软件维护)轻视软件维护2024/8/1
10、2电子与信息工程学院电子与信息工程学院电子与信息工程学院电子与信息工程学院 计算机系计算机系计算机系计算机系软软件件工工程程导导论论第第 1 章章 软件工程学概述软件工程学概述1.2.3 1.2.3 消除软件危机的途径消除软件危机的途径消除软件危机的途径消除软件危机的途径 1. 1.应该对计算机软件有一个正确的认识应该对计算机软件有一个正确的认识应该对计算机软件有一个正确的认识应该对计算机软件有一个正确的认识 软件程序文档数据软件程序文档数据软件程序文档数据软件程序文档数据 2. 2.必须充分认识到软件开发不是某种个体劳动的神必须充分认识到软件开发不是某种个体劳动的神必须充分认识到软件开发不是
11、某种个体劳动的神必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类秘技巧,而应该是一种组织良好、管理严密、各类秘技巧,而应该是一种组织良好、管理严密、各类秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目人员协同配合、共同完成的工程项目人员协同配合、共同完成的工程项目人员协同配合、共同完成的工程项目 3. 3.应该开发和使用更好的软件工具应该开发和使用更好的软件工具应该开发和使用更好的软件工具应该开发和使用更好的软件工具2024/8/12电子与信息工程学院电子与信息工程学院电子与信息工程学院电子与信息工程学院 计算机系计算机系计算机
12、系计算机系软软件件工工程程导导论论第第 1 章章 软件工程学概述软件工程学概述1.3 1.3 软件工程软件工程软件工程软件工程 提出:提出:提出:提出:19681968年年年年 NATO NATO 联邦德国联邦德国联邦德国联邦德国1.3.1 1.3.1 软件工程介绍软件工程介绍软件工程介绍软件工程介绍 1. 1.软件工程软件工程软件工程软件工程 (1 1)软件工程就是为了经济地获得可靠的且能在实)软件工程就是为了经济地获得可靠的且能在实)软件工程就是为了经济地获得可靠的且能在实)软件工程就是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工际机器上有效地运行的软件,而建
13、立和使用完善的工际机器上有效地运行的软件,而建立和使用完善的工际机器上有效地运行的软件,而建立和使用完善的工程原理。程原理。程原理。程原理。 19681968年第一届年第一届年第一届年第一届NATONATO会议提出会议提出会议提出会议提出 (2 2)软件工程是:)软件工程是:)软件工程是:)软件工程是:a a把系统的、规范的、可度量把系统的、规范的、可度量把系统的、规范的、可度量把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是的途径应用于软件开发、运行和维护过程,也就是的途径应用于软件开发、运行和维护过程,也就是的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;
14、把工程应用于软件;把工程应用于软件;把工程应用于软件;b b研究研究研究研究a a中提到的途径。中提到的途径。中提到的途径。中提到的途径。19931993年年年年IEEEIEEE提出提出提出提出2024/8/12电子与信息工程学院电子与信息工程学院电子与信息工程学院电子与信息工程学院 计算机系计算机系计算机系计算机系软软件件工工程程导导论论第第 1 章章 软件工程学概述软件工程学概述 (3 3)软件工程是指导计算机软件开发和维护的一门工软件工程是指导计算机软件开发和维护的一门工软件工程是指导计算机软件开发和维护的一门工软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术
15、和方法来开发与维程学科。采用工程的概念、原理、技术和方法来开发与维程学科。采用工程的概念、原理、技术和方法来开发与维程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前呢护软件,把经过时间考验而证明正确的管理技术和当前呢护软件,把经过时间考验而证明正确的管理技术和当前呢护软件,把经过时间考验而证明正确的管理技术和当前呢能够得到的最好的技术方法结合起来,以经济地开发出高能够得到的最好的技术方法结合起来,以经济地开发出高能够得到的最好的技术方法结合起来,以经济地开发出高能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。质量的软
16、件并有效地维护它。质量的软件并有效地维护它。质量的软件并有效地维护它。 2. 2.软件工程的特性软件工程的特性软件工程的特性软件工程的特性 (1 1)软件工程关注于大型程序的构造)软件工程关注于大型程序的构造)软件工程关注于大型程序的构造)软件工程关注于大型程序的构造 (2 2)软件工程的中心课题是控制复杂性)软件工程的中心课题是控制复杂性)软件工程的中心课题是控制复杂性)软件工程的中心课题是控制复杂性 (3 3)软件经常变化)软件经常变化)软件经常变化)软件经常变化 (4 4)开发软件的效率非常重要)开发软件的效率非常重要)开发软件的效率非常重要)开发软件的效率非常重要 (5 5)和谐地合作
17、是开发软件的关键)和谐地合作是开发软件的关键)和谐地合作是开发软件的关键)和谐地合作是开发软件的关键 (6 6)软件必须有效地支持它的用户)软件必须有效地支持它的用户)软件必须有效地支持它的用户)软件必须有效地支持它的用户 (7 7)在软件工程领域中是由具有一种文化背景的人替具)在软件工程领域中是由具有一种文化背景的人替具)在软件工程领域中是由具有一种文化背景的人替具)在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品。有另一种文化背景的人创造产品。有另一种文化背景的人创造产品。有另一种文化背景的人创造产品。2024/8/12电子与信息工程学院电子与信息工程学院电子与信息
18、工程学院电子与信息工程学院 计算机系计算机系计算机系计算机系软软件件工工程程导导论论第第 1 章章 软件工程学概述软件工程学概述1.3.2 1.3.2 软件工程的基本原理软件工程的基本原理软件工程的基本原理软件工程的基本原理 1. 1.用分阶段的生命周期计划严格管理用分阶段的生命周期计划严格管理用分阶段的生命周期计划严格管理用分阶段的生命周期计划严格管理 2. 2.坚持进行阶段评审坚持进行阶段评审坚持进行阶段评审坚持进行阶段评审 3. 3.实行严格的产品控制实行严格的产品控制实行严格的产品控制实行严格的产品控制 4. 4.采用现代程序设计技术采用现代程序设计技术采用现代程序设计技术采用现代程序
19、设计技术 5. 5.结果应能清楚地审查结果应能清楚地审查结果应能清楚地审查结果应能清楚地审查 6. 6.开发小组的人员应该少而精开发小组的人员应该少而精开发小组的人员应该少而精开发小组的人员应该少而精 7. 7.认不断改进软件工程实践的必要性认不断改进软件工程实践的必要性认不断改进软件工程实践的必要性认不断改进软件工程实践的必要性2024/8/12电子与信息工程学院电子与信息工程学院电子与信息工程学院电子与信息工程学院 计算机系计算机系计算机系计算机系软软件件工工程程导导论论第第 1 章章 软件工程学概述软件工程学概述1.3.3 1.3.3 软件工程方法学软件工程方法学软件工程方法学软件工程方
20、法学 软件工程包括技术和管理两方面的内容,是技术与软件工程包括技术和管理两方面的内容,是技术与软件工程包括技术和管理两方面的内容,是技术与软件工程包括技术和管理两方面的内容,是技术与管理紧密结合所形成的工程学科。管理紧密结合所形成的工程学科。管理紧密结合所形成的工程学科。管理紧密结合所形成的工程学科。 管理:管理:管理:管理:是通过计划、组织和控制等一系列活动,合是通过计划、组织和控制等一系列活动,合是通过计划、组织和控制等一系列活动,合是通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,以达到既定目标的过程。理地配置和使用各种资源,以达到既定目标的过程。理地配置和使用各种资源,以达
21、到既定目标的过程。理地配置和使用各种资源,以达到既定目标的过程。 方法学:方法学:方法学:方法学:在软件生命周期全过程中使用的一整套技在软件生命周期全过程中使用的一整套技在软件生命周期全过程中使用的一整套技在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为范型。术方法的集合称为方法学,也称为范型。术方法的集合称为方法学,也称为范型。术方法的集合称为方法学,也称为范型。 软件工程方法学的要素:软件工程方法学的要素:软件工程方法学的要素:软件工程方法学的要素: 方法方法方法方法 工具工具工具工具 过程过程过程过程 方法:是完成软件开发的各项任务的技术方法,回方法:是完成软件开发的各
22、项任务的技术方法,回方法:是完成软件开发的各项任务的技术方法,回方法:是完成软件开发的各项任务的技术方法,回答答答答“ “怎样做怎样做怎样做怎样做” ”的问题。的问题。的问题。的问题。2024/8/12电子与信息工程学院电子与信息工程学院电子与信息工程学院电子与信息工程学院 计算机系计算机系计算机系计算机系软软件件工工程程导导论论第第 1 章章 软件工程学概述软件工程学概述 工具:是为运用方法而提供的自动的或半自动的工具:是为运用方法而提供的自动的或半自动的工具:是为运用方法而提供的自动的或半自动的工具:是为运用方法而提供的自动的或半自动的软件工程支撑环境软件工程支撑环境软件工程支撑环境软件工
23、程支撑环境。如果把各个阶段使用的软件工具有机地集合称一个整如果把各个阶段使用的软件工具有机地集合称一个整如果把各个阶段使用的软件工具有机地集合称一个整如果把各个阶段使用的软件工具有机地集合称一个整体,支持软件卡发的全过程,则称为软件工程支撑环体,支持软件卡发的全过程,则称为软件工程支撑环体,支持软件卡发的全过程,则称为软件工程支撑环体,支持软件卡发的全过程,则称为软件工程支撑环境。境。境。境。 过程:是为了获得高质量的软件所需要完成的过程:是为了获得高质量的软件所需要完成的过程:是为了获得高质量的软件所需要完成的过程:是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工
24、作一系列任务的框架,它规定了完成各项任务的工作一系列任务的框架,它规定了完成各项任务的工作一系列任务的框架,它规定了完成各项任务的工作步骤。步骤。步骤。步骤。2024/8/12电子与信息工程学院电子与信息工程学院电子与信息工程学院电子与信息工程学院 计算机系计算机系计算机系计算机系软软件件工工程程导导论论第第 1 章章 软件工程学概述软件工程学概述 1. 1.传统方法学传统方法学传统方法学传统方法学 传统方法学也称为生命周期方法学或结构化范型。传统方法学也称为生命周期方法学或结构化范型。传统方法学也称为生命周期方法学或结构化范型。传统方法学也称为生命周期方法学或结构化范型。采用结构化技术(结构
25、化分析、结构化设计和结构化采用结构化技术(结构化分析、结构化设计和结构化采用结构化技术(结构化分析、结构化设计和结构化采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务,并使用适当的软实现)来完成软件开发的各项任务,并使用适当的软实现)来完成软件开发的各项任务,并使用适当的软实现)来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。件工具或软件工程环境来支持结构化技术的运用。件工具或软件工程环境来支持结构化技术的运用。件工具或软件工程环境来支持结构化技术的运用。 前一个阶段任务的完成是开始进行后一个阶段工前一个阶段任务的完成是开始进行后
26、一个阶段工前一个阶段任务的完成是开始进行后一个阶段工前一个阶段任务的完成是开始进行后一个阶段工作的前提和基础,而后一阶段任务的完成通常是使前作的前提和基础,而后一阶段任务的完成通常是使前作的前提和基础,而后一阶段任务的完成通常是使前作的前提和基础,而后一阶段任务的完成通常是使前一阶段提出的解决更进一步具体化,加进了更多的实一阶段提出的解决更进一步具体化,加进了更多的实一阶段提出的解决更进一步具体化,加进了更多的实一阶段提出的解决更进一步具体化,加进了更多的实现细节。现细节。现细节。现细节。2024/8/12电子与信息工程学院电子与信息工程学院电子与信息工程学院电子与信息工程学院 计算机系计算机
27、系计算机系计算机系软软件件工工程程导导论论第第 1 章章 软件工程学概述软件工程学概述 2. 2.面向对象方法学面向对象方法学面向对象方法学面向对象方法学 面向对象方法学把数据和行为看成同等重要,它是面向对象方法学把数据和行为看成同等重要,它是面向对象方法学把数据和行为看成同等重要,它是面向对象方法学把数据和行为看成同等重要,它是一种以数据为主线,把数据和对数据的操作紧密地结一种以数据为主线,把数据和对数据的操作紧密地结一种以数据为主线,把数据和对数据的操作紧密地结一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法。合起来的方法。合起来的方法。合起来的方法。 要点要点要点要点: (1
28、1)把对象()把对象()把对象()把对象(objectobject)作为融合了数据及在数据上作为融合了数据及在数据上作为融合了数据及在数据上作为融合了数据及在数据上的操作行为的统一的软件构件。的操作行为的统一的软件构件。的操作行为的统一的软件构件。的操作行为的统一的软件构件。 (2 2)把所有对象都划分成类()把所有对象都划分成类()把所有对象都划分成类()把所有对象都划分成类(classclass)。)。)。)。 (3 3)按照父类(基类)与子类(派生类)的关系,按照父类(基类)与子类(派生类)的关系,按照父类(基类)与子类(派生类)的关系,按照父类(基类)与子类(派生类)的关系,把若干个相
29、关类组成一个层次结构的系统(类等级)。把若干个相关类组成一个层次结构的系统(类等级)。把若干个相关类组成一个层次结构的系统(类等级)。把若干个相关类组成一个层次结构的系统(类等级)。 (4 4)对象彼此间仅能通过发送消息相互联系。)对象彼此间仅能通过发送消息相互联系。)对象彼此间仅能通过发送消息相互联系。)对象彼此间仅能通过发送消息相互联系。2024/8/12电子与信息工程学院电子与信息工程学院电子与信息工程学院电子与信息工程学院 计算机系计算机系计算机系计算机系软软件件工工程程导导论论第第 1 章章 软件工程学概述软件工程学概述1.4 1.4 软件生命周期软件生命周期软件生命周期软件生命周期
30、 软软软软件件件件生生生生命命命命周周周周期期期期软件定义软件定义软件定义软件定义软件开发软件开发软件开发软件开发运行维护运行维护运行维护运行维护问题定义问题定义问题定义问题定义可行性研究可行性研究可行性研究可行性研究需求分析需求分析需求分析需求分析总体设计总体设计总体设计总体设计详细设计详细设计详细设计详细设计编码和单元测试编码和单元测试编码和单元测试编码和单元测试综合测试综合测试综合测试综合测试确定软件开发工程必须完成确定软件开发工程必须完成确定软件开发工程必须完成确定软件开发工程必须完成的总目标;确定工程的可行的总目标;确定工程的可行的总目标;确定工程的可行的总目标;确定工程的可行性;导
31、出实现工程目标应该性;导出实现工程目标应该性;导出实现工程目标应该性;导出实现工程目标应该采用的策略及系统必须完成采用的策略及系统必须完成采用的策略及系统必须完成采用的策略及系统必须完成的功能;估计完成该项工程的功能;估计完成该项工程的功能;估计完成该项工程的功能;估计完成该项工程需要的资源和成本,并且制需要的资源和成本,并且制需要的资源和成本,并且制需要的资源和成本,并且制定工程进度表。定工程进度表。定工程进度表。定工程进度表。具体设计和实现在前一具体设计和实现在前一具体设计和实现在前一具体设计和实现在前一个时期定义的软件。个时期定义的软件。个时期定义的软件。个时期定义的软件。使软件持久地满
32、足使软件持久地满足使软件持久地满足使软件持久地满足用户的需要用户的需要用户的需要用户的需要2024/8/12电子与信息工程学院电子与信息工程学院电子与信息工程学院电子与信息工程学院 计算机系计算机系计算机系计算机系软软件件工工程程导导论论第第 1 章章 软件工程学概述软件工程学概述软件生命周期各个阶段的基本任务软件生命周期各个阶段的基本任务软件生命周期各个阶段的基本任务软件生命周期各个阶段的基本任务 1. 1.问题定义问题定义问题定义问题定义 要解决的问题是什么要解决的问题是什么要解决的问题是什么要解决的问题是什么? 2. 2.可行性研究可行性研究可行性研究可行性研究 对于上一个阶段所确定的问
33、题有行的通的解决办法吗对于上一个阶段所确定的问题有行的通的解决办法吗对于上一个阶段所确定的问题有行的通的解决办法吗对于上一个阶段所确定的问题有行的通的解决办法吗? 3. 3.需求分析需求分析需求分析需求分析 为了解决这个问题,目标系统必须做什么为了解决这个问题,目标系统必须做什么为了解决这个问题,目标系统必须做什么为了解决这个问题,目标系统必须做什么? 4. 4.总体设计总体设计总体设计总体设计 概括地说,应该怎样实现目标系统概括地说,应该怎样实现目标系统概括地说,应该怎样实现目标系统概括地说,应该怎样实现目标系统? 5. 5.详细设计详细设计详细设计详细设计 应该怎样具体地实现这个系统呢应该
34、怎样具体地实现这个系统呢应该怎样具体地实现这个系统呢应该怎样具体地实现这个系统呢?2024/8/12电子与信息工程学院电子与信息工程学院电子与信息工程学院电子与信息工程学院 计算机系计算机系计算机系计算机系软软件件工工程程导导论论第第 1 章章 软件工程学概述软件工程学概述 6. 6.编码和单元测试编码和单元测试编码和单元测试编码和单元测试 写出正确的容易理解、容易维护的程序模块写出正确的容易理解、容易维护的程序模块写出正确的容易理解、容易维护的程序模块写出正确的容易理解、容易维护的程序模块。 7. 7.综合测试综合测试综合测试综合测试 通过各种类型的测试使软件达到预定的要求通过各种类型的测试
35、使软件达到预定的要求通过各种类型的测试使软件达到预定的要求通过各种类型的测试使软件达到预定的要求。 8. 8.软件维护软件维护软件维护软件维护 通过各种必要的维护活动使系统持久地满足用户的需要通过各种必要的维护活动使系统持久地满足用户的需要通过各种必要的维护活动使系统持久地满足用户的需要通过各种必要的维护活动使系统持久地满足用户的需要。改正性维护:诊断和改正在使用过程中发现的软件错误。改正性维护:诊断和改正在使用过程中发现的软件错误。改正性维护:诊断和改正在使用过程中发现的软件错误。改正性维护:诊断和改正在使用过程中发现的软件错误。适应性维护:修改软件以适应环境的变化。适应性维护:修改软件以适
36、应环境的变化。适应性维护:修改软件以适应环境的变化。适应性维护:修改软件以适应环境的变化。完善性维护:根据用户的要求改进或扩充软件使它更完善。完善性维护:根据用户的要求改进或扩充软件使它更完善。完善性维护:根据用户的要求改进或扩充软件使它更完善。完善性维护:根据用户的要求改进或扩充软件使它更完善。预防性维护:修改软件为将来的维护活动预先做准备。预防性维护:修改软件为将来的维护活动预先做准备。预防性维护:修改软件为将来的维护活动预先做准备。预防性维护:修改软件为将来的维护活动预先做准备。2024/8/12电子与信息工程学院电子与信息工程学院电子与信息工程学院电子与信息工程学院 计算机系计算机系计
37、算机系计算机系软软件件工工程程导导论论第第 1 章章 软件工程学概述软件工程学概述1.5 1.5 软件过程软件过程软件过程软件过程 是为了获得高质量软件所需要完成的一系列任务的是为了获得高质量软件所需要完成的一系列任务的是为了获得高质量软件所需要完成的一系列任务的是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。框架,它规定了完成各项任务的工作步骤。框架,它规定了完成各项任务的工作步骤。框架,它规定了完成各项任务的工作步骤。1.5.1 1.5.1 瀑布模型瀑布模型瀑布模型瀑布模型 需求分析需求分析需求分析需求分析验证验证验证验证规格说明规格说明规格说明规格说明验
38、证验证验证验证设计设计设计设计验证验证验证验证编码编码编码编码测试测试测试测试综合测试综合测试综合测试综合测试维护维护维护维护2024/8/12电子与信息工程学院电子与信息工程学院电子与信息工程学院电子与信息工程学院 计算机系计算机系计算机系计算机系软软件件工工程程导导论论第第 1 章章 软件工程学概述软件工程学概述1. 1.瀑布模型的特点瀑布模型的特点瀑布模型的特点瀑布模型的特点 (1 1)阶段间具有顺序性和依赖性)阶段间具有顺序性和依赖性)阶段间具有顺序性和依赖性)阶段间具有顺序性和依赖性 a. a.必须等前一阶段的工作完成之后,才能开始后一阶必须等前一阶段的工作完成之后,才能开始后一阶必
39、须等前一阶段的工作完成之后,才能开始后一阶必须等前一阶段的工作完成之后,才能开始后一阶段的工作;段的工作;段的工作;段的工作; b.b.前一阶段的输出文档就是后一阶段的输入文档,因前一阶段的输出文档就是后一阶段的输入文档,因前一阶段的输出文档就是后一阶段的输入文档,因前一阶段的输出文档就是后一阶段的输入文档,因此,只有前一阶段的输出文档正确,后一阶段的工作才能此,只有前一阶段的输出文档正确,后一阶段的工作才能此,只有前一阶段的输出文档正确,后一阶段的工作才能此,只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果。获得正确的结果。获得正确的结果。获得正确的结果。 (2 2)推迟实现的观
40、点)推迟实现的观点)推迟实现的观点)推迟实现的观点 (3 3)质量保证的观点)质量保证的观点)质量保证的观点)质量保证的观点 a. a.每一阶段都必须完成规定的文档,没有交出合格的每一阶段都必须完成规定的文档,没有交出合格的每一阶段都必须完成规定的文档,没有交出合格的每一阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该阶段的任务;文档就是没有完成该阶段的任务;文档就是没有完成该阶段的任务;文档就是没有完成该阶段的任务; b.b.每一阶段结束前都要对所完成的文档进行评审,以每一阶段结束前都要对所完成的文档进行评审,以每一阶段结束前都要对所完成的文档进行评审,以每一阶段结束前都要对所完成
41、的文档进行评审,以便尽早发现问题,改正错误。便尽早发现问题,改正错误。便尽早发现问题,改正错误。便尽早发现问题,改正错误。2024/8/12电子与信息工程学院电子与信息工程学院电子与信息工程学院电子与信息工程学院 计算机系计算机系计算机系计算机系软软件件工工程程导导论论第第 1 章章 软件工程学概述软件工程学概述实际的瀑布模型实际的瀑布模型实际的瀑布模型实际的瀑布模型需求分析需求分析需求分析需求分析验证验证验证验证规格说明规格说明规格说明规格说明验证验证验证验证设计设计设计设计验证验证验证验证编码编码编码编码测试测试测试测试综合测试综合测试综合测试综合测试维护维护维护维护变化的需求变化的需求变
42、化的需求变化的需求验证验证验证验证2024/8/12电子与信息工程学院电子与信息工程学院电子与信息工程学院电子与信息工程学院 计算机系计算机系计算机系计算机系软软件件工工程程导导论论第第 1 章章 软件工程学概述软件工程学概述2. 2.瀑布模型的优点瀑布模型的优点瀑布模型的优点瀑布模型的优点 (1 1)可强迫开发人员采用规范的方法;)可强迫开发人员采用规范的方法;)可强迫开发人员采用规范的方法;)可强迫开发人员采用规范的方法; (2 2)严格地规定了每个阶段必须提交的文档;)严格地规定了每个阶段必须提交的文档;)严格地规定了每个阶段必须提交的文档;)严格地规定了每个阶段必须提交的文档; (3
43、3)要求每个阶段交出的所有产品都必须经过)要求每个阶段交出的所有产品都必须经过)要求每个阶段交出的所有产品都必须经过)要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。质量保证小组的仔细验证。质量保证小组的仔细验证。质量保证小组的仔细验证。3. 3.瀑布模型的缺点瀑布模型的缺点瀑布模型的缺点瀑布模型的缺点 瀑布模型由文档驱动是它的一个主要缺点,很瀑布模型由文档驱动是它的一个主要缺点,很瀑布模型由文档驱动是它的一个主要缺点,很瀑布模型由文档驱动是它的一个主要缺点,很可能导致最终开发出的软件产品不能真正满足用户可能导致最终开发出的软件产品不能真正满足用户可能导致最终开发出的软件产品不能真
44、正满足用户可能导致最终开发出的软件产品不能真正满足用户的需求。的需求。的需求。的需求。2024/8/12电子与信息工程学院电子与信息工程学院电子与信息工程学院电子与信息工程学院 计算机系计算机系计算机系计算机系软软件件工工程程导导论论第第 1 章章 软件工程学概述软件工程学概述1.5.2 1.5.2 快速原型模型快速原型模型快速原型模型快速原型模型 是快速建立起来的可以在计算机上运行的程序,是快速建立起来的可以在计算机上运行的程序,是快速建立起来的可以在计算机上运行的程序,是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的它所能完成的功能往往是最终产品能完成
45、的功能的它所能完成的功能往往是最终产品能完成的功能的它所能完成的功能往往是最终产品能完成的功能的一个子集。一个子集。一个子集。一个子集。快速原型快速原型快速原型快速原型验证验证验证验证规格说明规格说明规格说明规格说明验证验证验证验证设计设计设计设计验证验证验证验证编码编码编码编码测试测试测试测试综合测试综合测试综合测试综合测试维护维护维护维护变化的需求变化的需求变化的需求变化的需求验证验证验证验证2024/8/12电子与信息工程学院电子与信息工程学院电子与信息工程学院电子与信息工程学院 计算机系计算机系计算机系计算机系软软件件工工程程导导论论第第 1 章章 软件工程学概述软件工程学概述快速原型
46、模型的优点:快速原型模型的优点:快速原型模型的优点:快速原型模型的优点: (1 1)有助于保证用户的真实需求得到满足;)有助于保证用户的真实需求得到满足;)有助于保证用户的真实需求得到满足;)有助于保证用户的真实需求得到满足; (2 2)不带反馈环,软件产品开发基本上是线)不带反馈环,软件产品开发基本上是线)不带反馈环,软件产品开发基本上是线)不带反馈环,软件产品开发基本上是线性顺序进行的。性顺序进行的。性顺序进行的。性顺序进行的。 2024/8/12电子与信息工程学院电子与信息工程学院电子与信息工程学院电子与信息工程学院 计算机系计算机系计算机系计算机系软软件件工工程程导导论论第第 1 章章
47、 软件工程学概述软件工程学概述1.5.3 1.5.3 增量模型增量模型增量模型增量模型需求分析需求分析需求分析需求分析验证验证验证验证规格说明规格说明规格说明规格说明验证验证验证验证概要设计概要设计概要设计概要设计验证验证验证验证维护维护维护维护针对每个构件,完成详针对每个构件,完成详针对每个构件,完成详针对每个构件,完成详细设计、编码和集成,细设计、编码和集成,细设计、编码和集成,细设计、编码和集成,经测试后交付给用户经测试后交付给用户经测试后交付给用户经测试后交付给用户2024/8/12电子与信息工程学院电子与信息工程学院电子与信息工程学院电子与信息工程学院 计算机系计算机系计算机系计算机
48、系软软件件工工程程导导论论第第 1 章章 软件工程学概述软件工程学概述增量模型的优点:增量模型的优点:增量模型的优点:增量模型的优点: (1 1)能在较短时间内向用户提交可完成部分工)能在较短时间内向用户提交可完成部分工)能在较短时间内向用户提交可完成部分工)能在较短时间内向用户提交可完成部分工作的产品;作的产品;作的产品;作的产品; (2 2)逐步增加产品功能可以使用户有较充裕的)逐步增加产品功能可以使用户有较充裕的)逐步增加产品功能可以使用户有较充裕的)逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件时间学习和适应新产品,从而减少一个全新的软件时间学习和适应
49、新产品,从而减少一个全新的软件时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。可能给客户组织带来的冲击。可能给客户组织带来的冲击。可能给客户组织带来的冲击。2024/8/12电子与信息工程学院电子与信息工程学院电子与信息工程学院电子与信息工程学院 计算机系计算机系计算机系计算机系软软件件工工程程导导论论第第 1 章章 软件工程学概述软件工程学概述1.5.4 1.5.4 螺旋模型螺旋模型螺旋模型螺旋模型快速原型快速原型快速原型快速原型验证验证验证验证规格说明规格说明规格说明规格说明验证验证验证验证设计设计设计设计验证验证验证验证编码编码编码编码测试测试测试测试综合测试综合测
50、试综合测试综合测试维护维护维护维护变化的需求变化的需求变化的需求变化的需求验证验证验证验证风险分析风险分析风险分析风险分析风险分析风险分析风险分析风险分析风险分析风险分析风险分析风险分析风险分析风险分析风险分析风险分析风险分析风险分析风险分析风险分析风险分析风险分析风险分析风险分析2024/8/12电子与信息工程学院电子与信息工程学院电子与信息工程学院电子与信息工程学院 计算机系计算机系计算机系计算机系软软件件工工程程导导论论第第 1 章章 软件工程学概述软件工程学概述螺旋模型的优点:螺旋模型的优点:螺旋模型的优点:螺旋模型的优点: (1 1)对可选方案和约束条件的强调有利于已有)对可选方案和
51、约束条件的强调有利于已有)对可选方案和约束条件的强调有利于已有)对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的软件的重用,也有助于把软件质量作为软件开发的软件的重用,也有助于把软件质量作为软件开发的软件的重用,也有助于把软件质量作为软件开发的一个重要目标;一个重要目标;一个重要目标;一个重要目标; (2 2)减少了过多测试或测试不足所带来的风险;)减少了过多测试或测试不足所带来的风险;)减少了过多测试或测试不足所带来的风险;)减少了过多测试或测试不足所带来的风险; (3 3)维护只是模型的另一个周期,在维护和开)维护只是模型的另一个周期,在维护和开)维护只是模型的另一个周期,在维护和开)维护只是模型的另一个周期,在维护和开发之间没有本质区别。发之间没有本质区别。发之间没有本质区别。发之间没有本质区别。2024/8/12