软件工程导论第5版幻灯片课件

上传人:yuzo****123 文档编号:137576207 上传时间:2020-07-09 格式:PPT 页数:92 大小:814KB
返回 下载 相关 举报
软件工程导论第5版幻灯片课件_第1页
第1页 / 共92页
软件工程导论第5版幻灯片课件_第2页
第2页 / 共92页
软件工程导论第5版幻灯片课件_第3页
第3页 / 共92页
软件工程导论第5版幻灯片课件_第4页
第4页 / 共92页
软件工程导论第5版幻灯片课件_第5页
第5页 / 共92页
点击查看更多>>
资源描述

《软件工程导论第5版幻灯片课件》由会员分享,可在线阅读,更多相关《软件工程导论第5版幻灯片课件(92页珍藏版)》请在金锄头文库上搜索。

1、软件工程导论(第5版),全国普通高等高校工科电子类专业优秀教材,张海藩 编著,本书提纲,第1章 软件工程学概述 第8章 维护 第2章 可行性研究 第9章 面向对象方法学引论 第3章 需求分析 第10章 面向对象分析 第4章 形式化说明技术 第11章 面向对象设计 第5章 总体设计 第12章 面向对象实现 第6章 详细设计 第13章 软件项目管理 第7章 实现,注: 授课进度安排,第1章 软件工程学概述,计算机与信息工程学院,本章主要内容,1.1,软件危机,1.2,软件工程,1.3,软件生命周期,1.4,软件过程,1.5,本章小结,计算机系统发展的四个阶段: 计算机系统发展的早期阶段(20世纪6

2、0年代中期以前) 大多数人把软件看成是不需预先计划的事情 计算机系统发展的第二阶段(从60年代中期到70年代中期) 主要特点是软件产品的使用和“软件作坊”的出现 计算机系统发展的第三阶段(从70年代中期到80年代中期) 主要特点是微处理器的出现和应用,计算机应用大众化 计算机系统发展的第四个阶段(至今) 不再是着重于单台计算机和计算机程序,而是面向计算机和软件的综合影响。注:计算机体系结构+软件产业经济,1.1 软件危机,一系列软件相关的问题在计算机系统的整个发展过程中一直存在着,而且这些问题还会继续恶化: 硬件的发展超过软件,建造的软件难以发挥硬件的潜能; 现有软件与用户的要求矛盾; 软件失

3、败导致“灾难性后果”; 需要高质量、高可靠性的软件; 设计的问题使得升级和维护十分困难;,1.1 软件危机,为了更有效地开发与维护软件,软件工作者在20世纪60年代后期开始认真研究消除软件危机的途径,从而逐渐形成了一门新兴的工程学科计算机软件工程学(通常简称为软件工程)。 注:1968年北大西洋公约组织的计算机科学家在联邦德国召开国际会议,讨论软件危机问题,在这次会议上正式提出并使用了“软件工程”这个名词,一门新兴的工程学科就此诞生了。,1.1 软件危机,1.1 软件危机,1.1.1 软件危机的介绍 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 这些问题绝不仅仅是不能正常

4、运行的软件才具有的,实际上,几乎所有软件都不同程度地存在这些问题。 具体地说,软件危机主要有以下一些典型表现:,(1) 对软件开发成本和进度的估计常常很不准确。 (2) 用户对“已完成的”软件系统不满意的现象经常发生。 (3) 软件产品的质量往往靠不住。 (4) 软件常常是不可维护的。 (5) 软件通常没有适当的文档资料。 (6) 软件成本在计算机系统总成本中所占的比例逐年上升。 (7) 软件产品“供不应求”。,1.1 软件危机,1.1 软件危机,1.1.2 产生软件危机的原因 在软件开发和维护的过程中存在这么多严重问题,一方面与软件本身的特点有关,另一方面也和软件开发与维护方法不正确有关。,

5、 软件缺乏“可见性”,管理和控制软件开发过程相当困难 软件规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升 开发时期引入错误,导致软件维护通常意味着改正或修改原来的设计,客观上使得软件较难维护 软件专业人员对软件开发和维护中或多或少地采用了错误的方法和技术,1.1 软件危机,1983年IEEE为软件下的定义是:计算机程序、方法、规则、相关的文档资料以及在计算机上运行程序时所必需的数据。虽然表面上看来在这个定义中列出了软件的5个配置成分,但是方法和规则通常是在文档中说明并在程序中实现的。,1.1.3 消除软件危机的途径 (1)首先应对“计算机软件”有一个正确的认识。应该彻底消除在计算机系

