【学习课件】第03次课软件工程基本概念_第1页
【学习课件】第03次课软件工程基本概念_第2页
【学习课件】第03次课软件工程基本概念_第3页
【学习课件】第03次课软件工程基本概念_第4页
【学习课件】第03次课软件工程基本概念_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2003.11.全国计算机等级考试二级公共基础知识精选课件第三讲 软件工程基本概念课程名称计算机等级二级公共基础 1011 学年 第 一 学期选修 临0021 班 9 月 29 日 第 4 周 第 2 次课 总第 3次课 精选课件课程目标掌握软件工程的定义和软件危机的现象、产生原因 理解软件过程 了解软件工程发展方向精选课件重点、难点软件工程的定义及产生的原因精选课件软件与软件的特点一、软件程序数据文档 二、软件的特点 1、计算机软件是一种抽象的逻辑产品。 2、软件的生产与硬件不同。 3、软件产品不会用坏,不存在硬件产品那样的机械磨损、老化等问题。 图1-1 软硬件失效率曲线 精选课件软件与软

2、件的特点4、软件产品的生产主要是脑力劳动。 5、软件费用不断增加,软件成本相当昂贵。 6、软件工作涉及到各种社会因素。 软件的种类:1、按软件的功能进行划分,软件可以分为系统软件、支撑软件和应用软件。2、按软件规模进行划分,软件可分为微型、小型、中型、大型、较大型和巨大型。3、按软件工作方式划分,软件可分为实时处理软件、分时软件、交互式软件和批处理软件。精选课件 软件与软件危机软件规模的分类 类别参加人员数研制期限产品规模(源程序行数)微型114周0.5k小型116月1k2k中型2512年5k50k大型52023年50k100k甚大型100100045年1M(=1000k)极大型2000500

3、0510年1M10M精选课件软件危机软件危机的产生 20世纪60年代中期以后,一些开发大型软件系统的要求提了出来。然而软件技术的进步一直未能满足形势发展的需要,在大型软件的开发过程中出现了复杂程度高、研制周期长、正确性难以保证的三大难题。遇到的问题找不到解决办法,致使问题堆积起来,形成了人们难以控制的局面,出现了所谓的“软件危机”。 1963年,美国用于控制火星探测器的计算机软件中的一个“,”号被误写为“。”,而致使飞往火星的探测器发生爆炸,造成高达数亿美元的损失。精选课件软件危机软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题绝不仅仅是不能正常运行的软件才具有的,实

4、际上,几乎所有软件都不同程度地存在这些问题。概括地说,软件危机包含下述两方面的问题:如何开发软件,以满足对软件的日益增长的需求;如何维护数量不断膨胀的软件。具体来说,软件危机主要有以下一些典型表现: 精选课件软件危机1、对软件开发成本和进度的估计常常很不准确。2、用户对所交付的软件系统不满意的现象时有发生。 3、软件产品的质量往往靠不住。 4、软件常常是不可维护的。 5、软件文档资料通常不完整、不合格。 6、软件的价格昂贵,软件成本在计算机系统总成本中所占的比例逐年上升。 7、软件开发生产率提高的速度,既跟不上硬件的发展速度,也远远跟不上日益增长的软件需求。 精选课件软件危机软件危机不仅与软件

5、自身的特点有关,也和软件开发与维护的方法有关,具体表现如下:1、软件的规模越来越大,结构越来越复杂2、软件开发管理困难。现代软件一般规模大,结构复杂,需要组织众多开发人员共同完成。3、软件开发技术落后。4、软件产品生产方式落后。5、软件开发工具落后。6、用户对软件需求的描述不精确,软件开发人员对用户需求的理解有偏差。 精选课件软件危机产生的原因软件是抽象的产品,软件产品往往规模庞大,给软件的开发和维护带来客观的困难。软件开发毫无计划性。软件在使用过程中很可能出现开发时没有预料的问题。软件开发过程无规范,开发技术落后,生产方式和开发工具落后。软件开发人员忽视需求分析或需求分析不充分,轻视软件维护

6、精选课件软件危机的表现形式软件发展速度跟不上硬件的发展和用户的需求软件成本高,开发进度不能预先估计,用户不满意软件产品质量差,可靠性不能保证软件产品可维护性差软件没有合适的文档资料精选课件解决软件危机的途径对计算机软件有一个正确的认识(软件程序)必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。推广使用在实践中总结出来的开发软件的成功技术和方法。开发和使用更好的软件工具。精选课件软件工程的概念1 软件工程的定义2 软件工程的基本目标3 软件工程的基本原理4 软件工程的原则精选课件软件工程的定义在首次NATO会议上Fritz

7、Bauer给出的软件工程的定义是:软件工程是为了经济地获得可靠的和能在实际机器上高效运行的软件而确立和使用的一系列完善的工程原理(方法)。Boehm 对软件工程的定义为:软件工程是现代科学技术知识在设计和构造计算机程序中的实际应用,其中包括管理在开发、运行和维护这些程序的过程中所必需的相关文档资料。精选课件软件工程的定义1983年IEEE(国际电气与电子工程师协会)在其IEEE软件工程标准术语中对软件工程下的定义为:软件工程是开发、运行、维护和修复软件的系统方法。其中的“软件”是指计算机程序、方法、规则、相关的文档资料和程序运行所必需的数据。1993年,IEEE给出了一个更加综合的定义:将系统

