刘轶群
【摘要】 本文从统一过程的最佳实践角度对需求分析、需求用例、需求管理、需求变更管理等方面,进行了理论分析.本文认为,采用迭代和用例最佳实践方法进行需求分析,可以使软件开发的进度、成本和质量有了安全可靠的基础,系统风险大大降低.
【关键词】 需求;Unified Process;迭代方法;用例;需求变更管理
【基金项目】
国家自然科学基金(61379152,61309022),武警工程大学基础基金(WJY201314)
一、引言
软件工程中,采用瀑布式方法进行软件开发,在开发初期就希望全面地用于捕获需求的特性和功能列表的方式,造成了项目延迟交付,甚至无法完成等情况.研究和总结诸多失败的软件项目,发现对项目的错误假设是主要原因.这个假设是:规格说明是可预知的和稳定的,并且能够在项目开始时就正确定义需求,同时具有低变更率.这种假设与事实背道而驰,而且导致了代价高昂的误解.研究结果表明,典型的软件项目在需求上会经历25%的变更,而对于大型软件项目,其变更率有的高达35%到50%之多.
成功开发一个软件项目,对于项目组人员和用户而言,在很大程度上取决于能否采用一种都易于理解和采用的直观方式定义系统的需求.UP(Unified Process,统一过程)提出了一系列的最佳实践模式,用例是目前定义软件系统需求的一种最佳方法,它强调了用户的目标和观点,使领域专家或需求提供者自己编写(或参与编写)用例成为可能,并使软件开发工作难度降低,核心风险也就大大降低.
二、需求的含义
需求(requirement)是将要开发的系统必须提供的功能和遵守的条件.它包括需求分析、需求用例、需求管理、需求变更管理和需求实现等方面.
UML创始人之一的Ivar Jacobson强调:对于需求分析,一方面应关注系统的用户或参与者编写需求,询问其目标和典型情况;另一方面应关注理解参与者所考虑的有价值结果.优秀软件开发在需求分析中应该避免进行“如何”的决策,避免规定系统的外部行为.在项目的前期需求工作流中,应记住“摒除用户界面于考虑之外——集中于意图”.也就是说,寻找、沟通和记录什么是真正需要的,并能够清楚地讲解给客户和开发团队的成员.需求分析强调的是对需求和问题的调查研究,而不是解决方案,在设计过程中创建满足该规格说明的解决方案.实践中,“分析”与“设计”的区别就在于“什么”和“如何”的差异.
三、UP的最佳实践
UP广泛运用了统一建模语言(Unified Modeling Language,UML).UML是一种图形表示法,用于传递设计理念的可视化语言.它可以辅助开发者指定、显现、构建和记录开发过程的工作.UML已经成为用于面向对象建模的图 形化表示法的事实和法律标准.面向对象不是编程语言,而是一种思考问题的方法,也就是说,使用者将问题分解为可区分的对象,采用对象思维开展工作的方法.UML的核心是模型,在软件开发过程中,充分发挥UML的九类图在可视化方面的表达价值,构建实际事物的简化模型,展示建模者对问题认知求解的过程,帮助项目团队理解软件内部复杂结构的方方面面.“面向对象设计模型”依赖于“软件需求”并作为“代码框架”的依据,是需求向代码过渡的直观表述.
1.UP的最佳实践之一:迭代开发
迭代开发(Iterative Development)是一种最佳实践方法.在这个生命周期方法中,开发被组织成一系列固定的短期小项目.每次迭代都具有各自的需求分析、设计、实现和测试活动.系统基于多次迭代实现持续扩展和精化,并以循环反馈和调整为核心驱动力,使之最终形成合适的软件.随着时间和一次又一次的迭代递进,系统增量式地发展完善.
2.UP的最佳实践二:用例
用例(Use Case)常用于软件项目的需求分析阶段.用例是文本文档,而非图形.用例由一个或多个参与者(人或系统外部的实体)以及系统自身进行的一系列活动,活动的结果会给一个或多个参与者带来若干价值,而且,用例主要说明了系统如何工作的功能性或行为性需求.用例建模主要是编写文本的活动,而非制图,用例的核心是文本情节,而非具有特殊符号和语法的用例图,文本用例才是能够被用户所广泛接受的形式.
3.UP的最佳实践三:需求变更管理
基于软件长期稳定的这一假设所作出的分析、建模、开发或管理实践(如瀑布式模型)都具有根本缺陷.变更对于软件项目来说是永恒的.需求变更的出现主要是因为在项目的需求确定阶段,用户往往不能确切地定义自己需要什么,随着开发工作的不断进展,系统开始展现功能的雏形,用户对系统的了解也逐步深入,于是,用户可能会想到各种新的功能和特色,或对以前提出的要求进行改动,需求变更因此不可避免地一次又一次出现.
四、总结
本文从UP的最佳实践角度对需求分析、需求用例、需求变更管理等方面,进行了分析,本文认为,采用迭代和用例最佳实践方法进行需求分析,可以使软件开发的进度、成本和质量有了“安全”的基础,风险也就大大降低了.
【参考文献】
[1]尤克滨.UML应用建模实践过程.北京:机械工业出版社,2003.
[2]斯科特(Scott,K.),著.付宇光,朱剑平,译.统一过程精解.北京:清华大学出版社,2005.
[3](美)Craig Larman,著.李洋,等译.UML和模式应用(原书第3版).北京:机械工业出版社,2006.
[4]贾慧.需求变更六大原则及应对之道.http://industry.ccidnet.com/col/1544/1544.html.