UML软件工程组织

项目管理规范-RUP管理实施(三)
摘自:lcspace.nease.net 作者:李杰(poorjim@sina.com)

    3. 角色划分

角色是抽象的职责定义,它定义的是所执行的一组活动和所拥有的一组文档与模型。

角色通常由一个人或作为团队相互协作的多个人来实现。

项目团队成员通常要履行许多不同的角色职能;就象一个人可以担任许多职务,一个人也可以担任许多不同的角色。

角色并不代表个人,而是说明个人在业务中应该如何表现以及他们应该承担的责任。

分析员角色集

分析员角色集用于组织主要从事需求获取和研究的各种角色。

角色

· 业务流程分析员

· 业务设计员

· 业务模型复审员

· 需求复审员

· 系统分析员

· 用户界面设计员

3.1.1. 业务流程分析员
业务流程分析员通过概括和界定作为建模对象的组织来领导和协调业务用例建模。例如,确定存在哪些业务主角和业务用例,他们之间如何进行交互。

人员配备

担任业务流程分析员的人员应该善于简化工作,并且具有良好的沟通技巧。担任此角色的人员中必须要有具备业务领域知识的人才,但这种知识并不是所有人都必备的。

业务流程分析员应该准备好开展以下工作:

· 评估将在其中部署项目最终产品的目标组织的情况。

· 了解客户与用户的需求、策略和目标。

· 协调目标组织的建模工作。

· 在必要时对业务工程工作进行讨论和协调。

· 对目标组织中所建议的任何变更进行成本效益分析。

3.1.2. 业务设计员

业务设计员通过描述一个或几个业务用例的工作流程来详细说明组织中某一部分的规约。他指定实现业务用例所需的业务角色及业务实体,并且将业务用例的行为分配给这些业务角色及业务实体。业务设计员定义一个或几个业务角色和业务实体的责任、操作、属性和关系。

人员配备

担任业务设计员的人员应该善于协调,并且具有良好的沟通技巧。他最好具有业务领域的知识,但这并不是担任此角色的所有人都必需的。业务设计员需要熟悉用于获取业务模型的工具。

3.1.3. 业务模型复审员
业务模型复审员参与对业务用例模型和业务对象模型的正式复审。

人员配备

在大多数情况下,担任业务模型复审员的人员都需要具备业务领域的基本知识,或者对将用来实现业务自动化的技术具备基本的知识。业务模型复审员应该具备的另一种技能是详细了解所应用的业务工程技术。


3.1.4. 系统分析员
系统分析员通过概括系统的功能和界定系统来领导和协调需求获取及用例建模。例如,确定存在哪些主角和用例,以及他们之间如何交互。

人员配备

担任系统分析员的人员应该善于协调,并且具有良好的沟通技巧。担任此角色的人员中必须要有具备业务和技术领域知识的人才,但这些知识并不是所有人都必须具备的。

3.1.5. 用户界面设计员
用户界面设计员通过以下方法领导和协调用户界面的原型设计和正式设计:

· 分析对用户界面的需求,包括可用性需求;

· 构建用户界面原型;

· 邀请用户界面的最终用户参与可用性复审和使用测试会议;

· 对用户界面的最终实施方案(由设计员和实施员等其他开发人员创建)进行复审并提供相应的反馈。

人员配备

用户界面设计员不应实施用户界面。用户界面设计员的工作重点和时间都应集中在用户界面的设计和“可视化成形”,原因如下:

· 用户界面设计员所需的技能通常需要为当前的项目和应用程序类型(可能具有独特的可用性需求)而加以改进和优化,这需要投入时间并集中工作重点。

· 应该限制因“一心二用”而带来的风险,即用户界面设计员不应该因为实施方面的考虑(相对于可用性方面的考虑而言)而受到过多的影响。

3.2. 开发角色集
开发人员角色集用于组织主要从事软件设计与开发的各种角色。

角色

· 构架设计师

· 构架复审员

· 代码复审员

· 数据库设计员

· 系统设计员

· 设计复审员

· 实施员

· 集成员

3.2.1. 构架设计师
构架设计师负责在整个项目中对技术活动和工件进行领导和协调。构架设计师要确立每个构架视图的整体结构:视图的详细组织结构、元素的分组以及这些主要分组之间的接口。因此,与其他角色相比,构架设计师的见解重在广度,而不是深度。

人员配备

构架设计师必须多才多艺、成熟练达、洞察力强、经验丰富。这样,他才能在无法获得完整信息的情况下迅速领会问题并根据经验作出审慎的判断。更准确地说,构架设计师(或者构架团队的成员)必须兼具以下技能:

