第 7卷 第 2期
l 9 9 1年 l1月
广 西 科 学 院 学 报
Journal of .n Guarl Acad~'ny of Seieno~
Vo1. No.2
Nov.1 9 9l
关于软件工厂的思考
张正铀
(广西科委)
摘 要 在广泛推广应用电子计算机的今天,由于设计思想,设计方法及软件安
全等原因,软件的生产还远远摘 足不了用户急剧增 长的需求 .软 件危机还在进一
步加剧.
:
目蘸}卜算机得到广泛的普及应用,首先要归功于硬件的几次更新换代和现代
化生产.还有坚实的理论基础和 日趋完善成熟的技术等环境支昔,使计算机的生
产从一开始兢注重并实现社会化,规范化,因而能形成计算机产监,井在整个社会
经济产业结扮中占据重要的地位.然而,作为知识产品形态出现的软件,从一开始
就只作为计算机。硬件 的跗属晶而牟在,并且一直沿用手工编程和调试的方式生
产软件产品.以现代产业标准衡量 目前的软件生 产,可 以认为真正的软件 产业 尚
未形成.
从六十年代起,人们迫切需要有效的软件开发途径,并且作了积极的探索.在
此基础上,根据硬件工业化生产 的启示,提出了 软件工厂”的设想.软件工厂是软
件生产实现社会化、标准化的一种组织形式,是能按需要形成批量生产软件产品的
场所.这对解决 目前 的软件危机具有十分重耍的现这意义。
基于这样的认识,软件工r应具有软件新产品开发 生产 着剥(质量检测)和
软件维护与扩展的职能 在软件的生产目的、手段等方面,它与传统的软件研究所
软件开发 中心毒区别.它着跟于批量生产,强诃通 过生 产的社会亿,标准化,逐 步
实现生产的半自动化 直动亿和智能化.软件工厂必须生产出瞒里各种用户需求
差别各异妁软件产晶,西而它还直强调生产产品的灵活多样的特点 较仔工厂使
软停产品生产减少资源恒蠊 豌力资源1浪费,缩短生产周期,降馁成车和方便用户.
软件工厂的提 出虽然已有廿多年的历史了,也在一 些 国家中进牙 了软件工 一
化生产 的尝试,由于相应的基础研究和应甩基础 矸究 尚采 达到足以产生可供推广
匝用的成果,因此,软件工厂的发展是瑗慢的.然丽软件工厂亿生产势 头仍 不窖忽
视,我们应予以密切的关注和积极的探索
关键词 软件 计算机 工厂化
在广泛推广应用电子计算机的今天,出于设计思想、设计方法及软件安全等原因,软件的生
率文为 1 990年 7月 20日收到
维普资讯
6 广 西 科 学 院 学 报 1991年
产还满足不了用户急剧增长的需求。软件危机的冲击迂 盘进一步加剧。
近廿年,计算机得到了广泛的应用,作为计算机 灵魂 的软件固然起着不可抹杀的作用,
但是,也应该实事求是地承认,计算机之所以赢得各种用户、占领了众多的领域,主要是因为计
算机硬件科技水平的飞速发展,带来了计算机性能价格比的极大提高。因此,就这个意义而言,
目前计算机得到如此广泛的普及应用,首先要归功于硬件的几次更新换代和现代化生产。由于
有坚实的理论基础和日趋完善成熟的技术等环境的支持,使计算机的生产从一开始就注重并实
现社会化、规范化,因而能形成计算机产业,并在整个社会经济产业结构中占据越来越重要的
地位.然而,作为知识产品形态出现的软件,从一开始就只作为计算机 硬件 的附属品而存在,
并且一直沿用手工编程和调试的方式生产软件产品。以现代产业标准衡量目前的软件生产,可
以认为真正的软件产业尚未形成.
从六十年代起,人们迫切需要有效的软件开发途径,并且作了积极的探索。面向问题、面向
进程等思想的产生和成熟,目前出现的面向对象思想的研究,结构化程序设计、软件工程思想
和方法的出现和应用,使得软件开发出现良好的前景.人们在此基础上,根据硬件工北化生产
的启示,提出了 软件工厂 的设想。美国通用电器公司 R W.Bemer在 1986年首次为软件工
厂的组成柞了一个实用的定义: 软件工厂应是一个以计算机为依托,并由计算机控制的程序
编制环境,程序的制作、检查和使用都应在此环境中,并运用其中的工具来实施。工厂应有生
产率和质量的度量和管理、应用成本核算和进度计划的财务记录,以便管理人员能靠原先的数
据进行予估.环境中的工具应包括对独立于机器的语言的编译程序,仿真程序,测量仪器、累
积的测试实例、文档编程工具(如自动流程图编制器 文本编辑器),计算装置、链接和接口验证
器以及代码筛选器等 .美国AT&T公司的M.D.Mcllroy认为: 软件工厂是在制作新程序过
程中有系统地重用代码。通过将程序划分成为若干模块,实现软件批量生产 .尽管人们从不
同的角度和需求给软件工厂下定义,但归根结底都提出了一个软件生产和生产的社会化、标准
化的问题。我认为这是解决目前软件危机具有十分现实而重要意义的问题.对此,我提出如下
的一些思考,以期引起人们对软件工厂化生产的探讨.
1 软件工厂的概念和 目的
软件工厂是软件生产实现社会化、标准化的一种组织形式,是能按需要形成批量生产软件
产品的场所.
基于这样的认识,软件工厂应具有软件新产品开发、生产、检测(质量检测)和软件维护与
扩展的职能。在软件的生产 目的、手段等方面,它与传统的软件研兖所、软件开发中心有区
别。前者着眼于批量生产,强调通过生产的社会化、标准化,逐步实现生产的半自动化、自动化
和智能化。而后者着眼于新软件的开发,软件开发理论、方法和工具的研究。由于目前的软件
开发尚未建立统一标准,软件是直接面向用户,为用户的个别需求而 单独加工 的,因而缺乏
实质上的通用性.软件工厂就为使软件产品生产减少资源(包括脑力资源)浪费,缩短生产周期,
降低成本和方便用户而提 出的一种组织形式。
2 软件工厂的组织结构设想
软件工厂是生产知识产品的场所.它具有传统产业工厂的特点,即可以批量生产产品和要
维普资讯
第 7卷 第 2期 张正铀:关于软件工厂的思考 7
求产品标准化,从而强调生产过程的规范化。软件工厂还必须生产出满足各种用户差别各异的
软件产品,因而它还应强调生产产品的灵活多样的特点。
软件(这里指程序)是一个为满足某一特定任务而构成的指令集 它是由通用标准指令集
Q 和满足用户特殊需要的指令集 Q2组成.
定义:在同类软件中不是为了满足用户的特殊需求而必须存在的、并以标准格式表示的指
令集,称为通用标准指令集。
不丽类的软件存在不同的Q 和Q2。根据用户的需求 正确选择Q.、设计Q 解决 Q 与 Q2
信息流与数据流的接口、完成组装,再经过质量检查(软件正确性验证和安全检查),一个合格
的软件产品就产生了.
因此,软件工厂应有软件设计部门,将用户或市场需求分解为指令集 Q 和 Q2,并设计它们
之间的接口,然后分别交由程序生成部门生成 Q 和 0.2,由组装部门装配完成,再送检坝I部门检
验,经软件产品包装后出厂。
程序生成部门将建立 柔性生产线 .整个工厂应实现计算机辅助工程(CA目的现代化生
产,以使软件生产满足‘小批量多品种 和生产过程岛动化的要求。软件工厂将建立成熟的,标
准化的方法库和模型库.程序生成部门可从中取得所需的通用标准指令集或组装成更大的通
用标准指令集.他们还可以从这些库资源中取得生成 Q2的 材料 。随着知识抽象等有关研
究的进行和新成果的产生,软件工厂还会出现诸如 基本功能指令 库。这些库的不断充实,将
使今后软件中Q.集越来越大,结构越来越规范,组装越来越方便(有如太规模集成电路之便),
而Q 的结构将越来越简单,体积越来越小。
检测部门将应用逻辑分析设备和程序正确性礁证工具对生产出的软件进行验证,以确保产
品合格。检测部门还应为 出厂的软件产品加上病毒防卫功能块和软件产品非法复制功能块,以
保证知识产品的产权不受侵犯.正确使用计算机病毒机理,将是软件自我保护的一条途径。
一 一
3 软件工厂实现的环境条件- --0 .- -- - --
自70年代开始,美国、日本已开始实践软件工厂的设想。日立公司是世界上第一个为软件
生产设施冠 以 工厂 z名於公司。它确立坟件工厂两个 目标:3.L 通过使生产过程标准化和
对生产过程控翩来提高生产率和可靠性;§》 俺鞭11_事从无组织的服务括动向着生产质量有保
证的产品转变,美国许多大的软件产业都采用标准亿的设计和可重用的代码部件,研究并运用
蘸好的一-r-具和工序、建立正规的测试和质量保证部阿,。从雨『促进载佯生产酌姣搴和蛳隆 的提
高. ’ ’。 :一 :1
. ⋯ ⋯ 一 ; 一 、
软件工程是软件工厂的重要基础。软件工程环境提供夙软件妻母分诉鄯攀护透 蕊侍生
存周期全过程的计算机辅助支撑,把软件工程的各种方莹魏本术:翱亿:为软件系统,最鼬软传
人员有效地完成特定的软件开发和维护任务 飙丽缩泣软传的研剞J舌}蛹,改进软件质量,提高软
件开发生产率。随着软件工程学的发展和科研成是 的产圭,软件开发过程、软件结构、软件模
块接口和检测菇标趋于规范化,促使软件生产手J曹动成骨在不断藏步,自动化程度在不断提
高。据报导,霜立引进工厂化软件生产后,其生产率 tFTO竿比1969年提高了一倍,80年代,目
立因致力于改连工具和方法,引进了支持软件重用的工具和窘动编程工 具之后,生产率得 到了
进一步提高。项 耳拖延从 1970年的 72% 降至 1974年的 7%。 日奉 的 NEC应 用了一套 标准
维普资讯
8 酉 科 学 院 学 报 1991年
开发方法、工具和可重用模块后,它的应用软件的生产率由 26% 上升到 91%,出错数约减少
i/3.
知识抽象、信息隐蔽,面向对象程序设计、软件可重用和重开发技术的研究,是软件工厂得
以实现的重要理论基础和技术保证。软件工厂化生产的前提是能正确地筛进出软件中 通用
标准指令 集.上述研究成果越丰富,成果应用率越高,其筛选工作就越有保证。目前软件设
计中标准函数块、标准应用软件包等的设置和应用,虽然还不能从知识抽象的角度予以理解,
但对于筛选 通用标准指令集 有很婷的启示作用。
I乃 Ⅸ 是目前唯一的标准操作系统。UN1X环境给软件工厂化生产提供了设施,因此减轻
了开发者的许多负担.另外, 需求说明语言 的产生、程序自动生成器、文档自动生成器等工
具的出现,将使软件工厂实现程序自动生成线,提高软件生产率。
研究软件中各功能指令集舍间的标准接口和尽可能适于人们习惯的人 一 视界面是软件
工厂生产的另一重要前提条件。标准接口应该由与各模块的特定内部信息无关的信息组成。
当某个模块发生变化时,接口和其它模块不应受影响。在目前的结构化程序设计思想下的层次
结构、模块结构的软件中,除了十分注意各层次间或各模块问的信息传递、数据传递之外,亦十
分注意以包括菜单提示等形式表示的良好的人 一 机界面的设计.对于软件工厂的产品,都应
力求这两种接口是标准的和容易实现的。
除此以外,软件包装、软件保护和软件维护等技术也是软件工厂应具备的技术手段.软件
生产管理同样也应受到重视和积极探讨.
结束语
软件工厂的提出虽然已有甘多年的历史了,也在一些国家中进行了软件工厂化生产的尝试,
由于相应的基础研究和应用基础研究尚未达到足以产生可供推广应用的成果,因此,软件工厂
的发展是缓慢的.然而软件工厂化生产势头仍不容忽视,我们应予以密切的关注和积极的探
索.
参考文蘸
ll】王.爵生.软件工厂是历史的产翱.软件产业 1990.8
【习糠塞福篝.第A詹国际软件工程台议鼍况
【3】枥美精篝,再论款件工程支撑环境
【4】李支军辱,使甩可重用扮件台虚款柞.计算辊科掌 1990,3
【习嗣捷篝.较件工程环境的曩廊鲢型夏其应用,计算机研究与发晨 I990.
f回 蛐∞ B Eliot篝。走向基于知识的景靛工厂:目曩与实现.
维普资讯
第 7卷 第 2期 张正铀 :关于软件工厂 的思考 9
Ponderation on Software M anufacturer
Zhang Zhengyou
(Science and Technology Commission Guanex/)
Abstract Software production is nol good enough to satisfy the rapid increasing of us
requirement due to some feas0Ⅱ on design ideology,methodology and software safety.
SoRware crisis is aggravating.
An efficient way of soRware development has be en more urgent and studied actively since
1960s,The idea of software manufacturing originates from the hardware manufacturing.A
software manufactttrer is an organization which malf3~ software production standardization
and socialization and prod uces software in batches according to user requirement.The re—
sponsibilities of software manufacturer should be software developing.prod ucing.testing,
maintainning and extending.The prod uction of software manufacturer must satisfy various dif-
ferent requirements,sc emphasing on software flexibility.Software manufacturer dcerca.ses the
cost and time of prod ucing software and is Inorc convenient for uscr.
A software manufacturer has a good future.W e should pay close attention and muc h cf-
f0rt c0 it.
维普资讯