8、的、规范的、可度量的工程化方法应用于软件的开发、运行和维护的全过程。研究中所提到的方法。精选课件软件工程的定义软件工程的定义虽多,但其主要思想都是在强调软件开发中应用工程化原则的重要性。这种工程化的思想一直贯穿需求分析、设计、实现和维护整个软件生命过程。软件工程是指导计算机软件开发和维护的一门工程学科。它应用计算机科学、数学及管理科学等原理,借鉴传统工程的原则、方法和经验来解决软件问题。软件工程以提高质量,降低成本为目的,采用了若干科学的、现代化的方法技术来开发软件,极大提高了软件开发生产的效率。软件工程所包含的内容也不是一成不变的,它必将随着软件系统开发和生产技术的发展而有所改变。精选课件软

9、件工程的定义软件工程研究的主要内容包括软件开发技术和软件工程管理两个方面。软件工程管理主要是研究软件管理学、软件经济学和软件心理学等。软件开发技术主要研究:软件开发方法学、软件开发过程软件开发工具和环境。这三个部分称为软件工程的三要素。 精选课件 软件工程学 软件开发技术 软件工程管理软件开发方法学软件工具软件工程环境软件工程管理学 软件经济学精选课件软件工程的基本目标软件项目的成功主要是要达到以下几个目标:1、付出较低的软件开发成本;2、达到用户所要求的软件功能;3、取得较好的软件性能;4、所开发的软件易于移植、可重用性好;5、需要较低的软件维护费用;6、能按时完成开发任务,及时交付使用。精

10、选课件软件工程的基本目标图1-2 软件工程目标之间的关系精选课件软件工程的基本原理软件工程的7条原理:1、用分阶段的生命周期计划严格管理2、坚持进行阶段评审3、实行严格的产品控制4、采用现代程序设计技术5、结果应该能清楚地审查 6、开发小组的人员应该少而精 7、承认不断改进软件工程实践的必要性 精选课件1. 用分阶段的生命周期计划严格管理 统计数字表明,在不成功的软件项目中有一半左右是由于计划不周造成的,可见Boehm把建立完善的计划作为第1条基本原理是吸取了前人的教训而提出来的。 在软件开发与维护的漫长生命周期中,需要完成许多性质各异的工作。这条基本原理意味着,应该把软件生命周期划分成若干个

11、阶段,并相应地制定出切实可行的计划,然后严格地按照计划对软件的开发与维护工作进行管理。精选课件2. 坚持进行阶段评审 当时已经认识到,软件的质量保证工作不能等到编码阶段结束之后再进行。这样说至少有下述的两个理由:第一,大部分错误是在编码之前造成的,例如,根据Boehm等人的统计,设计错误占软件错误的63%,而编码错误仅占37%;第二,错误发现与改正得越晚,改正错误所需付出的代价也越高。因此,在每个阶段都进行严格的评审,以便尽早发现在软件开发过程中所犯的错误,并及时加以改正,是一条必须遵循的重要原则。精选课件3. 实行严格的产品控制 在开发软件的过程中不应该随意改变需求,因为改变一项需求往往需要

12、付出较高的代价。但是,在软件开发过程中改变需求又是难免的。由于外部环境变化或主观认识的提高,相应地改变用户对软件的需求是一种客观需要,显然不能硬性禁止客户提出改变软件需求的要求,而只能依靠科学的产品控制技术来顺应这种要求。也就是说,当改变需求时,为了保持软件各个配置成分的一致性,必须实行严格的产品控制。精选课件4. 采用现代程序设计技术 在这条原理中使用的术语“程序设计技术”并不仅仅局限于编程技术,而是泛指软件开发技术。从提出软件工程的概念以来,人们一直把主要精力用于研究各种新的程序设计技术。20世纪60年代末提出的结构程序设计技术,已经成为绝大多数人公认的先进的程序设计技术。以后又进一步发展

13、出各种结构化分析(SA)与结构化设计(SD)技术。近年来,面向对象技术已经在许多领域中迅速地取代了传统的结构化技术。实践表明,采用先进的技术不仅可以提高软件开发和维护的效率,而且可以提高软件产品的质量。精选课件5. 结果应该能够清楚地审查 软件产品不同于一般的物理产品,它是看不见摸不着的逻辑产品。软件开发人员的工作进展情况可见性差,难以准确度量,从而使得软件产品的开发过程比一般产品的开发过程更难于评价和管理。为了提高软件开发过程的可见性,更好地进行管理,应该依据软件开发项目的总目标和完成期限,规定开发小组的责任、产品标准及完成日期,从而使得所得到的结果能够清楚地审查。精选课件6. 开发小组的人

14、员应该少而精 这条基本原理的含义是,软件开发小组的组成人员的素质应该好,而小组人数则不宜过多。开发小组人员的素质和数量是影响软件产品质量和开发效率的重要因素。素质高的人员的开发效率比素质低的人员的开发效率可能高几倍至几十倍,而且素质高的人员所开发的软件中的错误明显少于素质低的人员所开发的软件中的错误。此外,随着开发小组人员数目的增加,为了交流信息、讨论问题而造成的通信开销也急剧增加。当开发小组人数为N时,可能的通信路径有N(N1)/2条,可见随着人数N的增大,通信开销将急剧增加。因此,组成少而精的开发小组是软件工程的一条基本原理。精选课件7. 承认不断改进软件工程实践的必要性 遵循上述6条基本原理,就能够按照当代软件工程的基本原理实现软件的工程化生产。但是,仅有上述6条基本原理还不能保证软件开发与维护的过程能赶上时代前进的步伐,能跟上技术的不断进步。因此,Boehm提出把承认不断改进软件工程实践的必要性作为软件工程的第七条基本原理。按照这条原理,不仅要积极主动地采用新的软件技术,而且要注意不断总结经验。例如,及时收集进度和资源消耗数据,收集出错类型

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论