工程管理
会员登陆可自行发布信息
首页资讯供应求购招商招聘展会社区
长期信息合作请联系:QQ66821730
机电之家工程首页 ---->工程管理工程技术工程案例工程论文 工程招聘 ┊ 行业培训资料下载
应急预案
我 要 找
标题 内容 作者
工程管理技术资料订阅工程管理资料信息
电工技术资料 您的位置: 机电之家-->工程管理资料栏目首页-> 工程论文 -> 软件工程论文 --> 软件开发是工程吗?
阅读工程管理资料相关资料
软件开发是工程吗?
本文作者 未知 摘自 机电之家

有人说编程序是一门艺术,也有人说做软件项目是一个工程,那么软件到底是属于艺术还是工程呢?其实更专业点的说法应该是问,软件产业到底属于技术密集型还是劳动密集型?我认为,有的软件项目具有劳动密集型的特点,但更多的项目是属于技术密集型。

  先来看工程,工程的第一个特点是可预见性。也就是说,在工程还没有开始以前,已经在人们心目中有了一个具体的形象和标准,工程的目标则是去实现这个已经被设计好的东西。我们知道建筑施是工队典型的劳动密集型产业,施工队按照设计好的图纸施工(用户是房产商),按照制订好的标准验收,这个标准可以定得非常细致,每堵墙,每道梁,每扇窗都可以细微到毫米。而技术密集型的特点则是不可预见性,比如达芬奇在画蒙娜丽莎以前,绝对没有人告诉他眼睛应该画多大,头发应该画多长。

  软件粗看起来很类似做房子,前期用户提需求,建立软件规格标准,然后可以根据软件规格来做。但很少有软件项目最后做出来的样子是完全和当初写的规格说明书上一模一样的。大多数用户在开发过程中或使用过程中会新提出很多更改的要求,甚至把软件改得面目全非。这是软件工程学很不愿意面对的一种事实,因为工程学的理论基础是目标的可清晰预见性,而在工程中发生不可预见的变化成本非常巨大。因此传统的软件工程倡导前期做大量细致的需求和分析工作,企图减少中途发生变化的可能。

  而敏捷开发则是承认软件的不可预见性,倡导努力提高应对变化的能力来降低甚至消除变化所带来的成本。不过这是另外一个话题,以后可以专门介绍。

  工程的第二个特点是可控性高。几十年前做一栋房子的成本和现在比起来,除掉货币的升贬值并没有太大的变化。而较好施工队和较差的施工队比起来,成产率也不会相差很多。因此做栋房子的成本一般可以估算得很精确。但是软件不一样,现在一个人化一个月时间就可以用ASP.NET写一个电子商务网站,如果用十几年前的技术,比如汇编语言,投入几百个人都写不出来。所以软件的成本估算很难精确估算,如果几天前还计划要花好几个人几个月的时间来实现个比较复杂的功能,可能几天后就突然在某个网站上下载到了已经完美实现这个功能的源代码。而因为一个关键性的技术无法实现,导致整个项目全部被否决的情况也非常常见。

  工程的第三个特点是强调过程管理,忽略个人因素。施工队上的某个工人辞职了对整个工程的进展几乎没有什么影响,没有哪个人是关键人物,随便换谁都无所谓,哪怕全部人都走掉,完全重新换一批也没什么影响。但是软件不一样,如果核心的开发人员离职,对项目有非常严重的影响。如果整个开发团队走掉,对项目来说绝对是致命的。

  软件工程学一直把软件开发划分为两个过程,设计过程和实施过程。这是从传统工程行业照搬过来的,撰写软件规格文档看作是设计过程,由专门的系统分析人员来完成,类似建筑设计师,只需要写设计文档。而把编码看做是实施过程,由专门编码人员来完成,类似工程施工队。

软件工程设计师企图让软件设计文档像建筑物的设计图纸和说明一样,可以清晰描述软件的每一个具体的细节规格。其实这是一个可笑的悖论。如果文档有能力描述每个功能的最细节业务逻辑的需求的话,其实就是源代码(因为自然语言存在二义性,因此不存在描述严密逻辑的可能。而唯一能精确描述业务逻辑需求的就是源代码,所以描述精确的业务需求的过程其实就是写代码)。

  而建筑设计师的源代码就是标准设计严密的图纸,这个图纸是逻辑精确严密的,可以交给任何一个正规施工队来正确执行的,设计师和施工队可以不需要任何交流。同样,程序员写的代码也是逻辑精确严密的,可以交给任何一台电脑来正确执行的,程序员和电脑也不需要开会谈话。

  你能想象一个不会画标准建筑设计图纸的建筑设计师吗?同样,我也完全无法想象一个不会写代码的软件设计师。

  所以,建筑设计师在软件开发中就是程序员,而建筑施工队在软件开发中就是计算机。

  企图将程序员当做施工队来进行管理是不适合的,传统行业中对设计师的管理可能更加值得软件企业的学习。

  话说回来,软件工程学也发展了好多年,难道完全是错误的吗?没有一点应用价值吗?我的经验告诉我,存在必然是合理的。软件工程也有他的适用范围,但是我们要加以分析才能利用,首先要看对我们自己是否合适。

  我认为软件工程的确对某些项目是适合的,但是项目要满足以下四个特点:

  ◆ 软件的规格目标是非常清晰确定的,开发过程中几乎不会发生更改的。
  ◆ 实施过程中采用的所有技术都是非常熟悉的。
  ◆ 对稳定性的需求大大超过开发效率的。
  ◆ 可以不考虑成本的。

  有没有这样的项目?有,航天飞机的自动控制系统软件就是满足这样要求的工程。事实上,软件工程诞生的背景也正是美国军方的一些大型项目。写软件工程的一些大师级人物也正是这些项目的领导人。

  我们是不考虑事物的变化,采用刻舟求剑的方式来蒙蔽自己的双眼?还是仔细考察自己的特点,变通的选择真正适合自己的东西?

