程序代码一般情况下有两种形式:目标代码和源代码。人们根据开发公司对源代码的“态度”(是否公开)将软件分为商业软件和开源软件。现在我们来看看各种软件的开发模式有何不同。 ○1商业软件:商业软件顾名思义即用于商业贸易的软件,这类软件通常只提供可运行的目标代码。软件开发商会保留对软件的著作权(著作权中最重要的一项就是发行权)。通过赋予用户一部分权利,用户在该权限范围内使用软件。不过商业软件一般会提供包括版本更新在内的技术服务。 1.大企业集中开发:由于商业软件一般具有快速、全能等特性(这样才能保证较好的占有市场),并且还要在不同时期内提供对原软件的更新服务,所以开发商业软件的公司会有一个自己的开发团队。并且该开发团队要具有较强的科研能力以及创新能力,这种公司也具有较强的实力。 2.合作开发:不同开发商为了保证市场占有率,不被淘汰。可以和其他公司联合,集中优秀开发人员,先进技术,充足的资金,开发出领先水平的软件或理念(这个尤其重要)。这时参与开发的公司可以共同享有该软件的著作权。 可以看出商业软件的开发模式中知识一种简单的“开发商开发—用户使用”这样一个简单的关系,软件开发者和世纪使用者不存在任何“相互作用”但是开发公司有自己完整的开发体系,各个部门之间分工明确,后续的技术服务一般也保障的比较好。下面就来看看开源软件的开发模式。 ○2开源软件:开源软件即开放源代码的软件,但并不是说开源软件并不存在版权问题。其实开源软件也是受版权保护的,不过它赋予了用户更多的权利,同时该用户也有义务将自己开发出的软件赋予下一层用户相同的权利。根据这些特点开源软件的开发模式有: 1.散户开发:(类似于一种集思广益的形式)因为开源软件的源代码是开放的,任何编程爱好者可以发现原软件的漏洞,加以更正;或是添加自己特殊的功能后再发行。这样大量的随即更新事件就导致了开源软件的走向。不过这种开发模式随即性强,没有团队配合,开发周期也值得怀疑。 2.企业开发:某些企业为了加强自己的知名度,会对自己非主打的产品实施开源,这种企业一般都有自己的开发团队,产品相对较专业,文档说明等方面比较完善。 3.科研单位开发:一些著名高校,拥有优秀的导师、聪明的学生、充足的资金,是一个理想的开发团队。往往会提出一些高效的算法或理念。 4.委托开发:一些个人或企业或是出于对开源运动的支持,或是出于自身的一些商业目的,会委托一些软件开发公司,开发开源软件。 我们可以看出开源软件的开发过程中软件开发者和世纪使用者先例紧密,有时开发者即使用者,使用者又会成为开发者,但是由于没有商业公司那样庞大的开发规模,开发出的软件一般弊病会较多,且没有完善的文档、使用说明,后续的技术服务也是个问题。 ○3自由软件:自由软件是开源软件的一个子集,它的定义比开源软件更严格,上述的一些开发模式也适用于自由软件,故不再多述。

