书城计算机网络综合应用软件设计
8724600000010

第10章 软件项目管理(3)

2.5角色定义与分配

人员组织是在团队开发中才需要考虑的内容。但在现实中,几乎没有一个软件是靠个人独自完成。在开发过程中或多或少会需要与他人协作或者享用他人的成果,所以团队开发中的人员组织是一个不可忽视的问题。而人员组织中的一个核心问题就是角色(Role)定义,在近几年的关于软件工程的人员组织方面,角色是谈得较多的一个词。角色本质上是从人员所从事的职能这一角度,对人员加以区分。就像常见的一些企业的各部门定义一样,企业要有主要负责实现生产功能的部门,所以会有生产部;又要完成人事管理的工作,所以又有人事部。合理地进行角色定义与分配员工的职责,消除工作职能上的重复与冲突等都是极为重要的。

项目负责人主要完成整个项目的时间、质量的规划,人员的组织,资源的分配等管理性工作。

系统分析人员主要完成软件的需求分析;系统的设计人员主要完成软件系统的概要设计和详细设计;程序员按照给定的设计要求完成软件的构造和基本的单元测试;测试人员完成集成测试和系统测试;维护人员负责系统的完善性、修正性、适应性维护。基本上这种角色的划分是按照瀑布模型中的各个主要阶段来划分的。

近年来,按照软件过程管理的各主要职能来划分软件开发过程中的角色渐渐成为主流。

项目负责人(Team Leader):项目的计划、人员的组织、进度的控制、协调沟通等职能,因而项目负责人主要实现的是管理的职能。

开发经理:主要负责产品的分析、设计、模块的划分与协调等职能,生产高质量的产品是这一角色最为关心的内容。

软件配置管理人员:各类软件配置项,包括文档、代码、数据、工具等的版本控制和变更控制。

技术支持人员:负责各类技术问题的支持,支持活动包括技术咨询、新技术的探索、某一项技术性能的评估。

软件质量保证人员:软件质量保证策略的选取或制定,软件过程质量的实施,如分析、设计、代码的复查,各类质量控制策略的实施情况的反馈。

软件测试人员:负责软件各个级别的测试计划的制定、实施与反馈。

在一个真实的软件开发小组中,角色可能会重叠。如人员较少时,或者某些个人能力较强时,往往一人身担多个角色。角色也可能进一步细分,如可以从上面的软件质量保证人员分出软件测试人员,成立单独的部门。在一个实际的软件开发小组中,其角色定义也不一定严格遵守上述两个模型,事实上往往是两者兼有之。所以一个好的角色定义应该是根据团队的实际来定义的。

思考题

1.可行性研究主要研究哪些问题?

2.项目质量管理主要包括哪几方面的内容?

3.软件质量保证技术有哪些分类?分别包括哪些技术?

4.软件开发过程中主要涉及哪些角色?

[1]http://www.iso.ch

[2]Kapan,C.R.Clark,and V.tang,SecretsofSoftwareQuality:40InnovationsforIBM,McGraw—Hill,1995.

[3]ComputerSociety,GuideToSoftwareEngineeringBodyofKnowledge,http://computer.org,2001.3

[4]Project ManagementInstitute,A guide to Project Management Body ofKnowledge—2000edition,NewtownSquare,Pennsylvania19073 3299USA.

[5]张海藩.软件工程导论.北京:清华大学出版社,2001.

[6]WattsS. Humphrey,ThePersonalSoftwareProcessSM(PSPSM),2000.

[7]殷建民.软件系统分析与设计.北京:清华大学出版社,2001.