软件开发一直以来都受到以下几个方面的困扰:开发进度缓慢、开发费用超支、维护成本增长过快、不恰当的功能设计、拙劣的性能、不断膨胀的bug和代码量、不兼容、重复开发等等。这些问题在最严重的情况下就会导致所谓的“软件危机”。
软件工厂是一个按照流水线的工作方式、遵循一定的生产质量规范,批量、高效地生产标准化的软件产品组件,并对其进行组装从而批量完成产品的机构。
组件的组装产生了软件工厂的概念。为了构造新应用程序,软件开发人员找出适当的组件,将这些组件加入到正生产中的应用程序,同时对应用程序进行测试并保证应用程序的组装工作按照预定的规划正常进行。软件开发人员所起的作用和车间流水线工人别无二至,只是开发软件的“流水线”上跑的是应用程序产品。
到目前为止,“软件工厂”这一概念基本上还停留在“基于组装的人工软件工厂”阶段,也就是说,由软件开发人员人工组装软件组件来构造应用软件系统。在这一阶段,整体的软件开发效率还很大程度上依赖于软件开发人员的组装效率,软件开发并没有质的飞越。 |