第1章软件工程概述
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1) 软件工程目标是生产具有正确性、可用性以及 开销合宜的产品。
正确性指软件产品达到预期功能的程度。 可用性指软件基本结构、实现及文档为用户可用的程
度。 开销合宜是指软件开发、运行的整个开销满足用户要
求的程度。
2020/11/13
9
(2) 软件工程过程是生产一个最终能满足需求 且达到工程目标的软件产品所需要的步骤。软 件工程过程主要包括开发过程、运作过程、维 护过程。它们覆盖了需求、设计、实现、确认 以及维护等活动。
➢ 系统工程的产生比软件工程要早。随着软件在系统中 的比重不断增大,软件工程技术正被应用于系统工程 过程之中。
2020/11/13
13
1.3.3 软件工程不同于传统工程
➢ 软件工程是更广泛的系统工程的一部分。 ➢ 软件是非物质的,经典的数学模型只适用于一部分而不是全
部的软件。 ➢ 软件工程不必一味地模仿传统工程,它们是完全不同的。 ➢ 软件设计者必须做好准备去开发能适应环境变化的软件。这
早期软件开发的经验是:非正规的软件开发并不奏效。多 数软件项目有时甚至要推迟几年才能完成,而且比预计的 费用高,不可靠,难以维护,总之,做得很差。软件开发 陷入危机,结果是硬件成本在下降而软件成本却呈快速增 长之势,因而必须要有新的技术和方法来控制大型软件系 统固有的复杂性。
2020/11/13
6
从本质上讲,计算机科学研究的是构成计算机和软件系统 基础的有关理论和方法,而软件工程则研究软件制作中的实际 问题。正如电子工程师必须具有一定的物理学知识一样,软件 工程人员同样必须具有一定的计算机科学知识。
理论上,所有软件工程都应该以计算机科学理论作为坚 实的基础,但实际情况并非如此。软件工程人员常常必须要用 特定的方法去开发软件。对于实际、复杂的问题,计算机科学 的经典理论不可能总是适用的,这时就需要应用软件工程的方 法来解决。
– 软件具有“复杂性”,其开发和运行常受到 计算机系统的限制。
– 软件成本昂贵,其开发方式目前尚未完全摆 脱手工生产方式。
– 软件不存在磨损和老化问题,但存在退化问 题。
2020/11/13
3
图1.1
图1.2
图1.1给出了硬件的失效率曲线,它是一个U型曲 线(即浴盆曲线),说明硬件随着使用时间的增 加失效率急剧上升。
2020/11/13
5
1.2 软件工程概述
软件工程是一类工程。工程是将理论和知识应用于实践的 科学。就软件工程而言,它借鉴了传统工程的原则和方法, 以求高效地开发高质量软件。其中应用了计算机科学、数 学和管理科学。计算机科学和数学用于构造模型与算法, 工程科学用于制定规范、设计范型、评估成本及确定权衡, 管理科学用于计划资源、对质量和成本进行管理。
70年代初,自“软件工程”这一概念提出以来,主要围绕软 件过程以及软件复用,开展了有关软件生产技术和软件生产 管理的研究与实践。
其主要成果有:提出了应用广泛的面向对象语言以及相关的 面向对象方法,大力开展了计算机辅助软件工程的研究与实 践。
尤其是近几年来,针对软件复用及软件生产,软件构件技术 以及软件质量控制技术、质量保证技术得到了广泛的应用。
是软件应该具备的性质。也是软件工程不同于传统工程的地 方。
第1章 软件工程概述
【本章重点】软件的概念和特点、软件工程的 框架及基本原则 【本章用途】本章论述的有关软件工程的基本 概念、原理及相关知识能帮助读者对软件工程 的原理和方法有一个概括的、本质的认识。
2020/11/13
1
1.1 软件的概念、特点与分类
许多人把软件这个术语等同于计算机程序, 其实这种理解是很狭隘的。
(2)定制软件产品 这类软件产品受特定的客户委托,由软件承来自百度文库商专 门为这类客户开发。这类软件有:电子设备的控制 系统、特定的业务处理系统和空中交通管制系统等。
这两类产品的一个重要区别在于:在通用软件中, 软件描述由开发者自己完成,而定制软件产品的软 件描述通常是由客户给出,开发者必须按客户要求 进行开发。
软件是程序和所有使程序正确运行所需要的 相关文档和配置信息。
一个软件系统通常包含大量独立的程序、用 于设置这些程序的配置文件、描述系统结构的系 统文档和如何使用该系统的用户文档,以及告知 用户下载最新产品信息的Web站点。
2020/11/13
2
软件具有如下特点:
– 软件是一种逻辑实体,不是具体的物理实体。 – 软件产品的生产主要是研制。
目前各个软件企业都十分重视资质认证,并想通过这些工作 进行企业管理和技术的提升。
2020/11/13
7
IEEE【IEE93】给出了软件工程的定义:
“把系统的、规范的、可度量的方法应用 于软件的开发、运行和维护过程,即将工程应 用于软件;并研究以上实现的途径”
2020/11/13
8
软件工程(Software Engineering)的框架可概括为:目 标、过程和原则。
2020/11/13
10
(3) 软件工程的原则是指围绕工程设计、工
程支持以及工程管理在软件开发过程中必须 遵循的原则。
四项基本原则: 选取适宜的开发范型。
采用合适的设计方法。
提供高质量的工程支持。
重视开发过程的管理。
2020/11/13
11
1.3 关于软件工程的问题
1.3.1软件工程不同于计算机科学
2020/11/13
12
1.3.2 软件工程不同于系统工程
➢ 系统工程应该是基于计算机的系统工程,研究由软件 起主导作用的、有关复杂系统的开发和进化的方方面 面,包括硬件开发、系统决策、过程设计、系统实施 和软件工程等。
➢ 系统工程人员要做的是描述这个系统,定义总的体系 结构,然后集成各个组件以完成整个系统。他们较少 关注系统各组件(硬件、软件等)的工程问题。
图1.2所描述的软件失效率曲线,它没有U型曲线
的右半翼,表明软件随着使用时间的增加失效率
降低,因为软件不存在磨损和老化问题,然而存
2在020/1退1/13化问题。
4
软件产品有以下两类:
(1)通用软件产品 这类软件产品由软件开发机构制作,在市场上公开 销售,可以独立使用。这类软件产品有:数据库软 件、字处理软件、绘图软件以及工程管理工具等。
正确性指软件产品达到预期功能的程度。 可用性指软件基本结构、实现及文档为用户可用的程
度。 开销合宜是指软件开发、运行的整个开销满足用户要
求的程度。
2020/11/13
9
(2) 软件工程过程是生产一个最终能满足需求 且达到工程目标的软件产品所需要的步骤。软 件工程过程主要包括开发过程、运作过程、维 护过程。它们覆盖了需求、设计、实现、确认 以及维护等活动。
➢ 系统工程的产生比软件工程要早。随着软件在系统中 的比重不断增大,软件工程技术正被应用于系统工程 过程之中。
2020/11/13
13
1.3.3 软件工程不同于传统工程
➢ 软件工程是更广泛的系统工程的一部分。 ➢ 软件是非物质的,经典的数学模型只适用于一部分而不是全
部的软件。 ➢ 软件工程不必一味地模仿传统工程,它们是完全不同的。 ➢ 软件设计者必须做好准备去开发能适应环境变化的软件。这
早期软件开发的经验是:非正规的软件开发并不奏效。多 数软件项目有时甚至要推迟几年才能完成,而且比预计的 费用高,不可靠,难以维护,总之,做得很差。软件开发 陷入危机,结果是硬件成本在下降而软件成本却呈快速增 长之势,因而必须要有新的技术和方法来控制大型软件系 统固有的复杂性。
2020/11/13
6
从本质上讲,计算机科学研究的是构成计算机和软件系统 基础的有关理论和方法,而软件工程则研究软件制作中的实际 问题。正如电子工程师必须具有一定的物理学知识一样,软件 工程人员同样必须具有一定的计算机科学知识。
理论上,所有软件工程都应该以计算机科学理论作为坚 实的基础,但实际情况并非如此。软件工程人员常常必须要用 特定的方法去开发软件。对于实际、复杂的问题,计算机科学 的经典理论不可能总是适用的,这时就需要应用软件工程的方 法来解决。
– 软件具有“复杂性”,其开发和运行常受到 计算机系统的限制。
– 软件成本昂贵,其开发方式目前尚未完全摆 脱手工生产方式。
– 软件不存在磨损和老化问题,但存在退化问 题。
2020/11/13
3
图1.1
图1.2
图1.1给出了硬件的失效率曲线,它是一个U型曲 线(即浴盆曲线),说明硬件随着使用时间的增 加失效率急剧上升。
2020/11/13
5
1.2 软件工程概述
软件工程是一类工程。工程是将理论和知识应用于实践的 科学。就软件工程而言,它借鉴了传统工程的原则和方法, 以求高效地开发高质量软件。其中应用了计算机科学、数 学和管理科学。计算机科学和数学用于构造模型与算法, 工程科学用于制定规范、设计范型、评估成本及确定权衡, 管理科学用于计划资源、对质量和成本进行管理。
70年代初,自“软件工程”这一概念提出以来,主要围绕软 件过程以及软件复用,开展了有关软件生产技术和软件生产 管理的研究与实践。
其主要成果有:提出了应用广泛的面向对象语言以及相关的 面向对象方法,大力开展了计算机辅助软件工程的研究与实 践。
尤其是近几年来,针对软件复用及软件生产,软件构件技术 以及软件质量控制技术、质量保证技术得到了广泛的应用。
是软件应该具备的性质。也是软件工程不同于传统工程的地 方。
第1章 软件工程概述
【本章重点】软件的概念和特点、软件工程的 框架及基本原则 【本章用途】本章论述的有关软件工程的基本 概念、原理及相关知识能帮助读者对软件工程 的原理和方法有一个概括的、本质的认识。
2020/11/13
1
1.1 软件的概念、特点与分类
许多人把软件这个术语等同于计算机程序, 其实这种理解是很狭隘的。
(2)定制软件产品 这类软件产品受特定的客户委托,由软件承来自百度文库商专 门为这类客户开发。这类软件有:电子设备的控制 系统、特定的业务处理系统和空中交通管制系统等。
这两类产品的一个重要区别在于:在通用软件中, 软件描述由开发者自己完成,而定制软件产品的软 件描述通常是由客户给出,开发者必须按客户要求 进行开发。
软件是程序和所有使程序正确运行所需要的 相关文档和配置信息。
一个软件系统通常包含大量独立的程序、用 于设置这些程序的配置文件、描述系统结构的系 统文档和如何使用该系统的用户文档,以及告知 用户下载最新产品信息的Web站点。
2020/11/13
2
软件具有如下特点:
– 软件是一种逻辑实体,不是具体的物理实体。 – 软件产品的生产主要是研制。
目前各个软件企业都十分重视资质认证,并想通过这些工作 进行企业管理和技术的提升。
2020/11/13
7
IEEE【IEE93】给出了软件工程的定义:
“把系统的、规范的、可度量的方法应用 于软件的开发、运行和维护过程,即将工程应 用于软件;并研究以上实现的途径”
2020/11/13
8
软件工程(Software Engineering)的框架可概括为:目 标、过程和原则。
2020/11/13
10
(3) 软件工程的原则是指围绕工程设计、工
程支持以及工程管理在软件开发过程中必须 遵循的原则。
四项基本原则: 选取适宜的开发范型。
采用合适的设计方法。
提供高质量的工程支持。
重视开发过程的管理。
2020/11/13
11
1.3 关于软件工程的问题
1.3.1软件工程不同于计算机科学
2020/11/13
12
1.3.2 软件工程不同于系统工程
➢ 系统工程应该是基于计算机的系统工程,研究由软件 起主导作用的、有关复杂系统的开发和进化的方方面 面,包括硬件开发、系统决策、过程设计、系统实施 和软件工程等。
➢ 系统工程人员要做的是描述这个系统,定义总的体系 结构,然后集成各个组件以完成整个系统。他们较少 关注系统各组件(硬件、软件等)的工程问题。
图1.2所描述的软件失效率曲线,它没有U型曲线
的右半翼,表明软件随着使用时间的增加失效率
降低,因为软件不存在磨损和老化问题,然而存
2在020/1退1/13化问题。
4
软件产品有以下两类:
(1)通用软件产品 这类软件产品由软件开发机构制作,在市场上公开 销售,可以独立使用。这类软件产品有:数据库软 件、字处理软件、绘图软件以及工程管理工具等。