第一章软件工程概述.ppt
《第一章软件工程概述.ppt》由会员分享,可在线阅读,更多相关《第一章软件工程概述.ppt(72页珍藏版)》请在三一办公上搜索。
1、第一章软件工程概述,HeBei Normal University of Science&Technology,参考文献,1.Software Engineering(Eighth edition)作者 Sommerville2.软件工程实践者的研究方法作者 Roger S.Pressman3.人月神话 作者 FREDERICK P.BROOKS,JR.,HeBei Normal University of Science&Technology,本课程由教学和实验两部分组成。理论:周四1-2节A320;实验:周五1-2节(单周)E604;答疑:周四3-4节,6楼备课间。考试:项目Final P
2、roject 30 作业assignments 20 测验Quizzes 20 考试Final Exam 30,HeBei Normal University of Science&Technology,软件工程概述,软件的概念、特性和分类软件危机与软件工程系统工程的目标软件生命周期软件生命周期模型软件工程知识体系及知识域,HeBei Normal University of Science&Technology,1.1软件概述,软件的概述及特点软件的分类,HeBei Normal University of Science&Technology,软件的概述及特点,计算机软件与计算机系统操作有
3、关的程序、规程、规则及任何与之有关的文档和数据。软件 程序及有关数据机器可执行;文档(与软件开发、运行、维护、使用、培训有关)不可执行。程序(program)用程序设计语言描述的,适合 于计算机处理的语句序列。,HeBei Normal University of Science&Technology,软件的概述及特点,软件是逻辑产品,硬件是物理产品。特点:(1)软件开发更依赖于开发人员的业务素质、智力、人员的组织、合作和管理。软件开发、设计几 乎都是从头开始,成本和进度很难估计。(2)软件存在潜伏错误,硬件错误一般能排除。(3)软件开发成功后,只需对原版进行复制。(4)软件在使用过程中维护复
4、杂。(5)软件不会磨损和老化。,HeBei Normal University of Science&Technology,软件的概述及特点,文档(document)一种数据媒体和其上所记录的数据。文档记录软件开发活动和阶段成果,具有永久性,可供 人或机器阅读。文档可用于 专业人员和用户之间的通信和交流;软件开发过程的管理;运行阶段的维护。,HeBei Normal University of Science&Technology,软件的概述及特点,图 11 硬件失效曲线图,HeBei Normal University of Science&Technology,软件的概述及特点,图 12
5、软件失效曲线图,HeBei Normal University of Science&Technology,软件的分类,图 13 软件的分类,HeBei Normal University of Science&Technology,1.2软件危机,软件危机的表现与原因软件危机的启示,HeBei Normal University of Science&Technology,软件危机的表现与原因,软件危机暴发于上个世纪六十年代末。主要表现为:软件的发展速度远远滞后于硬件的发展速度,不能满足社会日益增长的软件需求。软件开发周期长、成本高、质量差、维护困难。,软件危机,HeBei Normal U
6、niversity of Science&Technology,软件危机的表现与原因,具体来说,软件危机主要有以下一些典型表现:对软件开发成本和进度的估计常常很不准确。用户对“已完成的”软件系统不满意的现象经常发生。软件产品的质量往往靠不住。软件常常是不可维护的。软件通常没有适当的文档资料。软件成本在计算机系统总成本中所占的比例逐年上升。软件开发生产率提高的速度,既跟不上硬件的发展速度,也远远跟不上计算机应用迅速普及深入的趋势。,HeBei Normal University of Science&Technology,除了软件本身的特点,软件危机发生的主要原因有:缺乏软件开发的经验和有关软件
7、开发数据的积累,使得开发工作的计划很难制定。软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误。软件开发过程不规范。如,没有真正了解用户的需求就开始编程序。随着软件规模的增大,其复杂性往往会呈指数级升高。需要很多人分工协作,不仅涉及技术问题,更重要的是必须有科学严格的管理。缺少有效的软件评测手段,提交用户的软件质量不能完全保证。,软件危机的表现与原因,HeBei Normal University of Science&Technology,软件危机的启示,彻底消除“软件就是程序”的错误观念。充分认识到软件开发应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。推广和
8、使用在实践中总结出来的开发软件的成功技术、方法和工具。按工程化的原则和方法组织软件开发工作。,如何摆脱软件危机?,HeBei Normal University of Science&Technology,1.3软件工程,软件工程概念软件工程发展软件工程目标和原则软件工程知识体,Company Logo,软件工程概念,为了克服软件危机,1968年10月在北大西洋公约组织(NATO)召开的计算机科学会议上,Fritz Bauer首次提出“软件工程”的概念,试图将工程化方法应用于软件开发。在NATO会议上,Fritz Bauer对软件工程的定义是:“软件工程就是为了经济地获得可靠的且能在实际机器上
9、有效地运行的软件,而建立和使用完善的工程原理。”,HeBei Normal University of Science&Technology,软件工程概念,1993年IEEE(Institute of Electrical&Electronic Engineers,电气与电子工程师协会)给出的定义:“软件工程是:把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;研究中提到的途径。”,HeBei Normal University of Science&Technology,软件工程概念,图 14 软件工程层次图,Company Logo,软件工程概念,软件工
10、程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好技术结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。,HeBei Normal University of Science&Technology,软件工程目标和原则,软件工程要达到的基本目标包括:达到要求的软件功能;取得较好的软件性能;开发出高质量的软件;付出较低的开发成本;需要较低的维护费用;能按时完成开发工作,及时交付使用。,HeBei Normal University of Science&Technology,软件工程
11、目标和原则,(1)按软件生存周期分阶段制订计划并认真实施(2)坚持进行阶段评审(3)坚持严格的产品控制(4)使用现代软件开发技术(5)明确责任(6)用人少而精(7)不断改进开发过程,Company Logo,软件工程目标和原则,为了达到上述目标,软件工程设计、工程支持以及工程管理在软件开发过程中必须遵循一些基本原则。著名软件工程专家B.Boehm综合有关专家和学者的意见并总结了多年来开发软件的经验,提出了软件工程的七条基本原则:用分阶段的生存周期计划进行严格的管理 坚持进行阶段评审 实行严格的产品控制 采用现代程序设计技术 软件工程结果应能清楚地审查 开发小组的人员应该少而精 承认不断改进软件
12、工程实践的必要性 B.Boehm指出,遵循前六条基本原则,能够实现软件的工程化生产;按照第七条原则,不仅要积极主动地采纳新的软件技术,而且要注意不断总结经验。,Company Logo,一些不正确的观念,观点之一 我们拥有一套讲述如何开发软件的书籍,书中充满了标准与示例,可以帮助我们解决软件开发中遇到的任何问题。观点之二 如果我们已经落后于计划,可以增加更多的程序员来赶上进度。观点之三 有了对目标的一般描述就足以开始写程序了,我们以后可以再补充细节。观点之四 一旦我们写出了程序并使其正常运行,我们的工作就结束了。人们有时认为,只有差的软件产品才需要维护。,HeBei Normal Univer
13、sity of Science&Technology,1.4软件过程,软件生命周期软件过程概念软件生命周期模型,Company Logo,软件生存周期,软件从定义开始,经过开发、使用和维护,直到最终退役的全过程称为软件生存周期。可将软件生存周期划分为3个过程共9个阶段。3个过程是:软件定义过程、软件开发过程、软件使用与维护过程。9个阶段有:可行性研究、需求分析、概要设 计、详细设计、实现、组装测试、验收测试、使用与维护、退役。,图1-3-1 软件生存周期阶段的划分,HeBei Normal University of Science&Technology,软件生存周期,各个阶段所要完成的基本任
14、务问题定义与可行性研究 本阶段要回答的关键问题是“到底要解决什么问题?在成本和时间的限制条件下能否解决问题?是否值得做?”(2)需求分析 本阶段要回答的关键问题是“目标系统应当做什么?”(3)软件设计 设计是软件工程的技术核心。本阶段要回答的关键问题是“如何实现目标系统?”,HeBei Normal University of Science&Technology,软件生存周期,各个阶段所要完成的基本任务(4)程序编码和单元测试 本阶段要解决的问题是“正确地实现已做的设计”,即“如何编写正确的、可维护的程序代码?”(5)集成和系统测试 测试是控制软件质量的重要手段,本阶段的主要任务是做集成测试
15、和系统测试。(6)软件运行和维护 已交付的软件投入正式使用,便进入运行阶段。这一阶段可能持续若干年。软件在运行中可能由于多方面的原因,需要对它进行修改。,HeBei Normal University of Science&Technology,软件过程又称为软件生存周期过程,是软件生存周期内为达到一定目标而必须实施的一系列相关过程的集合。它是围绕软件的活动序列,财务、市场等活动不属于软件过程。在传统的软件工程中,软件产品的生存周期一般可以划分为6个阶段,分别是:可行性研究需求分析 软件设计编码 软件测试 软件维护,软件过程概念,图 15 传统软件生存周期的各个阶段,HeBei Normal
16、University of Science&Technology,软件过程标准,图 16 ISO12207软件生存周期过程标准框架,HeBei Normal University of Science&Technology,软件生存周期模型,ISO12207标准将软件生存周期模型定义为:一个包括软件产品开发、运行和维护中有关过程、活动和任务的框架,其中这些过程、活动和任务覆盖了从该系统的需求定义到系统的使用终止。把这个概念应用到开发过程中,可以发现所有软件开发生存周期模型的内在基本特征:描述了开发的主要阶段定义了每一个阶段要完成的主要过程和活动规范了每一个阶段的输入和输出(提交物)提供了一个框
17、架,可以把必要的活动映射到该框架中,HeBei Normal University of Science&Technology,软件生命周期模型,常见的软件生命周期模型包括:瀑布模型原型模型增量模型喷泉模型螺旋模型统一过程模型敏捷过程模型微软工程模型,HeBei Normal University of Science&Technology,瀑布模型,在20世纪80年代之前,瀑布模型一直是唯一被广泛采用的生命周期模型。传统的瀑布模型如图所示。,图 17 瀑布模型,HeBei Normal University of Science&Technology,实际的瀑布模型实际的瀑布模型是带“反馈环
18、”的,如图所示。图中实线箭头表示开发过程,虚线箭头表示维护过程。,HeBei Normal University of Science&Technology,瀑布模型的优点可强迫开发人员采用规范化的方法。严格地规定了每个阶段必须提交的文档。要求每个阶段交出的所有产品都必须是经过验证的。,HeBei Normal University of Science&Technology,瀑布模型的缺点由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要。如果需求规格说明与用户需求之间有差异,就会发生这种情况。瀑布模型只适用于项目开始时需求已确定的情况。,HeBe
19、i Normal University of Science&Technology,瀑布模型,瀑布模型的优点是过程模型简单,执行容易;缺点是无法适应变更。瀑布模型适应于具有以下特征的软件开发项目:在软件开发的过程中,需求不发生或发生很少变化,并且开发人员可以一次性获取到全部需求。否则,由于瀑布模型较差的可回溯性,在后续阶段中需求经常性的变更需要付出高昂的代价。软件开发人员具有丰富的经验,对软件应用领域很熟悉。软件项目的风险较低。瀑布模型不具有完善的风险控制机制。,HeBei Normal University of Science&Technology,原型模型,原型模型主要用于挖掘需求,或是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第一章 软件工程 概述
链接地址:https://www.31ppt.com/p-2934619.html