软件工程综述_第1页
软件工程综述_第2页
软件工程综述_第3页
软件工程综述_第4页
软件工程综述_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

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

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

3、的范围进行划分4.软件危机软件危机 1. 软件危机的表现 (1)软件开发的进度难以控制,经常出现经费超预算、完成期限一再拖延的现象。 (2)软件需求在开发初期不明确,导致矛盾在后期集中暴露,从而对整个开发过程带来灾难性的后果。(3)由于缺乏完整规范的资料,加之软件测试不充分,从而造成软件质量低下,运行中出现大量问题。 4.软件危机软件危机 2.危机的原因 用户对软件需求的描述不精确 。软件开发人员对用户需求的理解与用户的本来愿望有差异 。各类人员的信息交流不及时、不准确、有时还会产生误解。开发人员产生疏漏和错误。缺乏有力的方法和工具方面的支持 。软件产品的特殊性和人智力的局限性 。 1.2 软

4、件工程与软件过程软件工程与软件过程1. 软件工程的概念 2.软件工程项目的基本目标 3.软件工程学的原则 4.软件过程与软件生存周期 5.常见的软件开发模型 1. 软件工程的概念软件工程的概念 软件工程是一种层次化的技术。过程、方法和工具是软件工程的三个要素。(1) 软件工程过程是进行一系列有组织的活动,从而能够合理和及时地开发出计算机软件。(2) 软件工程方法为软件开发提供“如何做”的技术,它包括了项目计划、需求分析、系统设计、程序实现、测试与维护等一系列的任务。 (3) 软件工具为过程和方法提供自动的或半自动的支持。这些软件工具被集成起来,建立起一个支持软件开发的系统,称之为计算机辅助软件

5、工程(CASE,Computer Aided Software Engineering)2 软件工程项目的基本目标 目标如下: (1) 合理预算开发成本,付出较低的开发费用;(2) 实现预期的软件功能,达到较好的软件性能,满足用户的需求;(3) 提高所开发软件的可维护性,降低维护费用; (4) 提高软件开发生产率,及时交付使用。3. 软件工程学的原则 软件工程项目的目标适用于所有的软件系统开发。为了达到这些目标,在软件开发过程中必须遵循下列软件工程原则: 抽象、信息隐藏、模块化、局部化、一致性、完整性和可验证性。4.软件过程与软件生存周期 v软件过程是为获得软件产品,在软件工具支持下由软件工程

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

7、螺旋模型(Spiral Model) 1.边做边改模型(Build-and-Fix Model)在这种模型中,既没有规格说明,也没有经过设计,软件随着客户的需要一次又一次地不断被修改,如图所示v 2.瀑布模型(Waterfall Model) 瀑布模型强调文档的作用,并要求每个阶段都要仔细验证。但是,这种模型的线性过程太理想化,已不再适合现代的软件开发模式,几乎被业界抛弃 v3.快速原型模型(Rapid Prototype Model)快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足客户的要

8、求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品。 v4.增量模型(Incremental Model)与建造大厦相同,软件也是一步一步建造起来的。在增量模型中,软件被作为一系列的增量构件来设计、实现、集成和测试,每一个构件是由多种相互作用的模块所形成的提供特定功能的代码片段构成,如图所示。 v5.螺旋模型(Spiral Model)1988年,Barry Boehm正式发表了软件系统开发的“螺旋模型”,它将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。 v 各种模型的比较 模型 优点 缺点 瀑布模型 文档驱动

9、系统 可能不满足客户的需求快速原型模型 关注满足客户需求 可能导致系统设计差、效率低,难以维护增量模型 开发早期反馈及时,易于维护 需要开放式体系结构,可能会设计差、效率低螺旋模型 风险驱动 分析人员需要有经验且经过充分训练1.4 常用软件开发方法简介常用软件开发方法简介v1.结构化方法v2.面向数据结构的软件开发方法v3.面向问题的分析法v4.原型化方法 v5.面向对象的软件开发方法v6.可视化开发方法 习题一习题一v 1.什么是软件工程过程?它包含那些过程?v 2.什么是软件生存周期模型?有哪些主要模型?v 3.什么是软件生存周期?它有那些活动?v 4.什么是软件开发方法?有那些主要方法?v 5.结构化方法总的执导思想是什么?v 6.软件开发的目标是什么?v 7.原型的作用是什么?v 8.瀑布模型有那些局限性?v 9.渐增模型有哪几种?它们各有何特点?v 10.增量模型的基本

温馨提示

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

评论

0/150

提交评论