南京大学-软件工程-22-软件开发过程模型

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

与质量特征 (各种质量属
性)
模块内部的结 构及质量(易 开发、可复用、
可维护等)
人机交互质量
系统需 求
软件体 系结构 软件需

软件需
(UML: 包图、 构件图、部署
图)
结构化方法 (结构图); 面向对象方法 (包图、类图、
顺序图等)
人机交互设计
软件体系 结构设计
软件详细 设计
人机交互
(易用性) 求
方法
典型的软件生命周期
可以有不同的生命周期划分方式
例如第21章的软件演化生命周期模型
主要内容
软件开发各典型阶段 软件生命周期模型 软件过程模型
构建-修复模型 瀑布模型 增量迭代模型 演化模型 原型模型 螺旋模型 Rational 统一过程 敏捷过程
中变得质量越来越糟,直至无法修改; 没有考虑测试和程序的可维护性,也没有任何文档,软
件的维护十分困难。
适用性
软件规模很小,只需要几百行程序,其开发复 杂度是个人能力能够胜任的;
软件对质量的要求不高,即使出错也无所谓; 只关注开发活动,对后期维护的要求不高,甚
至不需要进行维护。
主要内容
缺点
对文档的过高期望具有局限性。
一方面会耗费很大的工作量和成本 另一方面很难为经常变化的需求建立完备可靠的文档。
对开发活动的线性顺序假设具有局限性。
发活动没有任何规划和组织,是完全依靠开发 人员个人能力进行软件开发的方式。
构建(Build) 第一个版本
修复(Fix)
维护
缺点
在这种模型中,没有对开发工作进行规范和组织,所以 随着软件系统的复杂度提升,开发活动会超出个人的直 接控制能力,构建-修复模型就会导致开发活动无法有 效进行而失败;
没有分析需求的真实性,给软件开发带来很大的风险; 没有考虑软件结构的质量,使得软件结构在不断的修改
《软件工程与计算II 》 ch22 软件开发过程模型
丁二玉 南京大学软件学院
主要内容
软件开发各典型阶段 软件生命周期模型 软件过程模型
第4~21章开发活动总结
阶 段
目标
关注点
工作基 础
方法
主要任务 执行者 制品
需 求 工 程
建立 解决 方案
理解现实;制 定解决方案
(成本效益比 有效)
瀑布模型
需求开发
允许活动出现反 复和迭代
重点在于要求每 个活动的结果必 须要进行验证
文档驱动
软件设计 软件实现 软件测试 软件交付
软件维护
优点
为软件开发活动定义了清晰的阶段划分(包括 了输入/输出、主要工作及其关注点),这让开 发者能够以关注点分离的方式更好地进行那些 复杂度超越个人能力的软件项目的开发活动。
设计
体系结 构师
设计师
人机交互 设计师
原型、体 系结构模 型和文档
软件详细 设计模型
和文档
界面原型
第4~21章开发活动总结

件 构建软 构件 造
软 件 测 试
保障软 件产品 的质量
软 件 交 付
将软件 交付给
用户
软 产品终
件 结前的
维 正常使
护用
程序的质量 (可读、可 靠、性能、 可维护等)
质量(程序 正确性和对 需求的符合
软 件


测试
与调试、构建等



计划



源代码、可执行程序

单元测

主要内容
软件开发各典型阶段 软件生命周期模型 软件过程模型
构建-修复模型 瀑布模型 增量迭代模型 演化模型 原型模型 螺旋模型 Rational 统一过程 敏捷过程
构建-修复模型
最早也是最自然产生的软件开发模型 不能算是一个软件过程模型,因为它对软件开
软件过程模型
软件过程模型在生命周期模型的基础则进一步详 细说明各个阶段的任务、活动、对象及其组织、 控制过程。
与简略的软件生命周期模型不同,软件过程模型 可以被看作是网络化的活动组织
不同的生命周期模型有不同的软件过程模型
阶段划分不一样
同一个生命周期模型也会有多个不同的软件过程 模型
客户、 用户、 环境等
需求基 线
结构化分析 (DFD、ERD 等);面向对 象分析(用例 图、概念类图、 顺序图、状态
图等)
系统 需 需求 求 开发 开 软件 发 需求
开发
需求管理
需求工 程师
所有开 发人员
需求分析 模型与需
求文档
整体功能组织
模块结构
体系结构
软 件 设 计
建立 由抽 象软 件实 体组 成的 软件 结构
行 试 测试 品

测试计划 人员
测试报告
可执行 程序
安装与部署、 用户培训、
文档支持
专门 人员
用户使用 手册
已交付软 件产品
已交付 软件产

软件演化方
法(重构、 重复上述各 逆向工程、 阶段任务
再工程)
维护 人员
主要内容
软件开发各典型阶段 软件生命周期模型 软件过程模型
软件生命周期
人们将软件从生产到报废的生命周期分割为不同阶段, 每段阶段有明确的典型输入/输出、主要活动和执行人, 各个阶段形成明确、连续的顺次过程,这些阶段划分 就被称为软件生命周期模型。
度)保障
交付的有效 性
变更时控制 效益和质量 的综合平衡
软件设 计方案
结构化程序 设计;
面向对象程 序设计
编程、集成、 测试与调试

程序 员
源代码
可执行程 序
测 单元测 程序
软件需
试 试 员或

设 集成测 测试 测试报告
软件设 黑盒、白盒 计、 试 人员 通过测试
计 等测试方法 执 系统测
的软件产
程序代
软件开发各典型阶段 软件生命周期模型 软件过程模型
构建-修复模型 瀑布模型 增量迭代模型 演化模型 原型模型 螺旋模型 Rational 统一过程 敏捷过程
百度文库
瀑布模型
[Royce1970]通过分析早期(1960s)的软件开 发活动后发现,如果将软件开发活动划分为不同 的阶段,并且保障每一个阶段工作的正确性和有 效性(尤其是重视分析和设计阶段),那么会取 得比构建-修复方式好得多的表现,包括更高的 质量、更低的成本和更小的风险。
虽然阶段划分一样,但是各个阶段的时间安排、先后 衔接等执行过程不一样
本书案例适用的软件过程模型
开开始始 生生产产
客户、用户、外部环境等

系统需求
软件需求

开发
开发


需求分析模型与需求文档、需求基线

人机交互 设计
体系结构 设计
详细设计
件 设

系 统
软件设计模型、原型与文档



集成 编程、集成、测试
相关文档
最新文档