软件:产品和过程的统一(转)

产品和过程
如果过程很薄弱,则最终产品必将受到影响。 但是对分过程的过分依赖也是很危险的。
Margaret Davis[Dav95a]在多年前写的一篇简短的文章里对产品和过程的双重性进行了以下
评述:
大约每十年或五年,软件界都会对 “问题”重新定义 ,其重点由产品问题转向了过程问 [62
题。 因此 我们逐步采纳了结构化程序设计语言(产品)结构化分析方法(过程)和数据封
装(产品),到现在重点是卡内基 梅隆大学软件工程研究所提出的能力咸熟度模型(过程)
(随后逐步采纳面向对象方法和敏捷软件开发)。
钟摆的自然趟势是停留在两个极端的中点, 与之类似,软件界的关注点也不断地摆动,
当上一次摆动失败时 就会有新的力量加入 ,促使它摆向另一个方向 这些摆动是非常有害
的,因为它们可能从根本上改变了工作内容及工作方法,使软件工程实践人员陷入混乱 而
且这些摆动并没有解决问题, 只是把产品和过程分裂开来而不是作为辩证统一的一体,因此
注定要失败。
这种二象性在科学界早有先例,当某一个理论不能对观测到的相互矛盾的结果做出合理
解释时,就会出现二象性理论。由Louis de Broglie于20世纪20年代提出的光的波粒二象
性就是一个很好的例子。 我相信,我们对软件组成部分和开发过程的观测证明了软件具有过
程和产品的二象性 如果仅仅将软件看作一个过程或是一个产品 那就永远都不能正嘀地理
解软件,包括其背景、应用、意义和价值。
所有的人类活动都可以看成一个过程,我们每一个人都从这些活动中获得对自我价值的
认识, 这些活动所产生的结果可以被许多人反复地在不同的情况下使用 。 也就是说,我们是

从我们自己或是他人对我们产品的复用中得到满足的。
因此,将复用目标融入软件开发,这不仅潜在地增加了软件专业人员从工作中获得的满
足感 也增加了接受 “产品和过程二象性 ”这一观点的紧迫性 对于一个可复用的部件,如
果仅仅从产品或是仅仅从过程的角度考虑, 都不利于软件开发,这种片面的观点或者影响了
人们对产品的应用环境和应用方法的认识, 或者忽略了该产品还可以作为其他开发活动的输
入这一事实。 因此, 片面地强调某一方面的观点会极大地降低软件复用的可能性,也会大大
减少工作的成就感
正如从最终产品获得满足一样,人们在创造性的过程中得到了同样的(甚至更大的)成
就感。艺术家不仅仅对装裱好的画卷感到高兴,更在每一笔绘画的过程中享受乐趣:作家不
仅欣赏出版的书籍,更为每一个苦思得到的比喻而欣喜。一个具有创造性的专业软件人员也
应该从过程中获得满足,其程度不亚于最终的产品。产品和过程的二象性已经成为保留推动
软件工程不断进步的创造性人才的一个重要因素。

原文地址:https://www.cnblogs.com/hellowzl/p/11047794.html

时间: 2024-08-09 08:55:10

软件:产品和过程的统一(转)的相关文章

软件项目与过程管理第八周作业

内容:软件项目与过程管理课程内容总结 经过八周时间的学习,软件项目与过程管理课程已经逐渐接近了尾声.通过这八周的学习,我对软件项目与过程管理课程有了更深的理解. 一.关于团队项目. 团队项目是本次软件项目与过程管理课程中最重要的一部分.我们团队项目是作业管理系统.在项目开发的整个过程中,我们在项目经理的带领下,项目团队的每一个成员团结合作.相互沟通,团队成员之间相互学习彼此的优点和技术,在每个成员的共同努力下,基本完成了此次软件开发项目. 通过这次团队项目, 我的总结如下: 1.在项目的开发过程

产品研发管理(三):产品研发过程管理概述

概述 这是产品研发管理系列文章的第三篇:产品研发过程管理概述. 生产型企业通过企业研发生产过程,制造出产品,销售给客户,为其提供价值,从而赚取合理利润.软件企业作为生产型企业的一种,它区别于其他生产型企业的特点是它的产品是无形的. 除了传统的生产并将软件卖给客户的软件企业以外,现在出现很多运营型企业.比如:携程.淘宝等.他们不直接将软件卖给客户,而是使用软件为用户提供服务.这种企业里一般还是分为研发部门和运营部门.这种企业研发的产品的客户是自己的另外一个部门:运营部门. 研发生产过程的管理系统是

爱加密:揭秘手机吸费软件的“作案”过程

国内的手机应用商店.论坛较多,有相当多的商店.论坛只需要提交.填写下资料和描述后一点就可以完成上传,根本没有审核,如此宽松的机制,刚好给黑客制造了"作案"机会,他们通过精心设局,一步一步让手机用户落入吸费陷阱.下面,我们就跟随爱加密技术人员去了解一下手机吸费软件的"作案"过程. 吸费软件又是如何扣费的呢? 首先,这些披着"画皮"的应用被俺们误装到手机里后,会在手机的后台偷偷的运行,之后趁着"月黑风高"便开始了它们的行动,第一步

客户从有购买意图到购买产品的过程及相应的SEO策略

前段时间有朋友询问有关旅游网站和网店的SEO问题,所以我总结了一篇相关文章,希望对大家有所帮助.(例子用的是国外某旅店,为了方便阅读,改为了国内的旅店作为样例) SEO(搜索引擎优化)有 时被错误地认为是一项单一的.一次性的短跑项目,不过事实是,它可能更像场马拉松比赛.搜索用户很少通过第一次搜索就能到达你的网站.因此,SEO如果说 可以通过一次优化就能让用户搜索某些流行关键字(词)到达你的网站,那可能是在骗自己.我画了一个简单的用户从有购买意图到最后购买及评估的流程图来说明 这一过程. 在上面的

如何给一个完全不懂的非程序员解释复杂的、耗时的、易出错的软件开发的过程?

简评:相当有趣的一篇文章,教导你如何给非程序员讲清楚最难.最复杂的那些开发问题. 回答这个问题首先你应该解释一下如何泡一壶茶: 烧水 把茶叶放在锅里 当水烧开后,把它倒入锅里 等待 5 分钟 把茶倒进杯子里 喝 现在开始变得有趣了.你需要开始问他们这些问题: 烧水? 水来自哪里? 水壶在哪里呢? 你怎么把水弄到水壶里去呢 你怎么知道放了多少水 如果没有水 / 水壶 / 电怎么办? 如果你的填充传感器失败了怎么办? 如果你的沸腾传感器失败了? 把茶叶放在锅里? 锅在哪里,如果没有一个呢?我们应该在

【软件构造】第二章第二节 软件构造的过程、系统和工具

第二章第二节 软件构造的过程.系统和工具 Outline 广义的软件构造过程 编程 静态代码分析 动态代码分析 调试与测试 重构 狭义的软件构造过程 构造系统:经典BUILD场景 构造系统的组件 构造过程和构造描述 Java编译工具 子目标和结构变体 构造工具 Notes ## 广义的软件构造过程 [编程(Coding)] 开发语言:如Java.C.Python 使用IDE(集成开发工具)的优势(组成) 方便编写代码和管理文件(有代码编辑器,代码重构工具.文件和库(Library)管理工具) 能

软件项目与过程管理第七周作业

问题:关于文档修订方面内容的总结及本次项目中所编写的文档的重要性说明. 一.立项说明书 1.立项说明书能详细地说明项目的可交付成果和为提交这些可交付成果而必须开展的工作. 2.立项说明书是项目利害关系者对项目范围的共同理解,说明了项目的主要目标. 3.立项说明书能够使项目团队能够实施更详细的规划,在执行过程中指导项目团队的工作,并构成评价变更请求或增加的工作是否超出项目边界的基准. 4.立项说明书能够明确提出了哪些工作要做,哪些工作不要做,以及要做的水平,这决定了项目管理团队控制整个项目范围的好

软件开发的过程

一: 软件开发大爆炸模式的最大优点是 简单 分析:大爆炸模式的软件开发几乎没有计划,进度和正规的安排所有的精力都发在开发软件和编写代码上,几乎没有什么测试.而且在软件快速完成后的测试就是把软件的确定告诉顾客,并不可能从头在开始修改软件.从项目管理的角度来看,装备交付的软件会因为软件测试员的工作妨碍了交付. 二:  采用便携边修改的模式是如何得知软件发布的时间 采用这种方式的小组通常最初只有粗略的想法,接着进行一些简单的设计,然互开始漫长的来回编写,测试和修改缺陷的过程.等到觉得足够了,就发布产品

UI设计师产品构思过程需要有一个系统思维方向

在互联网的快速发展下,产品的视觉体验在用户体验当中占据越来越多的影响了,UI设计这个岗位也悄悄的从潜伏慢慢开始展示强势的一面了--一个高薪的岗位.但是在这个刚刚发展的UI设计岗位中,在没有系统成型的体系中,底蕴少的情况下,作为一个刚入行或者还没有入行但对UI设计向往的人,都会有一种迷茫的时段,不知道需要设计一个产品需要考虑什么,从何考虑起? 在UI设计过程中需要考虑有三个层面:第一个层面是:结构层面 :第二个层面是:细节层面:第三个层面是:心理层面 下面这张图会让你更加清晰了解到UI设计过程需要