论RUP(统一软件过程)的应用

2020-09-10 12:53李建东 许美锦
看世界·学术下半月 2020年7期

李建东 许美锦

摘要:本文结合作者的实践,以智慧蒙自——综合运营管理平台开发为例,讨论RUP的应用。首先介绍了项目概况,然后对RUP进行了简单的介绍,最后介绍了智慧蒙自——综合运营管理平台中如何利用RUP进行开发以及开发中所遇到的一些问题及解决方案。

关键词:RUP;初始阶段;细化阶段;构建阶段;移交阶段

一、项目概况

根据上级领导的安排,我们单位负责建设我市智慧蒙自——综合运营管理平台,该平台主要包括联动治理、智慧城管、智慧创文、智慧党建、智慧交通、智慧住建等多个子平台以及与之配套的“智慧蒙自(政务版)”APP、“蒙自通”APP。该平台实现了对智慧城市的总体运行态势感知、受理调度、联动治理、应急指挥及决策支持。城市治理大调度、大联动的格局已经实现。

在该系统的开发中我们采用基于SOA(面向服务的体系结构)的WebService技术来实现该平台,按照分层思想将所涉及的服务分为基础服务、数据服务、业务服务和管理服务,利用WSDL、UDDI与SOAP等技术规范描述、发布和调用服务,并在服务管理中心统一管理下按照业务逻辑编排服务实现复杂的业务流程。该平台的数据库采用Oracle 11g。

二、RUP简介

RUP(统一软件过程)是一个通用过程框架,RUP中的软件过程在时间上被分解为4个顺序的阶段,它们分别是初始阶段、细化阶段、构建阶段和移交阶段。每个阶段在结束时都要安排一次技术评审,以确定这个阶段的目标是否已经达到,如果目标已经达到,就允许项目进入下一个阶段,如果目标没有达到,就要对该阶段的工作进行完善,直到达到目标为止。基于RUP的软件开发过程是一个迭代的过程,每次经过这4个阶段就是一个开发周期,就会产生一代软件。除非产品退役,否则通过重复同样的4个阶段,产品将演化为下一代产品,但每一次的侧重点都将放在不同的阶段上。初始阶段的任务是为系统建立业务模型并确定项目的边界。所以初始阶段的过程包括:明确项目规模;评估项目风险;制订项目计划;阶段技术评审。细化阶段的任务是分析问题领域,建立完善的架构,淘汰项目中最高风险的元素。所以细化阶段的实现过程包括:确定架构;制订构建阶段计划;建立支持环境;选择构件;阶段技术评审。构建阶段,要开发所有剩余的构件和应用程序功能,把这些构件集成为产品,并进行详细测试。构建阶段结束时也要进行技术评审,评审产品是否可以在β测试环境中进行安装和运行。当基线已经足够完善,可以安装到最终用户实际环境中时,则进入移交阶段。移交阶段的重点是确保软件对最终用户是可用的。移交阶段的主要任务是进行β测试,制作产品发布版本;对最终用户支持文档定稿;按用户的需求确认新系统;培训用户和维护人员;获得用户对当前版本的反馈,基于反馈调整产品,例如,进行调试、性能或可用性的增强等。移交阶段结束时也要进行技术评审,评审目标是否实现,是否应该开始演化过程,用户对交付的产品是否满意等。

三、RUP的应用

当我们接到开发智慧蒙自——综合运营管理平台的通知后,我们就进行了需求的初步调研,确定该系统为中型项目,我们组织相关技术人员召开了一次研讨会,研讨会的内容就是软件开发方法的选择。大家一致认为,由于该项目规模为中型项目,如果采用快速应用开发、敏捷方法等开发方法,不太适合,而RUP为重量级的开发方法,适用于大中型信息系统的开发,所以我们决定采用RUP为整个项目的开发方法。

在整个项目的开发过程中,我们按照RUP的4个顺序的阶段进行开发。在初始阶段我们首先通过现场观摩和用户访谈的方式对涉及到本项目的所有单位以及部分市民进行了需求的获取和分析,然后形成需求说明书,以需求说明书为主要依据,编制项目范围说明书,在项目范围说明书中,明确了软件的规模,项目的范围和边界,即我们要做什么,不做什么。随后我们进行项目风险的评估工作,在该评估工作中我们召集系统分析师、有类似项目经验的软件开发人员代表开会,会上大家畅所欲言,将每个阶段可能出现的风险进行识别,并根据风险定性分析、风险定量分析,确定出最主要和影响最大的风险,并进行风险监控。在本项目中,由于开发人员已有类似项目开发成功的经验,技术上的风险并不大,因为该项目为中型项目,模块众多,一个模块的改动将会影响到很多模块,所以主要的风险来自于需求的变更。为此,我们建立了一个强有力的变更控制系统,该系统事先确定了修改项目文件或改变项目活动时应遵循的程序,其中包括了必要的表格或其他书面文件、责任追踪,以及变更审批制度、人员和权限;成立了变更控制委员会,变更控制委员会的组长由系统分析师兼任,成员由一些软件设计师兼任,每一次需求的变更都必须经过变更控制委员会开会决定;制订规范的变更控制流程,变更流程包括以下基本流程:(1)变更申请;(2)变更评估;(3)变更决策;(4)变更实施;(5)变更验证;(6)沟通存档。每一次需求的变更,都严格遵循变更控制流程。根据风险的可能性,我们进行了分析,并作出了具有15%资源预留的项目计划。估计了整个项目的总体成本为××万元左右,开发时间为1年左右,配备开发人员30人左右,并做出了项目进度表。在初始阶段结束时,我们召集市政府领导、用户代表、领域专家、项目经理、系统分析師、有类似项目经验的开发人员代表召开了一次技术评审会议,在会议上讨论了初始阶段的目标是否完成,需求说明书和项目范围说明书是否合适,项目开发时间、费用、开发队伍人员配备、风险的防范策略是否合理等等,并且决定继续进行项目还是取消项目。会后经用户方和开发方达成一致意见,并在需求说明书、项目范围说明书、项目计划书上签字确认。