· 经验:既包括在问题领域的经验(通过彻底了解需求),也包括在软件工程领域的经验。对于一个构架团队,这些素质要求可由各团队成员来分别承担,但其中至少要有一名构架设计师能够把握项目的全局。

· 领导才能:能够推动各个团队的技术进展,并能在压力下作出关键性的决策然后将其贯彻到底。要提高效率,构架设计师和项目经理必须紧密协作。构架设计师主要负责解决技术问题,项目经理主要负责解决行政管理问题。构架设计师必须有权在技术问题上作出决定。

· 沟通:能够赢得他人的信任,以对其进行说服、激励和指导。构架设计师不能靠命令进行领导,而必须要赢得项目中其他人员的赞同。为了提高效率,构架设计师必须赢得项目团队、项目经理、客户、用户群体以及管理团队的尊敬。

· 以目标为中心、积极主动,不懈地追求成效。构架设计师是推动项目发展的技术动力,而不是空想家。在其职业生涯中,成功的构架设计师一直都要在捉摸不定和承受压力的情况下作出折衷决定。构架设计师只有将注意力集中在该做的事情上,才能在项目中取得成功。

从专业角度看,构架设计师必须具备系统设计员的所有能力。

团队。如果项目较大,需要组建一个构架团队,则应尽量广聚贤才,使该团队既拥有广泛的经验,又对软件工程流程具有一致的认识。构架团队不应该是由各团队、领域或承包商的代表组成的委员会。软件构架设计是一项长期的工作,始终都需要配备专职人员。

3.2.2. 构架复审员
一般而言,构架复审员负责计划并执行对软件构架的正式复审。

人员配备

构架复审员角色的人员配备要求与构架设计师的人员配备要求相同,但前者更加注重于技术问题。虽然对领导才能、成熟程度、实用主义及注重结果这些方面的重视程度稍低,但这些方面仍然重要:复审员可能会发现构架方面的缺陷,并且有可能会因为影响项目的进度而不受欢迎。尽管如此,最好还是在问题可以解决的时候及早提出关键性的问题,而不是盲目地追随进度,致使项目团队步入歧途。构架复审员需要根据成本对风险加以权衡,并对影响项目成功的概括性问题保持一定的敏感性。构架复审员还需是善于说服的沟通者,他应该能够提出并讨论对他人来说比较敏感的问题。

3.2.3. 代码复审员

代码复审员负责确保源代码的质量,并且计划和执行源代码复审。在复审活动中,代码复审员还负责有关返工的任何反馈意见。

3.2.4. 数据库设计人员

数据库设计员定义表、索引、视图、约束条件、触发器、存储过程、表空间或存储参数,以及其他在存储、检索和删除永久性对象时所需的数据库专用结构。相关信息记录在数据模型中。

人员配备

数据库设计员必须在以下方面具有扎实的应用知识:

· 数据库和面向对象的分析设计技术

· 系统构架,包括数据库和系统性能调整,以及硬件和网络负载平衡

· 数据库管理

· 了解实施语言和环境

3.2.5. 系统设计员
设计员定义一个或几个类的职责、操作、属性及关系,并确定应如何根据实施环境对它们加以调整。此外,设计员可能要负责一个或多个设计包或设计子系统,其中包括设计包或子系统所拥有的所有类。

人员配备

设计员必须在以下方面具有扎实的应用知识:

· 用例建模技术。

· 系统需求。

· 软件设计技术,包括:

o 面向对象的分析设计技术。

o 统一建模语言。

· 实施系统时将利用的技术。

3.2.6. 设计复审员

设计复审员计划并进行设计模型的正式复审。

人员配备

设计复审员的人员配备要求与构架设计师的人员配备要求相同,但前者更加侧重于技术问题。虽然对领导才能、成熟程度、实用主义及注重结果这些方面的重视程度稍低,但这些方面仍然重要:复审员可能会发现设计方面的缺陷,并且有可能会因为影响项目的进度而不受欢迎。尽管如此,最好还是在问题可以解决的时候及早提出关键性的问题,而不是盲目地追随进度,致使项目团队步入歧途。设计复审员需要根据风险对成本加以权衡,并对影响项目成功的概括性问题保持一定的敏感性。设计复审员还需是一个善说服的沟通者,他应该能够提出并讨论对他人来说比较敏感的问题。
从技术知识的观点来看,设计复审员应该具有与设计员相同经验。

3.2.7. 实施员(程序员)
实施员负责按照项目所采用的标准来进行构件开发与测试,以便将构件集成到更大的子系统中。如果必须创建驱动程序或桩模块等测试构件来支持测试,那么实施员还要负责开发和测试这些测试构件及相应的子系统。

人员配备

实施员应具备的相应技能和知识包括:

· 了解系统或所测试的应用程序