6、统早期发展阶段形成的“软件就是程序”的错误观念。一个软件必须由一个完整的配置组成,事实上,软件是程序、数据及相关文档的完整集合。,1.1 软件危机,处理信息的数据结构,完成预定功能和性能的可执行的指令序列,开发、使用和维护程序所需要的图文资料,(2)应该推广使用在实践中总结出来的开发软件的成功的技术和方法。研究探索更好更有效的技术和方法,尽快消除在计算机系统早期发展阶段形成的一些错误概念和做法。 (3)应该开发和使用更好的软件工具。在适当的软件工具辅助下,开发人员可以把这类工作做得既快又好。如果把各个阶段使用的软件工具有机地集合成一个整体,支持软件开发的全过程,则称为软件工程支撑环境。,1.1

7、 软件危机,综上,为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。软件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴学科。,1.1 软件危机,本章主要内容,1.1,软件危机,1.2,软件工程,1.3,软件生命周期,1.4,软件过程,1.5,本章小结,1.2 软件工程,1.2.1 软件工程的介绍 软件工程是指导软件开发与维护的工程性学科,采用工程的概念、原理、技术和方法来开发与维护软件。 人们曾经给软件工程下过许多定义,下面给出两个典型的定义:,1968年在第一届NATO会议上曾经给出了软件工程的一个早期定义:“软件工程就是为了经济地获得可靠的且

8、能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。”这个定义不仅指出了软件工程的目标是经济地开发出高质量的软件,而且强调了软件工程是一门工程学科,它应该建立并使用完善的工程原理。 1993年IEEE进一步给出了一个更全面更具体的定义:“软件工程是: 把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件; 研究中提到的途径。”,1.2 软件工程,虽然软件工程的不同定义使用了不同词句,强调的重点也有差异,但是,人们普遍认为软件工程具有下述的本质特性。 1. 软件工程关注于大型程序的构造 “大”与“小”的分界线并不十分清晰。通常把一个人在较短时间内写出的程序

9、称为小型程序,而把多人合作用时半年以上才写出的程序称为大型程序。传统的程序设计技术和工具是支持小型程序设计的,不能简单地把这些技术和工具用于开发大型程序。,1.2 软件工程,2. 软件工程的中心课题是控制复杂性 将问题分解,使得分解出的每个部分是可理解的,而且各部分之间保持简单的通信关系。用这种方法并不能降低问题的整体复杂性,但是却可使它变成可以管理的。,1.2 软件工程,1.2 软件工程,3. 软件经常变化 绝大多数软件都模拟了现实世界的某一部分。现实世界在不断变化,软件为了不被很快淘汰,必须随着所模拟的现实世界一起变化。因此,在软件系统交付使用后仍然需要耗费成本,而且在开发过程中必须考虑软

10、件将来可能的变化。 4. 开发软件的效率非常重要 目前,社会对新应用系统的需求超过了人力资源所能提供的限度,软件供不应求的现象日益严重。因此,软件工程的一个重要课题就是,寻求开发与维护软件的更好更有效的方法和工具。,5. 和谐地合作是开发软件的关键 软件处理的问题十分庞大,必须多人协同工作才能解决这类问题。为了有效地合作,必须明确地规定每个人的责任和相互通信的方法。事实上仅有上述规定还不够,每个人还必须严格地按规定行事。为了迫使大家遵守规定,应该运用标准和规程。纪律是成功地完成软件开发项目的一个关键。,1.2 软件工程,6. 软件必须有效地支持它的用户 开发软件的目的是支持用户的工作。软件提供

11、的功能应该能有效地协助用户完成他们的工作。如果用户对软件系统不满意,可以弃用该系统,至少也会立即提出新的需求。因此,仅仅用正确的方法构造系统还不够,还必须构造出正确的系统。,1.2 软件工程,7. 在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品 软件工程师不仅缺乏应用领域的实际知识,他们还缺乏该领域的文化知识。例如,软件开发者通过访谈、阅读书面文件等方法了解到用户组织的“正式”工作流程,然后用软件实现了这个工作流程。但是,决定软件系统成功与否的关键问题是,用户组织是否真正遵守这个工作流程。对于局外人来说,这个问题更难回答。,1.2 软件工程,1.2.2 软件工程的基本

