软件工程概述
软件工程概述和发展趋势

软件工程概述和发展趋势软件工程是一门涉及软件开发、维护和管理的学科,旨在提高软件开发的效率和质量,以满足不断增长的软件需求。
本文将从软件工程的定义、发展历程以及当前的发展趋势进行探讨。
一、软件工程的定义和概述软件工程是将工程原理、方法和工具应用于软件开发和维护的学科。
它与传统的工程学科一样,采用系统化和结构化的方法来解决软件开发中的问题。
软件工程主要包括需求分析、设计、编码、测试和维护等阶段,并且强调团队合作和质量控制。
软件工程的发展是为了解决软件危机而起,软件危机指的是在软件开发过程中出现的成本超支、进度延误、质量不达标等问题。
软件工程的目标是通过规范化的过程和工具来提高软件项目的管理和控制,从而降低软件开发的风险。
二、软件工程的发展历程1. 面向过程的软件开发方法早期的软件开发方法主要关注程序编写的技术和算法,忽略了软件开发中的其他环节。
这导致了开发进程的混乱和质量的不稳定。
2. 结构化软件开发方法20世纪70年代,随着软件需求的增长,人们开始寻求更系统化的开发方法。
结构化软件开发方法将软件开发分解为模块化的子任务,有助于降低复杂度并提高可维护性。
3. 面向对象的软件开发方法20世纪80年代,面向对象的软件开发方法逐渐兴起。
它将现实世界中的实体和行为映射到软件模型中,提供了更灵活和可扩展的开发方式。
4. 敏捷开发方法21世纪初,敏捷开发方法成为热点。
敏捷开发强调迭代和自组织团队的工作方式,注重用户反馈和快速响应变化的需求。
三、软件工程的发展趋势1. 人工智能和机器学习的应用人工智能和机器学习的快速发展将在软件工程领域带来新的机遇和挑战。
通过智能算法和模型训练,可以提高软件开发、测试和维护的效率。
2. 软件工程的自动化随着自动化技术的进步,软件工程领域也在寻求自动化解决方案。
例如,自动化测试和持续集成工具的广泛应用,可以降低测试成本并提高交付速度。
3. 云计算和大数据的发展云计算和大数据技术的发展为软件工程提供了更好的资源管理和数据处理能力。
软件工程概述

3.克服危机的途径
1968年秋季,NATO(北约)的科技委员会召集了 近50名一流的编程人员、计算机科学家和工业界巨头, 讨论和制定摆脱“软件危机”的对策。由于认识到软 件的设计、实现、维护和传统的工程规则有相同的基 础,在那次会议上首次提出了“软件工程” (software engineering)这个概念。
计算机科学与工程学院
2018/7/2
27
软件工程方法:为软件开发提供“如何做”的技术。 它包括了项目计划、需求分析、系统设计、程序实现、 测试与维护等一系列的任务。 软件工程工具:为过程和方法提供自动的或半自动的 支持。这些软件工具被集成起来,建立起一个支持软 件开发的系统,称之为计算机辅助软件工程(CASE, Computer Aided Software Engineering)。CASE集成 了软件、硬件和一个存放开发过程信息的软件工程数 据库,形成了一个软件工程环境。
2018/7/2
计算机科学与工程学院
20
2.危机的原因
①用户对软件需求的描述不精确,可能有遗漏、有二 义性、有错误,甚至在软件开发过程中,用户还提出 修改软件功能、界面、支撑环境等方面的要求。 ②软件开发人员对用户需求的理解与用户的本来愿望 有差异,这种差异必然导致开发出来的软件产品与用 户要求不一致。 ③大型软件项目需要组织一定的人力共同完成,多数 管理人员缺乏开发大型软件系统的经验,而多数软件 开发人员又缺乏管理方面的经验。各类人员的信息交 流不及时、不准确、有时还会产生误解。
2018/7/2
计算机科学与工程学院
8
故 障 率
生命 初期 "磨损"后
故 障 率
实际曲线 修改
第1章软件工程和软件测试概述

