UML软件工程组织

管理软件的“银弹”
计世资讯 作者:曹开彬

25年前,Brooks博士曾在其著名的“人月神话”一书中提出了一个令人悲观的论断:“未来10年内没有能提高软件生产力的银弹”,即没有任何一种技术或管理上的进步,能够独立地承诺在10年内大幅度提高软件开发的生产率、可靠性和简洁性。如今,25年过去了,他的观点还适应吗? 新的银弹正在诞生!计世资讯(CCW Research)近日的《2003中国软件平台发展战略研究报告》表明,软件平台的新层级——业务基础软件平台正对软件,尤其是管理软件开发模式产生革命性的影响,一种全新的开发模式——EMA(企业模型自动化)已经诞生,这种全新的开发模式就是业界一直在苦苦追寻的“提高软件生产力的银弹”。
管理软件的困惑
自上个世纪40年代出现软件以来,尤其是1955年第一家软件公司CUC成立以来,软件产业开始独立于硬件产业,并从此走上了高速发展之路。微软也因此而一举登上了全球市值最高的宝座。不过,在全球保持高速发展的背后,软件产业也有令人心酸的一面。20世纪90年代中期,业界曾对软件产业的现状进行过3次重要且非常著名的分析。这3次分析均得出了相似的结论,即软件项目的成功率非常低。如果说“成功意味着成本、进度、质量、特性集、创造利润等方面均达到了客户期望”的话,那么只有10%的软件项目取得了成功。
不仅如此,在新的市场环境下,用户对软件需求的个性化越来越强烈。计世资讯(CCW Research)认为,用户对软件有两种要求:空间和时间上的个性化。“空间上的个性化”是指不同用户对软件系统的需求不一样,例如,不同行业的用户或者同一行业的不同用户对ERP系统的需求都是不一样的;“时间上的个性化”是指同一用户在不同时间段对软件系统的需求也不一样,例如,一个企业在实施管理软件系统之后一年甚至半年内,由于市场环境、企业规模的改变,其管理模式、组织机构、业务流程都要随之改变,这就必然要求管理软件也随之改变。因此无法深度满足用户的“个性化”的需求,也是管理软件应用满意度低的主要原因之一。
出现上述情况并非偶然,而是传统的应用软件开发模式、软件产业基本矛盾的必然反映。计世资讯(CCW Research)认为,现阶段软件产业的基本矛盾是不断增长、日益复杂的社会需求与落后的软件生产力之间的矛盾,这一矛盾的具体表现就是“用户需求的个性化与软件产品的通用性之间的矛盾”。
银弹出现:业务基础软件平台
为解决软件产业的基本矛盾,人们一直在进行着持续不断的努力。概括起来,人们的努力有两个方向:其一是软件工程和软件项目管理;其二是软件技术革新。从诞生到现在,软件产业涌现了大量的技术革新,每一次的技术革新都向解决软件产业的基本矛盾迈进了一步。在所有的技术革新中,软件平台化最有意义,也最有生命力。
“软件平台”并非一个新鲜的词语,它由来已久并在软件开发中得到了广泛的应用。例如,操作系统、数据库、各种交易中间件等都是人们早就熟悉的软件平台。但“软件平台”的定义是什么,它应包含哪些基本要素,它的作用是什么?对这些问题,一直没有很明确的说法。
计世资讯(CCW Research)认为,“软件平台化”的本质是将复杂的软件系统分层,是分层理论在软件开发中的具体应用,并由此找到软件开发中标准化与个性化之间的恰当契合点。软件平台是用来构建与支撑应用软件的独立软件系统,它是开发与运行应用软件的基础,是任何一个应用软件得以实现与应用的必要条件。软件平台有两个基本要素:支撑环境和开发体系。其中,支撑环境是指应用软件系统开发与运行的基本条件;开发体系是指开发与维护管理应用软件的工具与方法。
按照这一定义,我们可以把目前的软件平台划分为三个层次:操作系统平台、软件基础架构平台、业务基础软件平台(图1)。其中,操作系统平台是最底层的软件平台,其作用在于实现了应用软件与硬件平台的交互;软件基础架构平台建筑在操作系统平台之上,其作用在为复杂应用软件提供技术基础设施;业务基础软件平台是软件平台的第三层,其作用在于实现软件开发过程中技术和管理业务之间的分离。在每一个层次,软件平台都为其上一个层次屏蔽了自身及以下层次的技术细节,每一个层次都对提高软件生产力具有重要作用。

在这些软件平台中,业务基础平台是最近一两年出现的新形态,其代表产品包括思维加速的TIB、东软金算盘的VP、用友的UAP、金蝶的BOS、SAP的NetWeaver、BAAN公司的DEM等。
从技术角度分析,业务基础软件平台为复杂应用软件系统的开发提供了基本框架,并有与之相应的、方便易用的开发与维护管理工具。这个框架给出了一些复杂应用软件的基本组成部分和实现方法,并且预置了很多可供参考的软件模块。有了这样的准备,在业务基础软件平台之上开发管理软件就可以降低复杂性,省去很多基础性的研发工作,从而大大缩短研发周期,提高研发效率。

