软件项目管理——软件范围与估算
对于一项工程来说,每个工程在它开始施工之前都会有一个工程范围和估算。而软件也不例外,每一个软件在开始开发前,都会有一个相对应的软件范围。同时在开发前也要对该软件进行一个合理的估算,以便能对软件有一个更好的把握方向。
在接下来的这篇文章中,将讲解软件项目管理中的软件范围与估算。
一、软件项目计划
1、目标
软件项目计划的目标是提供一个框架,使得管理人员对资源、成本和进度做出合理估算。
这些估算应当在项目开始时的一个有限的时间段内做出,并且随着项目的进展定期进行更新。
2、步骤
(1) Scoping(范围)—— 确定软件范围;
(2) Estimation(估算)—— 估算资源、工作量、成本;
(3) Risk(风险)—— 风险管理;
(4) Schedule(进度)—— 进度安排;
(5) Control strategy(控制策略)—— 指定控制策略。
二、软件范围
1、软件范围定义
(1) 估算开始时,应对功能进行评价,并适当细化以提供更详细的细节。
(2) 由于成本和进度的估算都与功能有关,因此常常采用某种程度的功能分解。
(3) 软件范围包括功能、性能、约束、接口和可靠性,无二义和可理解。
2、软件范围——引例
思考这样一个问题:针对这个软件的范围描述,请找出软件范围的功能、性能、约束、接口等。
考虑开发一个驱动传送带分类系统(CLSS)的软件,对该软件的范围陈述如下:
(1) 传送带分类系统将沿传送带移动的盒子进行分类,每个盒子由一个包含零件号的条形码来标识,并在传送带的末端分送到六个箱子中的一个,这些盒子要通过一个由条形码阅读器和一台PC所组成的分类站。
(2) 分类站的PC连接到一个分流器上,它把盒子分送到不同的箱子中,盒子以随机的顺序通过且其间的距离相同,传送带以每分钟5英尺的速度移动。
(3) CLSS软件以和传送带速度一致的时间间隔接受来自条形码阅读器的信息。条形码数据被解码成盒子的标识格式,软件将在最多可容纳1000个条目的零件号数据库中进行检索,以确定当前在阅读器(分类站)位置的盒子应该放到哪个箱子中。
(4) 该箱子的信息被传送到分流器,以把盒子放进合适的箱子中,每个盒子所放进的箱子的记录均被保存起来以供以后提取及报告。
(5) CLSS软件同时也接受来自脉冲流速计的输入,用于使控制信号与分流器同步,根据分类站和分流器之间产生的脉冲数,软件将产生一个控制信号给分流器,以适当地定位盒子。
通过分析,这个过程将产生如下功能:
- 读取条形码输入
- 读取脉冲流速计
- 解码零件编码数据
- 检索数据库
- 确定合适的箱子
- 产生分流器的控制信号
- 维护盒子目的地的记录
性能取决于传送带的速度,对于每个盒子的处理必须在下个盒子到达条形码阅读器之前完成。
约束条件包括:
- 盒子以随机的顺序通过且其间的距离相同,传送带以每分钟5英尺的速度移动;
- CLSS软件以和传送带速度一致的时间间隔接受来自条形码阅读器的信息;
- 控制信号与分流器同步。
接口:条形码阅读器,分流器,PC等
三、影响估算的因素
软件项目管理过程开始于项目计划,在做项目计划时,重要的一项活动就是估算。
那么,影响估算的因素有哪些呢?
-
复杂性越高,估算的风险就越高。
-
项目的规模越大,开发工作量越大,估算的风险越高。
-
项目的结构化程度越高,进行精确估算的能力就能提高,而风险将减少。
-
历史信息的有效性也影响估算的风险。历史信息越有效, 总的风险就越少。
-
如果对软件项目的作用范围还不是十分清楚,或者用户的要求经常变更,也会增加估算的风险。
-
计划人员应当要求在软件系统的规格说明中给出完备的功能、性能、接口的定义。
四、软件项目资源
软件项目计划的第二个任务是对完成该软件项目所需的资源进行估算。
1、软件项目资源构成
(1) 最基本的、重要的资源——人员;
(2) 现成的用意支持软件开发的工具——硬件工具;
(3) 现成的用意支持软件开发的工具——软件工具(CASE);
(4) 可复用构件。
2、分析图
接下来对各构成要素进行一一分析。
3、人力资源
(1) 在考虑各种软件开发资源时,人是最重要的资源;
(2) 在安排开发活动时必须考虑人员的技术水平、专业、人数、以及在开发过程中对各阶段人员的需要;
(3) 对于一些规模较小的项目,只要向专家做些咨询,也许一个人就可以完成所有的软件工程步骤;
(4) 对一些规模较大的项目,在整个软件生存期中,各种人员的参与情况是不一样的。
以下通过一张图了解各阶段人员对软件生命周期的共享度。
4、硬件资源
硬件是作为软件开发项目的一种工具而投入的,分别包含以下三种类型:
(1)宿主机(Host)—— 软件开发时使用的计算机及外围设备;
(2)目标机(Target)—— 运行已经开发成功软件的计算机及外围设备;
(3)其它硬件设备 —— 专用软件开发时需要的特殊硬件资源;
5、软件工具
软件工程人员在软件开发期间使用了许多软件工具来帮助开发,这种软件工具集叫做计算机辅助软件工程(CASE)。分别包括:
(1) 业务系统计划工具集;
(2) 项目管理工具集;
(3) 支援工具 —— 文档生成工具、网络系统软件、数据库、电子邮件、通报板,以及配置管理工具;
(4) 分析和设计工具;
(5) 编程工具;
(6) 组装和测试工具;
(7) 原型化和模拟工具;
(8) 维护工具;
(9) 框架工具 —— 这些工具能够提供建立集成项目支撑环境(IPSE)的框架。
6、可复用构件
(1)可复用的软件资源,被称为构件。可复用构件分别包含:
- 成品(off-the-shelf)构件:已存在的构件,能够从第三厂商获得,被准备用于当前的项目,并已被完全确认。
- 具有完全经验的构件:当前项目成员在这些构件上有丰富的经验。
- 具有部分经验的构件:与当前项目相关,但需做实质性的修改;项目成员对此构件的经验有限。
- 新构件:为满足项目组的特定需要而专门开发的软件构件。
(2)使用可复用构件时,应考虑:
- 成品构件能够满足项目的需求 —— 采用!因为
低成本和低风险
。 - 具有完全经验的构件可以使用,但在项目计划中应反映出来 —— 修改和集成的风险可接受。
- 具有部分经验的构件使用时必须详细分析 —— 如果要大量的修改,所需的成本可能超过开发新构件的成本。
五、软件工作量与成本的估算
在软件成本和工作量的估算中,不确定因素非常大,包括人、技术、环境、政治等因素都会影响估算结果。
软件项目的估算能够通过一系列系统化的步骤,在可接受的风险范围内提供估算结果。
对于每一个可用的软件成本估算的选择,其效果好坏取决于用于估算的历史数据!
先用一张图了解软件工作量和成本的估算方法。
接下来讲解三种估算方法。
1、基于LOC估算工作量和成本
(1)估算步骤
-
①给出软件范围 —— 项目计划人员可对每一个分解的功能提出一个有代表性的估算值范围;
-
②进行功能分解 —— 利用历史数据或凭实际经验(当其它的方法失效时),对每个功能分别按最佳的、可能的、悲观的三种情况给出LOC或FP估计值 ,记作a、m、b;
-
③估算每一个子功能 —— 计算LOC或FP的期望值 E;
© 版权声明文章版权归作者所有,未经允许请勿转载。THE END