1:什么是RUP
RUP(Rational Unified Process)是IBM Rational software提出的软件工程实施过程,在业界经历了数千个软件项目的实践,是当前最为成功的软件工程方法论之一!RUP是一种迭代的、以架构为中心 的、用例驱动的软件开发方法;RUP是一种具有明确定义和结构的软件工程过程,它明确规定了人员的职责、如何完成各项工作以及何时完成各项工作,以及软件 开发生命周期的结构,定义了主要里程碑和决策的关系;RUP也是一个过程产品,提供了可定制的软件工程的过程框架,支持过程定制、过程创作和多种类型的开 发过程,可通过装配过程产品得到过程配置。RUP配置可以用于不同规模的开发团队和规范程度不同的开发方法,RUP产品包含过程配置和过程视图,以指导项 目经理、开发人员、测试人员等角协作开发软件。
RUP的核心包含几个基本原理,它们支持应用迭代方法进行软件开发:
尽早并且不断的化解重大风险
确保满足客户的需求
把注意力集中放到可执行的软件上
尽早在项目中适应变化
在早期确定一个可执行架构
使用构件构造软件系统
建立高效团结的开发团队
始终重视质量
从管理角度观察RUP,即业务和经济方面,对应项目的进展,软件生命周期包括四个阶段:
起始阶段-构建最终产品的设想和业务案例,确定项目范围
细化阶段-计划必要的活动和资源,详细确定功能并设计架构
构建阶段-构建产品,直到一个可交付用户的产品完成
移交阶段-产品交付用户,包括制造、交付、培训、支持、维护等
从技术角度看,软件开发可视为一连串的迭代过程,通过迭代开发软件得以增量演进,每个迭代都以一个可执行的产品发布而结束,每次发布都伴随支持性工件:版 本描述、用户文档等。一次迭代可包括以下活动:计划、分析、设计、实现、测试,据其在开发周期的位置不同,所占比重也不同。
2:什么是敏捷过程
然而,我们不得不面对的现实却是,模式与方法的优化并不意味着问题的终结。作为一种开发模式,敏捷开发同样需要面对众多挑战。
-
个体和交互 胜过 过程和工具
-
可以工作的软件 胜过 面面俱到的文档
-
客户合作 胜过 合同谈判
-
响应变化 胜过 遵循计划
-
我们最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。
-
即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。
-
经常性地交付可以工作的软件,交付的间隔可以从几个星期到几个月,交付的时间间隔越短越好。
-
在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。
-
围绕被激励起来的个体来构建项目。给他们提供所需的环境和支持,并且信任他们能够完成工作。
-
在团队内部,最具有效果并富有效率的传递信息的方法,就是面对面的交谈。
-
工作的软件是首要的进度度量标准。
-
敏捷过程提倡可持续的开发速度。责任人、开发者和用户应该能够保持一个长期的、恒定的开发速度。
-
不断地关注优秀的技能和好的设计会增强敏捷能力。
-
简单是最根本的。
-
最好的构架、需求和设计出于自组织团队。
-
每隔一定时间,团队会在如何才能更有效地工作方面进行反省,然后相应地对自己的行为进行调整。
3:什么是XP
XP(极限编程)极限编程(Extreme Programming,XP)是一门针对业务和软件开发的规则,它的作用在于将两者的力量集中在共同的、可以达到的目标上。它是以符合客户需要的软件为目标而产生的一种方法论,XP使开发者能够更有效的响应客户的需求变化,哪怕是在软件生命周期的后期。它强调,软件开发是人与人合作进行的过程,因此成功的软件开发过程应该充分利用人的优势,而弱化人的缺点,突出了人在软件开发过程中的作用。极端编程属于轻量级的方法,认为文档、架构不如直接编程来的直接。
|
|
特点介绍
XP 是与众不同的,它有点像快步的舞蹈。XP包括许多的小卡片,独立的看,这些小卡片没有甚么意义,但是当它们组合在1起,1幅完全的美丽的图片就能够看见,对传统软件开发,它是软件开发的1种新的重要的发展。它改变了用户开发程序的传统思惟方式。下面用户将介绍它带给我们那些改变。[1]
于轻量开发方法中较有影响的1种方法。轻量开发方法是相对传统的重量开发方法而言。简单地理解,“量”的轻重是指用于软件进程管理和控制的、除程序量之外的“文档量”的多少。XP等轻量开发方法认识到,在当前很多情况下,按传统观念建立的大量文档,1方面需要消耗大量开发资源,同时却已失去帮助“预感、管理、决策和控制的根据”的作用。因此必须重新审视开发环节,去除臃肿累坠,轻装上阵。
核心思想
从长远看,初期发现毛病和下降复杂度可以节俭本钱。极限编程强调我们将任务/系统细分为可以在较短周期解决的1个个子任务/模块,并且强调测试、代码质量和尽早发现问题。通常,通过1个个短小的迭代周期,我们就能够取得1个个阶段性的进展,并且可和时构成1个版本供用户参考,以便及时对用户可能的需求变更作出响应。
XP的方法
-
计划策略(The Planning Game);
-
结对编程(Pair programming)
-
测试(Testing)
-
重构(Refractoring)
-
简单设计(Simple Design)
-
代码集体所有权(Collective Code Ownership)
-
延续集成(Continuous Integration)
-
现场客户(On-site Customer)
-
小型发布(Small Release)
-
每周40小时工作制(40-hour Week)
-
编码规范(Code Standards)
-
系统隐喻(System Metaphor)
核心价值
极限编程中有5个核心价值是我们在开发中必须注意的:沟通(Communication)、简单(Simplicity)、反馈(Feedback)、尊重(Respect)和勇气(Courage)。
XP用“沟通、简单、反馈、尊重和勇气”来减轻开发压力和包袱;不管是术语命名、专著叙述内容和方式、进程要求,都可以从中感遭到轻松愉快和主动奋发的态度和蔼氛。这是1种帮助理解和更容易激起人的潜力的手段。XP用自己的实践,在1定范围内成功地打破了软件工程“必须重量”才能成功的传统观念。
XP精神可以启发我们如何学习和对待快速变化、多样的开发技术。成功学习XP的关键,是用“沟通、简单、反馈、尊重和勇气”的态度来对待XP;轻松愉快地来感受XP的实践思想;自己认真实践后,通过对真实反馈的分析,来决定XP对自己的价值;有勇气接受它,或改进它。