第十二章 软件项目计划
问题定义
可行性研究
软件风险分析
项目实施计划计划时期的工作流程开 始问题定义可行性研究可行否项目实施计划 终止项目的建议停 止问题定义
目的
弄清需要解决的问题
项目所需的资源和经费
任务
编写,系统目标与范围的说明,
,系统目标与范围的说明,
示例系 统 目 标 和 范 围说 明 书 2001年 1月
1.项目:教材销售系统
2.问题:人工发售教材手续繁琐,且易出错 。
3.项目目标:建立一个高效率,无差错的微机教材销售系统 。
4.项目范围:利用现有微型计算机,软件开发费用不超过 5000元 。
5.初步想法:建议在系统中增加对缺书的统计与采购功能 。
6.可行性研究:建议进行大约 10天的可行性研究,研究费用不超过 1000元

可行性研究
目的
研究项目是否可能实现和值得进行
回答 Why to do?
研究的内容
经济可行性
技术可行性
运行可行性
法律可行性可行性研究
研究的步骤
细化和修改,系统目标和范围,,得出新系统的逻辑模型
弄清当前系统 —系 统流程图
导出新系统逻辑模型 —数 据流图
导出新系统的解决方案
提出推荐的方案
本项目的开发价值
推荐这个方案的理由系统流程图
描述系统物理模型
包含人员、硬件、软件等子系统
符号
借用程序流程图符号
举例
见 p268图 12.5
成本 —效益分析
系统成本
开发成本
运行维护成本
系统效益
经济效益
社会效益可行性论证报告
系统概述
简述当前系统及其问题
新系统功能及新旧系统的比较
可行性分析
经济、技术、法律上的可行性
建立新系统的主客观条件分析
结论意见
Yes or No
软件风险分析
风险识别
项目风险
技术风险
商业风险
风险预测
风险发生的可能性
风险发生后的后果
风险的驾驭和监控软件计划
项目实施计划
质量保证计划
软件测试计划
文档编制计划
用户培训计划
综合支持计划
软件分发计划项目实施计划
系统概述包括项目目标,主要功能,系统特点,以及关于开发工作的安排
系统资源包括开发和运行该软件系统所需要的各种资源,
如硬件,软件,人员和组织机构等
费用预算 分阶段的人员费用,机时费用及其它费用
进度安排 各阶段起止时间、完成文档及验收方式
要交付的产品清单第十三章 软件工程管理
管理的目的与内容
软件估算模型
软件成本估计
人员的分配与组织
项目进度安排
软件知识产权保护管理的目的与内容
目的
按预定的时间和费用,完成软件的计划、开发和维护
内容
费用管理
估算软件的开发费用
管理开发费用的有效使用
质量管理( 包括配置管理 )
项目的其它管理
项目进度安排
人员的分配与组织软件估算模型
静态单变量资源模型
Putnam资源模型
COCOMO模型静态单变量资源模型
资源 = c1 x (估计的软件特征 )c2
资源
开发工作量 (E)、开发时间 (T)或开发人数 (P)
估计的软件特征
源程序长度 (L)或软件工作量 (E)
c1,c2
依赖于开发环境和软件应用领域的常数
Putnam资源模型
L = cK1/3T4/3 或 K = L3 / (c3T4)
L (行 ):源程序长度
T (年 ):开发时间
K (人 -年 ),全生存期工作量
c,与开发环境有关的常数
COCOMO模型
COnstructive COst MOdel
以静态单变量模型为基础
将软件分类:
组织
半独立
嵌入
增加工作量调节因子不同类型软件的 COCOMO模型软件类别 模 型 方 程 适 用 范 围组织型
E=3.2× L1.05
T=2.5× E0.38
高级语言应用程序,如科学计算,
数据处理企业管理程序等半独立型
E=3.0× L1.12
T=2.5× E0.35
大多数实用程序,如编辑程序,连接程序编辑程序等嵌入型
E=2.8× L1.20
T=2.5× E0.32
与硬件关系密切的系统程序,如操作系统数据库管理系统,实时处理与控制程序等调节因子和它的值范围属性 调节因子 调节值范围 例 13.1中使用的值产品属性要求的可靠性等级数据库规模产品复杂度
0.75 - 1.40
0.94 - 1.16
0.70 - 1.65
1.00
0.94
1.30
计算机属性对程序执行时间的约束对程序占用存储容量的约束开发环境的变动开发环境的响应时间
1.00 - 1.66
1.0 - 1.56
0.87 - 1.30
0.87 - 1.15
1.11
1.06
1.00
1.00
人员属性分析员水平程序员水平对应用领域的熟悉程度对开发环境的熟悉程度对所用语言的熟悉程度
1.46 - 0.71
1.42 - 0.70
1.29 - 0.82
1.21 - 0.90
1.14 - 0.95
0.86
0.86
1.00
1.10
1.00
项目属性开发方法的现代化软件工具的数质量完成时间的限制
1.24 - 0.82
1.24 - 0.83
1.23 - 1.10
0.91
1.10
1.00
软件成本估计
自顶向下成本估计
由底向上成本估计
算法模型估计自顶向下成本估计
首先估算总成本
然后在项目内部进行成本分配
特尔斐 Delphi法
多个专家各自填表
综合专家意见,摘要通知大家
开始新一轮估计
多次反复,直到专家意见接近由底向上成本估算
先将开发任务分解为许多子任务
子任务分成子子任务
估计各个任务单元的成本
汇合成项目总成本算法模型估计
算法模型就是资源模型
由历史数据导出
选择适用的模型
模型估计法与自顶向下估计或由底向上估计结合使用人员的分配与组织
Rayleigh-Norden曲线
两条重要定律
人员组织
Rayleigh-Norden曲线



