当前位置:文档之家› 软件工程第一章

软件工程第一章


1.7.3 WINWIN螺旋模型
WINWIN螺旋模型追求一种“双赢”的结果。 它在每一次螺旋路径的开始定义了一组谈判活动。 超越单一的客户交流活动,定义了下面的活动: (1)系统或子系统的关键“风险承担者”的标识。 (2)风险承担者的“赢条件”的确定。 (3)风险承担者的赢条件的谈判,以将它们协调 为一组满足各方考虑的双赢条件。
制定计划──确定软件目标,选定实施方案,弄清 项目开发的限制条件。
风险分析──分析所选方案,考虑如何识别和消除 风险。
实施工程──实施软件开发。 客户评估──评价开发工作,提出修正建议。
用户通信
计划
风险 分析
用户 评估
产品维护项目 产品增强项目 新产品开发项目 概念开发项目
工程 实施
建造及发布
螺旋模型的特点
1.8 并发开发模型
这种模型关注于多个任务的并发执行,表示为一系 列的主要技术活动、任务及它们的相关状态。 并发过程模型是由客户要求、管理决策、评审结果 驱动的。 该模型不是将软件工程活动限定为一个顺序的事件 序列,而是定义了一个活动网络。 网络上的每一个活动均可于其它活动同时发生。 这种模型可以提供一个项目的当前状态的准确视图。
1.6 RAD模型
快速应用开发(RAD)是一个增量型的软件开发过 程模型,强调极短的开发周期。 RAD模型是线性顺序模型的一个“高速”变种,通 过使用构件的建造方法赢得了快速开发。 RAD过程强调的是复用,复用已有的或开发可复用 的构件。 实际上RAD采用第四代技术。
RAD模型的阶段
一. 业务建模 业务功能信息流建模 二. 数据建模 形成一组支持该业务所需的数据对 象,标识出每个对象特征,并定义对象间的关系 三. 过程建模 创建过程描述以增加、修改、删除 或检索一个数据对象。 四. 应用生成 使用自动化工具辅助软件建造 五. 测试及反复 强调复用,对新的构件及其接口 进行测试
1.7.1 增量模型
增量模型融合了线性顺序模型的基本成分(重复 地应用)和原型实现的迭代特征。 增量模型采用随着日程时间的进展而交错的线性 序列。 每一个线性序列产生软件的一个可发布的“增 量” 。 第一个增量往往是核心的产品。 客户对每一个增量的使用和评估,都做为下一个 增量发布的新特征和功能。
列的需求分析, 任何一方配合不当都会导致RAD 项目失败。
4、这种模型对模块化要求比较高,如果有哪 一功能不能被模块化,那么建造RAD所需要的构件 就会有问题。
5、技术风险很高的情况下不适合这种模型。
优点: 1、开发速度快,质量有保证。 2、对信息系统特别有效。
1.7 演化软件过程模型
瀑布方法假设当线性序列完成之后就能够交付一 个完善的系统。 原型实现模型设计成帮助客户(或开发者)理解 需求,它并不是交付一个最终的产品。 演化模型是迭代的,它的特征是使软件工程师逐 渐地开发逐步完善的软件版本。
1.7.2 螺旋模型
螺旋模型是一个演化软件过程模型。 它将原型实现的迭代特征与线性顺序模型中控制 的和系统化的方面结合起来。 在螺旋模型中,软件开发是一系列的增量发布。 在每一个迭代中,被开发系统的更加完善的版本 逐步产生。 螺旋模型被划分为若干框架活动,也称为任务区 域。
螺旋模型沿着螺线旋转,在四个象限上分别表达了 四个方面的活动,即:
RAD(快速应用开发)模型图
小组3
小组2
业务建模
业务建模
数据建模
小组1 业务建模
数据建模
过程建模
过程建模
应用生成
数据建模
测试及反复
应用生成
过程建模 应用生成
测试及反 复
测试及反复
60-90天
缺点: 1、只能用于信息系统。 2、对于较大的项目需要足够的人力资源去建
造足够的RAD组。 3、开发者和客户必须在很短的时间完成一系
对于较小的应用软件,使用一个非过程的第四代 语言(4GL)有可能直接从需求收集过渡到实现。
但对于较大的应用软件,就有必要制订一个系统 的设计策略,即使是使用4GL。对于较大项目,如 果没有很好地设计,即使使用4GT 也会产生不用 任何方法来开发软件所遇到的同样的问题(低的质 量、差的可维护性、难以被用户接受)。
1.10 形式化方法模型
形式化方法模型包含了一组活动,他们导致了计 算机软件的数学规约。 形式化方法使得软件工程师们能够通过应用一个 严格的数学符号体系来规约、开发、和验证基于 计算机的系统。 这种方法的一个变种,称为净室软件工程。
形式化方法模型的特点
在开发中使用形式化方法时,它们提供了一种机 制,能够消除使用其它软件过程模型难以克服的 很多问题。 二义性、不完整性、不一致性能被更容易地发现 和纠正,而不是通过专门的评审,是通过对应用 的数学分析。 形式化方法提供了可以产生无缺陷软件的承诺。
与软件工程相关的工作可分为三个一般的阶段: (1)定义阶段:集中于“做什么”;
三个主要任务:系统工程、项目计划、 需 求分析 (2)开发阶段:集中于“如何做”;
三个特定任务:设计、编码、测试 (3)支持阶段:关注于“变化”
四类可能遇到的变化:纠错、适应、增强、 预防
软件过程可分为三大类
基本过程类: 是构成软件生存周期主要部分的那 些过程, 包括获取, 供应, 开发, 操作, 维护等 过程. 支持过程类: 可穿插到基本过程中提供支持的一 系列过程, 包括文档开发, 配置管理, 质量保证, 验证, 确认, 联合评审, 审计, 问题解决等过程. 组织过程类: 一个组织用来建立, 实施一种基础 结构, 并不断改进该基础结构的过程, 包括管理, 基础, 改进, 培训等过程.
需求分析和定义
对待开发软件提出的需求进行分析并给出详细 的定义 编写软件需求说明书或系统功能说明书及初步 的系统用户手册 提交管理机构评审
软件设计
概要设计 — 把各项需求转换成软件的体系 结构。结构中每一组成部分都是意义明确的 模块,每个模块都和某些需求相对应 详细设计 — 对每个模块要完成的工作进行 具体的描述,为源程序编写打下基础 编写设计说明书,提交评审。
第1章 软件工程过程
软件工程的目的是经济地开发出高质量的软件 并有效地维护它。 软件工程必须以有组织的质量保证为基础。 支持软件工程的根基就在于对质量的关注。
人员
方法 与
规程
过 程
技术 与 工具
产品
1.1 软件工程:一种层次化技术
工具 方法 过程 质量焦点
Software engineering layers
软件有一个孕育、诞生、成长、成熟、衰亡的生存 过程。这个过程即为计算机软件的生存期。 软件生存期的六个步骤,即制定计划、需求分析、 设计、程序编码、测试及运行维护。
制定计划
确定要开发软件系统的总目标 给出功能、性能、可靠性以及接口等方面的要求 完成该软件任务的可行性研究 估计可利用的资源(计算机硬件,软件,人力等)、 成本、效益、开发进度 制定出完成开发任务的实施计划,连同可行性研 究报告,提交管理部门审查
程序编写
把软件设计转换成计算机可以接受的程序代 码,即写成以某一种特定程序设计语言表示 的“源程序清单” 写出的程序应当是结构良好、清晰易读的, 且与设计相一致的
软件测试
单元测试,查找各模块在功能和结构上存在 的问题并加以纠正 组装测试,将已测试过的模块按一定顺序组 装起来 按规定的各项需求,逐项进行有效性测试, 决定已开发的软件是否合格,能否交付用户 使用
然后是“快速设计”,它集中于软件中那些对客 户可见的部分的表示,这将导致原型的创建。
由客户评估并进一步精化待开发软件的需求。
逐步调整原型使其满足客户的需求,这个过程是 迭代的。
听取用 户意见
建造/修改 原型
用ቤተ መጻሕፍቲ ባይዱ测试 运行原型
原型实现模型的特点
原型可以作为标识软件需求的一种机制; 原型作为第一个系统,常常是抛弃的; 开发过程的交互性和迭代性 ; 充分发挥用户在软件开发初期的作用; 开发周期较短、成本较低、风险较小。
1.11 第四代技术
第四代技术包含了一系列的软件工具。 能使软件工程师在较高的级别上规约软件的某些 特征。 软件工具根据开发者的规约自动生成源代码。
第四代技术的特点
目前,一个支持4GT 范型的软件开发环境包含如 下部分或所有工具: 数据库查询的非过程语言,报告生成器,数据操 纵,屏幕交互及定义,以及代码生成;高级图形 功能;电子表格功能。
运行与维护
改正性维护 运行中发现了软件中的错误 需要修正 适应性维护 为了适应变化了的软件工作 环境,需做适当变更 完善性维护 为了增强软件的功能需做变 更
软件生存周期模型
软件生存期模型(也称软件开发模型、软件过程模 型、软件工程范型)是跨越整个生存期的系统开发、 运作和维护所实施的全部过程、活动和任务的结构 框架。 简单地说,是软件产品或软件系统从设计、投入使 用到被淘汰的全过程。 所谓模型就是一种开发策略,这种策略针对软件工 程的各个阶段提供了一套范型,使工程的进展达到 预期的目的。
1.5 原型实现模型
由于在项目开发的初始阶段人们对软件的需求认 识常常不够清晰,因而使得开发项目难于做到一 次开发成功,出现返工再开发在所难免。做两次: 第一次只是试验开发,其目标只是在于探索可行 性,弄清软件需求。 第二次则在此基础上获得较为满意的软件产品。
从需求收集开始,开发者和客户在一起定义软件 的总体目标,标识已知的需求并且规划出需要进 一步定义的区域。
要将一个4GT 生成的功能变成最终产品,开发者 还必须进行测试,写出有意义的文档,并完成其 他软件工程范型中同样要求的所有集成活动。
此外,采用4GT 开发的软件还必须考虑维护是否 能够迅速实现。
1.12 RUP简介
Rational Unified Process(简称RUP)是一套软 件工程过程,主要由The Objectory Approch 和 The Rational Approch 发展而来。同时,它又是文档化的 软件工程产品,所有RUP 的实施细节及方法导引均以 Web文档的方式集成在一张光盘上。
相关主题