软件工程(概论)概述课件_第1页
软件工程(概论)概述课件_第2页
软件工程(概论)概述课件_第3页
软件工程(概论)概述课件_第4页
软件工程(概论)概述课件_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、软件工程方法与实践,窦万峰等编著,机械工业出版社,2009.5软件工程导论张海藩编著,清华大学出版社人月神话,佛雷德里克.布鲁克斯著,UMLChina翻译组 汪颖译,清华大学出版社软件工程水利工程建筑工程机械工程软件工程传统工程气象工程生物工程第1章 概述2新兴工程第1章 概述SoftwareSoft+Ware软件是计算机系统中与硬件相互依存的另一部分,它包括程序、数据及其相关文档的完整集合。软件与硬件、人、过程等共同构成计算机系统。第1章 概述 软件是一种逻辑实体,而不是具体的物理实体软件的特点硬件失效率曲线时间失效率磨合调整磨损用坏修改点时间失效率软件失效率曲线实际曲线理想曲线软件的生产与

2、硬件不同 软件的特点第1章 概述软件的成本相当昂贵软件技术的发展落后于需求时间软件复杂性软件需求差距软件技术硬、软件成本比例的变化时间成本%软件硬件软件的特点第1章 概述第1章 概述 程序设计阶段:40-50年代,实用高级语言出现前(直接二进制编码,主要用于解决科学计算问题,编程难以掌握,汇编语言出现,程序质量取决于个人技巧); 程序系统阶段:60年代,软件工程出现前(软件应用领域扩大,高级语言出现,硬件无关性,软件危机出现); 软件工程阶段:70年代,软件工程出现后(程序=算法+数据结构,结构化思想的提出); 互联网阶段:新世纪以来,互联网广泛应用后。软件发展史第1章 概述软件生态链的变化硬

3、件(主机、PC、 网络设备)嵌入式软件基础(系统)软件(OS、DB)系统集成应用软件最终用户第1章 概述软件生态链的变化硬件(主机、PC、 网络设备)嵌入式软件基础(系统)软件(OS、DB)系统集成应用软件最终用户中间件第1章 概述软件危机 正像一只逃亡的野兽落到泥潭中做垂死的挣扎, 越是挣扎,陷的越深,最后无法逃脱灭顶的灾难。 IBM 360系统 开发时间:1963-1966年 投入人力:5000人年 代码量:超过100万行 每个版本都是从上一个版本找出1000个错误而修订的结果第1章 概述软件危机 在软件开发和维护过程中所遇到的一系列严重问题 包含两个问题:如何开发、如何维护 典型表现:

4、对开发成本和进度的估计常常很不准确,开发成本和开发周期严重超标;(2) 用户对“已完成的”软件系统不满意的现象经常发生;(3) 软件产品的质量往往靠不住;(4) 由于没有文档资料软件常常是不可维护的,软件修改和维护非常困难;(5) 软件成本在计算机系统总成本中所占比例逐年上升;(6) 软件开发生产率很低。第1章 概述软件危机的原因 软件的不可见性: 软件是计算机系统中的逻辑部件而不是物理部件,管理和控制软件开发过程相当困难。运行中发现 错误,很可能是遇到了一个在开发时期引入的,在测试阶段没能检测出来的故障。 因此,软件维护通常意味着改正或修改原来的设计,这就在客观上使得软件较难维护。 软件规模

5、不断扩大: 程序的复杂性将随着程序规模的增加而呈指数上升。如何保证每个人完成的工作合在一起确实能构 成一个高质量的大型软件系统,更是一个极端复杂困难的问题,不仅涉及许多技术问题,诸如分析方法、 设计方法、形式说明方法、版本控制等,更重要的是必须有严格而科学的管理。第1章 概述软件危机的原因 对软件的错误认识: 与软件开发和维护有关的许多错误认识和作法的形成,可以归因于在计算机系统发展的早期软件 开发的个体化特点。错误认识和作法主要表现为忽视软件需求分析的重要性,认为软件开发就是写程 序并设法使之运行,轻视软件维护等。事实上,对用户要求没有完整准确的认识就匆忙着手编写程序 是软件开发工程失败的主

