一章节软件工程概述.ppt

上传人:本田雅阁 文档编号:3301506 上传时间:2019-08-09 格式:PPT 页数:22 大小:147.04KB
返回 下载 相关 举报
一章节软件工程概述.ppt_第1页
第1页 / 共22页
一章节软件工程概述.ppt_第2页
第2页 / 共22页
一章节软件工程概述.ppt_第3页
第3页 / 共22页
一章节软件工程概述.ppt_第4页
第4页 / 共22页
一章节软件工程概述.ppt_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《一章节软件工程概述.ppt》由会员分享,可在线阅读,更多相关《一章节软件工程概述.ppt(22页珍藏版)》请在三一文库上搜索。

1、计算机科学与工程学院,软件工程(Software Engineer),第一章 软件工程概述,要想使软件功能越强、使用越方便,开发出来的软件就越复杂、越庞大,人们的软件开发能力越显得力不从心,以致使软件开发计划一拖再拖,成本失去控制,软件质量得不到保证。为了扭转这种被动局面,自20世纪60年代末期以来,人们十分重视软件开发方法、工具和环境的研究,并在这些领域取得了重要的成果。,计算机科学与工程学院,软件工程(Software Engineer),1.1 软件的发展历史,1.软件的发展历史 2.软件的概念和特点 3.软件的分类 4.软件危机,计算机科学与工程学院,软件工程(Software Eng

2、ineer),1.软件的发展历史,1. 早期阶段 程序的质量完全依赖于程序员个人的技巧。 2. 第二阶段 人们开始采用“软件工程”的方法来解决“软件危机”问题。 3. 第三阶段 软件开发技术的度量问题受到重视,最著名的有软件工作量估计COCOMO模型、软件过程改进模型CMM等。 4. 第四阶段 面向对象技术在许多领域迅速取代了传统软件开发方法。,计算机科学与工程学院,软件工程(Software Engineer),2.软件的概念和特点,软件的概念: (1)能够完成预定功能和性能的可执行指令; (2)使得程序能够适当地操作信息的数据结构; (3)描述程序的操作和使用的文档。 软件具有的特点: (

3、1)软件是逻辑的,而不是物理的产品。 (2)软件是由开发或工程化而形成的,没有明显的制造过程。 (3)软件在运行和使用期间,不存在磨损和老化问题,但它存在退化问题。 (4)大多数软件是自定的,而不是通过已有构件组装而成的。 (5)软件成本相当昂贵。 (6)软件本身是复杂的。,计算机科学与工程学院,软件工程(Software Engineer),3.软件的分类,从不同角度对计算机软件做适当的分类: 1.基于软件功能的划分 (1)系统软件 (2)支撑软件 (3) 应用软件 2.基于软件运作方式的划分 (1)实时处理软件,(2)分时软件,(3)交互式软件,(4)批处理软件。 3.基于软件规模的划分

4、4.基于软件失效的影响进行划分 5.基于软件服务对象的范围进行划分,计算机科学与工程学院,软件工程(Software Engineer),4.软件危机,1. 软件危机的表现 (1)软件开发的进度难以控制,经常出现经费超预算、完成期限一再拖延的现象。 (2)软件需求在开发初期不明确,导致矛盾在后期集中暴露,从而对整个开发过程带来灾难性的后果。 (3)由于缺乏完整规范的资料,加之软件测试不充分,从而造成软件质量低下,运行中出现大量问题。,计算机科学与工程学院,软件工程(Software Engineer),4.软件危机,2.危机的原因 用户对软件需求的描述不精确 。 软件开发人员对用户需求的理解与

5、用户的本来愿望有差异 。 各类人员的信息交流不及时、不准确、有时还会产生误解。 开发人员产生疏漏和错误。 缺乏有力的方法和工具方面的支持 。 软件产品的特殊性和人智力的局限性 。,计算机科学与工程学院,软件工程(Software Engineer),1.2 软件工程与软件过程,1. 软件工程的概念 2.软件工程项目的基本目标 3.软件工程学的原则 4.软件过程与软件生存周期 5.常见的软件开发模型,计算机科学与工程学院,软件工程(Software Engineer),1. 软件工程的概念,软件工程是一种层次化的技术。过程、方法和工具是软件工程的三个要素。 (1) 软件工程过程是进行一系列有组织

6、的活动,从而能够合理和及时地开发出计算机软件。 (2) 软件工程方法为软件开发提供“如何做”的技术,它包括了项目计划、需求分析、系统设计、程序实现、测试与维护等一系列的任务。 (3) 软件工具为过程和方法提供自动的或半自动的支持。这些软件工具被集成起来,建立起一个支持软件开发的系统,称之为计算机辅助软件工程(CASE,Computer Aided Software Engineering),计算机科学与工程学院,软件工程(Software Engineer),2 软件工程项目的基本目标,目标如下: (1) 合理预算开发成本,付出较低的开发费用; (2) 实现预期的软件功能,达到较好的软件性能,

