当前位置:文档之家› 软件工程生命周期各阶段介绍

软件工程生命周期各阶段介绍

软件重用分两种:(1)重用程序以各种源程序形式存库;(2)重用程 序是经过编译的目标程序。
软件重用模式开发过程如下:
①设计重用库模块:重用库中的模块要经历模块定义、功能规 格描述、模块设计、编码、模块功能测试、模块登记、模块目录编 制,此后可放人重用库中。②软件系统设计:在重用库建立后,软 件系统的设计步骤如下:需求分析,功能定义、设计,在重用库中 选择模块,编码,测试,验收,运行维护。
快速原型(续)——类型之三
为了保证软件产品的质量,在总体设计和详细设计过程中,用 原型来验证总体结构或某些关键算法。如果设计方案验证完成后就 将原型丢弃,则构造原型的工具不必与目标系统的生产环境一致。 如果想把原型作为最终产品的一部分,原型和目标系统可使用同样 的程序设计语言。
快速原形的开发过程
瀑布模型开发适合于在软件需求比较明确,开发技术比较成熟, 工程管理比较严格的场合下使用。
(2)尽可能推迟软件的编码:程序设计也称为编码。实践表明,大、 中型软件编码开始得越早,完成所需的时间反而越长。瀑布模型在 编码之前安排了需求分析、总体设计、详细设计等阶段,从而把逻 辑设计和编码清楚地划分开来,尽可能推迟程序编码阶段。
问题定义的目的是要在短时间内,对用户的要求有一个比较准确的 估计,对要实现的系统规模做到胸中有数。但仅有这些还不够,还 要搞清用户不打算干什么,在这个系统中哪些内容不用实现。工作 的宗旨是搞清要做什么并划清要实现的系统的范围边界。
在完成问题定义的过程中,用户在一开始,可能会给你大堆大堆的 表格,因为他们可能认为只要把表格给你讲清楚,你就会对这个
系统定义与用户 需求分析
原型设计 编码
完善原 型
测试原 型
产品系统的设 计实现
第三课时
喷泉模型 软件重用模型
第一章第三课时
喷泉模型
基于喷泉模型,Hodge等人提出将软件开发过程
划分为概念模型分析、系统设计、对象设计与实现、
测试和系统组装集成等五个阶段,它也体现出分析
和设计之间的重叠 ①概念模型分析:这个阶段主
设计
始设计,而是充分利用以前的设计工作。在软件开 发时检索对象库,若是对象库中已有的,则可再用;
分析
否则,重新定义新的对象,进行设计和实现。④测 试;测试所有的对象及对象相互之间的关系是否符 喷泉模型原理图
合要求。
喷泉模型(续)
⑤系统组装集成:面向对象软件特点之一是软件重用和组装技术。 对象是数据和操作的封装载体,组装在一起才构成完整的系统。软 件是对象模块的复合,而软件设计是对象模块经过进程控制而构造 生成。
演化
要目标是建立系统模型。系统模型中的对象是现实
世界中的客观对象的抽象,应结构清晰、易于理解、
易于描述其规范。在分析阶段面向问题域,建立起
集成
对象模型和过程模型。②系统设计:给出模型对象
测试
和过程的规范描述。③对象设计与实现:面向对象
设计方法强调软件模块的再用和软件合成,因而在
编程
对象设计和实现时,并不要求所有的对象都从头开
渐增型开发的软件系统是逐渐增长和完善的,所以从整体结构 上不如瀑布型方法开发的软件那样清晰。但是,由于渐增型开发过 程自始至终都有用户参与,因而可以及时发现问题加以修改,可以 更好地满足用户需求。
快速原型(续)——类型之二
系统分析人员在确定了软件需求之后,从中选出某些应验证的 功能,用适当的工具快速构造出可运行的原型系统,由用户试用和 评价。这类原型往往用后就丢弃,因此构造它们的生产环境不必与 目标系统的生产环境一致,通常使用简洁而易于修改的超高级语言 对原型进行编码。
(3)保证质量 :为了保证质量,瀑布模型软件开发在每个阶段都 要完成规定的文档,每个阶段都要对已完成的文档进行复审,以便 及早发现隐患,排除故障。
快速原型
正确的需求定义是系统成功关键。软件开发人员需要反复多次 地和用户交流信息,才能全面、准确地了解用户的要求。理想的做 法是先根据需求分析的结果开发一个原型系统,请用户试用一段时 间,以便能正确地认识到他们的实际需要是什么,这相当于工程上 先制作“样品”试用后,作适当改进,然后再批量生产一样,这就 是快速原型法。虽然此法要额外花费一些成本,但是可以尽早获得 更正确完整的需求,可以减少测试和调试的工作量,提高软件质量。 因此快速原型法使用得当,能减少软件的总成本,缩短开发周期, 是目前比较流行的实用开发模式。
第二章第一课时
•问题定义与可行性研究 问题定义
可行性研究
问题定义
问题是指用户的基本要求,就是确切地定义用户要求解决的问题, 即确定问题的性质、工程的目标和规模。
怎样定义问题?问题定义的来源是用户,是提出问题、请求解决的 人。
若问题是以书面形式提出来,那么分析员应该认真阅读和分析书面 材料;如果问题是以口头形式提出,那么分析员应该认真倾听并仔 细记录要点,在适当的时候认真地请用户解释。分析员还应该通过 对用户的访问调查进一步搞清楚,用户为什么提出这样的问题,问 题的背景是什么,用户的目标是什么。
在问题定义阶段,分析员应该对工程成本做出粗略的预算, 并对下阶段可行性研究所需要时间和成本做出较精确的估计。
•软件发展简史(无程序的阶段、程序阶段、软件阶段与软件工程阶 段) •软件生命周期(软件生存的七个阶段:软件计划、软件需求分析、 软件总体设计、软件详细设计、软件编码、软件测试、软件维护 )
第二课时
•软件开发模型 瀑布模型 快速原型
第一章第二课时
瀑布模型的定义
瀑布模型遵循软件生存周期的划分,明确规定每个阶段的任务, 各个阶段的工作顺序展开,恰如奔流不息拾级而下的瀑布。

