软件工程——理论与实践教学课件 ppt 作者 吕云翔 王昕鹏 邱玉龙 第一章 软件工程概述

上传人:E**** 文档编号:89487004 上传时间:2019-05-25 格式:PPTX 页数:97 大小:5.87MB
返回 下载 相关 举报
软件工程——理论与实践教学课件 ppt 作者  吕云翔 王昕鹏 邱玉龙 第一章 软件工程概述_第1页
第1页 / 共97页
软件工程——理论与实践教学课件 ppt 作者  吕云翔 王昕鹏 邱玉龙 第一章 软件工程概述_第2页
第2页 / 共97页
软件工程——理论与实践教学课件 ppt 作者  吕云翔 王昕鹏 邱玉龙 第一章 软件工程概述_第3页
第3页 / 共97页
软件工程——理论与实践教学课件 ppt 作者  吕云翔 王昕鹏 邱玉龙 第一章 软件工程概述_第4页
第4页 / 共97页
软件工程——理论与实践教学课件 ppt 作者  吕云翔 王昕鹏 邱玉龙 第一章 软件工程概述_第5页
第5页 / 共97页
点击查看更多>>
资源描述

《软件工程——理论与实践教学课件 ppt 作者 吕云翔 王昕鹏 邱玉龙 第一章 软件工程概述》由会员分享,可在线阅读,更多相关《软件工程——理论与实践教学课件 ppt 作者 吕云翔 王昕鹏 邱玉龙 第一章 软件工程概述(97页珍藏版)》请在金锄头文库上搜索。

1、第一章 软件工程概述,软件,软件危机,软件工程,软件生命周期,软件开发模型及其发展,1.1,1.2,1.3,1.4,1.5,软件工程概述,1.6,软件工程的相关工具,1.1 软件,软件的概念 软件的特点 软件的分类,软件的概念,软件是计算机系统的“思维中枢”,它与计算机硬件相互作用,互相配合,从而实现了特定的系统功能。 在计算机发展初期,软件就是指程序。 随着计算机技术的发展、计算机应用的日益普及、软件日益复杂、规模日益增大,人们开始意识到软件并不仅仅等于程序。,程序是人们为了 完成特定的功能而编制的 一组指令集,它由计算机的 语言描述,并且能在计算机 系统上执行。,软件的概念,软件的组成 计

2、算机程序 人们为了完成特定的功能而编制的一组指令集。 数据 程序能处理的具有一定数据结构的信息。 软件文档 与程序的开发、维护和使用有关的图文资料,如软件开发计划书、需求规格说明书、设计说明书、测试分析报告和用户手册等。,软件的特点,作为计算机系统的重要组成部分,计算机软件的功能依赖于计算机硬件的支持。与硬件相比,计算机软件具有以下一些特点: 不可见性 人们却无法直接观察计算机软件的物理形态,只能通过观察它的实际运行情况来了解它的功能、特性和质量等。 大量脑力劳动 硬件制造,除了脑力劳动外,还需要大量的体力劳动。 使用过程中不会磨损 对于计算机软件而言,不存在像硬件一样的磨损和老化现象,因为它

3、不会受到引起硬件磨损的环境因素(比如温度、振动、灰尘和阳光等)的影响。但是软件却存在着缺陷维护和技术更新的问题。,软件的特点,硬件失效曲线图,软件的特点,软件失效曲线图,软件的特点,开发和运行依赖于特定的计算机系统环境 如依赖硬件、网络配置和支撑软件等。为了减少这种依赖性,在软件开发的过程中提出了软件的可移植性。 具有可复用性 软件一旦被开发出来,便可以很容易地被大量复制,从而形成多个副本,而硬件产品必须经过完整的生产周期才能得到。,软件的分类,1.2 软件危机,软件危机的表现 软件危机的原因,软件危机的表现,软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维

4、护过程中出现一系列严重问题的现象。具体来讲,软件危机的主要表现如下: 开发人员开发的软件产品不能完全满足用户的需求 产品的功能或特性与需求不符。这主要是因为开发人员与用户之间的交流不够充分,使得开发人员理解的用户需求与实际的用户需求之间存在差异。 软件产品的质量难以得到保证 开发团队缺少完善的软件质量评审体系以及科学的软件测试规程,使得最终的软件产品存在诸多缺陷。,软件危机的表现,软件产品的开发周期、开发经费和维护费用很难估计 这样会给项目的管理带来很多麻烦。很多情况下,软件产品的开发周期或经费会大大超出预期。 软件产品不能适应环境的改变,难以满足市场的要求 技术的快速更新、用户需求的扩大、软

