软件工程和软件工艺 软件工程与工业软件工程的区别


软件工程和软件工艺 软件工程与工业软件工程的区别

文章插图

软件工程和软件工艺 软件工程与工业软件工程的区别

文章插图
软件工程是将工程化的方法应用到软件研发中 。软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来 。
而核心的工程学思想又是什么呢?
如果从系统工程学来讲即任何事物的发展都有规可循,事物发展经历一个特定的生命周期过程,从最初的概念构思,到设计,到生产最终形成最终的产品 。即事物发展有特定的阶段和过程,相互之间还相互制约和影响,最终形成我们期望的产品 。对应到软件研发,即我们常说的软件生命周期模型 。
核心的工程学思想仅此而已,而随着软件研发和管理进步,发现仅仅有工程学的思想并不能高质高效的研发出我们需要的产品 , 因此在此基础上融入了管理学知识和支撑质量管理思想 。如果对应到CMMI即是项目管理过程域和支撑保障过程域 。而CMMI相对于CMM更加强调了IPPD集成化产品研发的思想 。
软件工程和软件工艺 软件工程与工业软件工程的区别

文章插图
软件工程兴起是为了解决软件危机的问题,针对大规模复杂软件的研发,针对高精度和高质量的软件研发 。而针对大型软件任何一个人都不可能成为各方面的专家 , 产业化必然趋势就是更加喜欢的分工 。但是分工后带来的是更多的协作和过程,因此为了保证软件研发成功和质量,需要对所有的控制环节都进行控制 , 需要将软件周期阶段划分的足够细化,同时进度,成本相关问题重要性则进一步弱化 。
工程学思想要的就是严谨 。希望将软件开发过程按部就班的流水线化,变得任何一个步骤或动作都有章可循,都可以严谨和量化定义 。但是现实往往并非如此,软件开发的主体是人而非简单的机器 , 这就导致了软件过程本身很难做到完全的标准化和量化可控 。
软件工程和软件工艺 软件工程与工业软件工程的区别

文章插图
正是这个原因逐步出现了软件工艺的概念 。
那我们再看看工艺本身的定义,工艺(Craft)是劳动者利用生产工具对各种原材料、半成品进行增值加工或处理,最终使之成为制成品的方法与过程 。
制定工艺的原则是:技术上的先进和经济上的合理 。由于不同的工厂的设备生产能力、精度以及工人熟练程度等因素都大不相同 , 所以对于同一种产品而言,不同的工厂制定的工艺可能是不同的;甚至同一个工厂在不同的时期做的工艺也可能不同 。可见,就某一产品而言,工艺并不是唯一的,而且没有好坏之分 。这种不确定性和不唯一性 , 和现代工业的其他元素有较大的不同,反而类似艺术 。
而软件工艺思想的提出,其核心是在强调不是人人都在做大型复杂和高精度的软件 , 重过程有其适用场景也有其不适用的场景 。其二,软件开发的核心是人,人不是机器,人的思维和主观能动性对软件开发的成败仍然作用巨大;其三 , 小作坊也可以产生赏心悦目的产品,软件除了科学还有艺术 。
软件是一个复合体 , 应该是科学和艺术的结合,工程学和工艺学的结合 。
在生产管理中我们可以看到,我们可以用工程学的思想设计和定义我们的生产线,但是我们却更加需要工艺学的思想设计生产工艺 , 以保证生产过程足够的灵活性,柔性和适应客户对产品的要求 。产品不是千篇一律,毫无生命力,产品也不是流水线一固定就一成不变,而引入工艺学正是将僵化的生产线融入了更多的成本性 , 经济学,适用性,人员技能等各方面的情况考虑和综合评估 。

相关经验推荐