划 时
问题定义

可行性研究
对应的文档资料与系统目标 方案论证报告或计划任务书

发 时
需求分析

概要设计
需求规格说明书 系统功能结构图
详细设计
设计规格书
编码 有 错
测试
程序规格书、源程序 测试记录、用户操作手册
运行




维护
评价报告、维护记录
瀑布模型的特点
(1)软件生存周期的顺序性:只有前一阶段工作完成以后,后一 阶段的工作才能开始,前一阶段的输出文档,就是后一阶段的输入 文档。只有前一阶段有正确的输出,后一阶段才可能有正确的结果。 如果在生存周期的某一阶段出现了错误,往往要追溯到在它之前的 一些阶段。
《软件工程》课件
张权范
▪ 第一章 ▪ 第二章 ▪ 第三章 ▪ 第四章 ▪ 第五章 ▪ 第六章 ▪ 第七章 ▪ 第八章 ▪ 第九章 ▪ 第十章
《软件工程》
概述 软件计划 软件需求分析 软件总体设计 软件详细设计 软件编码 软件测试 软件维护 软件项目管理 面向对象技术
第一章第一课时
•几个基本概念 软件及其组成 软件的概念 软件的组成 软件危机(概念、表现、产生原因与解决办法) 软件工程
根据建立原型的目的不同,实现原型的途径也有所不同,通常有下 述三种类型。
(1)渐增型
(2)用于验证软件需求的原型
(3)用于验证设计方案的原型
快速原型(续)——类型之一
先选择一个或几个关键功能,建立一个不完全的系统,此时只 包含目标系统的一部分功能或对目标系统的功能从某些方面作简化, 通过运行这个系统取得经验,加深对软件需求的了解,逐步使系统 扩充和完善。如此反复进行,直到软件人员和用户对所设计的软件 系统满意为止。
问题定义(续)
系统全部弄清楚了。还有一些人可能会给你展示一些企业的十分详 尽的管理示图,如物资流管理图、生产管理图、计划财务管理图等。 因为他们也可能认为,只要分析员把这些图看懂了,就会对他们要 建立的系统搞清楚了。
但是,在问题定义阶段千万不要陷入到这些表格和图纸中。因为不 管是表格还是图纸,其中都包含了大量的、只有用户才能懂的术语。 当然,并不是说在问题定义阶段,这些图纸表格没有一点作用。对 一些关键性的语汇可以请用户讲清楚,这样有利于问题定义的准确 性。
总之,在问题定义阶段,分析员应尽可能站在较高的角度去 抽象、概括所要干的事情。
分析员对问题有了明确认识之后,应该把自己的认识写成书 面报告,提交给用户和使用部门的负责人审查,以检验分析员对所 要解决的问题的理解是否正确。因为分析员对问题的理解为今后开 发工作确定了方向。分析员对问题理解正确,这是确保今后系统开 发成功的关键。反之,分析员对问题理解不正确,最终开发出来的
风险分
风险分析析
操作
风险分析 确 定 目 风险
原型
原 型
性原 型
3

分析 原型1 2
需方束求案计约划
软件 产品 详细
生存周期计
需求 设计 设计

需求
开 发 计 确认
编码
划 集成测单元
确认 运行 维护
验证 测试
集成 测试
测试
开发验证 下一级产 品
螺旋模型的开发过程
问题定义(续)
系统必然不能解决实际要求解决的问题。如果一个系统,不能 解决要求它解决的问题,那么这个系统就一点价值也没有,只不过 是浪费了开发它所用的时间和资源。所以及时审查问题的定义是极 端重要的。理想的做法是分析员、用户和使用部门的负责人一起阅 读讨论这份报告,明确含糊不清的地方,改正不正确的地方。通过 修改得到一份大家一致同意的文档。
软件重用模型
旨在开发具有各种一般性功能的软件模块,将它们组成软件重用 库,这些模块设计时考虑其适应各种界面的接口规格,可供软件开 发时利用。主要优点是减少软件生产中的重复开发,避免软件开发 人员的大量重复劳动,提高开发效率,缩短开发周期,降低开发成 本。软件重用库的模块不仅要便于选择使用,而且还应具有允许扩 充、积累其成分的性能。
软件工程的任务与研究范围
•软件产品的特点 •软件工程的研究内容与方法 •软件工具与软件支撑环境 •软件管理
相关主题