软件工程中必须有的一项就是项目,故而项目管理也是必要的。软件项目分为项目管理过程、软件生产率和质量的度量、软件项目的估算、软件项目计划的目标、软件开发成本估算。
软件项目管理过程,又称项目管理流程,IT行业的项目管理流程一般包括五部分:项目的启动、项目的计划、项目的实施及控制过程、项目的收尾和项目的后续维护。
项目管理的对象是软件过程项目,关键问题是必须对软件开发项目的工作范围、科可能风险、需要资源(人、硬件/软件)、要实现的任务、经理的里程碑、花费工作量(成本)、进度安排等做到心中有数。
项目启动:在制定软件项目计划之前,必须要明确项目的目标和范围,考虑候选的解决方案,标明技术和管理上的要求。
在项目启动过程中,需要对以下内容做了解:
度量:对项目本身做度量,作用是为了了解产品开发的技术过程和产品本身,为了有效地定量地进行管理。
估算:关键活动是制定项目计划,必须就需要的人力(以人月为单位)、项目持续时间(以年份或月份为单位)、成本(以元为单位)做出估算
风险分析:对于软件项目管理是决定性的因素,现今很多项目不考虑风险就着手进行。风险分析实际上是一系列风险管理步骤,其中包括风险识别、估计、优化、管理策略、解决和监督。
进度安排:启动项目时就要考虑一个合理的进度安排,需要考虑预先对进度如何计划、工作怎样就位、如何识别定义好的任务等问题,并设计好验收标准。
追踪和控制:就是跟随项目进度,监督和控制项目。这不仅可以对资源定位,还可以对任务重新安排,修改交付日期以调整已经暴露的问题等等。
项目计划:是项目实施的基础。通过所有项目干系人认可的项目计划形成文件,便于本企业高层领导、相关管理部门领导、相关参与部门领导、项目组成员、客户、协作单位、分包单位等所有项目干系人之间的交流沟通。项目计划是项目组为实现项目目标而科学地
预测并确定项目生命周期的行动方案。任何项目计划都是为了解决 3 个问题:
① 确定项目目标;
② 确定为了达成项目目标的各项行动的顺序和时间;
③ 确定项目中每项行动所需要的资源。
项目计划的目标:
(1) 项目计划的第一个目标:建立估计值,即建立和维护项目计划因素的估计值。为此应该确定项目范围,即通过建立高层工作分解结构来估计项目范围;监理工作产品和任务属性的规模与复杂度;确定项目的生命周期阶段,以此来限定计划范围;基于估算的原理进行对工作产品和任务的项目工作量和成本的估算。
(2) 项目计划的第二个目标:开发项目计划文档,即文档化项目计划、维护项目计划,并以此作为项目管理的基线。为此应该建立和维护项目的预算和进度表;要识别和分析项目风险;确定如何采集和管理项目数据;确定实施计划所需要的各种资源;确定项目实施所必需的知识和技能;确定各项任务或活动的承担人;编写项目计划文档。
(3) 项目计划的第三个目标:获得并维持所有项目干系人对项目的承诺。为此应当评审影响项目的所有计划,使所有项目干系人理解项目承诺;必要时调整项目计划以适应有效的和已经估计的资源;获取所有项目干系人特别是项目任务或活动的承担人对项目计划的承诺。
项目实施与控制:必须按照计划阶段定制的计划采取必要的活动,来完成计划阶段定制的任务。
项目收尾:即一个项目研发过程完成,并且所有可交付成果的完成,如项目各阶段产生的文档、项目管理过程中的文档、与项目有关的各种记录等。在项目的收尾阶段中的主要活动是,整理所有产生出的文档提交给项目建设单位。收尾阶段的结束标志是《项目总结报告》,收尾阶段完成后项目将进入维护期。
项目维护:在项目收尾阶段结束后,项目将进入到后续的维护期。项目的后续维护期的工作,将是保证信息技术能够为企业中的重要业务提供服务的基础,也是使项目产生效益的阶段。在项目的维护期内,整个项目的产品都在运转,特别是时间较长后,系统中的软件或硬件有可能出现损坏,这时需要维护期的工程师对系统进行正常的日常维护。维护期的工作是长久的,他将一直持续到整个这个项目的结束。也就是说,什么时候本项目的硬件及其上运行的系统退出,那时将是项目后续的维护期的结止日。
软件生产率和质量的度量:是以投入工作量为依据的软件开发活动的度量和开发成果质量的度量。内容包含对软件进行度量的原因、面向规模的度量、面向功能的度量、软件质量的度量和在软件工程过程中使用度量。
对软件进行度量:
1.标明软件产品的质量;
2.弄清楚软件开发人员的生产率;
3.给出使用了新的软件过程方法和工具所得到的效益
4.建立项目估算的“基线”;
5.帮助调整对新的工具和附加培训的要求
度量方式有物理度量和软件度量。因此度量域可以分为:
面向规模的度量:是对软件开发过程的直接度量,建立一个面向规模的数据表格记录项目信息。
面向规模的度量的缺点:源程序仅仅是软件配置的一部分,相差还是较大的,不适用于非过程语言的度量
面向功能的度量
是对软件和软件开发过程的间接度量
主要考虑程序的“功能性”和“实用性”,而不是对LOC技术(FP:功能点)
面向功能的数据表格:
功能点的计算:
确定五个信息域的特征,并各处相应计数:用户输入数、用户输出数、用户查询数、文件数和外部接口数。
收集到数据,可计算与每一个计数相关的复杂性值
计算功能点:FP = 总计数 *(0.65+0.01 * SUM(Fi))
计算数是所有加权计数项的和
复杂性校正值Fi:
1. 系统是否需要可靠的备份和恢复?
2. 是否需要数据通信?
3. 是否有分布处理的功能?
4. 是否性能成为关键?
5. 系统是否运行在既存的高度实用化的操作环境中?
6. 系统是否需要联机数据项?
7. 联机数据项是否需要建立多重窗口显示和操作,以处理输入处理。
8. 主文件是否联机更新?
9. 输入、输出、文件、查询时候复杂?
10. 内部处理过程是否复杂?
11. 程序代码是否可复用?
12. 设计中是否包括了转移和安装?
13. 系统是否设计成可以重复安装在不同机构中?
14. 系统是否设计成易修改和易使用?
软件质量的度量:贯穿软件工程的全过程中及软件交付用户使用之后;交付之前的度量可作为判断设计和测试质量好坏的依据;交付之后的度量则把注意力集中于还未发现的错差数和系统可维护性方面;使用得最广泛软件质量的事后度量包括正确性、可维护性、完整性和可使用性。
正确性是指一个程序必须正确地运行,并为它的用户提供某些输出,要求软件执行所要求的功能。
可维护性即软件可以维护,而软件没有一种方法可以直接度量,必须采取简介度量。
完整性度量一个系统抗拒对它的安全性攻击(事故的和人为的)的能力。
可使用性:如果一个程序不具有“用户友好性”,即使它所执行的功能很有价值,也常常会失败。
项目估算:
对完成该软件项目所需的资源进行估算
每一种资源,一般都应说明四个特性:
1.资源的描述;
2.资源的有效性说明;
3.资源在何时开始需要;
4.使用资源的持续时间。
例如人力资源: