南京大学-软件工程-22-软件开发过程模型
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
与质量特征 (各种质量属
性)
模块内部的结 构及质量(易 开发、可复用、
可维护等)
人机交互质量
系统需 求
软件体 系结构 软件需
求
软件需
(UML: 包图、 构件图、部署
图)
结构化方法 (结构图); 面向对象方法 (包图、类图、
顺序图等)
人机交互设计
软件体系 结构设计
软件详细 设计
人机交互
(易用性) 求
方法
典型的软件生命周期
可以有不同的生命周期划分方式
例如第21章的软件演化生命周期模型
主要内容
软件开发各典型阶段 软件生命周期模型 软件过程模型
构建-修复模型 瀑布模型 增量迭代模型 演化模型 原型模型 螺旋模型 Rational 统一过程 敏捷过程
中变得质量越来越糟,直至无法修改; 没有考虑测试和程序的可维护性,也没有任何文档,软
件的维护十分困难。
适用性
软件规模很小,只需要几百行程序,其开发复 杂度是个人能力能够胜任的;
软件对质量的要求不高,即使出错也无所谓; 只关注开发活动,对后期维护的要求不高,甚
至不需要进行维护。
主要内容
缺点
对文档的过高期望具有局限性。
一方面会耗费很大的工作量和成本 另一方面很难为经常变化的需求建立完备可靠的文档。
对开发活动的线性顺序假设具有局限性。
发活动没有任何规划和组织,是完全依靠开发 人员个人能力进行软件开发的方式。
构建(Build) 第一个版本
修复(Fix)
维护
缺点
在这种模型中,没有对开发工作进行规范和组织,所以 随着软件系统的复杂度提升,开发活动会超出个人的直 接控制能力,构建-修复模型就会导致开发活动无法有 效进行而失败;
没有分析需求的真实性,给软件开发带来很大的风险; 没有考虑软件结构的质量,使得软件结构在不断的修改
《软件工程与计算II 》 ch22 软件开发过程模型
丁二玉 南京大学软件学院
主要内容
软件开发各典型阶段 软件生命周期模型 软件过程模型
第4~21章开发活动总结
阶 段
目标
关注点
工作基 础
方法
主要任务 执行者 制品
需 求 工 程
建立 解决 方案
理解现实;制 定解决方案
(成本效益比 有效)
瀑布模型
需求开发
允许活动出现反 复和迭代
重点在于要求每 个活动的结果必 须要进行验证
文档驱动
软件设计 软件实现 软件测试 软件交付
软件维护
优点
为软件开发活动定义了清晰的阶段划分(包括 了输入/输出、主要工作及其关注点),这让开 发者能够以关注点分离的方式更好地进行那些 复杂度超越个人能力的软件项目的开发活动。
设计
体系结 构师
设计师
人机交互 设计师
原型、体 系结构模 型和文档
软件详细 设计模型
和文档
界面原型
第4~21章开发活动总结
软
件 构建软 构件 造
软 件 测 试
保障软 件产品 的质量
软 件 交 付
将软件 交付给
用户
软 产品终
件 结前的
维 正常使
护用
程序的质量 (可读、可 靠、性能、 可维护等)
质量(程序 正确性和对 需求的符合
软 件
计
成
测试
与调试、构建等
构
划
测
计划
造
试
计
源代码、可执行程序
划
单元测
软
主要内容
软件开发各典型阶段 软件生命周期模型 软件过程模型
构建-修复模型 瀑布模型 增量迭代模型 演化模型 原型模型 螺旋模型 Rational 统一过程 敏捷过程
构建-修复模型
最早也是最自然产生的软件开发模型 不能算是一个软件过程模型,因为它对软件开
软件过程模型
软件过程模型在生命周期模型的基础则进一步详 细说明各个阶段的任务、活动、对象及其组织、 控制过程。
与简略的软件生命周期模型不同,软件过程模型 可以被看作是网络化的活动组织
不同的生命周期模型有不同的软件过程模型
阶段划分不一样
同一个生命周期模型也会有多个不同的软件过程 模型
客户、 用户、 环境等
需求基 线
结构化分析 (DFD、ERD 等);面向对 象分析(用例 图、概念类图、 顺序图、状态
图等)
系统 需 需求 求 开发 开 软件 发 需求
开发
需求管理
需求工 程师
所有开 发人员
需求分析 模型与需
求文档
整体功能组织
模块结构
体系结构
软 件 设 计
建立 由抽 象软 件实 体组 成的 软件 结构
行 试 测试 品
码
测试计划 人员
测试报告
可执行 程序
安装与部署、 用户培训、
文档支持
专门 人员
用户使用 手册
已交付软 件产品
已交付 软件产
品
软件演化方
法(重构、 重复上述各 逆向工程、 阶段任务
再工程)
维护 人员
主要内容
软件开发各典型阶段 软件生命周期模型 软件过程模型
软件生命周期
人们将软件从生产到报废的生命周期分割为不同阶段, 每段阶段有明确的典型输入/输出、主要活动和执行人, 各个阶段形成明确、连续的顺次过程,这些阶段划分 就被称为软件生命周期模型。
度)保障
交付的有效 性
变更时控制 效益和质量 的综合平衡
软件设 计方案
结构化程序 设计;
面向对象程 序设计
编程、集成、 测试与调试
等
程序 员
源代码
可执行程 序
测 单元测 程序
软件需
试 试 员或
求
设 集成测 测试 测试报告
软件设 黑盒、白盒 计、 试 人员 通过测试
计 等测试方法 执 系统测
的软件产
程序代
软件开发各典型阶段 软件生命周期模型 软件过程模型
构建-修复模型 瀑布模型 增量迭代模型 演化模型 原型模型 螺旋模型 Rational 统一过程 敏捷过程
百度文库
瀑布模型
[Royce1970]通过分析早期(1960s)的软件开 发活动后发现,如果将软件开发活动划分为不同 的阶段,并且保障每一个阶段工作的正确性和有 效性(尤其是重视分析和设计阶段),那么会取 得比构建-修复方式好得多的表现,包括更高的 质量、更低的成本和更小的风险。
虽然阶段划分一样,但是各个阶段的时间安排、先后 衔接等执行过程不一样
本书案例适用的软件过程模型
开开始始 生生产产
客户、用户、外部环境等
需
系统需求
软件需求
求
开发
开发
开
发
需求分析模型与需求文档、需求基线
软
人机交互 设计
体系结构 设计
详细设计
件 设
计
系 统
软件设计模型、原型与文档
测
试
集
集成 编程、集成、测试