用UML统一开发团队

发表于:2009-10-29来源:作者:点击数: 标签:团队开发umlUML
用UML统一 开发 团队 UML模型 关键字:UML 为了提高生产效率并获得成功,开发团队的成员需要拥有通用过程,通用的术语表和相应的支持工具。这篇文章讨论了UML如何能够帮助你达到这个目标。 在现代的软件开发中存在这一种基本上相互矛盾的论点。一方面组织面

用UML统一开发团队  UML模型

关键字:UML

为了提高生产效率并获得成功,开发团队的成员需要拥有通用过程,通用的术语表和相应的支持工具。这篇文章讨论了UML如何能够帮助你达到这个目标。

在现代的软件开发中存在这一种基本上相互矛盾的论点。一方面组织面对着更加快速的响应市场的要求;另一方面,在相同的组织中还面临着以更低的成本交付高质量系统的压力。在这两者之间维持一个平衡是非常难的:匆忙的将软件系统推向市场,系统的质量勿庸置疑的会受到指责;而仅仅考虑质量问题,你也可能因为花费了过长的时间交付系统给用户而导致失败。

随着软件开发的本质发生的改变,融合这对相互矛盾的论点也成为了现实。从历史的观点来看,许多信息系统从体系架构上是非常简单的:应用被建立在中间层的基础上,中间层典型的封装了商业规则和数据访问,并且中间层被建立在永久存储之上,通常使用关系型的数据库系统。关系型数据库(或者数据库)本质上是系统的中心,它获取系统问题领域的词汇表并作为系统状态的存储服务。客户端/服务器架构的出现帮助了划分3层分离的结构,对于组织来说可以以一种可控的方式来应对系统相应的变化。尤其是,应用要能被快速的创建和修改,同时还要保存系统的状态,新的业务规则应该能够被引入而不会使系统受到影响,并且数据应该可以随着时间的流逝以一种新的或未预期的方式被挖掘。已被证明的且稳定的体系架构指引着很多组织以相应的方式构建他们的团队:分析人员与领域专家一起工作将用户的需要装化成需求,数据建模人员构建满足这些客户功能需求的领域模型,应用开发人员通过快速的构建和分解来建立满足系统行为需求的的新系统。

然而,随着Web的出现,软件开发的世界发生的翻天覆地的变化。在传统的客户端/服务器形式的系统中,一个系统典型的拥有可控数量的用户,通常用户的数量在几百到几千人之间;而在Web系统的情况下,一个系统也许会有几百万的用户,这些用户中的很多都是不在软件开发组织的控制之下的。在传统的客户端/服务器的系统中,从应用到数据的概念性的距离是非常小的;而在Web环境下,多数系统是由成千上万的移动的部分组成,这些移动部分通常是一些脚本的和一些编译过的代码,通过使用这些机制,使得应用和关系型的存储在距离上是相当远的。在传统的客户机/服务器系统中,变化是不可避免的,但变化可以被适当的管理,而在Web环境下,变化是连续的,并且变化发生在系统体系架构和实现技术的每一个层面上。在传统的客户机/服务器系统中,成功的开发并发布系统的涉众数量相对来说是比较少的;而在Web环境下,有很多新的涉众参与到了系统的开发当中,从内容的创建者到信息架构到网络设计,所有这些人都必须与传统的软件开发团队共同工作以克服软件开发中的矛盾。

成功的处理软件开发中的矛盾的组织与哪些在这方面失败的组织在组织运作的方法上存在着本质的不同。特别的,高生产效率的组织将软件开发看作为一项团队运动,在这样的组织中很多不同的对系统的开发和部署作出贡献的涉众通过使用通用的过程,通用的表达语言并使用支持和鼓励与过程和语言相关的最佳实践的工具来实现统一。

Rational统一过程(RUP)是一种已经被证明对大多数面临着软件开发中的矛盾的组织来说是非常有用的。RUP是一种鼓励以增量和迭代的方式交付系统的可执行版本的过程。RUP是风险和用例驱动的,这就意味着RUP倾向尽早的识别和处理防碍系统成功的风险,并且它的迭代是被来自于系统不同涉众透视图的用例指导的。此外,RUP是一种架构先行的过程,无论在哪里,系统的架构都是在早期就被稳定下来的,这样便可以建立和验证策略性的设计决定,然后在每一个新的迭代中进行不断的细化。

在传统的情况下,许多大数据系统在他们的实现上是使用Cobol这样的在当时具有统治地位的语言编写的。但随着Web的出现,一切都发生了变化,甚至一些遗留系统也已经被移植到了Web之上。在Web环境中,一个大数据的系统可以使用Cobol,C++ 或Java来编写服务器端的程序,使用教本语言(如Perl, VBScript, JavaScript),第四代编程语言(如:Delphi )和经典的语言(如:Visual Basic 和 Java)来实现客户端的程序。象XML语言在这里很好的扮演了这样一个角色:XML是一种在Web上表示数据结构的通用语言。除了面临着一些编程语言的选择,企业开发团队也必须在各式各样的技术中作出正确的选择,如Microsoft WinDNA and Sun的 EJB,而这些技术呈现给开发人员不同的编程模型。

原文转自:http://www.ltesting.net