有没有软件业的摩尔定律
从第一台计算机产生开始,硬件技术和软件技术几乎同时开始它们的发展历程。但是半个世纪以来硬件技术的发展速度要远远高于软件技术的发展,从电子管到晶体管,从集成电路到超大规模集成电路,运算速度从每秒几千次到每秒几十万亿次。相比之下软件技术就远远跟不上硬件技术的发展。著名的摩尔定律归纳了硬件技术的发展速度,那么软件技术有没有相应的定律呢,几十年来,软件业界人士一直没有停止过这方面的思考。
近二十年前,美国著名的图灵奖获得者布鲁克斯博士曾在他的《没有银弹:软件工程的根本和次要问题》论文中将能给软件产业带来本质上突变的技术称为“银弹”,并且宣称,“没有单纯的技术或者管理上的进步能够独立承诺在十年当中大幅度地提高软件的生产率、可靠性和解决性”。这个论断在这二十年里一直没有被打破。
基于组装的人工软件工厂
软件开发一直以来都受到以下几个方面的困扰:开发进度缓慢、开发费用超支、维护成本增长过快、不恰当的功能设计、拙劣的性能、不断膨胀的bug和代码量、不兼容、重复开发等等。这些问题在最严重的情况下就会导致所谓的“软件危机”。
软件工厂是一个按照流水线的工作方式、遵循一定的生产质量规范,批量、高效地生产标准化的软件产品组件,并对其进行组装从而批量完成产品的机构。
组件的组装产生了软件工厂的概念。为了构造新应用程序,软件开发人员找出适当的组件,将这些组件加入到正生产中的应用程序,同时对应用程序进行测试并保证应用程序的组装工作按照预定的规划正常进行。软件开发人员所起的作用和车间流水线工人别无二至,只是开发软件的“流水线”上跑的是应用程序产品。
到目前为止,“软件工厂”这一概念基本上还停留在“基于组装的人工软件工厂”阶段,也就是说,由软件开发人员人工组装软件组件来构造应用软件系统。在这一阶段,整体的软件开发效率还很大程度上依赖于软件开发人员的组装效率,软件开发并没有质的飞越。
企业级应用软件开发
近年来,企业级应用软件系统遇到了很大挑战。
首先,企业级应用软件系统所要处理的环境更为复杂,功能要更为全面、细致。现在经济全球化和竞争越来越激烈,社会中不稳定与干扰因素也处处可见、时时发生,这导致在研发企业的应用软件系统时,需要考虑的因素越来越多,也越来越难以控制。
其次,企业需求的变化越来越快。这是现在企业级应用软件系统研制过程中遇到的最大问题。由于竞争的残酷,企业的管理与业务经常变化,可能是今天刚制定了一套业务流程,明天就要推倒重来。这就意味着,企业级应用软件系统必须要能适应、且是快速适应企业需求的变化。
最后,企业的要求越来越苛刻。由于IT系统越来越成为企业提升竞争力的最佳武器,它们对系统的功能要求越来越高,不仅要处理日常的工作,还要具有分析、预测和决策等各种功能。只要能想到的,企业都希望IT系统帮它实现。另一方面,IT系统在企业的日常管理与业务中的地位越来越重要,它甚至已成为企业的关键业务系统。对于这样的系统,企业要求不能有丝毫的差错,不能有一刻的停顿,不能有任何的意外,否则的话它们会为此而遭受巨大损失。因此,企业对系统的快速交付性、安全性、可靠性、稳定性提出了极高的要求。
这样的复杂的企业级的应用软件开发不是仅仅靠软件组件的简单组装就可以完成的,而且也不是人工组装就能适应的。
“基于组装的人工软件工厂”开发模式在复杂的企业应用软件系统开发面前是束手无策的。
业务模型驱动的全自动化软件工厂
软件业的发展再现了制造业的发展过程,软件业与制造业具有很大程度上的相似性。制造业提供硬件产品和服务,它的工序包括市场调查、产品定义、产品设计、产品加工;软件业提供软件产品和实施服务,同样需要经历业务调查、需求定义、软件设计、软件开发等。从本质、流程上说,软件业也是制造业,其发展的必然归宿是生产的自动化和装配的柔性化。
在很多人的直观印象中,汽车是工人在生产线上一个个零件组装起来的、高楼大厦是建筑工人一砖一瓦盖起来的,因此软件系统也应该是程序开发人员一个个组件组装起来的。这种印象其实是错误的,事实是,真正起关键作用的是汽车设计图纸、建筑设计图纸,因此软件系统应该是设计出来的。
理想的软件开发模式应该是“业务模型驱动的全自动化软件工厂”开发模式,在这种模式下,软件开发的主要工作是进行软件设计,应用软件系统由“业务模型驱动的全自动化软件工厂”加工而成。
『KCOM 商业工程』企业应用平台真正实现了“业务模型驱动的全自动化软件工厂”开发模式,它提供诸多的设计工具用于软件设计,提供了『管理软件工厂』用于将软件设计图加工成最终的、可交付的应用软件系统,而这一加工过程仅仅需要几十分钟的时间。