当前位置:文档之家› 软件工程第三章软件生存周期及其模型

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


增量模型特点
• 增量 – 小而可用的软件
• 特点 – 在前面增量的基础上开发后面的增量 – 每个增量的开发可用瀑布或快速原型模型 – 迭代的思路
循环模型
为了描述软件开发过程中可能的回溯,尤其是维 护阶段往往要经历上述各个阶段。采用循环模型描 述。
计划
评价
运行
需求分析
测试
设计
编码
循环模型
速成原型的工作模型是一个循 环的模型。
螺旋模型的优点
• 符合人们认识现实世界和软件开发的客覌规律; • 支持软件整个生命周期; • 保持瀑布模型的系统性、阶段性; • 利用原型评估降低开发风险; • 开发者和用户共同参与软件开发,尽早发现软件
中的错误; • 不断推出和完善软件版本,有助于需求变化,获
取用户需求,加强对需求的理解。
面向对象方法及其工作模型
计划 时期
开发 时期
运行 时期
(目标与范围说明书) (可行性论证论告) (需求说明书) (设计文档) (源程序清单) (测试报告) (维护报告)
瀑布模型
常用的软件开发模型
软件开发模型是描述软件开发过程中各种活动如何 执行的模型。因此又称为软件过程模型。
软件过程模型是对软件开发实际过程的抽象和 简化。
结束标准:以某种程序设计语 言表示的源程序清单。
技术审查和管理复审
• 技术审查是从技术角度进行审查,是保证软件质量和 降低软件成本的重要措施。
• 技术审查通常由专家组成的审查小组来承担审查工作。
• 管理复审的主要任务实在软件生存周期的每个重要里 程碑,对工程项目的成本、实际花费的经费、投资回 收的前景、项目的进度等经济因素从管理角度进行审 查。
• 它产生的正式需求文挡,是软件开发的基础。 • 如果开发的原型是可运行的,它的若干高质量的
程序片段和开发工具可用于工作程序的开发。 • 原型的开发和评审是系统分析员和用户/客户共同
参予的迭代过程,每个迭代循环都是线性过程。
螺旋模型
对大型软件,需要多个原型描述系统的生存期,螺旋模 型将瀑布模型与原型化模型结合起来,并加入了风险分析。
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.详细设计
基本任务:概括地说,应如何解决 这个问题?把确定的各项功能需求 转换成需要的体系结构。设计软件 的结构,确定程序由哪些模块组成 及模块间的关系,同时设计该项目 的总体数据结构和数据库结构。 结束标准:给出概要设计文档
相关主题