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

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