5、件生产观念的落后和高素质软件开发人员的匮乏等因素,软件产品的可维护性、可扩展性和可复用性往往不能满足市场的要求。 软件文档不完备,文档内容不相符 软件文档是计算机软件的重要组成部分,它为在软件开发人员之间以及开发人员与用户之间信息的共享提供了重要的平台。软件文档的不完整和不一致会给软件的开发和维护等工作带来很多麻烦。,软件危机的原因,软件危机的出现暴露了软件产业在早期发展过程中存在的问题。对软件产品认识的不足和对其开发的内在规律的理解偏差是软件危机出现的本质原因。具体来说,软件危机出现的原因可概括为以下几点 软件开发需要用科学的工程化的思想来组织和指导软件开发的各个阶段。 这种工程学的视角正是

6、很多软件开发人员所没有的,他们往往简单地认为软件开发就是程序设计。 没有完善的质量保证体系。 没有严格的评审制度、科学的软件测试技术及质量维护技术。花费大量的时间、资金和精力去修复软件的缺陷,导致软件质量下降和开发预算超支等后果。,软件危机的原因,软件文档的重要性没有得到足够重视。 软件文档是软件开发团队成员之间交流和沟通的重要平台,也是软件开发项目管理的重要工具。如果不能充分重视软件文档的价值,势必会给软件开发带来很多不便。 从事开发的专业人员对软件产业认识不充分,缺乏经验。 软件产业相对于其他工业产业而言,是一个比较年轻、发展不太成熟的产业,人们在对它的认识上缺乏深刻性。 软件独有的特点给

7、其开发和维护带来困难。 软件的抽象性和复杂性使得软件在开发之前,很难对开发过程的进展进行估计。再加上软件错误的隐蔽性和改正错误的复杂性,都使得软件开发和维护在客观上比较困难。,软件危机的原因,为了解决软件危机,人们逐渐认识了软件的特性以及软件产品开发的内在规律,并尝试用工程化的思想去指导软件开发,于是软件工程诞生了。,1.3 软件工程,软件工程的概念 软件工程的基本内容 软件工程的知识体系,软件工程的概念,软件工程是指应用计算机科学技术、数学和管理学的原理,运用工程科学的理论、方法和技术,研究和指导软件开发和演化的一门交叉学科。 它强调按照软件产品的特殊性质,采用工程化的思想来指导软件开发,在

8、高效的软件生产和科学的项目管理的基础上得到高质量的软件产品。,软件工程的概念,软件工程的提出是为了解决软件危机所带来的各种弊端。 具体地讲,软件工程的目标主要包括以下几点: 使软件开发的成本能够控制在预计的合理范围内。 使软件产品的各项功能和性能能够满足用户需求。 提高软件产品的质量。 提高软件产品的可靠性。 使生产出来的软件产品易于移植、维护、升级和使用。 使软件产品的开发周期能够控制在预计的合理时间范围内。,软件工程的基本内容,相对于其他学科而言,软件工程是一门比较年轻的学科,它的思想体系和理论基础还有待进一步修整和完善。软件工程学科包含的内容有:,软件工程的概念,软件工程原理就是指软件工

9、程学科在发展过程中所遵循的基本原则和普遍规律。著名软件工程专家B. W. Boehm提出了以下几项软件工程的基本原则: 将软件的生命周期划分为多个阶段,实行严格的项目管理 软件开发是一个漫长的过程,把开发周期划分为多个阶段,制定分阶段的计划及验收标准,有益于对整个软件开发过程进行管理。 坚持阶段评审制度,以确保软件产品的质量 严格地贯彻与实施阶段评审制度可以帮助软件开发人员及时地发现并改正错误。在软件开发的过程中,错误发现得越晚,修复错误所要付出的代价就会越大。实施阶段评审,只有在本阶段的工作通过评审后,才能进入下一阶段的工作。,软件工程的概念,实施严格的产品控制,以适应软件规格的变更 在软件

10、开发的过程中,用户需求很可能不断发生变化。当需求变更时,为了保证软件各个配置项的一致性,实施严格的版本控制是非常必要的。 采用现代程序设计技术 这是提高软件开发和维护效率的关键。现代的程序设计技术,比如面向对象,可以使开发出来的软件产品更易维护和修改,同时还能缩短开发的时间,并且更符合人们的思维逻辑。 开发出来的软件产品应该能够清楚地被审查。 有利于有效的项目管理。一般软件产品包括可以执行的源代码、一系列相应的文档和资源数据等。,软件工程的概念,合理地安排软件开发小组的人员。 开发小组的人员要少而精。开发小组人员的数量少有利于组内成员充分的交流,这是高效团队管理的重要因素。而高素质的开发小组成

