UML软件工程组织

通过建立一个开发架构来制定更好的设计方案
作者: ZDNet China
任何一个从事开发工作的大型公司都会有一个具体的开发架构,这个开发架构为公司进入开发过程的各个方面提供指导。如果每个开发团队在一个没有整体指导的真空中工作的话,他们将无法制定出明智的决策——也许对开发团队本身不利或者会使公司整体陷入效率低下的困境。

之前,我从总体上论述了一个开发架构是如何被应用于为合适的开发生命周期提供指导,进而服务于一个项目。一旦选择了一个生命周期,那么开发架构就能通过该生命周期来定义一个用于建立一个应用程序的实际过程。在这篇文章当中,我将阐述开发架构的另外两个方面,即为一个应用程序决定适合的技术模式和为现存的应用模式归类并使之合理化。

定义技术模型

我们还记得建立开发架构的目的之一就是为决策制定提供指导。当一个应用程序被建立的过程中,有许多的决策需要被决定——其中有个最重要的就是整体的技术设计。技术设计是在总结出企业需要之后才开发出来的,但是先于详细的设计和编码工作的开始。

如果你现在就看一看所有的各种各样的应用程序,你就能开始对它们进行应用类型或模型的归类了。让我们设想一下一个拥有超过200个独立应用程序的大规模公司,姑且不论其应用程序的具体类型和它所处理的数据类型,你一定会注意到其中的一些应用程序。这就可能包括网页应用,数据库应用,决策支持应用,交易处理应用,还有报告应用。你也将注意到能更好的为企业需要的特定分类工作的特定模型的类型。

例如,你有可能看到,对外部客户而言,一个网页应用能更方便地从贵公司订货。另外一方面,如果你有一个一天能处理50000宗交易的帐目结算系统,一个网页应用程序就不一定是最好的选择。同样的,要求成千上万条的客户定单记录的保管和检索的这种商业需求该指出一个数据库应用的需要,而不是一个传统的客户服务系统所运用的一般的数据库处理程序。

 

你一定不会愿意呆在一个你选择了错误的平台或软件的位置工作。你常常直到开始繁重的系统测试工作时,甚至是当应用程序激活时,才意识到这一点。这就是重新制定基本的技术设计决策都太迟了的原因。开发架构能在企业需要的基础上,通过给相关应用程序类型的建立提供指导来给予帮助。

合理的改进现存的应用模式

开发架构的第三个特征就是对你所有的程序进行理解和分类。当你惊讶的得知许多公司对自身内部的每个应用程序根本没有一个高度的认识。那么这些公司多次结束重复开发类似的软件就不足为奇了。

几年以前,我曾在一个饮料公司工作。我们那时刚刚完成了在IT开发组织中的一个主要的重组。在过去几年中,公司是在各种各样的商业单元的基础上来组织我们的——例如,财政、市场营销、营业推广,等等。但是在重组以后,我们第一次按照企业职能进行组织。组织结构中的差异突显了在我们企业应用文档中大部分多余的东西。这种组织使我们看到我们有三个主要的生产系统在工作,同样,我们还有多重财政系统,市场营销系统,和营业推广系统等等。每个营业推广系统对特定的企业部门和他们所售产品类型而言是唯一的,总的来说,这是公司资源的一种典型的无效率利用。

开发架构中的主要一步是给所有现存的和在进行中的企业应用程序制定一个目录。这听起来非常简单,但对一个大型企业来说就是一项重大的工作了。你首先必须清楚的知道一个企业应用程序是由什么组成的。通过IT开发组织支持的这些程序可能比较容易辨别。但由企业用户所开发的所有的应用程序,还有存在于IT行业内部但在开发部门以外管理和支持的应用程序又是否都能辨别出来呢?你首先必须决定目录运行过程的范畴和定义。

接下来你必须决定你想要收集的每个应用程序的信息内容。他们有许多明显的特征,例如目的,客户基础,处理数据的类型和技术环境。无论如何,你确实是可以收集到许许多多条信息。你希望能决定提供最大价值的信息,捕捉它是最容易的,并且这不要求一个庞大的过程来令其保持领先。

应用程序目录是用于两个主要的目的。第一,无论是哪里有可能性存在。你可以寻找机会去使之合理化。合理化的一种方法是寻找累赘,那就是——用于类似需要的不同应用程序。例如,你可以找到两个客户关系管理(CRM)软件包在使用。进而随之就可以表明你能使一个包标准化。

你也会发现你仅仅只是通过极少使用一个老化的数据库来运用开发产品。例如,我所服务过的另外一家公司意识到他们只有一个应用程序来支持一个陈旧的数据库。这种清晰的认识使我们扩展一个已经策划好的高级项目去将应用程序转化为标准数据库。

应用程序目录合理化是一个持续的过程

在短时间范围内,你不会作出放弃多个应用程序和旧科技的重要决定。事实上,在一个大公司,你可能需要去制定一个“五年计划”来获得更合理的应用环境。你甚至会要决定你不能通过做一个企业案例来减少所有的累赘。但是开发架构的这个方面至少可以给你一些做合适决定时需要的信息。

应用程序目录的第二个目的是根据目前的企业应用程序来列出一个新开发的要求。这个可以当作项目过程的一部分来完成。当企业客户在寻找建立新方法的时候,他们可以从开发架构中看到是否有一些已经存在的类似的东西。那些做关键决定的人也可以看到新项目的内容,与其相关的商业过程,以及在那个空间里已经存在的应用程序。他们能够抓住很明显的一些复制程序和保证那些多余的应用程序不会被建立起来。

更有影响和更高效率的工作

公司的规模越大,开发决策将被制定的机会就会增加,这会导致公司资源的低效率利用。开发架构能在三个关键领域通过提供指导进入开发过程来提供帮助。首先,开发架构向你表明了为最初的开发项目服务的最好的开发生命周期。第二,开发架构向你表明了你在企业需求的基础上所使用的最好的技术设计模式。第三,开发架构使你清楚的看到所有的存在和运行的应用程序,所以你不需要重新发明一个现在存在的企业应用程序。所有的这些指导使得开发工作在尽量少的重复工作和多余的情况下更加有影响和有效率的进行。

 

版权所有:UML软件工程组织