· 熟悉测试及测试自动化工具

· 编程技能

建议负责实施子系统的实施员同时应负责该子系统所包含的构件。

3.2.8. 集成员
实施员将经测试的构件交付到集成工作区,由集成员在集成工作区将构件组合起来,生成一个工作版本。集成员还负责制定集成计划。集成在子系统和系统级别进行,每次集成均有独立的集成工作区。正如经测试的构件从实施员的专用开发工作区交付到子系统集成工作区一样,已集成的实施子系统也从子系统集成工作区交付到系统集成工作区。

人员配备

有时,担任集成员的个人还可以担任实施员或测试员。例如,如果项目较小,或者是在子系统级别上进行集成,就可以让同一个人兼任集成员和测试员,以做到有效地利用人力资源。实际上,对于子系统级别的集成(和测试),一个人就可以兼任实施员、集成员和测试员的角色。但是,对于系统级别的集成,建议应由独立的团队来执行集成和测试。

3.3. 测试员角色集
测试员角色集用于组织主要从事软件测试的各种角色。

角色

· 测试设计员

· 测试员

3.3.1. 测试设计员
测试设计员是测试中的主要角色。该角色负责对测试进行计划、设计、实施和评估,包括:

· 生成测试计划和测试模型

· 执行测试过程

· 评估测试范围和测试结果,以及测试的有效性

· 生成测试评估摘要

人员配备

测试设计员应具备的相应技能和知识包括:

· 了解系统或所测试的应用程序

· 了解测试及测试自动化工具

· 具备诊断和解决问题的技能

· 编程技能(最好具备)

3.3.2. 测试员
测试员负责执行测试,其职责包括:

· 设置和执行测试

· 评估测试执行过程并修改错误

人员配备

测试员应具备的知识和技能可能会因为他们所执行的测试类型和/或测试阶段的不同而有所差异。例如,在执行性能测试或集成阶段的测试时,需要更高级的技能。在执行功能测试或系统测试阶段的测试时,则不需要太高级的技能。

以下是测试员所需知识和技能的一些标准:

高级测试员:

· 了解系统或所测试的应用程序

· 了解联网和系统构架

· 了解测试及测试自动化工具

· 具备诊断和解决问题的技能

· 编程技能(必备)

初级测试员:

· 了解系统或所测试的应用程序

· 了解测试及测试自动化工具

· 具备诊断和解决问题的技能

· 编程技能(最好具备)

3.4. 经理角色集
经理角色集用于组织主要从事软件工程流程的管理与配置的各种角色。

角色

· 变更控制经理

· 配置经理

· 部署经理

· 流程工程师

· 项目经理

· 项目复审员

3.4.1. 变更控制经理
变更控制经理这一角色负责对变更控制过程进行监督。此角色通常由配置(或变更)控制委员会 (CCB) 来担任,该委员会应该由有关各方(包括客户、开发人员和用户)的代表组成。在小型项目中,项目经理或软件构架设计师一人即可承担此角色。

3.4.2. 配置经理
配置经理负责为产品开发团队提供全面的配置管理 (CM) 基础设施和环境。CM 的作用是支持产品开发行为,使开发人员和集成员有适当工作区来构建和测试其工件,并且使所有工件均可根据需要包含在部署单元中。配置经理还必须确保 CM 环境有利于进行产品复审、更改和缺陷跟踪等活动。配置经理还负责撰写 CM 计划并汇报基于“变更请求”的进度统计信息。

3.4.3. 部署经理
部署经理负责制定向用户群体发布产品的计划,并将其纳入布署计划中。

3.4.4. 流程工程师
流程工程师对软件开发流程本身负责。其职责包括在项目开始前配置流程,并在开发工作过程中不断改进流程。

人员配备

担任流程工程师的人员需要具有广博的软件开发知识。良好的沟通技巧是对担任此角色的人员的基本要求。

3.4.5. 项目经理
项目经理负责分配资源,确定优先级,协调与客户和用户之间的沟通。总而言之,就是尽量使项目团队一直集中于正确的目标。项目经理还要建立一套工作方法,以确保项目工件的完整性和质量。

3.4.6. 项目复审员
项目复审员负责在项目生命周期中的主要复审点处评估项目计划工件和项目评估工件。在这些复审点发生的是非常重要的复审事件,因为在它们所标志的时间点处,如果计划不够充分或者进展无法令人满意,项目很可能会就此取消。


人员配备

项目复审员应具有多年的业务(包括合同制订及谈判)、技术和软件项目管理的经验,并具有业务管理级别的决策能力。项目复审员还应对风险管理原理具有出色的理解力,并且善于在信息不全或不明确的环境下进行评估。

 

版权所有:UML软件工程组织