Pr~ectand s
关于软件工厂的两种生产模式的研究
文 :辛秀 周传 生
计算机的研制来源于庞大而复杂的数学
计算,如 1946年第一台通用电子数字计算机
“埃尼阿克”(ENIAC),它是由美国军械部拨
款研制的,其主要任务就是用于计算和分析炮
弹轨道的。其间伴随着计算机硬件和诸如操作
系统、数据库和各种编程语言的出现,软件的
生产模式一直在随着社会的需求而日益变迁。
1.俺壤的软件生产■式
传统的软件生产模式主要是指自1946年
有了数字计算机以后到 20世纪 70年代中期
以前这段时间软件生产所采用的主要模式,大
致经历了程序设计模式、软件作坊模式和软件
工程模式。
程序设计模式:是 20世纪 60年代中期以
前的这段时期软件生成所采用的主要模式。在
这个阶段,软件的生产就是程序设计,软件的
规模很小,通常由程序设计人员即软件使用者
根据特定的要求,通过当时的编程语言提供的
算法来编写相应的专用软件。
软件作坊模式 :软件作坊模式主要是从 20
世纪 60年代 中期开始到 70年代中期这段时
间。软件作坊一般是由少数几个或几十个人组
成的软件生产团体,他们是专门应别人的要求
而编写软件的。没有什么软件生产的理论和方
法,软件生产仍然是少数几个人头脑风暴的结
果,除了源代码以外往往没有软件的说明书等
文档。
软件工程模式:软件工程模式是从 20世
纪 70年代中期之后开始的这段时间。它提供
了一种新的系统化、规范化、数量化的工程原
则和方法进行软件的开发和维护。按照工程化
的原则和方法来组织管理软件的开发与维护
工作,是摆脱软件危机的一个主要出路。
2-软件工厂的啊种生产■式
其实早在 1968年伴随着软件工程的概念
提出,软件工厂的概念也几乎在同时被提了出
来,最早提出软件工厂概念的可能就是R.W.
Bemer了。他是基于通用电气公司为了开发一
种提高软件工程师生产力的新的软件开发模
式而提出的。在 1980年以前,软件工厂一直都
处于探索和实践阶段,一直到最近几年,随着
软件外包的流行,软件工厂才又被提到学者们
和各大软件公司的面前。
(1)基于软件开发的软件工厂
这种形式的软件工厂是以软件工程和软
件的生命周期作为软件公司的管理和开发的
指导思想,着重软件的开发和管理。其最主要
的体现在三个方面,其一是在公司的组织划分
和项 目及人员管理上深入贯彻落实软件工程
思想,强调软件开发的 “工程”性,把软件的设
计、开发、测试、维护和管理当作一项系统工程
来抓,表明软件不仅仅是编写代码的工作,而
需要各个学科的综合应用和各部门团队之间
的通力合作 ,才能得以实现。其二是严格项 目
管理和改进软件过程。承认软件开发是具有相
当风险的工作 ,为了降低风险,使项 目能够按
照预定的成本、进度和质量顺利完成,而对软
件开发的成本、人员、进度、质量和风险等进行
科学地分析和管理,同时结合先进的管理软件
和工具软件 ,如引进先进的国际管理标准
IS09000和 CMM等 ,对公司的工作流程进行
分析、整理、改进和完善,形成适合自己公司发
展的软件过程和相关文档 ,并指导软件项目的
开发。其三是广泛地使用软件复用技术。在公
司级别上建立软件复用类库,对各知识领域的
可复用构件进行分类和提炼,并在全公司上下
和各个项目之间广泛推行和落实,从而提升各
个团队乃至整个公司的软件生产质量和生产
力。
(2)基于软件集成的软件工厂
以软件集成为核心的软件工厂,强调的是
软件 “集成”。就像传统行业的产品生产线一
样 ,软件工厂拿到软件需求,通过软件的需求
分析和设计,确定要达到相关功能和性能所需
要的各种软件构件,在软件工厂的集成平台上
通过集成而生产出符合用户要求的软件 ,它是
一 个高度自动化的软件生产模式。基于集成的
软件工厂,它的主要工作大致可以分为两个阶
段。第一个阶段是软件的需求分析和设计。在
这一阶段,软件公司针对不同的软件需求,集
中公司的信息技术专家、管理专家、行业专家
和项目开发人员组成项目组,对软件的需求进
行分析,设计出生产工艺方案,然后按方案对
所需要的软件构件 (中间件、模块等 )进行选
型和配置。第二个阶段是在软件集成平台上对
各种软件构件进行组装、集成和客户化,以最
终生产出符合客户要求的软件产品。由此可
见 ,以集成为核心的软件工厂 ,它不强调软件
的开发,或者说它不怎么关心软件的开发 ,而
是通过使用各种软件集成工具来搭建软件集
成平台,依照领域标准和支持这些标准的领域
中间件和构件为原料来实现软件生产自动化
的。
总之,软件的生产模式是随着软件需求、
软件的复杂度及软件理论和软件技术的不断
变化而发展变化的。虽然说在同一时期,可能
有几种不同的软件生产模式同时存在,但却只
有一种模式是占主导地位的;就像近几十年来
软件工程模式一直都是主流模式一样,但在未
来甚至是未来相当长一段时间之内,软件工厂
的模式将会成为我们软件生产的主要模式。
(作者单位:沈阳师范大学软件学院)
巍
y..庸
-菇
与
用
应
y
.
..
.
∞
维普资讯
时创时叫应用时即制
美于银件J:r翩而神生严模或副跚挠
文:辛秀周传生
计算机的研制来源于庞大而复杂的数学
计算,如 1946 年第一台通用电子数字计算机
"埃尼阿克. (ENIAC) ,它是由美国军械部拨
款研制的,其主要任务就是用于计算和分析炮
弹轨道的。其间伴随着计算机硬件和诸如操作
系统、数据库和各种编程语言的出现,软件的
生产模式一直在随着社会的需求而日益变迁。
1..篇"螺件量严栅寓
传统的软件生产模式主要是指自 1946 年
有了数字计算机以后到 20 世纪 70 年代中期
以前这段时间软件生产所采用的主要模式,大
致经历了程序设计模式、软件作坊模式和软件
工程模式。
程序设计模式:是 20 世纪 60 年代中期以
前的这段时期软件生成所采用的主要模式。在
这个阶段,软件的生产就是程序设计,软件的
规模很小,通常由程序设计人员即软件使用者
根据特定的要求,通过当时的编程语言提供的
算法来编写相应的专用软件。
软件作坊模式:软件作坊模式主要是从 20
世纪 60 年代中期开始到 70 年代中期这段时
间。软件作坊一般是由少数几个或几十个人组
成的软件生产团体,他们是专门应别人的要求
而编写软件的。没有什么软件生产的理论和方
法,软件生产仍然是少数几个人头脑风暴的结
果,除了源代码以外往往没有软件的说明书等
文挡。
软件工程模式:软件工程模式是从 20 世
纪 70 年代中期之后开始的这段时间。它提供
了一种新的系统化、规范化、数量化的工程原
则和方法进行软件的开发和维护。按照工程化
的原则和方法来组织管理软件的开发与维护
工作,是摆脱软件危机的一个主要出路。
2..件::cr副丽"量严.寓
其实早在 1968 年伴随着软件工程的概念
提出,软件工厂的概念也几乎在同时被提了出
来,最早提出软件工厂概念的可能就是R. W.
Bemer 了。他是基于通用电气公司为了开发一
种提高软件工程师生产力的新的软件开发模
式而提出的。在 1980 年以前,软件工厂一直都
处于探索和实践阶段,一直到最近几年,随着
软件外包的流行,软件工厂才又被提到学者们
和各大软件公司的面前。
( 1 )基于软件开发的软件工厂
这种形式的软件工厂是以软件工程和软
件的生命周期作为软件公司的管理和开发的
指导思想,着重软件的开发和管理。其最主要
的体现在三个方面,其一是在公司的组织划分
和项目及人员管理上深入贯彻落实软件工程
思想,强调软件开发的"工程"性,把软件的设
计、开发、测试、维护和管理当作一项系统工程
来抓,表明软件不仅仅是编写代码的工作,而
需要各个学科的综合应用和各部门团队之间
的通力合作,才能得以实现。其二是严格项目
管理和改进软件过程。承认软件开发是具有相
当风险的工作,为了降低风险,使项目能够按
照预定的成本、进度和质量顺利完成,而对软
件开发的成本、人员、进度、质量和风险等进行
科学地分析和管理,同时结合先进的管理软件
和工具软件,如引进先进的国际管理标准
IS09000 和 CMM 等,对公司的工作流程进行
分析、整理、改进和完善,形成适合自己公司发
展的软件过程和相关文挡,并指导软件项目的
开发。其三是广泛地使用软件复用技术。在公
司级别上建立软件复用类库,对各知识领域的
可复用构件进行分类和提炼,并在全公司上下
和各个项目之间广泛推行和落实,从而提升各
个团队乃至整个公司的软件生产质量和生产
力。
(2 )基于软件集成的软件工厂
以软件集成为核心的软件工厂,强调的是
软件"集成"。就像传统行业的产品生产线一
样,软件工厂拿到软件需求,通过软件的需求
分析和设计,确定要达到相关功能和性能所需
要的各种软件构件,在软件工厂的集成平台上
通过集成而生产出符合用户要求的软件,它是
一个高度自动化的软件生产模式。基于集成的
软件工厂,它的主要工作大致可以分为两个阶
段。第一个阶段是软件的需求分析和设计。在
这一阶段,软件公司针对不同的软件需求,集
中公司的信息技术专家、管理专家、行业专家
和项目开发人员组成项目组,对软件的需求进
行分析,设计出生产工艺方案,然后按方案对
所需要的软件构件{中间件、模块等)进行选
型和配置。第二个阶段是在软件集成平台上对
各种软件构件进行组装、集成和客户化,以最
终生产出符合客户要求的软件产品。由此可
见,以集成为核心的软件工亡,它不强调软件
的开发,或者说它不怎么关心软件的开发,而
是通过使用各种软件集成工具来搭建软件集
成平台,依照领域标准和支持这些标准的领域
中间件和构件为原料来实现软件生产自动化
的。
总之,软件的生产模式是随着软件需求、
软件的复杂度及软件理论和软件技术的不断
变化而发展变化的。虽然说在同一时期,可能
有几种不同的软件生产模式同时存在,但却只
有一种模式是占主导地位的;就像近几十年来
软件工程模式一直都是主流模式一样,但在未
来甚至是未来相当长一段时间之内,软件工厂
的模式将会成为我们软件生产的主要模式。
(作者单位:沈阳师范大学软件学院)
53