
1.3 软件工程在软件行业中的作用
软件工程是软件行业的一门工程管理科学,更是系统分析员和项目经理以上人员必备的知识体系,为了将我国的软件产业搞上去,使软件产业成为国民经济的支柱产业,使中国早日成为一个软件大国与软件强国,在软件界怎么强调软件工程也不过分。
【例1-3】 20世纪90年代初,有两个软件团队,一个较大(10多人),一个较小(6人),都在开发财务系统。
较大的那个团队,工作不规范,没有文档,没有评审,也没有团队协作精神,结果开发出来的产品可维护性差,没有打开市场,没有产生经济效益和社会效益,致使产品与团队最后同归于尽。
较小的那个团队,同舟共济,工作规范,有正规文档,有阶段评审,分工明确:一人负责原始凭证和输出报表的收集、归类和整理,这实际上是做需求分析;一人负责科目和数据字典(代码表),这实际上是做信息的标准化与规范化;一人负责记账凭证的录入和修改,这实际上是做数据库的设计和加载工作;一人负责日记账、明细账和总账之间的平衡与对账,这实际上是做数据处理;一人负责统计、报表和查询,这实际上是做数据输出工作;一人负责总体设计和项目管理,这就是项目经理的工作。他们工作进度虽然不快,但最后形成了产品,打开了市场,产生了经济效益和社会效益,并且发展成为一个大型IT企业,这6个人后来都成了业界精英。
造成这两个团队不同结果的原因是什么呢?一个根本原因,就是较大的团队没有软件工程知识和团队协作精神,较小的团队有一些软件工程知识和很强的团队协作精神。由此可见,软件工程知识背景和团队精神多么重要。实际上,团队精神是一种软件企业文化,软件企业文化属于软件过程管理的范畴,软件过程管理是软件工程研究的四大内容之一。
因为软件工程来自于软件行业,又服务于软件行业,所以下面主要是讨论它在软件行业中的作用。
从历史上讲,软件工程的作用,是为了克服20世纪60年代出现的软件危机。
从当前来讲,软件工程的作用,就是告诉人们怎样去开发软件和管理软件。具体地讲,它表现在与软件开发和管理有关的人员和过程上。为了说明这个问题,首先,来分析软件行业的人才结构,看看这些人员的工作与软件工程有什么关系。
一般来说,软件行业的专业人才由下列几个层次组成。
(1)高层管理人员。他们应具备的基本条件是:软件专业宏观知识、软件工程管理知识,加上商业与资本运作知识。他们要用软件工程的理论和方法,来管理整个公司的软件业务。
(2)中层项目经理和软件工程师。他们应具备的基本条件是:系统分析知识、系统设计知识,加上项目管理知识。他们要用软件工程的理论和方法,来管理项目组的软件开发。他们的个人奋斗目标是软件管理专家、分析设计专家、开发技术专家,他们是软件工程的实践者。
(3)软件蓝领工人。他们应具备的基本条件是:掌握阅读文档的技能、程序设计的技巧,加上软件测试的知识。他们要用软件工程的理论和方法,来实现软件项目的软件功能、性能、接口、界面。
(4)软件营销人员。他们应具备的基本条件是:营销知识、售前知识,加上软件工程基本知识。他们要用软件工程的基本思路,来与客户进行沟通,以赢得客户的信任。
(5)软件实施和维护人员。他们应具备的基本条件是:软件客户化及安装、运行、维修技术。他们要用软件工程的基本方法,来实现软件功能、性能与接口的实施和维护。
(6)软件售前人员。他们是软件公司的产品形象代表,其奋斗目标是:既要成为某个行业领域的产品专家,又要成为该产品的实现顾问。只有这样,他们才能看懂招标书、写好投标书、讲好投标书。在制作和宣讲投标书的过程中,有许多与软件工程相关的知识和内容,如项目开发方法、开发工具、开发环境、运行环境、管理方法、质量和进度控制方法,只有把这些方法写清讲透,用户才能相信认可,投标才有成功把握。这些知识和内容,离不开软件工程知识的学习。
在以上6 种人员中,软件工程这门课,是前三种人员的必修课。对后三种人员,若想在工作中寻求更大的发展空间,提升自己的知识结构和工作层次,也十分需要掌握软件工程的基本知识。当然,对于不同岗位,知识结构要求有所不同,侧重点也不同。但是,只要在软件行业工作,就会自觉或不自觉地参与软件岗位竞争,就必须重视软件工程,学好软件工程,用好软件工程,不断地将自己的实践经验上升到软件工程的理论与方法,又不断地用软件工程的理论与方法指导自己的实践活动,使自己不断地得到升华和发展,这就是软件工程的作用。
从软件项目团队来讲,软件工程的作用在于:在规定的时间内,按照规定的成本,完成预期质量目标(软件的功能、性能和接口达到需求报告标准)的软件。
从软件企业本身来讲,软件工程的作用在于:持续地规范软件开发过程和软件管理过程,不断地优化软件组织的个人素质和集体素质,从而逐渐增强软件企业的市场竞争实力。
从软件大国与强国来讲,软件工程的作用在于:它在一个国家的计算机界及软件界的普及与推广,可以使这个国家变为一个软件大国,进而变为一个软件强国。
由于软件工程的作用越来越大,它的地位也越来越高。以前,软件工程在高校只是一门课程。现在,它作为一个学科体系,设立了软件工程专业和软件工程学士、硕士、博士学位。