基于RUP/UML的高校项目小组实践

时间:2022-02-24 07:51:22

基于RUP/UML的高校项目小组实践

摘要:在软件的发展过程中,软件开发人员一直在努力寻找适合软件产业发展的方法学与技术,以提高软件的生产率和质量。实践证明,通过改进软件的生产过程,可以有效地改进软件的质量。结合TSP,在高校项目小组中,通过实践RUP及CMM来改进软件的生产过程,有效地改进软件的开发进度及质量。

关键词:软件项目管理;软件能力成熟度模型;统一软件开发过程;团队软件过程

0 引言

软件生命周期过程中,管理仍然是开发软件项目成败的关键。我国的软件产业需要迅速转入以过程为中心,走工业化生产的道路。软件项目开发是一项团队活动,为了及时有效地开发出高质量的软件产品,软件活动应该按照一定的顺序并需要定义正式的过程,或者说按照软件工程的标准进行软件的研发工作。此过程需要定义完整的项目框架,整个团队遵循同一个标准进行各自负责的工作,成员之间便于交流。从而提高软件的质量及生产率。软件能力成熟度模型(Capa-bility Maturity Model,CMM)正是加强软件质量及过程改进方面的有效方法。

1 统一过程及CMM

统一过程作为一个通用的软件开发过程框架,可以根据实际项目对其中的活动通过裁剪和扩充,应用于各种不同类型的软件系统和项目规模。其特征是用例驱动、以架构为中心、迭代增量的开发。用例驱动的含义是在软件产品开发的各个阶段中都可以回溯到用户的真正需求,即它驱动开发过程,以用例为单位制定计划、分配任务、监控执行和进行测试等,将核心工作流及辅助工作流结合为一体。

Rational统一过程开发方法以架构为中心,使用UML(Unified Modeling Language,统一建模语言)作为过程建模标准。UML是一种图形化的建模语言,它融合了众多面向对象的建模语言的长处,并通过修改完善在实际应用中发现的问题。在系统的分析和实际中对项目开发、团队的交流起到非常重要的作用。同时,UML推动了软件开发行业的发展,并为系统的需求分析提供了强大而全面的模型。

美国卡内基·梅隆大学SEI提出的CMM是一些成功项目的软件过程的经验总结,是一种不断改进软件过程和软件过程能力的方法和步骤,通过描述“谁做什么”来指导过程改进,使用明确判断的依据确定是否已经达到其要求,与具体的软件生命周期、开发方法等无关。CMM中不包括具体操作的事务,也不通过“如何做”来指导软件过程改进。

2 TSP及其现状

2.1什么是小组项目

在小组项目模式之前,软件开发人员应用的更多的模式是PSP(Personal Software Process,个人软件过程),或者说是软件人员个人智商和能力的比拼。随着软件规模的扩展及复杂程度的提高,这种单打独斗的开发模式已经远不适应软件产业的发展。最初代替PSP开发方法的是TSP(Team Software Process)。

TSP是由“软件质量之父”Watts S·Humphrey提出的一种采用广泛的团队过程。TSP即团队软件过程,是为开发软件产品的开发团队提供指导,TSP侧重于帮助开发团队改善其质量和生产率,以使其更好地满足成本及进度的目标。TSP被设计为满足2~20人规模的开发团队,大型的多团队过程的TSP被设计为大约最多为150人左右的规模。

描述了公司改进过程的循序渐进的方法,如图1所示。

TSP结合了CMM的管理方法和PSP的工程技能,通过告诉软件工程师如何将个体过程结合进小组软件过程,并将后者与组织进而整个管理系统相联系:通过告诉管理层如何支持和授权项目小组,坚持高质量的工作,并且依据数据进行项目的管理。向组织展示如何应用CMM的原则和PSP的技能去生产高质量的产品。

2.2高校项目小组现状

