随笔-1  评论-68  文章-98  trackbacks-0

作者:徐建祥( netpirate@gmail.com

时间: 2006/09/22

来自: http://www.anymobile.org

 

1、软件过程

 

       随着软件系统的规模和复杂性的增加,其开发成本和风险随之增加,软件的质量问题已成为制约软件发展的关键因素之一。

       所谓软件过程,即软件项目的开发过程,是指软件生命周期中,用于开发和维护软件产品的一系列过程,它与团队的组织管理以及开发技能相辅相成,全面提升软件产品的质量。

       近年来,软件过程日益得到重视,国际软件界的敏捷、统一热也在持续升温。 与传统的开发过程相比,敏捷过程更强调快速灵活反应,主动迎接和适应变化,主张更紧密的客户与开发商协作,以人为本的可持续发展,典型的有 XP (极限编程)、 FDD (特征驱动开发)等;统一软件过程以 RUP 为代表,采用 OO 技术对软件开发过程本身进行业务建模,集成了迭代开发、用例驱动、 UML 可视化建模、 OOAD 、架构设计、项目管理等许多主流先进的当代软件工艺。

       在软件项目开发过程中,应该能够识别、分析不同软件项目的特点,采用相对适合的开发实践来适应软件开发过程,保证对软件开发的有效支持,如 RUP XP 的融合。

 

2、 XP ,极限编程

 

极限编程( eXtreme Propgramming XP )是由 Kent Beck 1996 年开创,是一种演进式的原型化方法,以最大化发挥人的能量为核心目标,以“小步快走”的逻辑指导开发,具有沟通高效、设计简单、反馈迅速等特点,是一种轻量级、敏捷的过程方法。

极限编程基于四个价值目标:沟通( communication )、简化 (simplicity) 、反馈 (feedback) 和勇气 (courage) ,由 12 个最佳实践为这四个价值提供支持。

极限编程的生命周期包括 4 个基本活动:编码 (coding) 、测试 (testing) 、聆听 (listening) 、设计 (designing)

2.1 4 个价值目标

       沟通:让开发人员集体负责所有代码并结队工作,鼓励与客户及团队内部保持沟通。

简化:鼓励只开发当前的功能,避免过多的文档,专注于最小化解决方案,做好为为新特性改变设计,在系统隐喻和代码规范下不断重构的准备。

反馈:通过单元测试和功能测试获得快速反馈。

勇气:提倡积极面对现实和处理问题的勇气,拥抱变化。

2.2 12 个最佳实践

 
(图片1 XP最佳实践)

             
有计划的开发:通过结合使用优先级“故事”和技术估算,确定下一版本的功能。

小型发布:以小的增量版本经常向客户发布软件。

系统隐喻:隐喻是一个高层次的系统构想;需要不断的细化架构,来指导全部开发。

简单设计:通过保持代码简单从而保证设计简单。不断的在代码中寻找复杂点并且立刻进行移除。

测试驱动:“先测试,后编码”。用户编写测试内容以对 " 故事 " 进行测试。程序员编写测试内容来发现代码中的任何问题。在编写代码前先编写测试内容。

重构:这是一项简化技术,用来移除代码中的重复内容和复杂之处。

结对编程:团队中的两个成员使用同一台计算机开发所有的代码。一个人编写代码或者驱动,另一个人同时审查代码的正确性和可理解性。

集体代码所有权:任何人都拥有所有的代码。提高代码透明度,增强团队合作精神。

持续集成:每天按任务多次创建和集成系统,随着需求变化,进行不断的回归测试。

每周 40 小时工作制:程序员在疲劳时无法保证最高效率。连续两周加班是绝对不允许的,否则会影响工作效率。

现场客户:至少有一名真实的客户全天候工作于开发环境中,帮助定义系统、编写测试内容并回答问题。

编码规范:程序员采用统一的编码规范。

总体来说, XP 部分满足了 CMM2~3 级关键过程域 (KPA) 的要求, XP 侧重与过程和技术, CMM 更注重组织和管理。

 

3、   FDD ,特征驱动开发

特征驱动开发( Feature Drive Develop FDD ), Together 创始人 Peter Coad 所创。通过特征来制定开发计划,以每日构建为核心,强调按特征分步开发和交付。一个特征就是一个小的、具有客户价值的功能,通常表示为 <action><result><object>

 

4、   RUP Rational 统一过程

 

迭代软件开发的发展背景:软件的不确定和高风险等特性,使得传统的瀑布式开发力不从心;迭代有助于尽快发现和解决风险;迭代有助于控制项目的节奏,加快反馈,增强项目的控制力度,实现过程的有序化;迭代符合人们对事物的认识逐步加深,解决问题的能力随经验逐步提高。

       Rational 统一过程( Rational Unified Process RUP ),是用例驱动、以体系结构为中心,迭代、增量的软件开发过程。适合大、中型项目。

RUP 强调采用现代软件开发的一些最佳实践,作为一种降低开发新软件所带来的内在风险的方式。这些最佳实践包括:

1) 迭代开发;

2) 管理需求;

3) 使用基于组件的构架;

4) 可视建模;

5) 持续的质量验证;

6) 控制变更。

RUP 是一个迭代过程,确定了任何软件开发项目的四个阶段:初始阶段、精化阶段、构建阶段和交付阶段。每个阶段包括一次或多次迭代;每一次迭代都会生成更加接近最终产品的可执行版本。 

a 、初始阶段:识别和规避项目的主要风险,建立用例模型框架,并制定里程碑日期的阶段计划;

b 、精化阶段:分析问题领域,建立健全的体系结构基础,编制项目计划,淘汰项目中最高风险的元素,完成部分优先级最高的用例开发;

c 、构建阶段:分为多个迭代,逐步完成不同优先级的用例开发,核心 Case-> 高风险 Case-> 次核心 Case-> 其它 Case

d 、交付阶段:进行各种功能、性能测试,进行产品化、部署,完成整个系统的开发工作。

(图片2 RUP概述图)

RUP 迭代开发过程

a 、第一次迭代

1)   捕获需求

2)   建立初始的领域模型

3)   建立用例模型框架

4)   制定开发计划

b 、第二次迭代

1)   关键用例的 Robustness 分析与交互建模

2)   体系结构设计

3)   建立类模型

4)   关键用例的开发与测试

5)   完善用例模型

c 、第 n 次迭代

完成所有用例的分析、设计与开发。

d 、最后的迭代

1)   整体测试:进行各种功能、性能和压力测试。

2)   部署与安装:生成相应的部署图。

3)   产品化:进行一些产品化的包装。

注:每一次迭代之后,都应该交付一个可以运行的中间版本。

(图片3 RUP迭代流)

5、  SPP ,精简并行过程

精简并行过程( Simplified Parallel Process SPP ),对 CMMI 3 级以内各过程域的内容和要求作了“精简”处理,包括 19 个过程域、 40 余个规程和近 60 个文档模板 。强调在产品生命周期之内,项目管理过程、项目研发过程和机构支撑过程“并行”开展。

(图片4 SPP)

软件过程改进解决方案( SPIS )――林锐发明。

核心组成部分

1) 软件过程改进咨询服务;

2) 软件工程与项目管理培训;

3) 基于 Web 的集成化项目管理工具, Future

Future 采用 CMMI SPP 为参考标准。主要功能包括项目规划、项目监控、质量管理、配置管理、需求管理、日常工作管理等。

网站: http://www.chinaspis.com

posted on 2006-09-22 15:51 Xu Jianxiang 阅读(1165) 评论(0)  编辑  收藏 所属分类: Design Research

只有注册用户登录后才能发表评论。


网站导航: