考试终于通过了,3月份入学

 

下面是我的论文:

软件工程是什么?通俗的说,软件工程就是怎么做一件事。现在行业里对这个名词讨论的很热烈,尤其在中国这个软件业不是很发达的国家。有人说:“是不是大项目才需要软件工程呢?”,我的见解是:项目不论大小,都要有软件工程。

 

     从“软件工程”这个名词来看,“软件工程”属于工程的一种,也是规范化实施工程的方法。根据附录中引用12的定义,可以看出软件工程所包含内容的广度之多了。既然它也是工程分类的一种,只不过属于软件学科的,这必然有和其他学科的不同的特性。由于有很多工作经验了,因此,有很多疑问产生了:“我们为什么要软件工程?软件工程和个人能力的提高有必然联系吗? 软件工程化需要"全能"人才吗? 软件业的高科技有多高? 我们真的需要软件工程吗?”。

 

     首先谈下“我们为什么要软件工程?”。在当今软件世界,软件规模越来越大,小作坊式的开发模式已远远不能应付庞大软件的开发,因此,软件工程是为了实现"软件制造业"的社会化而生的,就像其它传统行业的发展一样,刚开始都是小规模,慢慢演变成工业化大生产,从而提高了劳动生产效率。这点从工业革命就可得到佐证。结论是:我们不但要软件工程,而且应该渗透到开发的方方面面,加以灵活运用。

 

     其次谈下“软件工程和个人能力的提高有必然联系吗?”。软件工程是门如何管理软件,如何将分工细化的学问,其专注点是在保证质量的前提下规模化生产和劳动效率的提高。软件开发人员通常很关心自己能力的提高,但个人能力的提高是多方面的,能力提高与否于自己知识的积累多少有关,和己为人办事的能力有关,当然,学习软件工程等于增加了自己的知识水平及管理方法水平,肯定会提高自己能力。因此,我的见解是:软件越工程化并不意味着其中成员个体能力水平的提高。

 

            说说“软件工程化需要全能人才吗?”,我的回答是肯定的。软件工程虽然制定了工业化的规范,但是管理软件声明周期的管理者最终是人,发明软件工程的同样是人,因此,知识面相对丰富的人会在这个金子塔的顶端起着领导的作用。毛泽东及其他思想家早就说过:改造世界的最终是人,人还是决定成败的关键因素。有了软件工程这门学问,懂它的人有了如何管理软件工业化生产的方法,才能最终实现其工业化。补充一点,软件工程化并不是希望在其控制下的所有人都是"全能"的人才,你必须在某种工程化的分析/设计/生产/质量保证"体系"下与他人合作完成你自己最应该完成工作。

 

            再谈谈“软件业的高科技有多高?”。这里,我举个汽车制造业的例子,曾几何时,仅仅在20年前,汽车制造业也是何等的"高科技",但现在如果你对汽车业有一些了解的话,你会认识到,汽车业是有高科技存在的,但都不是在我们看的见,摸的着的制造,甚至设计环节,而是一些基础研究!这都是拜工程化所赐!似乎在某些方面,软件业的未来也可以此为鉴。因此,我认为基础研究是必不可少的,软件工程只是提供了管理方法而已。

 

            最后讨论下结论性的问题“我们真的需要软件工程吗?“,答案无疑是肯定的。 有的人说了:“我的项目很小,就一两个人干,不需要什么软件工程这么大的概念。”这种观点我认为是错误的。软件行业中项目形态可能多样,有大有小,但是不都需要去管理吗?可以想象,一个没有管理的项目如何能成功呢,那不成了无政府主义了?这点同其他行业类似,不同形态可能选择不同的过程、方法、工艺,从而衍生出不同的软件工程方法。我们身处软件行业,这里面有多种力量起作用,关注点各不同。比如每个从业者,最关心的是个人能力、待遇,公司最关注的是效率、效益、核心竞争力,资本最关心的是投资回报。总而言之,软件工程也是保质保量生产软件必不可少的管理手段,只有如此,软件业才能实现社会化,工业化大生产,才能"做大/作强",才能保持持续的发展,才能创造更多的就业机会,才能体现软件业对社会的价值。

附录:

 

1software engineering

 

 

   (SE) A systematic approach to the analysis,

 

   design, implementation and maintenance of software.  It

 

   often involves the use of CASE tools.  There are various

 

   models of the software life-cycle, and many methodologies

 

   for the different phases.

 

 

   ( 1994-11-03)

 

 

 

2software life-cycle

 

 

   The phases a software product goes through

 

   between when it is conceived and when it is no longer

 

   available for use.  The software life-cycle typically includes

 

   the following: requirements analysis, design,

 

   construction, testing (validation), installation, operation,

 

   maintenance, and retirement.

 

 

   The development process tends to run iteratively through these

 

   phases rather than linearly; several models (spiral, waterfall

 

   etc.) have been proposed to describe this process.

 

 

   Other processes associated with a software product are:

 

   quality assurance, marketing, sales and support.

 

 

   ( 1996-12-27)

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值