商业软件、开源软件与自由软件开发模式的区别相关推荐

  1. 开源软件和自由软件_自由和开源软件的经济学

    开源软件和自由软件 零边际成本 (Zero Marginal Cost) At the core of the financial aspects of Free and Open Source is ...

  2. 开源软件与自由软件的区别——个人体会

    如今,计算机开源软件项目如潮水般涌来,各个领域都有着出色的表现.这就让我对开源的含义产生了兴趣. 于是花了一些时间在网络上搜索相关的信息.在此过程中,还发现了与之相似的--自由软件的定义.不过国内很多 ...

  3. 如何选择Web APP与Native App原生开发模式的区别(转)

    APP开发模式通常分为Web APP与Native APP原生模式两种,这两种模式均各自有自己的优势,到底是采用Native App开发还是采用Web App开发一直是业界争论的焦点,但是随着HTML ...

  4. 如何选择Web APP与Native App原生开发模式的区别

    APP开发模式通常分为Web APP与Native APP原生模式两种,这两种模式均各自有自己的优势,到底是采用Native App开发还是采用Web App开发一直是业界争论的焦点,但是随着HTML ...

  5. 瀑布开发模式和敏捷开发模式的区别和思考

    瀑布开发模式: 瀑布开发模式有以下显著的特点: 1.严格把软件项目的开发分隔成各个开发阶段:需求分析,要件定义,基本设计,详细设计,编码,单体测试,结合测试,系统测试等. 使用里程碑的方式,严格定义了 ...

  6. 四种开发模式 得区别

    收藏 敏捷开发模式 敏捷开发模式是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力.它们的具体名称.理念.过程.术语都不尽相同,相对于" ...

  7. 瀑布式开发、迭代式开发、螺旋开发、敏捷开发四种开发模式的区别

    1.瀑布模型是由W.W.Royce在1970年最初提出的软件开发模型,瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求分析.设计.编码.集成.测试.维护的步骤顺序进行. 步骤成果作为衡量进度的 ...

  8. BDD与TDD开发模式的区别

    TDD:测试驱动开发(Test-Driven Development) 测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论.TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试 ...

  9. 软件协会发布开源软件与商业软件知识产权报告

        日前,中国软件行业协会发布了<有关开放源代码软件与商业软件知识产权的研究报告>(以下简称<研究报告>),明确提出"反对政府直接支持或干预任何形式的软件商业模式 ...

最新文章

  1. 51 nod 机器人走方格
  2. 小白入门学会将Eclipse中项目提交到github
  3. boost::uuid模块实现用窄存档测试序列化 uuid的测试程序
  4. Mysql的sql语句,Delete 中包含 not in
  5. php中pandans,Python地信专题 | 基于geopandas的空间数据分析-文件IO篇
  6. 鸟哥的linux私房菜简答题答案,《鸟哥的Linux私房菜》7章 Linux文件与目录管理 习题答案...
  7. SpringBoot约定大于配置的特性解读 SpringBoot快速入门
  8. iOS中 语音识别功能/语音转文字教程具体解释 韩俊强的博客
  9. Linux管理传世经典:Linux 系统管理技术手册(第二版) 中文高清版下载
  10. vue 生成PDF(A4标准PDF分页)
  11. C++中头文件iostream介绍
  12. 家谱制作软件如何成谱编修流程
  13. Leetcode(934)——最短的桥
  14. Springboot微信点餐系统——01项目设计以及初步环境搭建
  15. 什么是自然语言处理,自然语言处理能做什么,主要有哪些哪点?
  16. JavaScript执行顺序分析
  17. MERGE JOIN CARTESIAN
  18. 辐射探测 期末考试 考完后的recheck!oh,老baby,高纯锗要低温呀!!
  19. java网络编程技术有哪些_Java网络编程技术
  20. 中南大学实用测量数据处理实验

热门文章

  1. Windows系统安全登录日志分析工具logonTracer汉化修正版
  2. openssh离线升级8.8
  3. 李子的猜数游戏!(β版)
  4. 【MDPI】全球最大 OA 出版商旗下所有期刊被拉入黑名单,包括 98 本 SCI 期刊
  5. 解决com.netflix.client.ClientException: Load balancer does not have available server for client:XXXXX(
  6. 工业互联网 - SIS系统
  7. 计算机竞赛辅导培训计划,信息学奥赛培训计划.pdf
  8. 兰大计算机考试2020年5月在线考试答案,《计算机组成原理》兰大2020年9月在线考核试题题目及答案...
  9. uniapp开发微信小程序APPID的获取,微信开发者工具游客模式下,调用 wx.operateWXData 是受限的
  10. java字符串转数组遍历,深入分析