软件工程第三章软件生存周期及其模型

合集下载

高级软件工程(第三章)几种典型的开发模型实例

高级软件工程(第三章)几种典型的开发模型实例

周期的任务进行比较详细的划分(基于WBS),而对后
面迭代周期的适当放宽--计划应是由粗到细的。
大家好
18
敏捷开发方法
➢ 敏捷开发(Agile Development)是一种以人 为核心、迭代、循序渐进的开发方法。在敏捷 开发中,软件项目的构建被切分成多个子项目 ,各个子项目的成果都经过测试,具备集成和 可运行的特征。简言之,就是把一个大项目分 为多个相互联系,但也可独立运行的小项目, 并分别完成,在此过程中软件一直处于可使用 状态。
大家好
12

7. 强调进行风险管理:对项目风险进行确认并全 程跟踪。
8. 项目开发过程进行里程碑的建立和管理。 9. 项目总结制度:每个项目完成后,对其失败和
成功的地方进行总结。
大家好
13
MSF团队模型
➢MSF组队模型展示了如何组织项目队伍,在时 间控制和连续不断发展计划的要求下,有效的 交付系统的解决方案。它描述了六种基本的角 色(程序管理、产品管理、开发、测试、用户 体验和发布管理)。
➢ 它分为四个阶段,每个阶段至少通过3次迭代过 程完成阶段目标;
➢ 每个迭代有明确的目标和评估标准; ➢ 整个项目划分为3次目标明确的增量开发,每次
增量作为一个可执行版本,提交用户使用。
大家好
9
微软开发模型( MSF )
MSF(微软解决方案框架结构)是一组建立、
开发和实现分布式企业系统应用的工作模型、 开发准则和应用指南。它帮助企业融合商业 和技术的目标,降低采用新技术后系统整体 的费用,以及成功的应用微软技术整合商业 过程的方法。
➢极限编程中的“Extreme”(极限)是指将有效的 软件开发原理和实践应用到极限。
大家好

软件工程03-软件生命周期与开发模型

软件工程03-软件生命周期与开发模型
软件生命周期与开发模型
本章任务



本章任务-了解软件工程的发展史及常用的开发模型 知识目标: 了解软件工程的发展史 熟悉软件的生命周期 熟悉常用的开发模型 能力目标: 能描述软件的生命周期 能描述常用的软件开发模型及适用场景
1.软件工程概述

软件危机:落后的软件生产方式无法满足迅速增长的计算机 软件需求,从而导致软件开发与维护过程中出现一系列严重 问题的现象。 表现形式: 软件开发费用和进度失控。费用超支、进度拖延的情况屡 屡发生。有时为了赶进度或压成本不得不采取一些权宜之 计,这样又往往严重损害了软件产品的质量。 软件的可靠性差。尽管耗费了大量的人力物力,而系统的 正确性却越来越难以保证,出错率大大增加,由于软件错 误而造成的损失十分惊人。 生产出来的软件难以维护。很多程序缺乏相应的文档资料 ,程序中的错误难以定位,难以改正,有时改正了已有的 错误又引入新的错误。随着软件的社会拥有量越来越大, 维护占用了大量人力、物力和财力。

1.软件工程概述
传统软件工程

为迎接软件危机的挑战,人们进行了不懈的努力,这些努 力大致上是沿着两个方向同时进行的。 第一个方向是从软件开发管理的角度,希望实现软件 开发过程的工程化,它包括软件度量、项目估算、进 度控制、人员组织、配置管理、项目计划等。这方面 最为著名的成果就是提出了大家都很熟悉的“瀑布式 ”生命周期模型,它是在60年代末“软件危机”后出 现的第一个生命周期模型。如图5-1所示
(1)瀑布模型


瀑布模型是将软件生存周期的各项活动规定为按 固定顺序而连接的若干阶段工作,形如瀑布流水 逐级下落,最终得到软件产品。 瀑布模型的核心思想是按工序将问题简化,将功 能的实现与设计分开,便于分工协作,即采用结 构化的分析与设计方法将逻辑实现与物理实现分 开。将软件生命周期划分为可行性研究与计划、 需求分析、设计、编码、测试和运行维护等六个 基本活动,并且规定了它们自上而下、相互衔接 的固定次序,如同瀑布流水,逐级下落。如果需 求发生变化,而需要逐级返回,修改所有相关的 文档及代码。