雪宇军品
Google
·工程项目经理培训
·欧姆龙PLC编程维护培训
·杭州西门子PLC应用培训
·模具加工设计培训
·变频器维修培训
·安全员认证培训
·电工培训


·招聘项目管理人员
·首席技术执行官
·自控工程师
·数控编程学徒
·总工程师


项目竞标

最新商业情报

代理
[代理] 寻求地区代理
[代理] 电工产品诚招代理..
采购
[采购] 电动车控制器外壳
[采购] 高品质缓冲器
 软件开发是工程吗?相关资料
  • 重庆轻轨盖梁锚箱支座施工技术
  • R=P×C法评价水下盾构隧道施工风险
  • 上海城市交通隧道盾构施工技术综述
  • M8线翔殷路车站大型端头井施工技术
  • 明珠线二期宜山路车站标准段基坑施工技术
  • 含氰基高性能聚芳醚材料的合成与表征
  • 型钢混凝土结构抗震性态水平和容许变形值的研究
  • 纳米CeO2/Zn金属基复合材料在锌镀层中的应用
  • 高级项目管理之量化管理
  • 浅谈项目管理过程中的水平沟通
  • ⊕这地方投资政策最优
    ⊕上千份机电行业研究报告
    ⊕机电项目招商啦
    ⊕谁把我买了?
    ⊕机电行业展会大全
    ⊕十万企业抢登行业网址大全
    机电之家会议开通
    ⊕每日最新求购信息
    ⊕电工技术资料为了谁?
    ⊕机电设备维修与管理
    机电之家(中国)工程管理技术资料中心资讯版权声明:
    1、凡注明“机电之家采编”字样的所有作品均系本网原创,版权归机电之家所有,任何媒体摘编或享用本作品,需注明文章来源。违反声明者,本网将追究其相关法律责任。
    2、凡本网注明“来源:XXX网(非本网)”的作品,均转载自其他媒体,目的在于传达更多资讯,本网不承担相关法律责任。

    3、如在资讯、广告等方面想与本网合作,请致电:0571-87774297。Email:donemi@hz.cn

    首页
    首页
    合作网站:
    | 中国机电网机电之家安全生产网 | 机电论文 | 机电论坛 | 机电设备贸易 | 机电网址大全 | 浙江机电网 | 陕西机电网 | 单片机技术网 |
    电工园地 | 工程管理网 |环球会展网机电产品网 | 机电人才网 | 中国工控网 | 五金工具网 | 安全生产网 | 商业情报站 | 图纸资料下载 |
    友情连接:
    | 中国机电网 |中国工控网 | 行业培训网 | 中国工程机械网 | 机电一体化网 | 行业下载网 | PLC技术网 | 变频器技术网 |
    关于我们 | 联系我们 | 广告联系 | 付款方式 | 使用帮助 | 工程管理网 | 会员助手 | 友情链接
    电话:0571-87774297(杭州) 传真:0571-87774298(杭州)点击这里给我发消息66821730(技术) 点击这里给我发消息58733127(审核)
    机电之家 工程管理网所共享的
    工程管理,合同与档案管理,质量与成本管理,进度管理,风险管理,施工与现场管理,工程监理,
    项目管理知识,竣工验收管理,工程技术,工程施工方案,施工工艺流程,施工技术方法,工程施工设计,工程案例,
    成功工程案例,失败工程案例,工程论文,软件工程论文,工程项目管理论文,工程造价论文,工程材料论文工程,
    监理论文,工业工程论文,等都是来自会员发表或 网上收集发表。如果有任何侵犯您权益的地方,
    请联系我们,我们将马上进行处理。
    企业登陆可自行免费发布资料,本站代发布邮箱为88ctv@163.com
    Copyright 2007 diangong.jdzj.com Inc All Rights Reserved.工程管理网
    技术支持:杭州滨兴科技有限公司 mailto:88ctv@163.com
    免费发布信息主办:浙江-杭州-工程管理网网络运营部安全生产