2019一章软件与软件工程课件

上传人:我*** 文档编号:145335460 上传时间:2020-09-19 格式:PPT 页数:83 大小:199KB
返回 下载 相关 举报
2019一章软件与软件工程课件_第1页
第1页 / 共83页
2019一章软件与软件工程课件_第2页
第2页 / 共83页
2019一章软件与软件工程课件_第3页
第3页 / 共83页
2019一章软件与软件工程课件_第4页
第4页 / 共83页
2019一章软件与软件工程课件_第5页
第5页 / 共83页
点击查看更多>>
资源描述

《2019一章软件与软件工程课件》由会员分享,可在线阅读,更多相关《2019一章软件与软件工程课件(83页珍藏版)》请在金锄头文库上搜索。

1、第一章 软件与软件工程,1.1 软件 1.2 软件工程的概念 1.3 软件生存周期 1.4 软件开发模式 1.5 软件开发方法、工具及环境,教学题目:1.1 软件 1.2 软件工程的概念 教学目的:1. 了解软件、软件危机等概念 2. 掌握软件工程的定义、原理、目标和原 则. 教学重点:软件工程的定义、原理、目标和原则 教学难点:软件工程的目标和原则 教 具:多媒体教室、电子教案 作 业:看书,第1章 软件与软件工程,1.1 软件(Software)1.1.1 软件与软件的组成,计算机软件与计算机系统操作有关的程序、规程、 规则及任何与之有关的文档和数据。 软件 程序及有关数据机器可执行; 文

2、档(与软件开发、运行、维护、使用、 培训有关)不可执行。 程序(program)用程序设计语言描述的,适合 于计算机处理的语句序列。,1机器语言、汇编语言:依赖于机器,面向机器 2高级语言:独立于机器,面向过程或面向对象 3面向问题语言:独立于机器,非过程式语言(4GL) 文档(document)一种数据媒体和其上所记录的数据。 文档记录软件开发活动和阶段成果,具有永久性,可供 人或机器阅读。 文档可用于 专业人员和用户之间的通信和交流; 软件开发过程的管理; 运行阶段的维护。,面向过程,程序设计语言三种类型:,1. 软件的特点,软件是逻辑产品,硬件是物理产品。 特点: (1)软件开发更依赖于

3、开发人员的业务素质、智力、 人员的组织、合作和管理。软件开发、设计几 乎都是从头开始,成本和进度很难估计。 (2)软件存在潜伏错误,硬件错误一般能排除。 (3)软件开发成功后,只需对原版进行复制。,1. 软件的特点(续),(4)软件在使用过程中维护复杂: 1)纠错性维护改正运行期间发现的潜伏错误; 2)完善性维护提高或完善软件的性能; 3)适应性维护修改软件,以适应软硬件环境 的变化; 4)预防性维护改进软件未来的可维护性和 可靠性。 (5)软件不会磨损和老化。,2. 软件的发展,第一阶段20世纪60年代中期以前,软件开发处于 个体化生产状态。在这一阶段中,软件 还没有系统化的开发方法。目标主

4、要集 中在如何提高时空效率上。 第二阶段从20世纪60年代中期到70年代末期。软 件开发已进入了作坊式生产方式,即出 现了“软件车间”。软件开发开始形成产 品。到20世纪60年代末,“软件危机”变 得十分严重。,2. 软件的发展,第三阶段从20世纪70年代中期到20世纪80年代末 期。软件开发进入了产业化生产,即出 现了众多大型的“软件公司”。在这一阶 段,软件开发开始采用了“工程”的方法, 软件产品急剧增加,质量也有了很大的 提高。 第四阶段从20世纪80年代末期开始的。这是一个 软件产业大发展的时期。也是软件工程 大发展的时期,人们开始采用面向对象 的技术和可视化的集成开发环境。,1.1.