在细化阶段中,我们首先确定软件的架构,由于智慧蒙自——综合运营管理平台由很多子平台组成,每个子平台相互独立但又需要进行数据交换,为了保持子平台的独立性和易于添加新的子平台,所以我们确定该平台的架构为SOA。在此基础上,为构建阶段制订了详细的阶段计划并为其建立了基线。根据实际情况我们选择了J2EE作为软件开发平台,Oracle 11g为后台数据库。然后进行构件的选择,我们根据平台的需求,从构件库中提取一些符合要求的构件。在细化阶段结束时,我们也召开了一次技术评审会议,对架构的选择、构建阶段计划、开发环境的选择、构件的选择及主要风险的解决方案进行了讨论,达成一致意见后便进入构建阶段。

在构建阶段,我们开发了一些智慧蒙自——综合运营管理平台所需要但构件库中没有的构件,并且完成了该平台应用程序功能的编写。最后,我们采用了面向对象的组装技术与基于功能的组装技术相结合。把构件库中提取出来的符合要求的构件、新开发的构件、当前开发平台中的软件元素相连接,最终构成新的目标平台。在构建阶段结束时,我们也召开了一次技术评审会议,评审产品是否可以在β测试环境中进行安装和运行。评审通过后便进入移交阶段。

在移交阶段,我们对智慧蒙自——综合运营管理平台进行β测试。然后對有关用户和维护人员进行培训。并获得用户、维护人员对当前版本的反馈,基于反馈调整产品。在构件阶段结束时,我们也召开了一次技术评审会议,评审目标是否实现,是否应该开始演化过程,用户对交付的产品是否满意等。基于用户需要增加一些新功能的要求,通过变更控制流程,我们决定产品进入下一个迭代过程,但这一个迭代过程,由于只是增加一些新的功能,侧重点放在细化阶段和构建阶段。

在开发过程中我们也遇到了一些问题,由于RUP太过于庞大和复杂,每一次的需求变更都要经历复杂的过程和很多额外的工作。这样将造成成本的上升和进度的推延。但是需求变更是不可避免的,所以我们采取的措施是建立了一个强有力的变更控制系统;成立变更控制委员会;按照规范的变更控制流程处理变更。还有由于RUP的每个阶段结束时都要进行一次技术评审,每一代产品的产生最少要经历四次评审会。参会人员涉及到用户方代表、领域专家、开发方代表等等,有时开会时间难以统一,为此我们采用正式评审和非正式评审相结合的方式。根据大部分参会人员或者是主要参会人员的时间确定开会的时间,然后对于不能按时参会的人员,把评审意见通过QQ群、电话联系、邮件的方式进行评审,最后达成一致意见,形成评审结果。

在该平台的开发中,由于全面采用了基于RUP的开发过程,规范了管理和开发流程,大大降低了该平台出错的机率,提高了该平台的质量。

参考文献:

[1] 系统分析师教程[M].张友生.北京:清华大学出版社.2010:348-360.

[2] 系统架构设计师教程[M].杨春晖,孙伟,孔学东等.北京:清华大学出版社.2009:90-109.

[3] 统一软件过程在信息系统分析与设计中的应用[J].李立清.信息与电子工程.2009(05).

[4] 面向教学软件的RUP改进模型的设计研究[J].余久久.电化教育研究.2012(04).

[5] 软件工程技术在系统软件开发过程的应用分析[J].方玉林.产业与科技论坛.2019(23).

作者简介:

李建东(1976-08-),男,硕士研究生,国家系统分析师(软件高工)、国家系统架构设计师(系统架构高工)、计算机硬件及应用高级工程师,主要研究领域为系统架构设计、需求获取、需求分析、计算机网络、信息安全等;

许美锦(1974-09-),女,大专,工程师,主要研究领域为计算机网络、计算机硬件、信息安全、电子政务等。