1.1软件工程概述- 软件工程
• 1968年北大西洋公约组织的计算机科学家在联邦 德国召开国际会议,讨论软件危机问题,在这次 会议上正式提出并使用了“软件工程”这个名词。 • 软件工程是指导计算机软件开发和维护的一门工 程学科,它是采用工程的概念、原理、技术和方 法来开发与维护软件,把经过时间考验而证明正 确的管理技术和当前能够得到的最好的技术方法 结合起来,以经济地开发出高质量的软件并有效 地进行维护。
• 实际问题的复杂性 实际问题的复杂性 • 程序逻辑结构的复杂性 程序逻辑结构的复杂性
5
1.1软件工程概述- 软件的分类
• 按软件的功能进行划分: 按软件的功能进行划分:
– 系统软件
• • • • • • • • • 操作系统 数据库管理系统 设备驱动程序 通信处理程序等
– 支撑软件
文本编辑程序 文件格式化程序 磁盘向磁带向数据传输的程序 程序库系统 支持需求分析、设计、实现、 支持需求分析、设计、实现、测试和支持管理的软件
• 软件是计算机系统中与硬件相互依存的另一部
它是包括程序 及其相关文档 分,它是包括程序,数据及其相关文档的完整集 它是包括程序,数据及其相关文档的完整集 其中: 合。其中:
– 程序 程序(instructions)是按事先设计的功能和性能要求 是按事先设计的功能和性能要求 执行的指令序列 – 数据 数据(data)是使程序能正常操纵信息的数据结构 是使程序能正常操纵信息的数据结构 – 文档 文档(documents)是与程序开发,维护和使用有关的 是与程序开发, 是与程序开发 图文材料
– 问题定义 – 可行性研究 – 需求分析
18
1.1软件工程概述-软件开发时期
• 开发时期具体设计和实现在前一个时期定 义的软件,它通常由下述4个阶段组成
软件工程概述

瀑布模型 瀑布模型把软件生存期划分为计划、开发和运行三个时期,每个时期 又划分为若干个阶段,规定了制定开发计划、进行需求分析和说明、 软件设计、程序编码、测试及运行维护等各项工程活动,如图1—6所 示。 在整个瀑布模型中贯穿有以下几个观点: 1)各阶段具有顺序性,一个阶段的开始是以上一阶段工作作为基础的。
•
•
6)开发小组的人员应少而精
7)承认不断改进软件工程实践的必要性
软件工程的目标与原则
软件工程开发的目标: • 1)能够满足基本需要
• 2)开发成本要小
• 3)较低的维护费用 • 4)及时完工并交付使用
• 5)可移植性好
更具体的产品性能指标是,开发的软件产品应该具有可修改性、有效性、可 靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和 可互操作性。
ö Á Ô ¿ 3
æ · ¸ ñ Ë µ Ã ÷
ö Á Ô ¿ n
æ · ¸ ñ Ë µ Ã ÷
è » É Æ
µ Ï Ê Ö ¹ Í » ¯ ³ É
º · ¼ ¶ ¿ Í º §
螺旋模型
螺旋模型是生命周期模型和快速原型模型的结合,其基本思想是借助构建原型来降低 风险,把软件开发的每一个阶段都看作是增加了风险分析的快速原型模型。螺旋模型 的每一个周期都包括需求定义、风险分析、工程实现和评审4个部分,软件开发的整个 过程就是这4个部分的迭代,每迭代一次,过程就完成一个周期,软件开发就前进一个 层次,系统就生成一个新的版本。 螺旋模型结构图如图1-9所示。 螺旋模型的特点:
专业应用程序
•操作系统 •操作环境 •数据库管理系统 •通信管理器
•系统应用程序 • 执行管理器 • 安全管理器
•程序设计语言 •翻译器 •程序设计环境 •计算机辅助
软件工程专业描述及就业方向分析