5、2 软件危机,软件危机是指在计算机软件开发、使用与维护 过程中遇到的一系列严重问题和难题。 1软件危机的表现 1)对软件开发成本和进度的估计常常很不准确。常 常出现实际成本比估算成本高出一个数量级、实 际进度比计划进度拖延几个月甚至几年的现象, 从而降低了开发商的信誉,引起用户不满。 2)用户对已完成的软件不满意的现象时有发生。 3)软件产品的质量往往是靠不住的。,1软件危机的表现,4)软件常常是不可维护的。 5)软件通常没有适当的文档资料。文档资料不全或不 合格,必将给软件开发和维护工作带来许多难以想 象的困难和难以解决的问题。 6)软件成本在计算机系统总成本中所占比例逐年上升。 特别是软件

6、维护成本迅速增加,已经占据软硬件总 成本的40%75%,如图1-1-1所示。 7)开发生产率提高的速度远跟不上软件需求。,硬 件,软件开发,软件维护,1955年 1970年 1985年,100%,80%,60%,40%,20%,图1-1-1 软件、硬件成本变化趋势,2产生软件危机的原因,1)用户对软件需求的描述不精确。 2)软件开发人员对用户需求的理解有偏差,这将导致 软件产品与用户的需求不一致。 3)缺乏处理大型软件项目的经验。开发大型软件项目 需要组织众多人员共同完成。一般来说,多数管理 人员缺乏大型软件的开发经验,而多数软件开发人 员又缺乏大型软件项目的管理经验,致使各类人员 的信息交流

7、不及时、不准确、容易产生误解。,2产生软件危机的原因,4)开发大型软件易产生疏漏和错误。 5)缺乏有力的方法学的指导和有效的开发工 具的支持。软件开发过多地依靠程序员的 “技巧”,从而加剧了软件产品的个性化。 6)面对日益增长的软件需求,人们显得力不 从心。从某种意义上说,解决供求矛盾将 是一个永恒的主题。,3缓解软件危机的途径,到了20世纪60年代末期,软件危机已相当严重。这促使计算机科学家们开始探索缓解软件危机的方法。他们提出了“软件工程”的概念,即用现代工程的原理、技术和方法进行软件的开发、管理、维护和更新。于是,开创了计算机科学技术的一个新的研究领域。,1.2 软件工程的概念1.2.1

8、 软件工程的定义,1968年,北大西洋公约组织在原西德召开计算机科学会议,由Fritz Bauer首次提出了“软件工程”的概念。 软件工程用工程、科学和数学的原则与方法开发、维护计算机软件的有关技术和管理方法。 软件工程由方法、工具和过程三部分组成,称软件工程的三要素。,1.2.1 软件工程的定义,软件工程中的各种方法是完成软件工程项目的技术手段,它们支持软件工程的各个阶段。 软件工程使用的软件工具能够自动或半自动地支持软件的开发、管理和文档的生成。 软件工程中的过程贯穿于整个工程的各个环节,在这一过程中,管理人员应对软件开发的质量、进度、成本等进行评估、管理和控制,包括计划跟踪与控制、成本估

9、算、人员的组织、质量保证、配置管理等,1.2.2 软件工程的基本原理,著名的软件工程专家B. W. Boehm于1983年综合了软件工程专家学者们的意见并总结了开发软件的经验,提出了软件工程的7条基本原理。这7条原理被认为是确保软件产品质量和开发效率的原理的最小集合,又是相互独立、缺一不可、相当完备的最小集合。下面就简单介绍软件工程的这7条原理:,1用分阶段的生存周期计划严格管理,这条基本原理是应该把软件生存周期划分成若干个阶段,并相应地制定出切实可行的计划,然后严格按照计划对软件开发与维护工作进行管理。应该制定的计划有项目概要计划、里程碑计划、项目控制计划、产品控制计划、验证计划和运行维护计

10、划等。各级管理人员都必须严格按照计划对软件开发和维护工作进行管理。据统计,不成功的软件项目中,有一半左右是由于计划不周造成的。,2坚持进行阶段评审,据统计,在软件生存周期各阶段中,编码阶段之前的错误约占63%,而编码错误仅占37%。另外,错误发现并改正得越晚,所花费的代价越高。坚持在每个阶段结束前进行严格的评审,就可以尽早发现错误,从而可以最小的代价改正错误。因此,这是一条必须坚持的重要原理。,3实行严格的产品控制,决不能随意改变需求,只能依靠科学的产品控制技术来顺应用户提出的改变需求的要求。为了保持软件各个配置成分的一致性,必须实行严格的产品控制。其中主要是实行基准配置管理(又称为变动控制)