11、员是影响软件产品的质量和开发效率的重要因素。 不断地改进软件工程实践。 随着计算机科学技术的发展,软件从业人员应该不断地总结经验并且主动学习新的软件技术,只有这样才能不落后于时代。,软件工程的概念,软件工程过程是指在软件的生命周期内,为了实现特定目标而进行的一系列相关活动。 每个活动都有其确定的实现步骤。 过程也可以划分为多种类型,如开发过程、维护过程、支持过程和管理过程等。,软件工程的概念,软件工程方法包含软件开发方法、软件度量方法、软件管理方法和软件环境方法。 通常把软件工程方法等同于软件开发方法。目前,常用的软件开发方法有面向过程的开发方法、面向对象的开发方法、面向数据的开发方法和形式化

12、方法。,软件工程的概念,软件工程模型 每种模型都反映了一定的工作特点,它们可以由建模语言(如UML)来描述。,软件工程的概念,除了以上这些内容以外,软件工程还包括管理、度量、环境和应用等领域的内容。总的来说,软件工程是一门交叉学科,涉及的范围很广泛。,软件工程的知识体系,与软件工程相关的学科,软件工程的知识体系,在SWEBOK中,“软件工程”被定义为: (1) 应用系统化、学科化和定量化的方法来开发、运行和维护软件,即将工程应用到软件中; (2)对(1)中各种方法的研究。,软件工程的知识体系,SWEBOK将“软件工程”组织为11个知识域(knowledge areas,KA),如图所示。,软件

13、工程的知识体系,软件需求是为解决特定问题而必须由被开发的软件展示的特性。可进一步分为7个子领域,如图所示。,软件工程的知识体系,定义一个系统或组件的体系结构、组件、接口和其他特征的过程,以及这个过程的结果被称为软件设计。软件设计包含6个子领域,如图所示。,软件工程的知识体系,软件构造是指通过编码、验证、单元测试、集成测试和调试的组合,详细地创建可工作的和有意义的软件的过程。软件构造知识域包含3个子领域,如图所示。,软件工程的知识体系,软件构造是指通过编码、验证、单元测试、集成测试和调试的组合,详细地创建可工作的和有意义的软件的过程。软件构造知识域包含3个子领域,如图所示。,软件工程的知识体系,

14、软件测试是为评价和改进产品的质量、标识产品的缺陷和问题而进行的活动,软件测试知识域的结构分解如图所示。,软件工程的知识体系,软件维护是指由于一个问题或改进的需要而修改代码和相关文档,进而修正现有软件产品并保证其完整性的过程。软件维护知识域包括4个子领域,如图所示。,软件工程的知识体系,软件配置管理是一个支持性的软件生命周期过程,它是标识系统在不同时间点上的配置的学科。其知识域如图所示。,软件工程的知识体系,为了保证软件的开发和维护是系统的、规范的和量化的,对软件工程进行管理是非常必要的。其知识域如图所示。,软件工程的知识体系,软件工程过程涉及软件生命周期过程本身的定义、实现、评估、管理、变更和

15、改进。其知识域的结构分解如图所示。,软件工程的知识体系,软件工程过程涉及软件生命周期过程本身的定义、实现、评估、管理、变更和改进。其知识域的结构分解如图所示。,软件工程的知识体系,软件工程工具与方法和知识域覆盖整个生命周期过程,其具体的内容如图所示。,软件工程的知识体系,软件质量特征涉及多个方面,保证软件产品的质量是软件工程的重要目标。软件质量知识域包含3个子领域,如图所示。,1.4 软件生命周期,软件生命周期的概念 传统软件生命周期的各个阶段,软件生命周期的概念,作为一种工业化的产品,软件产品的生命周期是指从设计该产品的构想开始,到软件需求的确定、软件设计、软件实现、产品测试与验收、投入使用

16、以及产品版本的不断更新,到最终该产品被市场淘汰的全过程。,软件生命周期的概念,软件产品概念的提出有利于人们更科学、更有效地组织和管理软件生产。 软件生命周期从时间的角度将软件的开发和维护的复杂过程分解为了若干个阶段,为每个阶段赋予特定的任务,在资源分配、时间把握和项目管理上都会比较容易控制。 合理划分软件生命周期的各个阶段是软件开发项目成功的重要因素。,传统软件生命周期的各个阶段,在传统的软件工程中,软件产品的生存周期一般可以划分为6个阶段,分别是,传统软件生命周期的各个阶段,可行性研究阶段为后续的软件开发做必要的准备工作。 确定待开发的软件产品所要解决的问题。 确定总体的开发策略与开发方式,并对开发所需要的资金、时间和各种资源做出合理的估计。 对开发软件产品进行可行性分析,并制定初步的开发计划。 可行性分析是为了在技术、经济、操作或社会等多个方面寻求可行的解决方案,并对各个方案进行比较,完成可行性分析报告。,传统软件生命周期的各个阶段,需求分析 需求是指,为了解决用户提出的问题,目标系统需要做什么。 需求分析是否准确和成功,直

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号