李爱东
(镇江高等专科学校科技与产业处,江苏镇江 212003)
基于 RUP的高职院校软件开发中相关人员角色探析
李爱东
(镇江高等专科学校科技与产业处,江苏镇江 212003)
针对高职院校软件项目开发的实际情况,基于 RUP开发过程的角色设置和职责,提出对 RUP过程进行裁减优化方案,并将优化方案应用于“大学计算机信息技术网络全真模拟考试平台”软件开发项目的角色分配中。
RUP;角色剪裁;软件开发
软件开发的过程由方法论和工具构成。目前,信息技术市场最流行的方法论是 RUP(Rational Unified Process,统一软件开发过程,统一软件过程)。RUP由 Rational Software公司首创,因与当前流行的 JAVA、J2EE技术和面向对象的设计思想 (OOAD)紧密结合,而在各类信息技术开发项目中得到广泛应用[1]。RUP基于这样一种理念:过程方法不仅要解决“who to do”和“what to do”的问题,更要解决“when to do”和“how to do”的问题,而这正是传统过程方法的缺陷所在[2]。在 RUP中角色的划分及详细指导很重要,因此,在进行软件项目开发时,应首先决定设立哪些角色。
角色是抽象的职责定义,指所执行的一组活动或所拥有的一组文档与模型。角色通常由一个人或团队中相互协作的多个人来实现。项目团队成员通常要履行多种不同的角色职能。角色并不代表个人,而是说明个人在工作中应该如何表现和承担怎么样的责任。
在 RUP中,所有人员可划分为分析员、开发人员、测试人员、经理、其他等角色。RUP角色定义与分离广度和深度的概念相一致。进行广度工作与进行深度工作的成员类型差异很大。广度工作速度快,不精确并且有弹性。深度工作任务需要更多的时间,关注于细节,并且需要能够得到更好的质量[3]。
RUP有三大重要特点:
1)软件开发是一个迭代过程;
2)软件开发由 Use Case驱动;
3)软件开发以构架设计 (ArchitecturalDesign)为中心。
在进行角色分配时,应该意识到每个规程都有其自身的广度角色与深度角色,当开发团队分配成员至RUP角色时,应根据个性类型及实际能力分配相应的工作,这一步做好,可以在迭代式开发中减轻重要风险。因为某些个性类型适合进行广度工作,而另一些则适合进行深度工作。了解 RUP角色分配,能帮助人们预测当被分配置一个并不适合于自己个性类型的工作时所需要面对的挑战,需要克服的困难。具体详见表1。
表1 RUP规程中的广度及深度任务
RUP是新一代的软件工程方法。与早期的瀑布式开发模型相比,它具有迭代式的增量开发、使用实例驱动、以软件体系结构为核心 3个鲜明特点,非常适宜于开发技术难度大、需求多变、高风险的复杂项目[4]。RUP是可裁剪的软件开发过程框架,可以根据实际情况及项目特点对 RUP进行裁减,以适应于不同规模的开发团队和不同规范程度的开发方法。
RUP包含一个工件扩展库,其中有许多详细的角色和工件。RUP最新版本 (7.0)的第一个关键原则是“使过程适应组织和项目”,所以需要将 RUP按实际项目的大小和需求进行剪裁[5]。将若干角色的职责联合为一个角色,或将许多现有角色中的一个 RUP角色的职责分开。
本文基于 RUP的核心思想和迭代式开发工作流程,结合高职院校软件项目开发的具体特点,如经费不多 (多为立项课题),项目规模偏小,对象多为学生和教师,研发人员短缺等,对 RUP进行裁减和定制,提出可实际操作的优化方案。
根据当前高职院校的人员结构和软件项目情况,拟在项目实施中设立项目管理员、配置管理员、界面设计人员、系统分析员、设计人员、测试人员、评审人员,承担相应的职能。对于 2个以上人员承担一个标准角色的,以小组或合作协商的方式完成定义的职能。
2.1 项目管理员
承担 RUP过程定义中项目管理员、过程工程师、变更控制管理员 3种人员的职责。分配资源,制定优先级,与顾客和客户协调,保证项目开发组随时集中在项目目标上;指定 1组实践以保证项目工件的完整和质量;掌握项目的过程;关注所有变更控制过程的同时,负责定义需求变更管理过程。
RUP建议项目管理人员具备:1)软件开发和应用领域的经验;2)风险分析、管理、评估、规划、决策等技能;3)表达、交流和谈判技能;4)领导才能和团队组建能力;5)很好的时间管理和工作安排技能,具有在紧要时刻快速决策并取得成功的经历;6)较强的协调技能和选择判断能力。这个角色一般由课题主持人承担。
2.2 配置管理员
承担 RUP过程中配置管理员、工具专家 2种人员的职责。提供配置管理的基础设施和环境,为开发人员和集成人员提供开发、集成和测试空间,为部署部件提供需要的工件集;保证产品评审、变更和缺陷跟踪活动的配置环境;负责配置管理计划、配置审计及报告;负责项目中的工具支持。
2.3 界面设计人员
承担 RUP过程中技术文档作者、图形绘制者等人员的职责。开发原型和用户界面设计:获取用户界面需求 (包括可用性要求);构建用户原型,包括所有相关使用人员的界面要求、可用性要求和使用测试相关内容;审查其他实现人员实现的交互界面,并提出反馈信息。创建产品的艺术部分,如程序开启和关闭中的图片设计,包装设计,运行中的画面和布局设计。编写用户培训的教材,包括幻灯片、注意问题、例子等。编写最终用户支持材料,如用户指南、帮助材料、发布指南等。
2.4 系统分析员
承担 RUP过程中业务设计人员、业务过程分析人员、系统分析员、需求说明人员、软件架构师、变更控制管理员 6种人员的职责。利用 1个或多个工作流详细描述机构的局部业务情况,将工作内容和活动分配给业务工作员和业务实体对业务用况进行描述,包括工作人员和实体的职责、操作、属性以及他们之间的关系。分析所有业务作用者和存在的业务用况,建立他们之间的关系,确定目标机构的业务框架和业务界限。引发需求和进行用况建模,利用系统功能轮廓和限制条件,作用者、存在模型,以及他们之间的关系。通过逐个描述 1个或多个用况和其它支撑软件需求,描述系统的功能需求,负责用况包的描述和这些用况包的集成。引导整个项目的技术活动和工件,为每一个结构场景 (场景分解、结构元素分组、组之间的接口能)构建总体结构。
2.5 设计人员
承担 RUP过程中设计师、执行人员、集成人员 3种人员的职责。定义类之间的关系,类的职责、操作和属性,如何在执行环境中运行,1个设计人员负责 1个或多个设计包、子系统。保证分时系统中,根据并发要求,系统对事件进行响应;集成单元详细设计、编码和单元测试,必要时进行子系统的集成及集成测试。负责系统和子系统的集成计划,在子系统工作空间集成子系统,在系统工作空间集成系统。
在 1个小系统中,实现人员、集成人员和测试人员可以是同一个人,通常情况下,在子系统级,测试人员承担集成人员的角色;在系统级,建议集成和测试由不同的小组或团队来完成。
2.6 测试人员
承担 RUP过程中测试分析人员、测试设计人员、测试人员 3种角色人员的职责。负责测试计划、测试执行和测试评估,包括:形成测试计划和测试模型;执行测试过程;评价测试覆盖、测试结果和测试有效性;形成测试评估报告。负责建立和执行测试,评价测试执行情况,从错误状态恢复。
2.7 评审人员
承担 RUP过程中业务模型评审员、需求评审员、结构评审员、代码评审员、设计评审员、项目评审员 6种角色人员的职责。学校可通过成立项目评审小组来完成,当前项目中的项目管理人员、系统分析员、配置管理员、设计人员都可以作为评审小组的成员。
在 RUP方法论中,不同的角色可以从不同的侧面来认识同一个项目。RUP定义了“4+1”个场景(View):Use Case场景 (Use Case View)、逻辑场景 (Logic View)、进程场景 (process View)、实现场景 ( Implementation View)和发布场景 (DeploymentView)。在 Use Case场景中,客户和商务分析员对 Use Case进行描述;在逻辑场景中,系统架构师对系统进行架构设计,设计师对系统进行分析和设计;在进程场景中,设计师对系统可能出现的并发性,运行速度和分布特性进行描述;实现场景则反映程序开发员开发实现的过程;发布场景是描述系统管理员和组装人员实施系统发布和管理的过程。所以,完善的人员角色分配能提高软件项目的认知度和软件的质量[6]。
“大学计算机信息技术”是高校开设的一门公共基础课,具有理论与实践并重的特点。“大学计算机信息技术网络全真模拟考试平台”(下文简称“考试平台 CCIT”)是江苏省现代教育技术研究“十一·五”规划2009年度滚动课题,主要针对高校计算机等级考试开发的一个全真模拟学习实战平台。
软件开发投资大、周期长,不仅综合了管理科学、计算机科学等相关领域的知识,而且需要从事不同工作的人共同努力,开发采用团队协作方式。课题组 11名成员大多是从事一线教学实践的教师及学校的学术带头人,具有较强的工作能力。为了能以预定成本按期、高质地完成考试平台的开发,项目组引入了统一软件过程 RUP。
在实际项目运行中,根据软件开发组织的实际情况确定角色的定义和分配。项目经理必不可少,通常由1个人来担任。架构师也是必须的角色,通常由 1名经验丰富的软件开发人员担任。开发设计人员是组成团队的主要力量,负责系统的设计、开发和测试。
“考试平台 CCIT”的开发中,根据个性类型及专业方向,团队的角色分配见表2。
表2 CC IT软件开发人员角色分配
选择 RUP,主要因为它提供了一整套系统开发解决方案,不仅规范了开发过程,而且为提高系统开发效率,降低软件风险,增加软件重用和健壮性提供了有效的途径[7]。
根据“软件过程也是软件”这一著名原理,RUP剪裁是软件过程开发的再工程。软件开发的方法论是不断发展完善的。在实际中,确定软件过程的时机不是一成不变的。RUP使用“角色”这一抽象概念来规范产品开发的每个阶段、每个工作流。本文仅就 RUP中定义的核心概念之一角色做初步的探讨,为高职院校的软件开发提供一些参考。
[1]百科 ROBOT.RUP[EB/OL].(2009-12-26)[2010-02-26].http://baike.baidu.com/view/491030.htm.
[2]佚名.CMM I实施快速上路:集成 CMM I和 RUP过程框架 [EB/OL].(2008-05-09)[2010-05-02].http://www.sudu.cn/info/html/website/20080509/307590.html.
[3]佚名.理解 RUP角色 [EB/OL].(2009-12-26)[2010-05-06].http://www.skillandwill.com/cn/mbti_meiti_04.htm.
[4]郭莹,杨美红,杨萍,等.中小软件企业软件过程管理与改进策略[J].计算机与数字工程,2009,232(2):46-50.
[5]CHU Hendy.使 RUP的剪裁简单化:引入职责矩阵和工件流[EB/OL].(2009-11-03)[2010-05-06].http://www.cnblogs.com/hendy/archive/2009/11/03/1595306.html.
[6]孙剑晖.RUP:新一代的软件工程方法[EB/OL].(2005-05-30)[2010-05-10].http://www.hackbase.com/lib/2005-05-30/17828.html.
[7]周军辉.基于 RUP的学校人事考核系统的设计与实现[J].湖南第一师范学报,2008,8(3):166-168.
〔责任编辑:卢 蕊〕
Abstract:In the light of the concrete conditions concerning developmentof software at vocational colleges,thispaper analyzes the role assignment and respective responsibility based on RUP development and puts for ward a plan to tailor and optimize the RUP process.The optimized plan will be applied to assign roles in the software-development project of“A Simulated University Test Platform based on Computer andWeb Infor mation Technology”
Key words:RUP;tailoring of roles;software development
A RUP-based research into the roles of software designers at higher vocational colleges
L IAi-dong
(Science and TechnologyDepartment,Zhengjiang College,Zhengjiang 212003,China)
TP393
C
1008-8148(2010)04-0029-04
2010-06-05
江苏省现代教育技术研究“十一·五”规划 2009年度流动课题(12044)
李爱东 (1967—),女,四川成都人,副教授,硕士,主要从事计算机教学研究和科研管理工作。