1、RUP过程与 UML模型驱动开发方法在证券研发项目中的应用实践新思维金融软件研发中心 软件构架师 胡协刚内容提要n 软件开发没有银弹n 统一通道平台 开发项目简介n 项目的开发目录结构与 RUP核心工件n 贯穿全局的统一 UML模型n 用前景文档定义目标系统n 软件构架文档与 4+1视图n 契约式开发与单元测试n 自动化构建与持续集成n 迭代开发模式软件开发没有银弹软件项目复杂、不确定和高风险n 软件因其固有的复杂、不确定和高风险等属性,使得其开发活动非常难以控制n 软件产品用于解决一个或多个领域的现实问题,不仅与其开发者本身直接相关,还牵涉到客户、最终用户、第三方伙伴等众多涉众,所谓众口难调
2、,但一个成功的软件必须能满足多方面的需求n 软件所依赖的核心技术、项目的开发方法、软件过程、项目管理和团队协作等,都是事关项目成败的关键因素CMMI与 RUPn 根据 CMMI的定义,软件过程要达到第三成熟度等级,需要实施十八个关键过程域;普通团队虽然不一定向此标准看齐,但实际上仍然涉及到这十八个关键过程域所涵盖的近百项活动,只不过可能实施的力度较小、质量不高、或者忽略了活动本身的含义而已n RUP与 CMMI第三成熟度等级相对应,定义了九个核心准则( Discipline),和几百项 活动n 这还仅仅只是软件过程的范畴,项目中人的管理、沟通以及具体的关键技术等等,其牵涉面将更广软件开发没有银
3、弹n 诸多因素分属不同的范畴,针对不同的问题,需要应用不同的技术、技能和方法,要求项目成员拥有不同的知识、素质与背景n 没有一种方法或途径能够解决软件项目中所有的问题,即所谓 “ 没有银弹 ” ,所以不要迷信存在所谓的一劳永逸的终极解决方案成功意味着多方面的艰苦努力n 软件项目适用于 “ 木桶原理 ” ,要获得成功,必须由所有成员在多个方面都付出艰苦的努力,包括完成一些繁琐与枯燥的工作,并保证任何一个环节都不出重大问题n 在下面介绍的一个实际项目中,将会看到我们是如何通过裁减 RUP过程来主导项目的开发活动,使用统一的 UML模型来表达和沟通设计,利用共享的产品目录结构来协同开发,并通过加强团
4、队建设,扬长避短,发挥各成员的长处等 总之从多个方面来努力,方才最终达成项目成功的过程实例项目简介证券统一通道平台 项目n 项目的目标系统( 统一通道平台 )是在证券公司总部和所有营业部网点统一部署的、适应不同 网络拓扑结构的、支持内外网段物理安全隔离的、 基于消息的通讯中间件平台系统,用以支持热自助、电话委托等各类外围客户端系统,集中经纪业务系统、传统营业部柜台系统等核心服务系统,以及银行端银证业务系统等第三方系统的透明接入UCS 辐射型拓扑部署结构项目开发过程概貌n 项目采用 RUP的迭代开发生命周期模型,总计经历了六次迭代,持续约八个月, 项目组成员 36人,耗费共计 685个 工作人日
5、,最终有效代码 30,471 行,千行代码集成缺陷率低于 1 n 使用 Clearcase UCM实施配置管理,并基于此组织项目的产品目录结构,囊括了 RUP定义的主要核心工件n 使用 Rose开发了统一的 UML模型,从上下文分析、功能用例模型、到设计模型、进程模型、部署模型等,涵盖了项目大部分分析、设计成果,利用了 Rose的正向工程生成大部分代码框架n 目标系统的分析、设计、编码完全实现面向对象项目开发过程概貌 continuen 项目以软件构架文档为中心,配合 Rose模型、详细设计文档,使得产品的设计比较到位n 项目引入了契约式编程方法,编码语言为标准 c+,使用 CppUnit测试
6、框架进行较为广泛的单元测试,对产品的质量改进帮助很大n 使用 Ant+Cpptasks工具初步实现了自动化构建与集成n 项目本身系公司的过程改进试点项目,集中了部门最优秀的人员,大家都表现了良好的团队协作精神,建立了密切的私人关系n 作为 试点项目,其成果,已经作为模板工程在公司大力推广项目的开发目录结构开发(产品)目录结构n 开发(产品)目录结构的规划原则: 满足不同角色,在不同的项目阶段,对不同类型工件进行访问的多种场景需求n ClearCase Stream(流)的划分:- PCHL_V1_Integration 整个 项 目所有工件的最 终 整合 场 所,用于项 目 级 基 线 构建、
7、 进 行集成和确 认 集成 测试- PCHL_V1_Working 需求、 设计 、管理、 过 程等工作 场 所- PCHL_V1_Dev 项 目所有构件的开 发场 所 - PCHL_V1_Testing 测试组 的 测试场 所- PCHL_V1_Release 发 布演示 场 所UCM工程示例项目的开发目录结构 continuen 项目目录参照 RUP的工件集来组织n Clearcase VOB的划分:Infrastructures 内部开 发 的相 对 独立、复用度 强 的基 础应 用包, 针对 第三方 产 品 进 行封装的 调 用接口等Libraries 从 组织 外部 获 取的源 码库
8、 、开 发组 件等,主要来自于开放源 码 ;PCHL_Components 项 目 组针对 目 标 系 统 开 发 的构建于底 层 开 发 包、基 础设施之上的所有构件 PCHL_SubSystems 构建于底 层 开 发 包、基 础设 施与所有构件之上的可 执 行子系 统 (或系 统 ),通常是目 标 系 统 的最 终 交付 实 体PCHL_System 项 目目 标 系 统 主体工件目 录 ,包含需求、 设计 、集成、 测试 等PCHL_Management 项 目的管理工件目 录PCHL_Supports 项 目的 过 程、 环 境、 标 准等支持工件目 录开发目录结构示例项目产出的主要
9、文档n 证券统一通道平台前景文档 n 证券统一通道平台补充规约 n 证券统一通道平台软件构架文档 n XXXX详细设计文档 n 软件开发计划 n 测试计划 n 系统性能测试报告 n 系统安装与配置手册 n 外围服务协议 API应用开发手册 统一的UML模型OMG的模型驱动架构n OMG主导的 MDA( Model Driven Architecture)正在成为下一代软件开发的主流模式n 基本的模型转换关系: Computation Independent Model (CIM)- Platform Independent Model (PIM)- Platform Specific Model (PSM)- Implementation贯穿全局的统一 UML模型n 使用一个统一的可视化模型来表达项目的分析、设计思想,进而通过标准的语言( UML)来进行成员间的沟通,以减低传递过程中信息丢失和错误理解的风险n 利用建模工具( Rose)对双向工程( Round Trip Engineering)的支持,初步实现 MDA中平台相关的模型到实施代码框架的转换( PSM- Implementation)统一的Rose模型示例上下文分析模型示例需求模型示例层次结构模型示例详细设计模型示例用例实现模型示例实施(构件)模型示例部署模型示例前景文档与目标系统边界