一)浅析软件工程开发方法学RUPRUP简介Rational 统一过程(Rational Unified Process, RUP)是一套软件工程方法, 主要由 The Objectory Approach 和 The Rational Approach 发展而来同时, 它乂是文档化的软件T程产品,所有RUP的实施细节及方法导引均以Web文档的 方式集成在一张光盘上,由Rational公司开发、维护并销售RUP又是一套软件工程方法的框架,各个组织可根据自身的实际情况,以及 项H规模对RUP进行裁剪和修改,以制定出合乎需要的软件工程过程RUP框架RUP定义了软件开发过程的四个阶段,以及9个工作流程一张极为经典的RUP开发过程框架图如下:工件流程业务建模需求分斩设计实施 测试俎■与 变更管理項目管理环境RUP将整个软件开发过程分为四个阶段:• 先启(Inception) >•精化(Elaboration)•构建(Construction)•产品化(Transition)每一个阶段的工作分为9个流程:•业务建模•需求•分析设计•实施•测试•部署•配置与变更管理•项H管理•环境RUP优点(1) 降低开发风险:如果开发人员重复某个迭代,那么损失只是这个开发有 误的迭代的花费;(2) 降低产品进入市场的风险:通过在开发早期就确定风险,可以尽早来解 决血不至于在开发后期匆匆忙忙;(3) 加快整个开发工作的进度:因为开发人员清楚问题的焦点所在,他们的 工作会更有效率;(4) 易于管理需求的变化:由于用户的需求并不能在一开始就做岀完全的界 定,他们通常是在后续阶段小不断地进行细化,迭代过程这种模式使适应需求的 变化会更加容易些。
RUP缺点RUP只是一个开发过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件 运行和支持等方面的内容;此外,对于各种类型的软件项H, RUP并未给出具体 的自身裁减及实施策略,降低了在开发组织内夬范围实现重用的可能性RUP适用范围RUP是过程纽件、方法以及技术的框架,可以应用于任何特定的软件项H,由用 户自己限定RUP的使用范围架构采用用例驱动,能够更有效地从需求转到后续 的分析和设计阶段;采用迭代和增量式的开发模式,便于相关人员从迭代中进行 学习;统一过程是一个工程化的过程,所以它能使项H组的每个成员协调-•致的 工作;并从多方而强化了软件开发组织最重要的是它提供了项H组可以协同工 作的途径而且,它还提供了项H组与用户及其他项H相关人员一起工作的途径 但是,对于小型软件项戸、特别是不可预测的软件项H开发而言,沿用RUP很难 应付自如二)敏捷方法学工程起源“敏捷”是为了适应FI趋激烈的竞争和生存环境血提岀的一种新概念,它要 求企业通过提高敏捷性掌握主动并赢得市场敏捷方法的代表人Z—马丁•福勒 []提出了敏捷方法的核心理念:适应和以人为本软件敏捷方法认为,软件开发小的绝大部分工作是需耍创造力的设计工作,因此, 在管理理念丄应注重领导和协作,而非命令和控制,充分发挥软件人员的能动性 和创造力。
软件开发应首先着眼于有用的可执行的软件,而不是为过程而过程 其中,可执行是关键所在从团队合作的角度来看,人员Z间的信息沟通是需耍成本的,面对而沟通的 成本要远远低于文档沟通的成本因此,敏捷方法的一个共同特点就是,努力营 造诚信开发的组织氛围,根据具体情况,按照高内聚、松耦合的原则将项H划分 为若干个小组,通过小组内各种渠道的沟通,来减少中间制品的工作负担,提高 应变能力敏捷联盟宣言:个体与交互可以工作的软件客户协作响应变化十二原则1. 我们最优先要做的是通过尽早、持续地交付有价值的软件来使客户满意2. 在项目的整个开发期间,业务人员和开发人员必须天天在一起工作3. 即使到了开发后期,也欢迎需求变化4. 经常性地交付可以工作的软件5. 可以工作的软件是主要的进度度量标准6. 围绕被激励起的个体来构建项目为他们提供所需的环境和支 持,并信任他们能胜任工作7. 最好的架构、需求和设计来自于自组织的团队在团队内部,最有效果和最有效率的传递信息的方法是面对面 地交流9. 敏捷过程提倡可持续的开发速度10. 不断地关注最优秀的技术和良好的设计能增强敏捷能力11. 简单是根本的12. 开发团队每隔一定时间,都会对如何能有效地工作进行反省, 然后相应地对自己的行为进行调整。