在RUP模型开发过程中的项目管理.docx
- 文档编号:24039431
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:34
- 大小:141.69KB
在RUP模型开发过程中的项目管理.docx
《在RUP模型开发过程中的项目管理.docx》由会员分享,可在线阅读,更多相关《在RUP模型开发过程中的项目管理.docx(34页珍藏版)》请在冰豆网上搜索。
在RUP模型开发过程中的项目管理
在RUP模型开发简化过程中的项目管理
摘要
在软件开发过程中,尤其是针对大型的政府信息化项目,采用RUP模型是适当的,也是必要的。
不过由于RUP特有的复杂性,在实际的软件开发管理过程中,可能会根据需要对RUP进行适当的剪裁,并在此基础上构造一个相对简化的软件开发过程模型,这对于保证软件开发的高效率、高质量和低成本,具有重要的意义。
本文以本人主持开发的电子商务监管项目的项目过程管理入手,试图通过对RUP进行裁剪,形成体现开发团队特色的“轻量”型的RUP并对它进行描述.争取在RUP开发过程模型中,为自己的团队模式构造一种适合于自身特点的软件过程管理体系。
…………………
关键词:
模型分析,RUP,软件工程过程管理
1背景
在软件工程的开发过程管理过程中,采用合适的开发模型尤其重要,从早期的瀑布模型,快速原型到目前比较流行的RUP,敏捷等模型,软件开发模型已经形成了复杂而庞大的体系结构。
本人以前对于RUP开发模型比较适应,因为大部分的工作经历,总是基于这样的开发队伍和环境中:
●队伍中有1到5位开发技术比较高的人,带领一队只有初级开发经验的人员,要完成较大型的项目。
●由于客户方面的原因(当然也有可能是客户觉得我们的开发队伍未必靠谱),他们对项目的前期计划、可研分析、技术分析和业务需求关注得比较多,因此项目的重心其实依赖于开发的前期阶段。
在项目初期,依靠1到2位高级人员快速搭建第一个增量版本,并且解决绝大部分技术难点,是项目最终能够获得成功的重要保证。
●在项目的中期和后期,其它人员的介入将使项目变得非常”有价值”,使得软件的价值增长或者说附加值变得很高,因此后续版本的开发(或者二期工程)将带来很好的效益,而这种更新所需要的技术,难度并不是很高,在项目的初期,就已经把技术难关都基本上解决了。
●如上所述,在整个项目的开发过程中,是一个RUP的过程,不过在项目的前期,尤其是第一个增量的版本研发过程中,由于只有很少的人,而且这部分开发是整个项目得以运作和拓展的基点,所以对这部分可以当成类似于敏捷的“轻量”的过程来操作(声明:
本人其实并不熟悉敏捷)
2电子商务监管系统概述
现阶段,由于我国针对电子商务的现行立法仍处于半真空状态,工商行政管理职能中,也没有把电子商务监管纳入监管体系,因此,部分电子商务主体就可能在这个虚拟市场里,利用电子技术、信息技术和网络技术规避法律和监管。
在网络交易中屡屡出现发布虚假广告(信息)、违约行为、销售假冒伪劣商品、侵权行为、不正当竞争行为、欺诈行为等违法行为。
但由于电子商务本身具有的虚拟性、无国界性和自由性的特点,扩大了监管职权和执法领域,同时取证成为了一个难题,这些都增大了工商行政管理的执法难度。
目前网络交易纠纷数量增多,影响面大,针对这一严峻的问题,迫切需要建设一套针对电子商务和网上交易行为信息进行监控和搜索,为广大消费者保价护航的软件,通过引入“电子警察”和搜索引擎的概念,对目前电子商务领域中存在的不法行为进行分析甄别,引导消费者正确消费,保护正常的市场秩序。
3总体规划
3.1本系统项目管理的总体规划
按照典型的RUP项目进行总体规划如下:
⏹软件开发周期的四个阶段
针对本系统,将整个软件开发的生命周期分为准备阶段、开发阶段、系统的割接整合阶段以及维护阶段。
⏹项目的过程
在以上软件开发生命周期的四个阶段中,将其中的准备阶段和开发阶段当成一个完成的项目来做,由启动、计划、执行、控制和收尾五部份组成。
项目启动——确立项目组,确定项目的整体目标和范围。
项目计划——制定项目计划,须从人员、时间、风险以及之后如何执行和控制等方面去考虑。
项目执行——按照制定的计划安排工作。
项目控制——监视项目的开展情况,看看项目是否在可控范围内。
项目收尾——对项目进行总结,确定继续进行的风险和范围,以决定是否进入下一阶段。
⏹项目管理的重点
一般项目管理包括:
进度管理、范围管理、风险管理、项目人力资源管理、质量管理、沟通管理、成本管理、项目采购管理这八个方面。
它们从不同的方面对项目进行管理,以促使项目能在一定的时间、成本、范围、质量的限制下顺利完成。
当然针对不同的项目,管理的侧重点也有所不同。
对于本项目,考虑到人员素质的差异,可能会对开发成本造成很大的影响,如果开发顺利,会节省很多成本,反之会由于项目延期返工造成成本上升,因此成本管理在本项目中和进度是有很大关系的,这就要求我们尽可能针对项目进度进行管理,以此取代成本的管理;项目人力资源管理和沟通管理具有很多相通性,放在一起来管理。
由于前期介入项目的人员素质很高,同时我们拥有健全的项目管理体系,因此初期的项目范围管理和需求管理将不是本项目要管理的重点,在此也一并忽略了。
重点从进度管理、风险管理、人员沟通管理和质量管理这四大方面对本项目进行管理:
✧进度管理
进度管理是任何一个系统开发均要涉及到的工作,本系统也不例外,无论是整体上还是局部上都要对项目的进度进行严格的管理和控制。
✧风险管理
为了要让这个项目顺利地完成,必须对项目中的风险进行识别,并采取相应的应对措施,防范于未燃。
✧人员沟通管理
本系统是一个比较大的系统,为其配备的人员无论是数量上还是要求上都是相对比较高的。
要确保配备人员符合项目要求,确保消息能从合适的人处正确、及时地传达到适合的人那里,形成一个稳定的工作团队。
✧质量管理
由于本系统在一定程度上是代表河北省工商信息化建设的建设水平,所以对系统有很高的质量要求。
我们要针对这一点做好质量管理的工作。
4本项目的人员配备
本系统需要开发的内容比较多,要求也比较高。
为使工程按质、按量、按时及有序实施,为此我们建立了一个完善和稳定的管理组织机构。
本项目专门配有经验丰富的项目管理人员、技术专家(其实人员不多),其他岗位的人员也是可以选取能够初步满足要求的开发人员担当。
下面介绍一下本项目的项目人员架构以及相应的人员要求。
项目人员架构图
整个项目团队分为需求分析小组、系统设计小组、软件开发小组、系统测试小组、系统实施小组、系统培训及维护小组和质量保证小组共20-50人。
具体的分工和相应配配的人数请详见下图。
根据项目软件开发工作的需要和项目管理工作需要,结合筹建的项目团队的实际技能情况,项目团队中的主要角色需要执行的主要项目任务和所具备的技能,见下表:
项目角色
执行的主要项目任务
相关角色具备的技能
客户代表
确定项目的需求
参与重大项目活动的审批
参与项目验收
管理层
提供项目的资源保证
项目计划审批
项目进度监控
项目经理
全面负责项目管理
负责项目计划制定
协调安排项目团队工作
资深的项目管理经验
具备丰富的大型项目团队管理的经验
技术主管
确定技术方向和技术路线
协助客户代表和项目团队解决技术问题
协助项目经理制定项目计划
具备丰富的SOA三架构设计开发经验
精通J2EE体系结构
精通OOA、OOD技术
精通UML技术
业务协调人员
负责协调客户关系
业务专家
负责对客户提出业务建议
对系统的业务合理性把关
协助客户代表解决业务问题
具有资深的工商信息化建设的经验
过程控制人员
建立本项目的最佳开发和管理流程
对项目的执行过程进行监控
具备丰富的项目管理经验
丰富的项目过程控制经验
项目进度监控人员
采集进度信息
协助项目经理分析进度信息
对进度安排提出合理化建议
具备丰富的项目管理经验
丰富的项目进度控制经验
评审人员
参与业务建模评审
参与需求评审
参与设计评审
参与测试评审
具备丰富的项目管理经验
较多的软件开发经验
丰富的软件开发评审经验
业务流程分析员
调研与项目相关的业务状况
调研与项目相关的系统状况
业务建模
具有多年政府信息化建设的经验
熟悉工商业务流程
精通业务建模
业务流程设计人员
业务对象分析和设计
业务接口规范设计
业务流程自动化分析
业务建模
具有多年政府信息化建设的经验
熟悉工商业务流程
精通业务建模
系统分析员
明确需求
需求分析
具有多年政府信息化建设的经验
熟悉工商业务流程
精通需求分析技术
架构设计师
制定解决方案
体系结构决策
组件建模
操作建模
具备资深的分布式系统开发经验
精通SOA的解决方案
精通UML建模技术和建模工具
具备J2EE体系和中间件技术设计经验
具备丰富的大型数据库建设经验
一般IT体系结构
XML、XMLSchema
Web服务概念与平台、最佳实践
设计员
子系统设计
对象设计
组件设计
精通OOA和OOD技术
精通SOA的设计技术
精通UML建模技术和建模工具
精通J2EE体系和中间件技术
XML、XMLSchema
Web服务概念与平台、最佳实践
数据库设计员
业务实体分析和逻辑建模
数据库物理建模
数据库性能优化
数据库管理
精通UML建模技术和建模工具
具备丰富的大型数据库建设经验
精通数据库管理系统
精通数据建模技术
程序员
代码编码
服务请求者编码
代码文档化
设计执行单元测试
精通OOP技术
精通webservice编程
熟悉UML建模工具
精通J2EE
XML、XMLSchema
Web服务概念与平台、最佳实践
文档人员
编写软件开发文档
测试设计员
测试需求分析
测试用例编写
测试程序设计
具备丰富的软件开发设计经验
精通UML建模
精通SOA体系和J2EE体系结构
精通面向对象测试技术
测试程序员
测试程序设计
测试用例检查
测试程序编写
具备丰富的软件开发经验
精通SOA体系和J2EE体系结构开发
精通面向对象测试技术
功能测试员
运行系统测试
分析测试结果,编写测试报告
缺陷跟踪
具备丰富的系统测试管理经验
性能测试员
运行性能测试
分析测试结果,编写测试报告
缺陷跟踪
具备丰富的性能测试管理经验
系统管理员
维护开发环境的稳定运行
协助项目的安装实施
系统的日常维护
丰富的系统管理维护经验
系统安装人员
安装和配置统一的开发环境
系统的安装实施
协助系统的日常维护
丰富的系统管理维护经验
客户培训人员
用户培训材料的准备
实施用户培训
协助客户代表落实新的业务规范
丰富的系统实施经验
丰富的系统培训经验
客服人员
负责人工坐席的服务包括GIS位置查询与路线导航服务、防盗报警服务
系统维护人员
系统的日程维护
丰富的系统管理维护经验
跟进回访人员
客户的定期走访
接收客户投诉
组织客户投诉的解决
主要项目人员简介
项目经理一人:
有十年以上大型项目管理经验,曾经管理的过千万的大型综合业务系统。
专职负责本项目的开发。
本系统建设期间,在接到采购人通知4小时内可到达采购人现场处理问题或交流情况。
技术主管一人:
具有大型综合业务应用系统研发经验,主持过多项超过100万的项目开发,本系统建设期间,在接到客户方通知4小时内能到达现场处理问题或交流情况。
架构设计师一人:
具丰富架构设计、数据库设计经验,有超过5年的数据库设计和架构设计经验。
以上主要人员将全职参与项目建设。
5进度管理
进度管理是为了确保项目能按时完成所需的各个过程。
5.1流程图示
6风险管理
风险管理是对项目风险进行识别、分析和应对的系统化工程。
它包括把对于项目目标而言正面事件的概率和影响结果扩到最大和把负面事件的概率和影响结果减少到最小。
6.1流程
7质量管理
我们在开发项目上按照规范化软件的生产方式进行开发,在开发流程上采用ISO9000的标准进行质量管理。
我们的质量管理主要包括:
质量保证、过程控制和持续改进三个过程域。
质量保证——贯穿整个项目全生命周期的有计划和有系统的活动,软件质量保证工程师定期地针对整个项目质量计划的执行情况进行评估、检查与改进等工作,向管理者、顾客或其他方提供信任,确保项目质量与计划保持一致。
过程控制——对阶段性的成果进行检测、验证,为质量保证提供参考依据。
持续改进——我们运用ISO管理体系的一个主要思想PDCA,即为Plan-Do-Check-Action(计划-执行-检查-措施),不断地提高质量,以满足顾客不断提高的需要,企业必须要持续改进才能持续获得顾客的支持。
本系统不仅在一定程度上反映工商管理政府机关的信息化建设的水平,还代表着政府的形象。
因此,质量问题是值得重视的,对于本项目来说,尤其是拥有大量的初级开发人员来说也是至关重要的。
考虑到质量的重要性,为此我们专门制定了严格的质量管理的规范和质量管理制度体系。
8项目管理的特点
8.1基于RUP的软件开发流程
本次项目使用了基于RUP的迭代开发方法
8.2迭代开发的优势
由于项目核心开发人员水平很高,因此可以更早提交演示版本,协助用户尽早了解系统的本质,确定系统需求,为后期的增量和业务价值的增长提供足够的空间:
需求变更一直是项目中导致交付的系统质量低下、延期交付、令客户不满意和使开发人员泄气的主要原因。
尽可能早地确定用户的主要需求,是解决上述问题的关键。
使用迭代开发方法项目团队在项目开发的早期花费较少的时间,就可以关注关键的需求,并且生成可以演示的可执行软件,这样可以协助用户尽早了解系统的本质。
系统多次集成,获得较高的质量:
系统经过多次的迭代,多次的集成,核心模块经过多次的测试,更早地发现系统的缺陷,从而可以更好地保证交付的系统质量。
良好的风险管理:
通过迭代开发方法,项目团队可以在早期的迭代中体验事先制定的风险应对措施的实际效果,并及时调整风险应对计划。
持续改进的开发过程:
迭代末尾的评估不仅能够从计划方面揭示项目的状态;同时也可以帮助项目经理分析在下一个迭代中如何改进项目的组织结构和过程。
我们的软件开发流程,就是基于RUP的迭代开发的思想,并结合我们多年的软件开发实践经验,定制而成的。
8.3开发流程简介
本项目的软件生命周期分为开始、细化、构建和移交四个阶段,并且根据实际项目的需要采用不同次数的迭代,每一次迭代中都包括从业务建模到部署等主要的开发过程。
具体可以见下图。
系统开始阶段:
我们是要所有项目关系人对实现项目的目标的所有关键因素达成共识。
包括项目团队会明确的说明项目的规模,计划和准备工作的安排,项目的架构选型,项目设计和重用,从而合理的估算出项目的成本,进度和资源。
系统细化阶段:
我们会建立系统架构的基线。
项目团队会快速确定项目的架构,确认架构和建立架构基线,制订详细的迭代计划,同时会对不合理的开发案例和架构进行改进。
系统构建阶段:
我们会阐明剩余的需求,并基于已建立基线的架构完成系统开发。
项目团队会合理安排资源,控制资源和优化过程,对完成的开发工作按照评估标准进行测试,并对项目发布进行评估。
系统移交阶段:
我们会按照用户反馈调整系统配置、安装和可用性问题。
项目团队会按照部署计划对项目进行部署,在开发现场测试已交付的产品,使最终用户可以使用此系统。
8.4项目开发流程
迭代开发过程分为6个核心过程和3个核心支持过程。
核心过程包括业务建模、需求、分析、设计、实现和测试。
支持过程包括项目管理、变更配置管理和开发规范。
8.4.1业务建模(BusinessModeling)
项目团队通过业务建模过程了解目标组织的结构和机制,了解目标组织中存在的问题并确定改进的可能性,从而确保客户、最终用户和开发人员就项目目标达成共识。
同时基于这个共识在商业用例模型和商业对象模型中定义项目的过程,角色和责任。
具体流程请见下图:
关键流程:
评估业务状态:
业务流程分析员和用户代表小组通过一系列的研讨完成对客户方组织的业务状态评估。
确定业务流程:
业务流程分析员在业务研讨会上确定业务术语并概括出业务用例和业务主角。
设计业务流程的实现:
业务流程分析员会根据项目的业务建模规范要求确定业务中的所有角色、可交付工件和系统业务要求,并通过统一规范的语言详细说明业务角色和业务实体是如何通过执行业务用例来实现的。
评审业务流程:
项目经理会组织用户代表小组和业务专家等相关人员对实现的业务流程设计以及是否符合项目业务建模规范进行评审。
通过评审会正式核实业务对象建模的结果是否符合真实的业务需要。
输出文档和工件:
1.业务规范
2.业务架构文档
3.业务模型
8.4.2需求管理(Requirements)
项目团队通过需求管理过程来描述系统应该做什么,并使开发人员和用户就这一描述达成共识。
为了达到该目标,项目团队会对需要的功能和约束进行提取、组织、文档化。
经过需求过程后,项目团队会形成用例模型,利用用例模型可以有效地界定系统范围及其行为,并同时得到用户和开发人员的认同。
用例作为分析与设计过程的输入,是实现分析与设计模型的基础。
项目团队通过用例模型使设计模型能够实现用例模型所定义的功能。
同时,在测试流中运用用例模型组成了测试实例,帮助项目团队的测试人员有效地校验整个系统的正确性。
具体流程请参看下图:
关键流程:
1.分析需求:
系统分析员提炼,分析和仔细审查已收集到的需求,以确保所有的风险承担者都明白其含义并找到其中的错误,遗漏或其他不足的地方。
2.编写需求规格说明书:
系统分析员用标准使用实例模板编写需求规格说明书。
在需求规格说明书中包含了软件的功能需求和非功能需求。
系统分析员会根据需求编写规范确保需求规格说明书的统一风格,使读者能明白怎样解释它。
3.需求评审:
项目经理对于已经完成的需求规格说明书组织一个有不同代表组成的专家小组。
专家会根据需求编写规范对需求规格说明书的内容、风格、形式以及相关模型进行仔细的检查。
输出文档和工件:
1.软件需求说明书
2.数据要求说明书
3.术语表
4.需求模型
8.4.3分析和设计(Analysis&Design)
项目团队通过分析和设计过程将需求转化成未来系统的设计,为系统开发一个健壮的结构并调整设计使其与实现环境相匹配,并优化其性能。
分析设计的结果是一个设计模型和一个可选的分析模型。
设计模型是源代码的抽象,由设计类和一些描述组成。
设计类被组织成具有良好接口的设计包和设计子系统,而描述则体现了类的对象如何协同工作实现用例的功能。
设计活动以体系结构设计为中心,体系结构由若干结构视图来表达,结构视图是整个设计的抽象和简化,该视图中省略了一些细节,使重要的特点体现得更加清晰。
体系结构不仅仅是良好设计模型的承载媒介,而且在系统的开发中能提高被创建模型的质量。
具体的分析设计流程见下图:
关键流程:
1.架构设计:
我们会在构架分析和用例分析之间进行迭代。
架构设计师首先在构架分析中的构架上初步执行一遍,然后选择在构架方面具有重要意义的用例,对其中的每一个用例执行用例分析。
在分析每一个用例后,根据需要更新构架,以反映为适应系统的新行为和处理已确定的潜在构架问题而进行的变更。
在进行架构设计时,架构师会按照设计规范运用图形解释有关解决方案的提案的本质特征,并阐述主要构想和涉及的主要构建模块。
2.编写概要设计说明:
架构设计师根据软件需求规格说明书建立软件系统的总体结构和模块间的关系,定义各功能模块的接口,设计全局数据库或者数据结构,规定设计约束,制定集成测试计划。
概要设计说明书会对每个功能模块按照设计规范进行功能描述、全局数据定义、外部文件定义,以便所有的读者能够清楚的明白概要设计说明。
3.评审概要设计说明:
项目经理对于已经完成的概要设计说明书组织一个由不同代表组成的专家小组,按照项目设计规范对概要设计说明书以及相关数据库设计进行仔细的检查。
4.编写详细设计说明:
程序员对概要设计产生的功能模块进一步细化,形成若干个可编程的程序模块,按照设计规范用UML设计程序模块的内部细节,包括算法、数据结构、各程序模块之间的详细接口信息,为编写源代码提供必要的说明。
5.评审详细设计说明:
项目经理对于已经完成的详细设计说明书组织一个由不同代表组成的专家小组,按照项目设计规范对详细设计说明书的内容和规范进行仔细的检查。
输出文档和工件:
1.系统概要设计说明书
2.系统详细设计说明书
3.数据库设计说明书
4.设计模型
8.4.4实现(Implementation)
团队通过实现过程包括以层次化的子系统形式定义代码的组织结构;以组件的形式(包括源文件、二进制文件、可执行文件)实现类和对象;将开发出的组件作为单元进行测试以及集成由单个开发者(或小组)所产生的结果,使其成为可执行的系统。
在实施过程中,项目团队会对各个类进行单元测试。
具体实现流程见下图:
关键流程:
1.编码:
程序员根据详细设计文档将详细设计转化成所要求的程序。
在编码过程中,程序员会按照编码规则进行编码,以保证所有代码具有高质量和规则一致性,并增强了代码的可维护性,降低维护成本。
2.单元测试:
程序员按照测试指南中的单元测试要点,针对编码过程中可能存在的各种错误进行测试。
例如用户输入验证过程中可能存在的边界值等错误。
3.集成测试:
系统集成员在各增量中编译并链接系统。
每一增量都会按照测试指南中的集成测试要点测试增加的功能,并进行以前版本测试过的所有测试(回归测试)。
在测试中,会特别注意检查各单元与其它程序部分之间的接口上可能存在的错误。
输出文档和工件:
1.代码
2.单元测试记录
3.集成测试记录
4.实现模型
8.4.5测试(Test)
项目团队通过测试过程验证对象间的交互作用,验证软件中所有组件的正确集成,检验所有的需求已被正确的实现,识别并确认缺陷在软件部署之前被提出并处理。
项目团队运用迭代的方法,意味着在整个项目中都会进行测试,从而尽可能早地发现缺陷,从根本上降低了修改缺陷的成本。
测试类似于三维模型,分别从功能、性能和其他必要的方面来进行测试。
具体测试流程见下图:
关键流程:
1.测试计划:
测试工程师确定和描述要实施和执行的测试。
测试计划是通过生成包含测试需求和测试策略的测试计划来完成的。
2.测试用例设计:
测试工程师按照测试指南中测试用例设计部分的要求,在测试用例设计中确定并传达将在测试中执行,并且核实实施的系统需求(用例、性能特征等)是否成功和能否接受所必需的条件。
测试用例反映了一种测试覆盖(基于需求的测试覆盖)评测方法。
3.评审测试用例:
项目经理对于已经完成的测试用例组织一个由不同代表组成的专家小组,按照测试指南对测试用例进行仔细的检查,以验证测试用例能够覆盖项目所有的需求。
流程要点:
对于功能测试,我们会注重验证系统是否能满足用户的需求。
功能测试的要点为:
1.每一个软件功能必须被一个测试用例或一个被认可的异常所覆盖。
2.利用基本的数据值和数据类型进行测试。
3.用一系列合理数据值和数据类型对软件进行测试,检查软件在满负荷状态下和其他极值情况下的运行结果。
4.用非合理的数据值和数据类型进行测试,检查软件是否具有对非法输入的排他性。
5.对每一个软件功能的临界值必须作为测试用例。
6.对于软件重要功能应该运用上述的几个角度去检测。
对于性能测试,我们会注重验证系统的性能在正常环境和系统条件下重复使用是否能满足性能指标。
性能测试的要点为:
1.检查软件在输出结果时是否达到要求的计算精度。
2.在有速度要求的情况下,检查软件是否在要求时间内完成规定功能时。
3.检查软件各部分在不同情况下是否能够良好的运行,并完成规定的功能。
4.检查软件是否存在功能上的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- RUP 模型 开发 过程 中的 项目 管理