微软交流社区

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 92|回复: 0

论软件开发过程 RUP 及其应用

[复制链接]

1

主题

2

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2022-11-26 15:56:07 | 显示全部楼层 |阅读模式
该文章为本人2022年软考期间练手文,参考了其他作者的范文,该文仅供参考。
摘要:
本人于2020年9月参与了某省通信管理单位“传输网系运维可视化及工单管理系统”的项目建设,该系统建设目标是实现对辖区内光缆承载的传输系统进行实时监控,呈现故障位置、下发维护工单、跟踪工单进度等功能。在该项目组中我作为公司技术骨干,参与了系统架构设计工作。项目开发采用了RUP模型,主要使用了SpringBoot主流javaweb应用框架进行系统开发,最终系统顺利上线,获得了用户的一致好评。本文以该项目为例,结合作者的实践,讨论了UP(统一过程方法)在软件开发中的应用。从初始阶段确定项目规模、考虑备选架构,细化阶段分析问题领域、确定架构、改进架构并选择构件,构建阶段把构件组合成产品,最后把软件移交给用户四个阶段说明了UP的具体应用。重点介绍了初始阶段和细化阶段的工作。
正文:
“传输网系运维可视化及工单管理系统”项目是某省通信管理单位“通信网系综合管理平台”的一个子系统。“综合管理平台”是该省网信体系建设“十三五”规划中的示范应用项目,该项目聚焦运用自动化、智能化手段,有效整合光纤通信传送网、计算机网等多种网管系统,支撑通信值勤运维力量整合、抢修力量高效运用、节约运维成本,促进值勤质效提升。“传输网系运维可视化及工单管理系统”主要是整合光纤网的各类网管系统中的运行情况信息,实现对辖区内光缆线路及承载传输系统的一体化监控,保证故障处置工单下达准确迅速,从而更加有效地调动人员力量。根据用户需求,该系统共包括运行态势呈现、巡检管理、工单管理、基础数据维护等4大功能模块。项目组成员共15人,我作为公司技术骨干之一,参与了该系统的需求分析、架构设计、编码测试等阶段的工作。该项目架构工作于当年12月完成,整个项目耗时11个月。
经初步调研需求,用户对该系统有很高期望,要求阶段性进行开发情况汇报及评审,并根据领导和专家意见进行迭代。大家一致认为该项目复杂度比较高,应该属于中型项目,不适合采用快速应用开发、敏捷方法等开发方法,而RUP为重量级的开发方法,适用于大中型信息系统的开发,所以我们决定采用RUP为整个项目的开发方法。RUP统一软件开发过程,其过程结构简洁清晰,可以应付种类广泛的软件系统,适应不同的应用领域,不同的组织类型,不同的性能水平和不同的项目规模,具有用例驱动、基本架构为中心、迭代和增量三个显著特点,能提高团队成产力。根据RUP模型,我们把整个开发过程分为初始阶段、细化阶段、构建阶段和交付阶段。每个阶段结束的时候都要安排一次技术评审,如果评审结果令人满意就可进入下一阶段。
在初始阶段,主要是确定项目规模、制定项目计划、综合考虑备选架构、准备项目环境。我们首先通过现场观摩和用户访谈的方式对涉及到本项目的所有单位各层次人员进行了需求的获取和分析,确定了项目的目标、特性和用例模型,然后形成需求说明书,以需求说明书为主要依据,编制项目范围说明书。在项目范围说明书中,明确了软件的规模,项目的范围和边界,即我们要做什么,不做什么。随后我们进行项目风险的评估工作,在该评估工作中我们召集系统分析师、有类似项目经验的软件开发人员代表开会,将每个阶段可能出现的风险进行识别,确定出最主要和影响最大的风险,并进行风险监控。在本项目中,由于开发人员已有类似项目开发成功的经验,技术上的风险并不大。又因为该项目为中型项目,模块众多,一个模块的改动将会影响到很多模块,所以主要的风险来自于需求的变更。为此,我们建立了一个强有力的变更控制系统,该系统事先确定了修改项目文件或改变项目活动时应遵循的程序,其中包括了必要的表格或其他书面文件、责任追踪,以及变更审批制度、人员和权限;成立了变更控制委员会,每一次需求的变更都必须经过变更控制委员会开会决定。根据风险的可能性,我们进行了分析,并作出了具有15%资源预留的项目计划。此外,对一些备选架构进行了综合考虑,评估设计和自治/外购/复用方面的折中,估计了整个项目的总体成本为××万元左右,开发时间为1年左右,配备开发人员15人左右,并做出了项目进度表。在初始阶段结束时,我们邀请省通信管理部门领导、用户代表、领域专家、项目经理、系统分析师、有类似项目经验的开发人员代表召开了一次技术评审会议,在会议上讨论了初始阶段的目标是否完成,需求说明书和项目范围说明书是否合适,项目开发时间、费用、开发队伍人员配备、风险的防范策略是否合理等等。会后经用户方和开发方达成一致意见,并在需求说明书、项目范围说明书、项目计划书上签字确认。
在细化阶段主要是分析问题领域,确定架构并选择构件,其过程包括确定系统架构、制订构建阶段计划、建立支持环境、选择构件。作为“通信网系综合管理平台”的子系统,我们遵循平台整体的SOA架构。在此基础上,为构建阶段制订阶段计划并为其建立基线。根据实际情况我们选择了SpringBoot框架进行开发,MySQL作为后台数据库。对于构件的选择,一方面,我们根据平台的需求,从构件库中提取一些符合要求的构件,另一方面,为了加快开发进度,我们还采购第三方构件,比如报表是该信息系统必不可少的功能,我们直接采用了XX公司的报表,能够满足报表在Web下的设计、浏览、打印等功能。此外,还有一部分构件是本系统独有的,没有现成的产品,必须自己开发。该系统对维修工单的分发有很多灵活的要求,故障点位置、抢修分队装备和人员配备、已分配的任务等都需要纳入考虑。根据这些要求,自主开发了一个工单分发引擎,将计算规则和工单分发相分离,实现了算法的方便配置修改,提高了工单分发的灵活性、准确性。在细化阶段结束时,我们也召开了一次技术评审会议,对架构的选择、构建阶段计划、开发环境的选择、构件的选择及主要风险的解决方案进行了讨论,达成一致意见后便进入构建阶段。
在构建阶段主要是把各种构件组装成产品,并对产品发布版进行评估。我们对缺少的构件进行了开发,完成了该平台应用程序功能的编写。最后,我们采用了面向对象的组装技术与基于功能的组装技术相结合。把构件库中提取出来的符合要求的构件、第三方构件、新开发的构件、当前开发平台中的软件元素相连接,最终构成新的目标平台,并完成系统的集成测试和系统测试。在构建阶段结束时,我们也召开了一次技术评审会议,评审产品是否可以在β测试环境中进行安装和运行。评审通过后便进入移交阶段。
在移交阶段,主要对开发的系统进行β测试,并根据用户反馈进行调整。期间,我们对有关用户和维护人员进行使用培训并进行试用,通过试用,我们获得用户、维护人员对当前版本的反馈,基于反馈调整产品。在构件阶段结束时,我们也召开了一次技术评审会议,评审目标是否实现,是否应该开始演化过程,用户对交付的产品是否满意等。基于用户需要增加一些新功能的要求,通过变更控制流程,我们决定产品进入下一个迭代过程,但这一个迭代过程,由于只是增加一些新的功能,侧重点放在细化阶段和构建阶段。
该系统于2021年10月成功的通过了用户的验收,有效提升了通信运维管理水平,降低了管理的成本。项目的成功很大程度归功于采用了RUP的开发模型,对整个开发过程进行规范和改进。在迭代的开发过程、需求管理、可视化建模、验证软件质量、控制变更等方面,为每个开发成员提供了各阶段必要的准则、模板和工具指导。RUP虽然具备很多优点,但也存在一些不足,如:RUP仅仅是开发过程,没有覆盖软件的维护和技术支持这两个重要的过程。不支持组织内的多项目开发,导致组织内的大范围重用无法实现。在度量管理、重用管理、人员管理等方面存在不足。在实际的应用中可以根据需求对其改进,使整个开发过程更加适合自己的项目。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|微软交流社区

GMT+8, 2025-1-9 05:27 , Processed in 0.073398 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表