7、满足用户的需求; (3) 提高所开发软件的可维护性,降低维护费用; (4) 提高软件开发生产率,及时交付使用。,计算机科学与工程学院,软件工程(Software Engineer),3. 软件工程学的原则,软件工程项目的目标适用于所有的软件系统开发。为了达到这些目标,在软件开发过程中必须遵循下列软件工程原则: 抽象、信息隐藏、模块化、局部化、一致性、完整性和可验证性。,计算机科学与工程学院,软件工程(Software Engineer),4.软件过程与软件生存周期,软件过程是为获得软件产品,在软件工具支持下由软件工程师完成的一系列软件工程活动。不同的组织有不同的软件过程,这些活动可以重叠,执行

8、时也可以有迭代。 软件生存周期是指软件产品从考虑其概念开始到该软件产品交付使用,直至最终退役为止的整个过程,一般包括计划、分析、设计、实现、测试、集成、交付、维护等阶段。,计算机科学与工程学院,软件工程(Software Engineer),5 常见的软件开发模型,软件开发模型是对软件过程的建模,即用一定的流程将各个环节连接起来,并可用规范的方式操作全过程 。 1.边做边改模型(Build-and-Fix Model) 2.瀑布模型(Waterfall Model) 3.快速原型模型(Rapid Prototype Model) 4.增量模型(Incremental Model) 5.螺旋模型

9、(Spiral Model),计算机科学与工程学院,软件工程(Software Engineer),1.边做边改模型(Build-and-Fix Model) 在这种模型中,既没有规格说明,也没有经过设计,软件随着客户的需要一次又一次地不断被修改,如图所示,计算机科学与工程学院,软件工程(Software Engineer),2.瀑布模型(Waterfall Model) 瀑布模型强调文档的作用,并要求每个阶段都要仔细验证。但是,这种模型的线性过程太理想化,已不再适合现代的软件开发模式,几乎被业界抛弃,计算机科学与工程学院,软件工程(Software Engineer),3.快速原型模型(Ra

10、pid Prototype Model) 快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品。,计算机科学与工程学院,软件工程(Software Engineer),4.增量模型(Incremental Model) 与建造大厦相同,软件也是一步一步建造起来的。在增量模型中,软件被作为一系列的增量构件来设计、实现、集成和测试,每一个构件是由多种相互作用的模块所形成的提供特定功能的代码片段构成,如图所

11、示。,计算机科学与工程学院,软件工程(Software Engineer),5.螺旋模型(Spiral Model) 1988年,Barry Boehm正式发表了软件系统开发的“螺旋模型”,它将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。,计算机科学与工程学院,软件工程(Software Engineer),各种模型的比较 模型 优点 缺点 瀑布模型 文档驱动系统 可能不满足客户的需求 快速原型模型 关注满足客户需求 可能导致系统设计差、效率低,难以维护 增量模型 开发早期反馈及时,易于维护 需要开放式体系结构,可能会设计差、效率低 螺旋模型 风险

12、驱动 分析人员需要有经验且经过充分训练,计算机科学与工程学院,软件工程(Software Engineer),1.3 软件的错误观点,下述观点是错误的: 一: 书中标准与示例,可以帮助我们解决软件开发中遇到的任何问题。 二:如果我们已经落后于计划,可以增加更多的程序员来赶上进度。 三:项目需求变化能够很容易地满足,因为软件是灵活的。 四:有了对目标的一般描述就可以开始写程序了,我们以后可以再补充细节。 五:一旦我们写出了程序并使其正常运行,我们的工作就结束了。 六:一个成功的项惟一应该提交的就是运行程序。,计算机科学与工程学院,软件工程(Software Engineer),1.4 常用软件开

13、发方法简介,1.结构化方法 2.面向数据结构的软件开发方法 3.面向问题的分析法 4.原型化方法 5.面向对象的软件开发方法 6.可视化开发方法,计算机科学与工程学院,软件工程(Software Engineer),习题一,1.什么是软件工程过程?它包含那些过程? 2.什么是软件生存周期模型?有哪些主要模型? 3.什么是软件生存周期?它有那些活动? 4.什么是软件开发方法?有那些主要方法? 5.结构化方法总的执导思想是什么? 6.软件开发的目标是什么? 7.原型的作用是什么? 8.瀑布模型有那些局限性? 9.渐增模型有哪几种?它们各有何特点? 10.增量模型的基本思想是什么? 11.快速原型模型的基本思想是什么? 12.试述快速原型模型有那些优缺点? 13.举出一个可以采用快速原型方法完成的具体软件项目的实例。 14.举出一个可以采用增量模型的具体软件项目。 15.当沿着螺旋模型的过程流路径向外移时,你认为正在开发或维护的软件发生了什么变化?,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1