当前位置:文档之家› 软件开发模型

软件开发模型

➢ 螺旋模型实例:显像管生产监测系统 (面向对象软件)
系统流程图
早于DFD的一种建模工具。 以图形方式说明系统中的控制流和数据流。
系统流程图示例 启动定货销售
可重用部件组装模型(构件集成模型)
构件集成模型产生的可能性: 经过适当设计和实现的类也可以称为构件,他们
在某个领域中具有一定的通用性,可以在不同的计算 机软件系统中复用。将这些构件储存起来变成一个构 件库,就为基于构件的软件开发模型提供了技术基础。
基于构件的开发技术
问题域
查到构件
组装系统
识别构件
对象
手表
具体到一只圆形的或方形的手表
手表共有的属性(表针、旋钮、内部结构) 和行为(调节旋钮)
一块手表
1基 本 概 念
消息
我们把对象之间产生相互作用所传递的信息称做消息。
发送消息
接收并响应消息
启动
1基 本 概 念
消息
我们把对象之间产生相互作用所传递的信息称做消息。
发送消息
接收并响应消息
转向
2 面向对象的软件开发方法
查找构件
未查到构件
生成构件
要点: • 基于软件复用性 • 形成统一开发过程 • 产生统一建模语言
构件库
可重用部件组装模型(构件集成模型)
构件(components):可重用的软件成份 可复用性(Reusability) 集成化软件开发环境(ISEE)
可重用部件组装模型(构件集成模型)
它融合了螺旋模型的很多特征,支持软件开发 的迭代方法
1基 本 概 念
对 象(object) 类(class) 消 息(message)
1基 本 概 念
对象
属性
表针 旋钮 其他机械机构
行为 调节旋钮
1基 本 概 念

类是一个抽象的概念,用来描述某一类对象所共有的、 本质的属性和行为。
类的一个具体实现,称为实例

描述这类对象共有的、本质的属性和行为
可行性研究与计划
定义阶段
需求分析
设计



编码

测试
维护阶段
运行维护
制定计划
确定要开发软件系统的总目标; 给出功能、性能、可靠性以及接口等方面的要
求; 完成该软件任务的可行性研究; 估计可利用的资源 (硬件,软件,人力等)、
成本、效益、开发进度; 制定出完成开发任务的实施计划,连同可行性
当定义了一个类后,又需定义一个新
汽车
载人
载货
客车
货车
类,这个新类与原来的类相比,只是增 小,速度快
大,速度慢
加或修改了部分属性和操作,这时可以 用原来的类派生出新类,新类中只需描
小轿车 大客车
述自己所特有的属性和操作。
新类称为子类或派生类,原来的类称为基类。派生可以一直进行下去, 形成一个派生树。
继承性大大简化了对问题的描述,大大提高了程序的可重用性,从而 提高了程序设计、修改、扩充的效率。
C++通过建立数据类型——类来支持 封装和数据隐藏。封装性增加了对象的 独立性,从而保证了数据的可靠性。一 个定义完好的类可以作为独立模块使用。
内 动机 作械
零 件
外 读调 表节 盘旋

3 “面向对象”程序设计的特点
继承与派生
以汽车为例看客观世界描述事物的方式: 面向对象程序设计提供了类似的机制:
第二章 软件开发模型
教学内容:
§ 2.1 软件生存周期 § 2.2 传统软件开发模型 § 2.3 软件演化模型 § 2.4 面向对象开发模型 § 2.5 形式化方法模型
软件生存周期(Software Life Cycle):
软件产品或软件系统从开始计划起,投入 使用到被淘汰的全过程。
结合瀑布模型与快速原型的基础上增加了风险分析
螺旋模型
螺旋模型沿着螺线旋转,在四个象限上分别表 达四个方面的活动,即:
制定计划──确定软件目标,选定实施方案, 弄清项目开发的限制
风险分析──分析所选方案,考虑如何识别和 消除风险
实施工程──实施软件开发 客户评估──评价开发工作,提出修正建议
按规ቤተ መጻሕፍቲ ባይዱ的各项需求,逐项进行有效性测试,决 定已开发的软件是否合格,能否交付用户使用。
运行/维护
纠正性维护 运行中发现了软件中的错误需 要修正;
适应性维护 为了适应变化了的软件工作环 境,需做适当变更;
完善性维护 为了增强软件的功能需做变更。
按照传统瀑布模型开发软件的特点
1.阶段间具有顺序性和依赖性。 2.推迟实现的观点。 3.每个阶段必须完成规定的文档;每个阶段结束
计 算 大学生 平均成绩
高数、英语、计算机、线 性代数
3 “面向对象”程序设计的特点
继承和多态性组合,可以生成很多相似但 又独一无二的对象。继承性使得这些对象可 以共享许多相似特性,而多态又使同一个操 作对不同对象产生不同表现形式。这样不仅 提高了程序设计的灵活性,而且减轻了分别 设计的负担。
面向对象模型
•置于统计过程控制之下的增量开发; •基于函数的规范、设计、验证; •统计测试和软件认证。
净室模型
增量 #1
需求
盒结构 规约
形式化 设计
正确性 验证
收集
测试计划
代码 检查
统计性
使用测 验证