12、原理 自从1968年在联邦德国召开的国际会议上正式提出并使用了“软件工程”这个术语以来,研究软件工程的专家学者们陆续提出了100多条关于软件工程的准则或“信条”。著名的软件工程专家B.W.Boehm综合这些学者们的意见并总结了TRW公司多年开发软件的经验,于1983年在一篇论文中提出了软件工程的7条基本原理。他认为这7条原理是确保软件产品质量和开发效率的最小集合。,1.2 软件工程,这7条原理是互相独立,缺一不可的。然而这7条原理又是相当完备的,在此之前已经提出的100多条软件工程原理都可以由这7条原理的任意组合蕴含或派生。 下面简要介绍软件工程的7条基本原理。 1. 用分阶段的生命周期计划严

13、格管理 有人经统计发现,在不成功的软件项目中有一半左右是由于计划不周造成的,可见把建立完善的计划作为第一条基本原理是吸取了前人的教训而提出来的。,1.2 软件工程,2. 坚持进行阶段评审:错误有放大效应 当时已经认识到,软件的质量保证工作不能等到编码阶段结束之后再进行。因为:第一,大部分错误是在编码之前造成的,据统计,设计错误占软件错误的63%,编码错误仅占37%;第二,错误发现与改正得越晚,所需付出的代价也越高。因此,在每个阶段都进行严格的评审,以便尽早发现在软件开发过程中所犯的错误是一条必须遵循的重要原则。,1.2 软件工程,3. 实行严格的产品控制:不随意改变需求 当改变需求时,为了保持

14、软件各个配置成分的一致性,必须实行严格的产品控制,其中主要是实行基准配置管理,也称为变动控制:一切有关修改软件的建议,特别是涉及到对基准配置的修改建议,都必须按照严格的规程进行评审,获得批准以后才能实施修改。绝对不能谁想修改软件,就随意进行修改。,1.2 软件工程,4. 采用现代程序设计技术 从提出软件工程的概念开始,人们一直把主要精力用于研究各种新的程序设计技术,并进一步研究各种先进的软件开发与维护技术。实践表明,采用先进的技术不仅可以提高软件开发和维护的效率,而且可以提高软件产品的质量。 5. 结果可以清楚地审查 软件产品不同于一般的物理产品,它是看不见摸不着的逻辑产品。软件开发人员(或开

15、发小组)的工作进展情况可见性差,难以准确度量,从而使得软件产品的开发过程比一般产品的开发过程更难于评价和管理。为了提高软件开发过程的可见性,应该根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,从而使得所得到的结果能够清楚地审查。,1.2 软件工程,6. 开发小组的人员应该少而精:减少通讯开销 软件开发小组的组成人员的素质应该好,人数不宜过多。开发小组人员的素质和数量是影响软件产品质量和开发效率的重要因素。素质高的人员的开发效率比素质低的人员的开发效率可能高几倍至几十倍,而且素质高的人员所开发的软件中的错误明显少于素质低的人员所开发的软件中的错误。此外,随着开发小组人员数目的增

16、加,因为交流情况讨论问题而造成的通信开销也急剧增加。因此,组成少而精的开发小组是软件工程的一条基本原理。,1.2 软件工程,7. 承认不断改进软件工程实践的必要性 Boehm提出应把承认不断改进软件工程实践的必要性作为软件工程的第7条基本原理。要求:不仅要积极主动地采纳新的软件技术,而且要注意不断总结经验。,1.2 软件工程,1.2.3 软件工程方法学 软件工程包括技术和管理两方面的内容,是技术与管理紧密结合所形成的工程学科。 通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学(methodology),也称为范型(paradigm)。在软件工程领域中,这两个术语的含义基本相同。,1.2 软件工程,软件工程方法学包含3个要素:方法、工具和过程。 方法:是完成软件开发的各项任务的技术方法,回答“怎样做”的问题; 工具:是为运用方法而提供的自动的或半自动的软件工程支撑环境; 过程:是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。 目前使

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

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

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