`
canonical
  • 浏览: 367020 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[导入]OpenSource: 超越软件工程

阅读更多
    现在讲软件工程的, 所谈论的多半是项目工程, 即如何在有限的时间内配置使用有限的资源在单个项目中达到既定的目标. 传统上, 在这一领域基于预测和计划的瀑布方法曾经占据主流, 但是随着项目的日益复杂化, 各种基于演化(evolution)思想的工程方法在实证中逐渐发展起来. 在时空跨度更大的软件工程领域, 例如延展到软件的不同版本以及多个相似项目的工程中, 演化更是逐渐取得了无可置疑的主导地位. 但是, 从另一个方面说, 目前所有这些软件工程方法所推崇的演化实际上都是非常有限的, 它们通过迭代(iteration)所能够描述的演化过程都只是片断性的, 例如一个项目中的演化, 一个软件产品的演化, 最大的莫过于一整条软件产品线的演化. 所有这些演化过程都面临着一个天然的屏障: 商业公司.在公司内部, 知识或代码可以由开发人员携带到下一个项目, 或者从一个小组传播到另外一个小组, 在新的基础上继续演化的进程. 但是核心的知识或者代码一般只能通过商业交易传达到其他公司, 这是一条非常受限制的途径. 而一个单个公司所开发的软件包, 即使是平台级的产品, 如果只是内部使用, 受限于该公司所从事的业务领域, 其所面临的使用检验也是非常有限的. 而且出于经济上的原因, 单个公司往往无力支撑多个实现同样功能的解决方案, 因而它倾向于消灭软件中的多样性, 这有可能会进一步限制演化的进程. 
    开源(OpenSource)软件为软件演化创造了新的可能性.商业友好的开源软件可以被不同的公司自由的运用于不同的业务, 因而可以参与到不同的局部演化过程中. 在应用的过程中, 开源软件面临着巨大的重构压力(这往往是超越了应用最广泛的封闭源码软件包的), 有可能保持更快的演化速度. 而通过对开源软件的回馈, 对开源软件的改进可以传播到时空范围跨度巨大的软件开发过程中. 而且基于源码的开放性, 开发人员的知识交流也随之开放起来. 类比于Darwin进化论, 我们可以说开源驱动了整个软件业界的共同进化(co-evolution).
    多年前, Eric Raymond在著名的文章"大教堂和市集"中 http://263.aka.org.cn/Docs/c&b.html, 提出了开源的工程价值, 但其所关注的重点仍然只是单个软件如何在开源的模式下演化, 从今天的观点看来, 这篇战斗檄文已经显得有些局促了. 开源所造就的巨大演化空间远远超越了软件工程所能够提供的. 开源软件现在已经在商业开发领域站稳了脚跟,也渐渐超越了单个公司能够控制的范围. 可以说开源软件的发展是无可逆转的, 我们已经不会也不应该再回复到原先的封闭世界中.
分享到:
评论

相关推荐

    qt-opensource-windows

    opensource-windows-x86-winrt-msvc2015-5.8.0.exe 20-Jan-2017 12:54 1.2G Details qt-opensource-windows-x86-winrt-msvc2013-5.8.0.exe 20-Jan-2017 12:53 1.2G Details qt-opensource-windows-x86-msvc2015_64...

    开源:来自开源革命的声音Open Sources: Voices from the Open Source Revolution

    自由软件/开放源代码运动领导人的论文集,解释了为什么大多数Internet服务器都使用开放源技术来处理从操作系统到Web服务和电子邮件的所有内容。

    FastReport Open Source:.NET 的免费开源报告工具-开源

    FastReport Open Source是一款专为.NET Core和.NET Framework平台设计的免费开源报告生成工具。它提供了一个强大而灵活的解决方案,让开发者能够轻松地在应用程序中创建、编辑和展示各种类型的报告,无需依赖昂贵的...

    FastReport Open Source:NET的免费开源报告工具-开源

    1. **开源优势**:作为开源软件,FastReport Open Source具有透明度高、社区支持广泛的特点。用户可以自由查看和修改源代码,根据需求定制功能,同时也能从全球开发者的贡献中受益,不断优化和改进报告生成工具。 2...

    qt-everywhere-opensource-src-4.8.7.7z

    QT是著名的跨平台应用程序开发框架,它被广泛用于创建图形用户界面和其他软件。"qt-everywhere-opensource-src-4.8.7.7z" 是一个包含QT库...同时,通过研究源代码,开发者可以提升自己在C++和软件工程领域的专业技能。

    qt-windows-opensource

    qt-windows-opensource

    openSource:教程

    openSource 教程源码 admin_v1.0.0 vuex-tutorial-1 admin_v1.1.0 vuex-tutorial-2 admin_v1.2.0 vue-router-vuex-tutorial-1 admin_v1.3.0 vue-router-vuex-tutorial-2

    Open Source Software Notice.pdf

    开源软件(Open Source Software, OSS)是指源代码开放的软件,用户可以自由地使用、研究、修改和分发这些软件。 在部分内容中,提及了多个开源软件许可证和版权声明,这表明产品中包含的开源软件是根据相应权利...

    qt-opensource-linux-x64-5.9.0.run

    qt-opensource-linux-x64-5.9.0.run

    qt-opensource-windows-x86-msvc2012-5.6.3.exe

    qt-opensource-windows-x86-msvc2012-5.6.3 这个是在vs2012中的使用的qt 编绎时使用的命令: configure -prefix d:\win32-msvc2012 -platform win32-msvc2012 -opensource -confirm-license -nomake tests -nomake ...

    OPEN SOURCE GIS A Grass GIS Approach 3rd.part3.rar

    开软GIS软件GRASS教程的第三版(With this third edition of Open Source GIS: A GRASS GIS Approach, we enter the new era of GRASS6, the first release that includes substantial new code developed by the ...

    AUTOSAR OPEN SOURCE CODE

    综上所述,AUTOSAR OPEN SOURCE CODE是汽车软件开发中的一个重要资源,它提供了标准化的方法来处理汽车电子系统的复杂性,提高了开发效率,同时也确保了质量和安全性。通过学习和应用这些开源代码,开发者能够更好地...

    Open Source GIS: A GRASS GIS Approach

    - **Open Source GIS**: 指的是开源地理信息系统(Geographic Information System, GIS),这类系统是基于开源软件构建的,允许用户自由地访问、修改和分发GIS软件及其相关资源。 - **A GRASS GIS Approach**: GRASS...

    qt-opensource-windows-x86-vs2008-4.8.7

    qt-opensource-windows-x86-vs2008-4.8.7

    qt-opensource-linux-x64-5.4.1

    qt-opensource-linux-x64-5.4.1

    qt-opensource-windows-x86-5.13.2.exe

    qt-opensource-windows-x86-5.13.2.exe

    Open Source ECG Analysis Software Documentation

    ### 开源心电图分析软件概述 #### 一、引言 随着计算机技术的发展与进步,心电图(ECG)信号的计算机分析已经成为临床诊断中的常见操作。市场上已有的设备,例如患者监护仪、压力测试系统以及Holter分析系统等,...

    Qt qt-opensource-windows-x86-5.11.0安装包

    Qt qt-opensource-windows-x86-5.11.0安装包,适用于开发openCV、QtAndroid

    Code Reading The Open Source Perspective

    Code Reading The Open Source PerspectiveCode Reading The Open Source Perspective

Global site tag (gtag.js) - Google Analytics