软件工程专业描述及就业方向分析软件工程是一门涉及软件开发、测试、维护和管理的学科,旨在培养学生具备软件系统设计与开发的专业能力。
随着信息技术的飞速发展,软件工程专业已成为当今热门的职业选择之一。
本文将对软件工程专业的概要描述以及就业方向进行分析。
一、软件工程专业概述1.1 课程设置软件工程专业的课程设置主要包括计算机基础知识、编程语言、软件开发工具、数据库原理、算法与数据结构、人机交互与界面设计等方面的学习内容。
通过学习这些课程,学生可以获得从事软件开发与工程管理所需的理论基础和实践能力。
1.2 技能要求软件工程专业要求学生具备良好的逻辑思维能力、系统分析与设计能力、编程实现能力、问题解决与调试能力、团队合作精神以及不断学习和创新的能力。
此外,沟通能力和项目管理能力也是软件工程师需具备的重要素质。
二、软件工程专业的就业方向2.1 软件开发工程师软件开发工程师是软件工程专业毕业生最常见的就业方向之一。
软件开发工程师主要负责软件系统的设计、编码、调试与测试工作。
他们熟悉各种编程语言和开发工具,能够按照客户需求进行软件开发并保证软件的质量。
2.2 系统分析师系统分析师负责对软件开发项目进行需求分析和系统设计。
他们与客户沟通,了解并明确客户需求,将其转化为具体的功能要求和系统设计方案。
系统分析师需要具备较强的业务分析能力和沟通能力,能够有效地协调各方利益,实现项目的顺利进行。
2.3 软件测试工程师软件测试工程师负责对软件产品进行全面而系统的测试,确保软件的质量和稳定性。
他们需要编写测试用例、执行测试计划并进行缺陷管理。
软件测试工程师需要具备优秀的问题解决能力和分析能力,能够快速定位和解决软件缺陷问题。
2.4 项目经理项目经理负责软件开发项目的规划、组织和管理以及与客户的沟通。
他们需要协调项目团队成员,合理分配任务和资源,并确保项目按时交付和达到客户要求。
项目经理需要具备较强的组织和协调能力,能够在项目管控过程中避免和解决各种问题。
第一章软件工程概述

第一章软件工程概述第一章软件工程概述1.1软件危机1.1.1软件危机的介绍1)软件危机在计算机软件的开发和维护过程中所遇到的一系列严重问题。
软件危机的两个主要问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
软件危机的典型表现:(2)用户对“已完成的”软件系统不满意的现象经常发生。
(3)软件产品的质量往往靠不住。
(4)软件常常是不可维护的。
(5)软件通常没有适当的文档资料。
(6)软件成本在计算机系统总成本中所占的比例逐年上升。
(7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入趋势。
1.1.2产生软件危机的原因软件本身特点:缺乏可见性,在运行之前往往难以衡量,质量也难以评价不会因为长期使用而用坏,软件维护通常意味着修正或修改原来的设计,较难维护。
规模庞大,需分工合作,如何保证每个人的工作合在一起是极端复杂的问题。
软件开发与维护的方法不正确产生软件危机的原因可归结为两个重要的方面:软件生产本身存在的复杂性;软件开发所使用的方法和技术。
软件生命周期:一个软件从定义、开发、使用和维护直到最早被废弃。
软件产品必须由一个完整的配置组成(程序、文档、数据)1.1.3消除软件危机的途径正确认识计算机软件认识到软件开发是一个协同配合、共同完成的工程项目并吸取经验。
推广使用已总结的开发软件成功的技术和方法开发使用更好的软件工具1.2软件工程的介绍软件工程是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地、高效的开发出高质量的软件并有效地维护它,这就是软件工程。
软件工程关注于大型程序的构造软件工程的中心课题是控制复杂性软件经常变化开发软件的效率非常重要和谐地合作是开发软件的关键软件必须有效地支持它的用户在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品。
第1章 软件工程概述

因而软件成本相当昂贵;
(6)相当多的软件开发涉及到社会因素。
2017/10/26 第4页 软件工程
3、软件的分类:
(1)按功能分类 a、系统软件:支持计算机系统各个部件、相关的软件
和数据协调、高效地工作的软件。如:OS、DBMS、
DRIVER、COMMUNICATION-SYSTEM。 b、支撑软件:协助用户开发软件的工具性软件,文本 编辑软件。如:PSL/PSA(问题描述语言、问题描述分析 器)、图形软件包、预编译程序、静态分析程序。
是批处理还是人机交互,信息存储是采用文件系统还是数据库?),方案的级
别有:低、中、高等级,每种方案都用系统流程图或其它工具加以描述。推荐 一种方案。最后确定一种方案。 (4)完成的任务:可能的解法(每种解法的系统流程图和成本效益分析),推 荐的系统结构(层次图或结构图)。 总体设计结束的标志是提交总体设计说明书、数据库或数据结构说明书和 集成测试计划等文件。
软件工程
2017/10/26
第1页
软件工程
第一章 软件工程概述
软件 软件危机 软件工程
2017/10/26
第2页
软件工程
1.1 软
1、什么叫软件?
件
(1)广义软件:相对于有形物理实体,把技术条件、管理法
规以及人员素质等无形因素称为软件。 (2)计算机软件:是与计算机硬件相对应的计算机组成部分, 包括程序、数据及其相关文档的完整集合。 Boehm:“软件是程序以及开发、使用和维护程序所需的所有
2017/10/26
第6页
软件工程
(4)按功能软件服务对象分类 a、项目软件:受特定客户委托由一个或多个软件 开发机构在合同的约束下开发出来的软件。 b、产品软件:提供给市场的商品。
软件工程概述