11、,即凡是修改软件的建议,尤其是涉及基本配置的修改建议,都必须按规程进行严格的评审,评审通过后才能实施。 这里的“基准配置”是指经过阶段评审后的软件配置成分,即各阶段产生的文档或程序代码等。,4采用现代程序设计技术,实践表明,采用先进的程序设计技术既可以提高软件开发与维护的效率,又可以提高软件的质量。多年来,人们一直致力于研究新的“程序设计技术”。比如,20世纪60年代末提出的结构程序设计技术;后来又发展出各种结构分析(SA)和结构设计(SD)技术;之后又出现了面向对象分析(OOA)和面向对象设计(OOD)技术等等。,5结果应能清楚地审查,软件产品是一种看不见、摸不着的逻辑产品。因此,软件开发小

12、组的工作进展情况可见性差,难于评价和管理。为了更好地进行评价与管理,应根据软件开发的总目标和完成期限,尽量明确地规定软件开发小组的责任和产品标准,从而使所得到的结果能清楚地审查。,6开发小组的人员应少而精,软件开发小组人员素质和数量是影响软件质量和开发效率的重要因素。实践表明,素质高的人员与素质低的人员相比,开发效率可能高几倍至几十倍、而且所开发的软件中的错误也要少得多。另外,开发小组的人数不宜过多,因为随着人数的增加,人员之间交流情况、讨论问题的通信开销将急剧增加,这不但不能提高生产率,反而由于误解等原因可能增加出错的概率。,7承认不断改进软件工程实践的必要性,遵循上述六条基本原理,就能够较

13、好地实现软件的工程化生产。但是,软件工程不能停留在已有的技术水平上,应积极主动地采纳或创造新的软件技术,要注意不断总结经验,收集工作量、进度、成本等数据,并进行出错类型和问题报告的统计。这些数据既可用来评估新的软件技术的效果,又可用来指明应优先进行研究的软件工具和技术。,1.2.3 软件工程的目标,软件工程的目标是在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并满足用户需求的软件产品。,名词解释,1)可修改性(modifiability),允许对软件系统进行 修改而不增加其复杂性。它支持软件调试与维护。 2)

14、有效性(efficiency),指软件系统的时间和空间 效率。这是一个应当努力追求的重要目标。 3)可靠性(reliability),是指在给定的时间间隔内, 程序成功运行的概率。可靠性是衡量软件质量的一 个重要目标。,名词解释,4)可理解性(understandability),指系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植和重用。 5)可维护性(maintainability),是指软件产品交付使用后,在实现改正潜伏的错误、改进性能等属性、适应环境变化等方面工作的难易程度。由于软件的维护费用在整个软件生存周期中占主要的比重,因此,可维

15、护性是软件工程中的一个十分重要的目标。软件的可理解性和可修改性支持软件的可维护性。,名词解释,6)可重用性(reusability),是指软部件可以在多种场合使用的程度。 概念或功能相对独立的一个或一组相关模块可构 成一个软部件。软部件应具有清晰的结构和注释、正 确的编码和较高的时空效率。可将各种软部件按照某 种规则放在软部件库中供开发人员选用。 广义地讲,可重用性还应包括应用项目、规格说 明、设计、概念和方法等等的重用。一般来说,重用 的层次越高,带来的效益越大。 可重用性有助于提高软件产品的质量和开发效率、 降低软件开发和维护费用。,名词解释,7)可适应性(adaptability),是指软件在不同的系统约束条件下,使用户需求得到满足的难易程度。 选择广为流行的软硬件支持环境、采用广为流行的程序设计语言编码、采用标准的术语和格式书写文档可增强软件产品的可适应性。 8)可移植性(portability),是指软件从一个计算机系统或环境移植到另一个上去的难易程度。 采用通用的运行支持环境和尽量通用的程序设计语言的标准部分可提高可移植性。而应将依赖于计算机系统的低级(物理)特征部分相对独立、集中起来。可移植性支持软件的可重用性和可适应性。,名词解释,9)可追踪性(traceabili

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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