什么是RUP?
RUP即Rational 统一过程(Rational Unified Process),是一种完整且完美的软件过程。采用佚代开发,在开发过程中能允许在每次佚代过程中有变化的需求,能使用户可以不断的介入和提出反对意见,并且开发人员也因为随时有一个可以交付的版本而提高士气。在管理需求上,RUP描述了如何提取、组织系统的功能性需求和约束条件并把它们规范化。RUP使用基于构件的体系结构,并提供了使用现有的或新开发的构件定义体系结构的系统化方法,从而有助于降低软件开发的复杂性,提高软件重用率。同时,RUP在开发过程中能建立起如见的可视化模型,可以帮助人们提高管理软件复杂性的能力。对于验证软件质量,在Rational过程中,软件质量评估不再是事后型的或者单独小组进行的孤立活动,而是内建在贯穿于整个开发过程的、由企业成员参与的所有活动中。在变更是不可避免的环境中,RUP描述了如何控制、跟踪和监控修改,以确保佚代开发的成功。
RUP强调采用佚代和渐增的方式来开发软件,整个项目开发过程由多个佚代过程组成。在每次佚代中只考虑系统的部分需求,针对这部分需求进行分析、设计、实现、测试和部署等工作,每次佚代都是在系统已完成部分的基础上进行的,每次给系统增加一些新的功能,如此循环往复的进行下去,直至完成最终项目。当然每一次的佚代过程的重心都有可能不一样,具体看当前佚代过程所处的阶段及上一次佚代的结果。目前,全球已有上千家软件公司在使用Rational统一过程。这些公司分布在不同的应用领域,开发着或大或小的项目,这表明了RUP的多功能性和广泛应用性。
什么是敏捷过程?
敏捷过程是根据四个价值观提出的软件过程。四个价值观分别为:
1、个体和交互胜过过程和工具
2、 可以工作的软件胜过面面俱到的文档
3、客户合作胜过合同谈判
4、响应变化胜过遵循计划
这些价值观不是说其他因素不重要,也不是说某个因素可以被其他因素代替。
XP即极限编程(eXtreme Programming),是敏捷过程中最富盛名的一个,其名称中“极限”二字的含义是指把好的开发实践运用到极致。目前,XP已经成为典型的开发方法,广泛应用于需求模糊且经常改变的场合。
一、极限编程的有效实践
1、客户作为开发团队的成员。必须至少有一位客户代表参与整个项目的开发周期,与开发人员在一起紧密的配合工作,客户负责确定需求、回答开发人员的问题并且设计功能验收方案。
2、使用用户素材。用户素材是指正在进行的关于需求谈话内容的助记符。根据用户素材可以合理安排实现该需求时间。
3、短交付周期。每两周完成一次的佚代过程实现了用户的一些需求,交付出目标系统的一个可工作的版本。同时进行演示,以期待获得他们的反馈意见。
4、验收测试。通过执行客户的验收测试来捕捉用用户素材的细节。
5、结对编程。由两名开发人员在同一计算机上共同编写解决同一个问题的程序代码。一般是,一个人编码,另一个人对代码进行审查与测试。是加强开发人员相互沟通与审评的一种方式。
6、测试驱动开发。在编码前先设计好测试方案,然后再编程,直至所有测试通过才可以结束工作,
7、集体所有。强调程序代码属于整个开发小组,每个小组成员都有权利更改代码,都对全部代码负责。
8、持续集成。XP主张在一天之内多次集成系统,并随着需求的变更,不断进行回归测试。
9、可持续的开发速度。开发成员以能够长期维持的速度努力工作。
10、开放的工作空间。XP项目的所有成员一起在一个开放场所工作,项目成员在这个场所自由交流和讨论。
11、及时调整计划。制定出项目计划后,必须根据项目进展情况及时调整。
12、简单的设计。开发人员应该使设计和计划在本次佚代过程中完成的用户素材完全匹配。
13、重构。所谓代码重构就是在不改变系统行为的前提下,重新调整和优化系统的内部结构,以降低复杂性、消除冗余、增加灵活性和提高性能。但不能过分依赖重构,特别是不能轻视设计。
14、使用隐喻。可以将隐喻看作把整个系统联系在一起的全局视图,它描述系统如何运作,以及使用何种方式把新功能加入到系统中。