在国内的大多数高校都存在着很多的项目小组,一般情况下,小组成员属于一个科研团队。小组成员的组成一般是既符合职称学历的梯队。也符合技术能力的要求。成员基本上属于一个大的研究方向,在参与项目时各自根据自身经验及能力负责相关的部分。

项目小组一般由3到8人组成,高校项目团队一般根据项目的大小以及项目的要求,成员一般在4到10人左右。根据各自的研究方向及自身经验等参与到同一个项目中。高校的项目小组在某种程度上基本上规避了技术风险以及资金风险。

3 高校项目小组实践

目前,很多的认证考试都采用了试题库抽题的方式,提高了教学的灵活性。最有影响的案例就是ETS(美国教育考试中心)举办的GRE(美国研究生人学考试)的计算机化考试,它使考试由原来的每年只能有两次参加考试的机会变为每个工作日都可以参加考试。此外,各高校或者教育机构很多都有自己的试题库或者在线考试系统。

随着专业的发展,建立一个适合本校本学院本专业的试题库是教学的需要,也是专业发展的需要。在实际的项目《统一过程的实践》应用中,每个参与成员都具有一定的开发设计软件的经验,并且具备软件工程及统一过程开发各阶段的知识及实践经验。同时,小组也具备CMM专门人员协调各阶段的任务。任务的分配大体如下所示:①每个人负责自己相应工作任务及文档;②按照软件工程的标准实施各阶段的安排;③以CMM标准为规范处理各阶段的任务;④专门的人员负责项目按照CMM标准的实施及评估。

实施CMM过程改进,首先要对软件组织结构进行调整。本项目参加人数共计5人,按照各自的知识结构及经验,承担了相应的任务。相对于以前的单人开发模式及普通的开发团队组合方式,小组项目在一定程度上规范了参与者的行为。为了统一大家对项目的认识,采用UML图描述相应阶段的工作。

在实施RUP(Rational Unified Process)时,考虑到RUP以用例为核心,在这里给出了系统的主要功能用例图(注:为了使图表看起来清晰,省略了登录要求)。

①试题库功能分析——用例图(图2)实践了RUP的初始阶段及工作流。用例只能捕获功能性需求,即系统做什么;对于非功能性的需求,可以通过详述用例来进行补充,一般如表1所示。

②用例实现,试题库系统设计——类图(图3)实践了RUP的细化及构造阶段。类图细化了问题域以及实现中的对象。

③试题库详细设计——交互图(图4)实践了构造阶段。交互图和类图相互呼应,细化了系统的实现过程。

④试题库构造及移交阶段,涉及到了组件图及部署图等。

通过一系列的分析设计,采用RUP及UML对系统进行了建模,使得对系统的了解清晰无歧义。并且在UML模型图的基础上,实施正向工程,提高了开发效率,节省了开发时间,而且,把开发中可能出现问题的环节提前到了分析设计阶段,以防错误的滞后性:并且,提高了模块复用性。

4 结语

不管是PSP、TSP,还是CMM,都从不同的角度对软件过程进行了改进,三者之间相容,PSP和TSP的相关训练可以为CMM提供坚实的基础。各企业组织或项目小组应该根据自身的情况将实施CMM与实施PSP和TSP有机地结合起来,才能将CMM发挥最大的效力。

虽然实际项目较小,但在实施过程中对CMM模型与标准进行适当裁剪。不生搬硬套,只将其作为参考,有较好的效果。同时,项目在分析设计开发的过程中,实施了RUP框架,并且采用UML进行建模,规范了软件开发的过程,规避了部分风险。而且,对于学院以及学校整体试题库的建设有着重大的借鉴意义。国内软件组织或者高校的软件开发都能严格遵循相应的管理过程,一定能提高相应的软件项目开发质量以及保证进度。

上一篇:基于工学结合的高职数据库类课程的教学研究 下一篇:Beijing’s Theme Cafés: Brewing Start-up Su...