极限编程(Extreme PRogramming,XP)简单地讲是一些相互关联的准则和惯例的集合,其中一些关注的是基本的活动,比如配置治理,但其中大多数关注的是团队成员之间以及团队与应用系统的企业团体之间的交流通信和文化方面的相关问题。XP建议采用循环迭代开发方法。
建模是软件开发中的一个重要组成部分,一个模型描述的是软件的某个方面的完整内容。通过建模能简化软件和软件过程。往往一个图形能抵得上数十行字,甚至是数百行文字的描述。通过图形这一中介媒体,你可以迅速地得到反馈信息,并能及时地修改你的模型以满足用户的需求。极限建模(Extreme Modeling,XM)是建立在已有的且被证实是有效的建模方法之上的轻量级建模方法。XM是XP的基础。
在开发一个面向对象软件的过程中,软件开发人员可能会应用到的基本的建模工具和建模过程见下图所示。为了简单起见,图中所示省略了项目治理方面的内容,比如测试用例等评估测试工具内容。图中的方块表示的是可能会用到的诸如基本的用例模型和活动图等之类的开发工具。图中的线条则描述的是各工具间的主要关系,比如:分析阶段的类模型所包含的信息将影响到设计阶段的类模型中的信息的开发。这些关系揭示了不同工具在迭代开发过程中的相互影响关系。比如:当你修正用例模型时,它可能会影响到顺序图的开发,接着就会影响到你的类模型。图中的那些蓝颜色方块表示这些建模工具是由对象治理集团(http://www.omg.org)开发和维护的工业标准统一建模语言(UML)中所描述的建模工具。
(点击查看原图)
尽管上图中列出了许多建模工具,但你不必在每个项目开发中都使用它们。你应该仅用那些能更好地展现你所开发的软件的建模技术。比如,基本的用户接口界面原型能使你更好地理解一个用户的界面需求,但是,假如你的用户接口界面需求是显而易见的,则该技术对你的团队来说并不一定有多大的使用价值。同样地,活动图对于洞悉那些复杂的事务逻辑流是很有用处的,但是,假如业务流是简单明了的,则它就不是很有价值了。但是需要注重的是:尽管你无需精通所有的建模工具,但是假如你所在的项目团队在项目开发中所需的建模技术中有一些是你所不熟悉的,而你没有能力在工作的过程中马上能把握这些必要的技术,则你应自觉的要求从这个项目退出。
上图中的那些黄色方块表明:在实际的应用开发中,仅通过应用UML来开发项目是不够的。其中有些黄色块所示的建模工具将会在以后的UML修订中被采纳。上图同时也表明软件开发过程是连续的,同时又是迭代的。说它是连续的,这是因为上图是从左向右贯穿了需求、分析、设计和实施等整个开发过程。说开发是一个迭代的过程,这是因为你可以在各建模阶段和建模工具中往返移动。在分析用户需求和满足和实现用户需求的确定过程中,是一个不断反复迭代的过程。从全局来看建模过程是一个连续的过程,而从局部上看,它是一个迭代的过程。
极限建模的基本原则是简洁,亦即用尽可能少和精炼的图形最大可能地覆盖且能清楚有效地描述项目开发的全过程。极限建模的秘密并不在于建模技术本身,而是在于如何才能很好地把它们应用于软件项目的开发。作为一个优秀的软件专业开发人员,他必须把握能覆盖整个开发过程的各种开发工具和技术,并且具有知晓何时使用哪种工具才是最有效率的能力。
参考文献
1. Scott W. Ambler.Extreme Modeling.http://www.sdmagazine.com/documents/s=738/sdm0011m/.November,2000.
2. Scott W. Ambler.A Closer Look at Extreme Modeling. http://www.sdmagazine.com/documents/s=732/sdm0104m/.April,2000.
作者简介:王巍(1968-).上海人.高级工程师,系统分析员.研究方向:电子商务,软件工程,企业信息系统,Petri网和Rough集理论应用研究。