td t
人力 ① 浪费的人力 ②不足的人力 ③过晚的人力两条重要的定律
人员 -时间权衡定律
Brooks定律
向一个已经延晚的项目追加开发人员,可能使它完成得更晚
E=常数 /( T或 td) 4
人员组织
层次型组织结构
软件经理 项目经理 开发小组
民主开发小组
无我程序设计
主程序员小组
一元化领导
主程序员分配工作
主程序员决定重大问题项目进度安排
计划评审技术
建立 PERT图
找出关键路径
标出最迟开始时间
PERT图的使用
Gannt图
PERT图例子测试数据

编码

产品测试

测试软件

测试计划

起点分析 终点文档

设计

关键路径编码

产品测试
4测试软件

测试数据

测试计划

起点终点文档
2设计

分析

( 0,0)
( 0,3)
( 0,2)
( 3,5)
( 2,8)
( 3,7)
( 7,9)
( 7,11) ( 15,15)
( 11,15)
软件知识产权保护
软件著作权
软件著作权的内容
软件著作权的登记
软件侵权及法律保护
软件侵权类型及法律责任
保护计算机软件的商业秘密
软件工程师的职业道德规范
8项基本原则第十四章 软件质量管理
从质量保证到质量认证
质量保证
软件可靠性
程序正确性证明
CMM软件能力成熟度模型
ISO9000 国际标准
软件度量从软件质量保证到质量认证
质量管理的三个阶段
质量检验
全面质量管理 TQC
质量认证
CMM软件能力成熟度模型
ISO 9000国际标准质量保证
软件的质量属性
功能性
可靠性
易用性
效率
可维护性
可移植性
质量保证的活动内容质量保证的活动内容复审:计划与开发方法:设计、编码 …
控制:软件配置软件测试软件可靠性
可靠性的定义和分级
定义:在给定的时间内,程序按照规定的条件成功地运行的概率
可靠性等级
可靠性模型
软件容错技术可靠性分级表分级 故障的后果 开发工作量比例因子甚低低正常高甚高工作略有不便有损失,但容易弥补弥补损失比较困难重大的经济损失危及人的生命
0.75
0.88
1.00
1.15
1.40
可靠性模型
正比于遗留故障数的宏观模型
平均故障时间模型( MTTF模型)
错误植入模型软件容错技术
容错软件(有抗故障功能的软件)
屏蔽错误
修复错误
减少影响
冗余技术
结构冗余
时间冗余
信息冗余
容错软件的设计静态冗余结构和动态冗余结构
M1
M2
M3
V
M1
M2
Mn
I
U
u1
u2
u3
I
主模块备用备用
……… …
容错软件设计建立需求说明,设计软件的非容错结构分析错误类型确定容错范围确定采用的冗余技术,修改结构评估容错效果程序正确性证明
用数学的方法,证明程序具有某些性质
S
…P
{P}S{R}
…R
CMM软件能力成熟度模型
CMM的基本概念
软件过程
关键过程域
CMM模型
5级,18个关键过程域,52个过程目标,316种关键实践过程能力等级 特 点 关键过程域
1,初始级 ( Initial) 软件过程是无序的,对过程几乎没有定义,成功取决于个人的努力 。
管理是消防队救火式的 。
2,可重复级
( Repeatable)
建立了基本的项目管理过程来跟踪费用,进度和功能特性 。 制定了必要的过程规则和纪律,能重复早先类似应用项目取得的成功 。
需求管理软件项目策划软件项目跟踪和监督软件子合同管理软件质量保证软件配置管理3,已定义级
( Defined)
已将软件管理和工程两个方面的过程文档化,标准化,并综合成该组织的标准软件过程 。 所有项目均使用经过批准,剪裁的标准软件过程来开发和维护软件 。
组织过程定义组织过程焦点培训大纲集成软件管理软件产品工程组际协调同行专家评审4,已管理级
( Managed)
收集对软件过程和产品质量的详细度量,对软件过程和产品都有定量的理解和控制 。
定量的过程管理软件质量管理
5,优化级
( Optimizing)
过程的量化反馈和先进的新思想,
新技术促使过程不断改进 。
缺陷预防技术变更管理过程变更管理
CMM应用
能力评估
软件过程评估
软件能力评价
过程改善
引用 CMM关键实践
改善本机构的软件过程
ISO 9000 国际标准
质量术语标准
ISO 8402-1994
质量保证标准
ISO 9001
质量管理标准
ISO 9004-1
软件企业实施 ISO9000标准
知识准备
立法
宣传
执行
监督
改进软件度量
项目度量
项目度量的内容
面向功能的项目度量
过程度量项目度量的基本度量
S.R.Schach,1992 U.S.Air Force,93M-017报告 常用单位
Size 规模 Size 规模 LOC,KLOC
Effort 工作量 Effort 工作量 人 -月
Duration 时间 Schedule 进度 月
Quality 质量 Quality 质量 错误数 / KLOC
Cost 成本 Rework 返工 元第十五章 软件工程环境
什么是软件工程环境
CASE环境的组成与结构
CASE环境实例
Rational SUITE Enterprise Studio
青鸟系统软件工程环境
软件工程环境
统一集成机制下的一系列软件工具
支持与软件开发相关的过程、活动和任务
软件开发环境的特点
友善和统一的用户界面
集成化的软件工具
数据集成
界面集成
控制集成
过程集成
平台集成理想环境模型自动化( A)
AUTOMATION
方法( M)
METHODS
过程( P)
PROCESS
CASE环境
CASE计算机辅助软件工程
现代化软件开发环境的总称
软件开发环境
程序设计支持环境
软件支持环境
集成化项目支持
CASE环境的组成
CASE工具集成化框架为可移植性服务的机构操作系统硬件平台环境体系结构
CASE集成框架的典型结构用户界面层界面工具箱表示协议工具管理服务
CASE
工具 工具层对象管理层集成服务配置管理服务共享中心库层
CASE数据库访问控制功能
CASE结构示例
CASE环境 – Rational SUITE
软件开发过程框架
需求管理工具
面向对象分析设计工具
配置管理工具
变更管理工具
测试工具
CASE环境 – 青鸟系统
全面支持面向对象软件开发
开放性环境集成机制
支持多种软件开发方法
既是通用性软件工程环境,又能成为特定领域的专用性应用开发平台完