6、要原因之一。 软件生命周期:一个软件从定义、开发、使用和维护,直到最终被废弃,要经历一个漫长的周期。 a)问题定义 b)可行性研究 c)需求分析 c)软件设计(总体设计和详细设计) d)编写程序(软件开发全部工作量的10%-20%) e)测试和维护(软件开发全部工作量的40%-50%)软件是程序以及开发、使用和维护程序需要的所有文挡。第1章 概述软件工程框架基本过程支持过程组织过程选取适宜的开发模型采用合适的设计方法提供高质量的工程支持重视软件工程的管理目标原则过程规定了软件工程实践的结果(即软件)应具有的基本性质需求、分析与设计、实现、确认与测试、维护与支持可用性性确正经济性 为软件开发提供

7、了 “如何做” 的技术 个性化方法结构化方法面向对象方法软件复用第1章 概述软件工程范畴 软件工程学 软件开发技术 软件工程管理软件开发方法学 软件工具 软件工程环境 软件工程管理学 软件产权保护 软件经济学 目的:为了按进度及预算完成软件计划 内容:成本估算、进度安排、人员组织、质量保证等推迟实现;逐步求精;分解与抽象;信息隐蔽;质量保证。软件工程的基本思想第1章 概述软件工程的发展阶段1、第一代软件工程 传统的软件工程60年代末到70年代为了克服“软件危机” (Software Crisis)提出“软件工程”的名词,将软件开发纳入工程化的轨道,基本形成软件工程的概念、框架、技术和方法。称为

8、传统的软件工程。2、第二代软件工程 对象工程80年代中到90年代,面向对象的方法与技术得到发展,研究的重点转移到面向对象的分析与设计,演化为一种完整的软件开发方法和系统的技术体系,称为对象工程。第1章 概述软件工程的发展阶段3、第三代软件工程 过程工程80年代中开始,人们在软件开发的实践过程中认识到:提高软件生产率,保证软件质量的关键是“软件过程”,是软件开发和维护中的管理和支持能力,逐步形成软件过程工程。4、第四代软件工程 构件工程90起年代,基于构件(Component)的开发方法取得重要进展,软件系统的开发可通过使用现成的可复用构件组装完成,而无需从头开始构造,以此达到提高效率和质量,降

9、低成本的目的。第1章 概述软件工程过程 ISO 9000定义:软件工程过程是把输入转化为输出的一组彼此相关的资源和活动。 从软件开发的观点看,它就是使用适当的资源(包括人员、硬软件工具、时间等),为开发软件进行的一组 开发活动,在过程结束时将输入(用户要求)转化为输出(软件产品)。 软件工程过程定义了:方法使用的顺序、要求交付的文档资料、为保证质量和适应变化所需要的管理、软件 开发各个阶段完成的里程碑。 软件工程过程包含基本活动:开发活动:软件开发模型;项目管理活动:项目的范围(要做的内容)、进度(要花费的时间)、成本(要耗费的资源)过程改进活动:关注质量、软件开发的最佳实践、过程定义和改进第1章 概述软件生存周期软件从产生、发展到成熟、直至衰亡为止的全过程软件生存周期包含三个阶段: 软件定义 软件开发 软件运行维护软件生存周期模型是软件工程思想的具体化,是跨越软件生存周期的系统开发、运行、维护所实施的全部活动和任务的过程框架。常用的软件生存周期模型有:瀑布模型 迭代模型 螺旋模型 增量模型 喷泉模型 快速应用开发( RAD )模型 第1章 概述软件工程的知识结构2001年5月ISO/IEC JTC 1发布了SWEBOK指南V0.95(试用

温馨提示

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

评论

0/150

提交评论