软件工程概述软件工程是指应用系统化、规范化、可重复的方法构建和维护软件的一门学科。
它涵盖了软件开发的全过程,包括需求分析、设计、编码、测试、部署和维护等环节。
软件工程旨在提高软件开发过程的效率和质量,以满足不断增长的软件需求。
本文将从软件工程的定义、发展历程以及核心概念等方面进行综述。
1. 软件工程的定义软件工程是一门工程学科,它应用了工程原理、管理原则和科学方法来开发和维护软件。
软件工程是一种系统化、规范化的方法论,旨在提高软件开发过程的效率和质量,以满足用户需求。
2. 软件工程的发展历程软件工程的起源可以追溯到20世纪50年代,当时软件开发项目规模越来越大,传统的编程方法已经无法满足需求。
于是人们开始探索一种更有效的软件开发方法。
在20世纪60年代末,软件工程开始被正式提出并逐渐成为软件开发的主流方法。
在20世纪70年代,软件工程的概念逐渐得到了认可,并且出现了一系列软件工程方法论,如结构化设计、模块化、自顶向下等。
这些方法大大提高了软件开发的效率和质量。
进入21世纪,随着互联网和移动互联网的兴起,软件工程的发展进入了一个新的阶段。
敏捷开发、DevOps等新方法被广泛采用,以适应快速迭代和持续交付的需求。
3. 软件工程的核心概念(1)需求分析:需求分析是软件工程的第一步,它关注的是用户的需求和期望。
通过与用户充分沟通、访谈和调研,软件工程师能够准确把握用户的需求,为后续的设计和开发工作打下基础。
(2)设计:软件设计是根据需求分析的结果,将软件系统划分为一系列的模块,并定义模块之间的接口和交互关系。
设计阶段需要考虑软件的可维护性、可扩展性和安全性等问题。
(3)编码:编码是将设计好的软件模块转化为机器语言的过程。
在编码过程中,开发人员需要遵循编码规范和最佳实践,确保代码的可读性、可维护性和高效性。
(4)测试:测试是保证软件质量的关键环节。
通过设计和执行测试用例,测试工程师能够发现和修复软件中的错误和缺陷,以确保软件在交付给用户之前达到预期的质量标准。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2018/7/11
计算机科学与工程学院
10
三、软件的分类
给出一个科学的、统一的、严格的计算机软件 分类标准是不现实的。但对软件的类型进行必要的 划分,对于开发和维护软件是很有价值的。因此, 有必要从不同角度对计算机软件做适当的分类。
2018/7/11
计算机科学与工程学院
11
1.按软件的功能进行划分:
商业数据处理软件 工程与科学计算软件 计算机辅助设计/制造软件 系统仿真软件 智能产品嵌入软件 医疗、制药软件 事务管理、办公自动化软件 计算机辅助教学软件
2018/7/11
计算机科学与工程学院
13
2.按软件规模进行划分:
类别 参加人员数 研制期限 源程序行数 微型 1 1~4周 0.5k 小型 1 1~6月 1k~2k 中型 2~5 1~2年 5k~50k 大型 5~20 2~3年 50k~100k 甚大型 100~1000 4~5年 1M(=1000k) 极大型 2000~5000 5~10年 1M~10M
第一章 软件工程概述
1.1 1.2 1.3 1.4
软件的发展历史 软件工程与软件过程 软件开发的基本策略 软件的错误观点
2018/7/11
计算机科学与工程学院
1
1.1 软件和软件危机
一、发展历史
1. 早期阶段——程序设计阶段 在计算机发展的早期阶段,人们认为计算机的主 要用途是快速计算,软件编程简单,不存在什么系统 化的方法,开发没有任何管理,程序的质量完全依赖 于程序员个人的技巧。
2018/7/11 计算机科学与工程学院 30
2.信息隐藏(information hiding)
•将模块中的软件设计决策封装起来的技术。 •按照信息隐藏的原则,系统中的模块应设计成“黑箱”,模块 外部只能使用模块接口说明中给出的信息,如操作、数据类型等 等。
3.模块化(modularity)
使程序有许多个逻辑上相对独立的模块组成。
2018/7/11
计算机科学与工程学院
8
故 障 率
生命 初期 "磨损"后
故 障 率
实际曲线 修改
理想曲线
时 间
时 间
硬件故障率的变化曲线
软件的故障率曲线
2018/7/11
计算机科学与工程学院
9
(4)大多数软件是自定的,而不是通过已有构件组装而成的。 迄今为止,软件的开发尚未完全摆脱手工的方式。 (5)软件成本相当昂贵。 (6)软件本身是复杂的。 软件比任何其他人类制造的结构更复杂,甚至硬件的复杂 性和软件相比也是微不足道的。软件本质上的复杂性是软件产 品难以理解,影响软件过程的管理,并使维护过程十分复杂。
CMM——Software Capability Maturity Model
软件能力成熟度模型
2018/7/11 计算机科学与工程学院 4
4. 第四阶段
强大的桌面系统和计算机网络迅速发展的时期 计算机体系结构由中央主机控制方式变为客户机/服务器 方式 专家系统和人工智能软件进入了实际应用, 出现了并行计算和网络计算的研究, 面向对象技术在许多领域迅速取代了传统软件开发方法 软件从个性化的程序变为工程化的产品, 从“软件=程序”发展为“软件=程序+数据+文档”。 软件的需求成为软件发展的动力, 软件工作的考虑范围不再只顾及程序的编写,而是涉及到 软件的整个生命周期。
2018/7/11
计算机科学与工程学院
24
软件工程的根本在于提高软件的质量与生产率, 最终实现软件的工业化生产。在“软件工程” 的概念提出后的几十年里,各种有关软件的 技术、思想、方法和概念层出不穷,典型的 包括结构化的方法、面向对象方法、软件开 发模型和软件开发过程等,软件工程逐步发 展为一门独立的科学。
2018/7/11 计算机科学与工程学院 21
④软件项目开发人员不能有效地、独立自主地处理大 型软件的全部关系和各个分支,因此容易产生疏漏和 错误。 ⑤缺乏有力的方法和工具方面的支持,过分地依靠程 序人员在软件开发过程中的技巧和创造性,加剧软件 产品的个性化。 ⑥软件产品的特殊性和人智力的局限性,导致人们无 力处理“复杂问题”。所谓“复杂问题”的概念是相 对的,一旦人们采用先进的组织形式、开发方法和工 具提高了软件的开发效率和能力,新的、更大的、更 复杂的问题又摆在人们面前。
2018/7/11
计算机科学与工程学院
2
2. 第二阶段--程序系统阶段
从60年代中期到70年代末期 多用户系统引入了人机交互的新概念, 实时系统能够从多个源收集、分析和转换数据,从而使得 进程的控制和输出的产生是以毫秒而不是分钟来进行, 产生了第一代数据库管理系统 出现了软件产品和“软件作坊”的概念,设计人员开发程 序不再像早期阶段那样只为自己的研究工作需要,而是为 了用户更好地使用计算机。被开发的软件可以在较宽的范 围内使用。主机、微机上的程序可以有数百上千的用户。 出现了“软件危机”问题。 采用“软件工程”的方法来解决“软件危机”问题。
2018/7/11
计算机科学与工程学院
5
软件的发展历史图
早期 面向批处理 有限的分布 自定义软件 第二阶段 多用户 实时 数据库 软件产品 第三阶段 分布式系统 嵌入“智能” 低成本硬件 消费者的影响 第四阶段 强大的桌面系统 面向对象技术 专家系统 人工神经网络 并行计算 网络计算机
1950
1960
2018/7/11
计算机科学与工程学院
3
3. 第三阶段—软件工程阶段
1970年代中期--1980年代末期 分布式系统极大地提高了计算机系统的复杂性,网络 的发展对软件开发提出了更高的要求, 特别是微处理器的出现和广泛应用,孕育了一系列的 智能产品。 软件开发技术的度量问题受到重视,最著名的有软件 工作量估计COCOMO模型、软件过程改进模型CMM等。
2018/7/11
计算机科学与工程学院
14
3.按软件工作方式划分:
实时处理软件 分时软件 交互式软件 批处理软件
2018/7/11
计算机科学与工程学院
15
4.按软件服务对象的范围划分:
项目软件:受某个特定用户或机构 的委托,在合同的约束下靠罚机构 开发的软件。
产品软件:软件开发机构开发出来 直接提供给市场的。
•模块(module)是程序中逻辑上相对独立的单元; •模块的大小要适中; •高内聚、低耦合。
2018/7/11 计算机科学与工程学院 31
1970
1980
1990
2000
2018/7/11
计算机科学与工程学院
6
二、软件的概念和特点
1.软件的概念,有3层含义:
(1)能够完成预定功能和性能的可执行指令 (program); (2)使得程序能够适当地操作信息的数据结构 (data); (3)描述程序的操作和使用的文档(document)。
2018/7/11
计算机科学与工程学院
7
2.软件具有以下不同的特点:(来自)软件是逻辑的,而不是物理的产品。
(2)软件是由开发或工程化而形成的,没有明显 的制造过程。软件成本集中于“开发”上,意味 着软件项目不能像硬件制造项目那样来管理。 (3)软件在运行和使用期间,不存在硬件那样的 磨损和老化问题,但它存在退化问题,开发人员 必须维护软件。
2018/7/11
计算机科学与工程学院
25
软件工程是一种层次化的技术。包含了一个观 点和三个要素,如下图:
工具 方法 过程 质量焦点
2018/7/11
计算机科学与工程学院
26
质量观点:
软件工程必须以有组织的质量保证为基础开发软件。
三要素:
软件工程过程:是进行一系列有组织的活动,从而 能够合理和及时地开发出计算机软件。过程定义了 技术方法的采用、工程产品(包括模型、文档、数 据、报告、表格等)的产生、里程碑的建立、质量 的保证和变更的管理。
计算机科学与工程学院
2018/7/11
27
软件工程方法:为软件开发提供“如何做”的技术。 它包括了项目计划、需求分析、系统设计、程序实现、 测试与维护等一系列的任务。 软件工程工具:为过程和方法提供自动的或半自动的 支持。这些软件工具被集成起来,建立起一个支持软 件开发的系统,称之为计算机辅助软件工程(CASE, Computer Aided Software Engineering)。CASE集成 了软件、硬件和一个存放开发过程信息的软件工程数 据库,形成了一个软件工程环境。
2018/7/11 计算机科学与工程学院 29
三、软件工程学的原则
为了开发出高质量低成本的软件,在软件开发 过程中必须遵循下列软件工程原则:
1.抽象(abstraction) 抽取事物最基本的特性和行为,忽略非基本 的细节。采用分层次抽象的办法可以控制软件 开发过程的复杂性,有利于软件的可理解性和 开发过程的管理。
软件危机的具体表现如下:
(1)软件开发的进度难以控制,经常出现经费 超预算、完成期限一再拖延的现象。
2018/7/11
计算机科学与工程学院
18
(2)软件需求在开发初期不明确,导致矛盾在后期 集中暴露,从而对整个开发过程带来灾难性的后果。
图定性地描述了在不同时期引入同一个变动需要付出的代价的变化趋势。
2018/7/11
计算机科学与工程学院
23
1.2 软件工程
一、软件工程的概念
1983年,IEEE(Institute of Electrical & Electronic Engineers,电气与电子工程师协会)给 出了一个全面的定义: 软件工程: 是研究和应用如何以系统化的、规范的、 可度量的方法去开发、运行和维护软件,即把工程化 应用到软件上。