具体来说,业务基础软件平台能满足复杂应用软件系统开发的如下要求:
● 速度要求 通过业务基础软件平台提供的基本框架及预置好的模块,软件提供商能很快地开发出用户所需要的复杂应用软件;
● 灵活性要求 通过业务基础软件平台提供的开发与管理工具,软件提供商能很方便地满足用户个性化的需求,以及用户在发展过程中各种各样变化的需求;
● 集成性要求 业务基础软件平台为复杂应用软件系统提供了一个集成框架,不仅为集成同一平台上的各种不同软件提供了规则,还为集成其他应用软件系统提供了集成接口。
计世资讯(CCW Research)认为,业务基础软件平台是一种技术创新,它使软件平台又多了一个层次,并将应用软件的业务逻辑和开发技术分离,使应用软件的开发者可以仅关注应用的业务任务,而不必关注其技术的实现,从而使管理和业务人员能够参与应用软件的开发。
管理软件的“新生”
业务基础软件平台的出现使软件平台多了一个具有革命性意义的战略层级,为降低大型复杂系统的实现难度提供了新的途径,它使大型软件复杂应用系统的体系结构出现了新的变化,也会对复杂应用系统本身产生重大的影响。
一直以来,复杂应用软件系统的开发主要采用几种方式:一是基于硬件平台直接开发;二是在操作系统平台上进行开发;三是基于数据库平台开发;四是基于中间件平台开发。在这四种开发模式中,由于后一种模式的开发平台均比前一种要高,因此后者的开发难度更小,开发周期也更短。
虽然四种开发模式的发展在很大程度上提高了软件研发效率,但它们依然存在明显的不足:开发难度仍然较大,开发周期仍然较长。再加上这四种模式都是从技术出发,与应用软件的主体——业务相去甚远,因此无法解决由于业务复杂性带来的管理软件的复杂性。这些缺点导致了管理软件的应用与发展还存在很大的问题,主要表现在两方面:一是管理软件不能很好地满足用户的业务需求,柔性非常差,不能适应用户业务的快速变化;二是开发效率低下,实施周期长,成本压力大。这也是目前管理软件应用失败率居高不下的主要原因。
业务基础软件平台的诞生给管理软件的开发带来了革命性的变化,这种全新的软件开发模式就是EMA(企业模型自动化)。业务基础软件平台通过自己的支撑环境,将开发和运行复杂应用系统所需的底层技术进行了彻底的封装。人们在进行应用系统的开发时,只需关注业务模型,无需关心技术平台与相关实现细节。这种“技术无关性”使管理人员和业务人员能够参与应用系统的开发。
EMA基于业务和管理层面,以业务建模为基本手段,实现业务应用系统的构架、开发和维护,其最大特点是业务导向和技术无关性。业务导向是指EMA基于企业工程理论和企业参考模型,为软件设计和开发提供有效的导向和依据,帮助开发者全面、正确和迅速地实现管理者的管理和业务要求,大幅度地提升管理软件的开发、发布及维护的效率和质量,并在业务持续完善的过程中实现快速调整;技术无关性是指EMA通过运行平台直接执行企业的业务,实现业务模型和系统实现技术的分离,使应用系统可以在各类主流和标准的基础平台上运行,并可以顺利地迁移到未来的技术环境中。
EMA采用模型自动执行作为软件的主要实现方式,应用软件中非常困难的实现部分和大量重复的业务逻辑已经无需编程(通用逻辑中的70%~95%)。开发人员只需聚焦于客户的业务逻辑,并可以使用多种程序语言来支持复杂业务逻辑。
未来发展
计世资讯(CCW Research)认为,未来2~3年内,将会有越来越多的复杂应用软件系统构建在业务基础软件平台之上。在管理软件领域,甚至会掀起一股从软件基础架构平台向业务基础软件平台迁移的高峰。预计在2006年,主流的管理软件都将基于业务基础软件平台,并且最有可能首先取得突破的是ERP、OA和电子政务系统(图3)。