增量 #2
需求
盒结构 规约
形式化 设计
正确性 验证
收集
测试计划
代码 检查
统计性
使用测 验证

.
.
..
.
.
..
2 面向对象的软件开发方法
面向对象的分析(OOA)
分析阶段的主要任务是按照面向对象的概念和方法,从问题中识别 出有意义的对象,以及对象的属性、行为和对象间的通信,进而抽象出 类结构,最终将它们描述出来,形成一个需求模型。
面向对象的设计(OOD)
设计阶段从需求模型出发,分别进行类的设计和应用程序的设计。
螺旋模型



线


客户交流
要点:
相似于增量模型,是顺序过程与原型过程 的统一,强调版本和版本升级。
用户评估
构造及发布
工程
与增量模型的区别:
计划 •活动划分不同
•更强调“计划”、“风险分析”和“用 户评估” •版本有更明确的目标
风险分析
版本的明确目标: 概念项目→增量项目→维护项目
§ 2.4 面向对象模型
.
.
..
增量 #1
需求
盒结构 规约
形式化 设计
正确性 验证
收集
测试计划
代码 检查
统计性
使用测 验证

新的开发模型(技术)
• 并行开发技术 • 基于构件的开发技术 • 形式化方法技术 • 第4代技术 • 过程技术工具
§ 2.6 开发模型选用实例 (P27- P29)
➢ 瀑布模型实例:教材购销系统(面向过 程软件)
可重用部件组装模型
用户 通信
计划
风险 分析
用户 评估
产品开发及发布
标志候 选构件
进行下 一次迭代
查找 构件
将新构件 存入库中
若存在则 提取构件
若不存在则 构造构件
§ 2.5 形式化方法模型
•转换模型(Transformational Model) •净室模型(Cleanroom Model)
转换模型
系统的总体设计在初始子集设计阶段就应作出设想。
增量演化模型
增量1 分析
设计
增量2 分析
要点:
•顺序过程和原型过程相结合
•强调版本升级
编码
测试
•每个版本的开发遵循顺序过程
第1个增量的发布
设计
增量3 分析
编码
设计 增量4
分析
测试 第2个增量的发布
编码
测试 第3个增量的发布
设计
编码
测试 第4增量的发布
2. 螺旋模型
结合形式化软件开发方法和程序自动 生成技术的一种软件开发模型。
它用严格的、数学的表示体系来表示 软件规格说明,然后进行一系列自动或半自动 的程序变换,最后转换为计算机系统能够接受 的目标程序系统。
1. 转换模型
与需求比 较后修正
形式化开发记录
变换n
形式化 规格说明
系统需求
变换2 变换1
测试
目标系统
研究报告,提交管理部门审查。
需求分析和定义
对用户提出的要求进行分析并给出详细的定义; 编写软件需求说明书或系统功能说明书及初步
的系统用户手册; 提交管理机构评审。
软件设计
概要设计 — 把各项需求转换成软件的体系结 构。结构中每一组成部分都是意义明确的模块, 每个模块都和某些需求相对应;
详细设计 — 对每个模块要完成的工作进行具 体的描述,为源程序编写打下基础;
3 “面向对象”程序设计的特点
多态性
多态性指,同一个消息被不同对象接收时,产生不同 结果,即实现同一接口,不同方法。
计 算 高中生 平均成绩
语文、数学、英语、政治、 物理、化学、生物
3 “面向对象”程序设计的特点
多态性
多态性指,同一个消息被不同对象接收时,产生不同 结果,即实现同一接口,不同方法。
前完成文档审查,及早改正错误。
传统瀑布模型开发软件带来的问题:
过程基本不可迭代 需求在开始的不确定性 错误到最后才能发现 开发进程呈现塞阻状态
软件生存期循环
) 2. 快速原型模型(Rapid Prototype Model
听取用 户意见
建造/修改 原型
相关主题