作者:徐建祥(
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