与操作系统平台、软件基础架构平台相比,我国业务基础软件平台市场刚刚启动。计世资讯(CCW Research)认为,我国业务基础软件平台市场将在2003年得到进一步重视,并从此进入快速发展的轨道。到2003年,中国业务基础软件平台的市场规模将达到6亿元,市场增长率达到300%。同时,会有越来越多的厂商进入这个领域,发布相关产品。到2005年,业务基础软件平台在市场上将被充分接受,其市场规模将达25亿元。并且,主流的ERP和OA软件都将基于业务基础软件平台,其市场规模将分别达到38亿元和16亿元。
目前软件平台市场面临的最大问题是“混乱”和“无序”,标榜为软件平台的产品纷纷问世,要研发平台软件的厂商突然变多,一些新成立的软件公司更是直奔“软件平台”市场。只要稍加留意,您就会发现市场上已经充斥着各种各样的平台软件:数据交换平台软件、报表生成平台、电子商务软件平台、电子政务平台、ERP平台等。这种情况出现的背后是对“软件平台”和“最终应用软件产品”的定位不清。实际上,现在市场上众多的“软件平台”,其实都是一些具有一定个性化设置功能的“最终应用软件产品”。在ERP和OA软件市场,这种情况尤为突出。要注意的是,这样的产品虽然能解决某些具体的问题,但和本文里所说“新一代应用软件”有着本质的区别。“新一代应用软件”是在业务基础软件平台之上开发的,而上面提到的应用软件产品则不是这样。
相关链接:
业务基础软件平台的特性
除了具有软件平台的基本特性,业务基础软件平台还具有两个独有特性:面向业务和技术无关性。
其一,操作系统平台、软件基础架构平台等都是面向软件开发人员,使用它的技术门槛比较高,而业务基础软件平台面向业务人员,它使用得更多的是“业务语言”或“管理语言”,这是业务人员就能理解的语言。这一特性消除了复杂应用软件系统一直存在的两张皮现象(即缺少复合型的专业人才,懂技术的不懂管理,懂管理的不懂技术,管理人员、业务人员与技术人员之间一直存在着很难弥合的“鸿沟”)。
其二,技术无关性不是指业务基础软件平台和技术没有关系,而是指业务基础软件平台屏蔽了操作系统、软件基础架构平台的技术细节,开发人员在利用业务基础软件平台开发复杂应用软件系统时,关注的焦点在于业务逻辑、管理模式,而不用关心采用何种技术来实现。简单地说,这种技术无关性其实就是跨平台,通过业务基础软件平台开发的软件能够顺利地在各种异构环境下运行。
业务基础软件平台与管理软件
业务基础软件平台与ERP、CRM等管理软件并非等同的概念。前者是ERP、CRM等管理软件开发与运行的基础,后者是用户用来提升自己的管理水平、降低生产成本的最终软件产品。业务基础软件平台本身并不是ERP,也不是任何一种管理软件。用户单纯购买一个业务基础软件平台,并不能解决任何管理问题,“平台”只是一种运行环境和开发工具。虽然我们一直在论述,“传统ERP”有太僵硬的缺点,但这并非ERP有僵硬的缺点,而是指用来实现ERP系统的“传统方法”有缺点。实际上,ERP本身是一种先进的管理思想与管理模式,如果有一套先进的软件系统将它的管理思想蕴含其中,那么这套软件系统肯定能为企业带来极大的收获。因此,我们要改进的不是ERP本身,而是ERP软件的传统实现方法。业务基础软件平台的作用正在于此。
业务基础软件平台诞生之后,管理软件可以由两种主要方式提供:一是基于软件基础架构平台;二是基于业务基础软件平台。当然,也会还有少量其他的方式,如适用于嵌入式系统的管理软件、直接在操作系统之上开发的管理软件。

关于EMA的几个误区
关于建模 建模有很多,在软件开发中会涉及两类:一类是传统的基于技术的建模,为软件开发人员编写程序而准备的建模,典型代表有UML;另一类是基于管理和业务的建模,它是为管理人员使用的,而不是为软件开发技术人员所使用的。在传统的软件开发中,建模一般采用UML等方法,但在全新的软件开发模式EMA中,建模一般采用业务建模。
关于免编程 建模工具是不是免编程的傻瓜化工具?建模工具的确可以大幅减少代码,降低管理系统的开发难度,而且,许多业务系统也的确可以用建模工具免代码完成。但建模工具并不等于免编程工具。因为业务逻辑具有不可预测的复杂性,有些业务逻辑本身就是一种复杂的程序逻辑,如MRP中的BOM(物料清单)算法。此外,管理系统需要兼容、融合和集成现有各类IT技术,如CAD、GIS技术等,甚至需要与工业设备进行信息交换。这些必需要靠适当的编程才能实现。(马科)
问与答
业务基础软件平台为什么在此时浮出水面?原因有二:其一是关键需求出现,由于企业管理个性化和持续完善成为竞争的基本战略,管理软件产业出现了大规模定制的要求;其二是基本条件具备,业务基础平台的理论研究基本成熟,最关键的是,企业工程理论和业务建模体系已经达到实用水平。
那么如何理解业务导向和驱动?这其实是管理软件的实现途径和方法的问题。它是指软件开发是基于业务和管理的层面,而非技术的层面来理解、设计、构架和集成企业的信息系统。基于业务的层面是指,开发人员只需描述企业的组织机构、业务流程、业务信息、业务资源、业务逻辑、业务事件等业务内容,而不考虑技术层面的东西,例如,系统是采用C/S还是B/S?DCOM、Corba、EJB还是Soap?.Net还是J2EE?NT还是Linux?


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