[计算机软件及应用]软件开发生命周期-PPT课件

[计算机软件及应用]软件开发生命周期-PPT课件

*
按照以上需求陈述,回答以下问题。 如果采用增量模型开发上述系统,请画图表示该系统的生命周期模型? 根据学生成绩管理系统的功能要求,对系统进行分解,建立系统的WBS?
*
Code and fix
需求了解
编码、走查
编译、检错
修正
编写文档
提交
修正
测试
*
选择生存期的步骤
熟悉各种生存期模型 评审、分析项目的特性 选择适合项目的生存期模型 标识生存期模型与项目不一致地方,并进行裁减
*
Rational统一开发过程
*
本章要点
一、生存期模型定义 二、常用生存期模型 三、案例分析
*
软件工程与项目管理
第三章 软件项目生命周期模型
*
本章要点
一、生存期模型定义 二、常用生存期模型 三、案例分析
*
建筑工程类项目典型生存期模型
*
软件生命周期
软件生命周期(SDLD) 是指从软件开始开发到报废的全过程,亦称软件生存期(life cycle)。一般用经典的瀑布模型来描述。
*
最常用的-渐进式阶段模型
综合了增量模型和螺旋式模型的一个实用模型 渐进式前进 阶段式提交
*
渐进式迭代模型 *
*
阶段性完成规划
*
渐进式阶段模型的特点
阶段式提交一个可运行的产品 关键的功能更早出现 早期预警问题,避免软件缺陷不知不觉的增长 减少报告负担 阶段性完成可以降低估计失误 阶段性完成均衡了弹性与效率
*
Spiral Model适合的项目
风险是主要的制约因素 不确定因素和风险限制了项目进度 用户对自己的需求也不是很明确 需要对一些基本的概念进行验证 可能发生一些重大的变更 项目规模很大 项目中采用了新技术

软件工程生命周期PPT课件

软件工程生命周期PPT课件

问题定义
“要解决什么问题?”
“尽管确切定义问题的必要性是十分明显的,但 在实践中它却可能是最容易被忽视的问题” 通过对客户的访问调查,系统分析员扼要的写 出问题的性质、工程目标和工程规模的书面报 告,经过讨论和必要的修改后这份报告应该得 到客户用户的确认。
可行性研究
“做还是不做”
本阶段的任务是根据用户提出的工程项目的性 质、目标和规模,进一步了解用户的要求及现有的环 境及条件,从技术、经济和社会等多方面研究并论证 该项目的可行性,即该项目是否值得去解决,是否存 在可行的解决办法。
The debugging process
定位错误
设计错误 修复
程序错误 修复
重测程序
软件有效性验证
▪ 软件有效性验证是要看系统是否符合它的描述以
及是否符合客户的需求。它包括检查过程、从用 户需求定义到程序开发的每个软件过程阶段。
▪ 绝大多数有效性验证的成本发生在系统完成测试
的时候。
“测试过程应该和开发过程相结合,分阶段增量进行”
务”。
“软件的运行是软件产品发挥社会和经济效益的 重要时期”
✓ 在软件使用过程中用户或软件工程师必须仔细收
集已发现的软件运行中的问题,定期或不定期的 拟定“软件问题报告”。
维护
✓ 任务: 通过各种维护活动使软件系统持久地满足用
户的需求。
✓ 每项维护活动实质上都是一次压缩和简化了的软
件定义和软件开发过程。都要经历提出维护要求、 分析维护要求、提出维护方案、审批维护方案、 确定维护计划、修改软件设计、修改程序、测试 程序、评审、验收等步骤。
概要设计
2)实现途径 选择某种方法和工具。设计的软件系统应具有良 好的总体结构、尽量降低模块接口的复杂度,并 力争做到各功能模块之间的低耦合度、而功能模 块内部具有较高的内聚度。

3 软件生存周期模型

3  软件生存周期模型
软件工程
第三讲 软件生存周期模型
朱建凯
2.2 软件生存周期模型
1) 基本概念 软件生存周期模型 IEEE Standard 12207.0-1996 把一个软件生存周期模型描述为: 把一个软件生存周期模型描述为:一个包括软件产品开 发、运行和维护中有关过程、活动和任务的框架,覆盖了从该 运行和维护中有关过程、活动和任务的框架, 系统的需求定义到系统的使用终止。 系统的需求定义到系统的使用终止。 中国计算机科学与技术百科全书 称软件生存周期模型为“软件开发模型” 并把它定义为: 称软件生存周期模型为“软件开发模型”,并把它定义为: 软件过程、活动、任务的结构框架。 软件过程、活动、任务的结构框架。
(3)该模型的适用情况 在开始开发时,需求很明确, 在开始开发时,需求很明确,且产品还可被适当地分解为一 些独立的、可交付的软件(构造增量: increments. 些独立的、 可交付的软件(构造增量: Build increments.如 果一个增量并不需要交付给客户的话, 果一个增量并不需要交付给客户的话,那么这样的增量通常称 为一个“构造” 为一个 “ 构造”(Build)。如果增量被交付,那么它们就被认为 。如果增量被交付, 是发布版本(Released version)。 ); 是发布版本 。 在开发中,期望尽快提交其中的一些增量产品。 在开发中,期望尽快提交其中的一些增量产品。 例如: 例如: 一个数据库系统,它必须通过不同的用户界面, 一个数据库系统,它必须通过不同的用户界面,为不同类型的 用户提供不同的功能。在这一情况下, 用户提供不同的功能。在这一情况下,首先实现完整的数据库 设计,并把一组具有高优先级的用户功能和界面作为一个增量; 设计,并把一组具有高优先级的用户功能和界面作为一个增量; 以后,陆续构造其它类型用户所需求的增量。 以后,陆续构造其它类型用户所需求的增量。

软件生命周期

软件生命周期
迭代和瀑布的最大的差别就在于风险的暴露时间上。“任何项目都会涉及到一定的风险。如果能在生命周期 中尽早确保避免了风险,那么您的计划自然会更趋精确。有许多风险直到已准备集成系统时才被发现。不管开发 团队经验如何,都绝不可能预知所有的风险。”
由于瀑布模型的特点(文档是主体),很多的问题在最后才会暴露出来,为了解决这些问题的风险是巨大的。 "在迭代式生命周期中,您需要根据主要风险列表选择要在迭代中开发的新的增量内容。每次迭代完成时都会生成 一个经过测试的可执行文件,这样就可以核实是否已经降低了目标风险。"
软件测试阶段:在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。
软件运行和维护阶段:是软件生命周期中持续时间最长的阶段,包括类
瀑布模型 迭代式模型
快速原型模型 螺旋模型
(Waterfall Model)首先由Royce提出。该模型由于酷似瀑布闻名。在该模型中,首先确定需求,并接受 客户和SQA小组的验证。然后拟定规格说明,同样通过验证后,进入计划阶段…可以看出,瀑布模型中至关重要 的一点是只有当一个阶段的文档已经编制好并获得SQA小组的认可才可以进入下一个阶段。这样,瀑布模型通过 强制性的要求提供规约文档来确保每个阶段都能很好的完成任务。但是实际上往往难以办到,因为整个的模型几 乎都是以文档驱动的,这对于非专业的用户来说是难以阅读和理解的。想象一下,你去买衣服的时候,售货员给 你出示的是一本厚厚的服装规格说明,你会有什么样的感触。虽然瀑布模型有很多很好的思想可以借鉴,但是在 过程能力上有天生的缺陷。
阶段
可行性研究阶段:同任何事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡等阶 段,一般称为软件生存周期(软件生命周期)。把整个软件生存周期划分为若干阶段,使得每个阶段有明确的任 务,使规模大,结构复杂和管理复杂的软件开发变的容易控制和管理。可以将软件生命周期概括为软件计划与可 行性研究阶段(问题定义、可行性研究)、需求分析阶段、软件设计阶段(概要设计和详细设计)、软件编码阶 段、软件测试阶段和软件运行与维护阶段。软件计划与可行性研究阶段(问题定义、可行性研究):此阶段是软 件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。

软件工程第三版答案

软件工程第三版答案

软件工程第三版答案【篇一:软件工程课后答案】>1.1什么是计算机软件?软件的特点是什么?答:计算机软件指计算机系统中的程序及其文档。

软件的特点是:a 软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确得估算;b 软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大;c 软件的使用没有硬件那样的机械磨损和老化问题。

1.2 简述软件的分类,并举例说明。

答:在《计算机科学技术百科全书》中,将软件分为系统软件、支撑软件和应用软件3类。

a 系统软件:系统软件居于计算机系统中最靠近硬件的一层,其他软件一般都通过系统软件发挥作用。

系统软件与具体的应用领域无关。

例如:编译程序、操作系统等。

b 支撑软件:支撑软件是支撑软件的开发和维护的软件。

例如:数据库管理系统、网络软件、软件工具、软件开发环境等。

c 应用软件:应用软件是特定应用领域专用的软件。

例如:工程/科学计算软件、嵌入式软件、产品线软件、web应用软件、人工智能软件。

1.4 什么是软件工程?答:在《计算机科学技术百科全书》中软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。

1.5 简述软件工程的基本原则。

答:软件工程原则包括围绕工程设计、工程支持和工程管理提出的以下4条基本原则:第一条:围绕适宜的开发模型;第二条:采用合适的设计方法;第三条:提供高质量的工程支撑;第四条:重视软件工程的管理。

1.6 软件生存周期分哪几个阶段?分别简述各个阶段的任务。

答:软件生存周期有计算机系统工程、需求分析、设计、编码、测试、运行和维护6个阶段。

a计算机系统工程的任务是确定待开发软件的总体要求和范围,以及该软件与其他计算机系统元素之间的关系,进行成本估算,做出进度安排,并进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中做出选择。

b需求分析主要解决待开发软件要“做什么”的问题,确定软件的功能、性能、数据、界面等要求,生成软件需求规约。

软件工程名词解释

软件工程名词解释
5. 预防性维护
为了改进应用软件的可靠性和可维护性,为了适应未来的软硬件环境的变化,应主动增加预防性的新的功能,以使应用系统适应各类变化而不被淘汰。
6. 软件可维护性
软件可维护性的定义:软件能够被理解、校正、适应及增强功能的容易程度。
7.结构化维护
如果维护工作是从评价完整的软件配置开始入手,确定软件的重要结构特点、性能特点以及接口特点;估量要求的改动将带来的影响,并且计划实施途径。然后首先修改设计并且对所做的修改进行仔细审查。接下来编写相应的源程序代码;使用在测试说明书中包含的信息进行回归测试;最后,把修改后的软件再次交付使用。
11. 桩模块
桩模块是指模拟被测试的模块所调用的模块,而不是软件产品的组成的部分。
12. 单元测试
着重测试每个单独的模块,以确保它作为一个单元来说功能是正确的。
13. 集成测试
将模块组合起来成为一个完整的系统对其进行测试。
14. 确认测试
按照需求规格说明书中的确定指标对系统进行功能与性能的测试。
5. 数据流图
简称DFD,是SA(结构化分析)方法中用于表示系统逻辑模型的一种工具.是一种功能模型.作用:它以图形的方式描绘数据在系统中流动和处理的过程,反映系统必须完成的逻辑功能.
第四章
1. 模块
在程序设计中,为完成某一功能所需的一段程序或子程序;或指能由编译程序、装配程序等处理的独立程序单位;或指大型软件系统的一部分。
第六章
1. 程序设计风格
是指一个人编制程序时所表现出来的特点、习惯、逻辑思路等
2. 程序可移植性
机器只识别0和1,不管是用什么语言写的程序最终都是0和1的串,说某种语言的移植性好是说在各种型号的机器上有能够把以这种语言写的源程序编译成机器码的编译器
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

增量模型特点
• 增量 – 小而可用的软件
• 特点 – 在前面增量的基础上开发后面的增量 – 每个增量的开发可用瀑布或快速原型模型 – 迭代的思路
循环模型
为了描述软件开发过程中可能的回溯,尤其是维 护阶段往往要经历上述各个阶段。采用循环模型描 述。
计划
评价
运行
需求分析
测试
设计
编码
循环模型
速成原型的工作模型是一个循 环的模型。
螺旋模型的优点
• 符合人们认识现实世界和软件开发的客覌规律; • 支持软件整个生命周期; • 保持瀑布模型的系统性、阶段性; • 利用原型评估降低开发风险; • 开发者和用户共同参与软件开发,尽早发现软件
中的错误; • 不断推出和完善软件版本,有助于需求变化,获
取用户需求,加强对需求的理解。
面向对象方法及其工作模型
计划 时期
开发 时期
运行 时期
(目标与范围说明书) (可行性论证论告) (需求说明书) (设计文档) (源程序清单) (测试报告) (维护报告)
瀑布模型
常用的软件开发模型
软件开发模型是描述软件开发过程中各种活动如何 执行的模型。因此又称为软件过程模型。
软件过程模型是对软件开发实际过程的抽象和 简化。
结束标准:以某种程序设计语 言表示的源程序清单。
技术审查和管理复审
• 技术审查是从技术角度进行审查,是保证软件质量和 降低软件成本的重要措施。
• 技术审查通常由专家组成的审查小组来承担审查工作。
• 管理复审的主要任务实在软件生存周期的每个重要里 程碑,对工程项目的成本、实际花费的经费、投资回 收的前景、项目的进度等经济因素从管理角度进行审 查。
• 它产生的正式需求文挡,是软件开发的基础。 • 如果开发的原型是可运行的,它的若干高质量的
程序片段和开发工具可用于工作程序的开发。 • 原型的开发和评审是系统分析员和用户/客户共同
参予的迭代过程,每个迭代循环都是线性过程。
螺旋模型
对大型软件,需要多个原型描述系统的生存期,螺旋模 型将瀑布模型与原型化模型结合起来,并加入了风险分析。
2
第二章
生存周期及其模型
2.1 软件工程过程与软件生存期
为了克服软件危机,人们从其他产业的工业化 生产得到启示,于是在68年北大西洋公约的软件可 靠性会议(NATO)上,首次提出了“软件工程” 的概念。提出了在软件生产中采用工程化的方法, 采用一系列科学的、现代化的方法技术来开发软件。 这种工程化的思想贯穿到软件开发和维护的全过程。
OOD 与OOA密切配合顺序实现对现实世界的进 一步建模。
OOP 是面向对象的技术中发展最快的,使用 面向对象的程序设计语言,进行编码。
喷泉模型
该模型是由B.H.Sollers和J.M.Edwards于1990年提出的 一种新的开发模型。它克服了瀑布模型不支持软件重用和 多项开发活动集成的局限性,喷泉模型使开发过程具有迭 代性和无间隙性。
面向对象方法 (OOSD(Object-Oriented Software Development)是80年代推出的一种全 新的软件开发方法。非常实用而强有力,被誉为 90年代软件的核心技术之一。
其基本思想是:对问题领域进行自然的分割, 以更接近人类通常思维的方式建立问题领域的模 型,以便对客观的信息实体进行结构和行为的模 拟,从而使设计的软件更直接地表现问题的求解 过程。面向对象的开发方法以对象作为最基本的 元素,是分析和解决问题的核心。
软件工程过程
(Software engineering process)
是指在软件工具的支持下,所进行的一系列软 件开发和进化的活动。
通常包括以下四类基本过程: 1、软件规格说明:规定软件的功能及其运行环境。 2、软件开发:产生满足规格说明的软件。 3、软件确认:确认软件能够完成客户提出的要求。 4、软件演进:为满足客户的变更要求,软件必须在 使用的过程中演进。
1.可行性研究和项目开发计划
2.需求分析 3.概要设计 4.详细设计
基本任务:要解决的问题是什 么?该问题有行得通的解决办 法吗?若有,则需要多少费用、 资源、时间等?
结束标准:提出书面可行性研 究报告;若问题值得去解决, 制定项目开发计划。
典型的软件生存周期包括以下阶段:
1.可行性研究和项目开发计划
1. 以软件需求完全确定为前提的瀑布模型 2. 在软件开发初期只能提供基本需求所采用
的渐进式开发模型如原型模型、螺旋模型、 增量模型、并发开发模型 3. 以形式化开发方法为基础的变换模型 4. 基于构件的开发过程 5. 敏捷开发过程---统一软件开发过程RUP
计划 时期
开发 时期
运行 时期
瀑布模型
分析
喷泉模型
面向对象的方法的代表性成果有:
1. B.Henderson-sellers 和 J.m.Edwards提出的面向对象软件 生存期喷泉模型及面向对象的系统开发方法。
软件开发方法可分为两大类: 面向过程(结构化)的开发方法 面向对象的开发方法
结构化方法及瀑布模型
结构化开发方法(Structured Developing Method) 是现有的软件开发方法中最成熟,应用最广泛的方法, 主要特点是快速,自然和方便。 结构化方法总的指导思想自顶向下、逐步求精。它的 基本原则是功能的分解与抽象。 一、结构化开发方法的组成 结构化程序设计方法 SP法(Structured Program)
典型的软件生存周期包括以下阶段:
5. 编码 6. 测试 7. 软件维护
基本任务:把每个模块的控制 结构转换成计算机可接受的程 序代码。程序应是结构好、清 晰易读,并且与设计一致。
结束标准:以某种程序设计语 言表示的源程序清单。
典型的软件生存周期包括以下阶段:
5. 编码 6. 测试 7. 软件维护
面向对象开发方法的组成
OOSD由三部分组成: OOA(Object-Oriented Analysis)面向对象的分析 OOD(Object-Oriented Design)面向对象的设计 OOP (Object-Oriented Program)面向对象的程序设计
强调的是对一个系统中的对象特征和行 OOA 为的定义。建立系统的三类模型。
典型的软件生存周期包括以下阶段:
1.可行性研究和项目开发计划
2.需求分析
3.概要设计 4.详细设计
基本任务:应怎样具体地实现这个 系统?为每个模块完成的功能进行 具体描述,把功能描述转变为精确 的、结构化的过程描述。 结束标准:设计出程序的详细规格 说明书
典型的软件生存周期包括以下阶段:
5.编码 6.测试 7.软件维护
(目标与范围说明书)
(可行性论证论告) (需求说明书) (设计文档) (程序)
(测试报告)
瀑布模型
(维护报告)
瀑布模型主要思想
– 软件开发过程与软件生命周期是一致的 – 相邻二阶段之间存在因果关系 – 需对阶段性产品进行评审
瀑布模型的优点
• 软件生命周期模型,使软件开发过程可以在 分析、设计、编码、测试和维护的框架下 进行;
结构化设计方法 SD法(Structured Design) 结构化分析方法 SA法(Structured Analysis) SA,SD,SP 法相互衔接,形成了一整套开发方法。
原型化方法及其工作模型
什么是原型化方法(Prototyping Method)
原型——是软件的一个早期可运行的版本,它 反映了最终系统的部分重要特性。
螺旋模型将开发过程 分为几个螺旋周期,每 个螺旋周期可分为4个工 作步骤:
第一,确定目标、方案 和限制条件;
第二,评估方案、标识 风险和解决风险;
第三,开发确认产品; 第四,计划下一周期工 作。
螺旋模型
螺旋模型的使用
软件工程项目从螺旋中心开始启动,沿顺时针方 向前进。 第一圈 产生产品规格说明; 第二圈 产生一个用于开发的原型; 第三圈 产生软件产品的初始版本; 第四圈 产生软件产品比较完善的新版本 ……。
其特点如下:
1. 开发过程有分析、系统设计、软件 设计和实现4个阶段。
实现
2.各阶段相互重叠,它反映了软件过 程并行性的特点。
3.以分析为基础,资源消耗成塔型。
4.反映了软件过程迭代性的自然特性, 从高层返回低层无资源消耗。
5.强调增量开发,整个过程是一个系统 设计
• 软件开发过程具有系统性、可控性,克服 了软件开发的随意性 。
瀑布模型的缺点
• 项目开始阶段用户很难精确的提出产品需求, 由于技术进步,用户对系统深入的理解,修改 需求十分普遍。
• 项目开发晚期才能得到程序的运行版本,这时 修改软件需求和开发中的错误代价很大。
• 采用线性模型组织项目开发经常发生开发小组 人员“堵塞状态”,特别是项目的开始和结束。
增量模型(incremental model)
增量模型是一种非整体开发的模型。是一种进 化式的开发过程。
根据增量的方式和形式的不同,分为: 基于瀑布模型的渐增模型 基于原型的快速原型模型 该模型具有较大的灵活性,适合于软件需求不 明确、设计方案有一定风险的软件项目。
增量模型和瀑布模型之间的本质区别是什么?
2.需求分析
3.概要设计 4.详细设计
基本任务:为了解决问题,目标系 统必须做什么?确定目标系统的功 能。 结束标准:给出软件需求说明书
典型的软件生存周期包括以下阶段:
1.可行性研究和项目开发计划
2.需求分析
3.概要设计 4.详细设计
基本任务:概括地说,应如何解决 这个问题?把确定的各项功能需求 转换成需要的体系结构。设计软件 的结构,确定程序由哪些模块组成 及模块间的关系,同时设计该项目 的总体数据结构和数据库结构。 结束标准:给出概要设计文档
相关文档
最新文档