开源软件的开发是如何进行的?

作者&投稿:狐弦 (若有异议请与网页底部的电邮联系)
典型的开源软件通常是由一个人开始创作的,所有的规划跟思路都在一个人的脑海中,当这个软件做到差不多能用的时候,换句话说就是能推出 0.1 版本时,通常会在一些公开场合发布之。 如果这个软件在当前这个状态下非常吸引人,那么这个时候就可能会有感兴趣的用户,用户之间会有传播,有了足够多的用户,就必然会有一部分具有开发能力的用户,他们可能从改进某个功能或者解决某个 bug 开始,慢慢走进或者融入这个开发团队。——而这个时候,这个软件相关的团队和社区就开始建立与壮大了。 下面来回答一些问题: 怎么分配任务。开源软件不存在分配任务一说,参与者凭的是兴趣跟信念以及自己的需求。通常来说,一个参与者)可能会根据自己的兴趣去进行修改,或者根据自己的需求,当一个参与者对某个领域或者模块特别熟悉时,可能会被安排负责解决某个模块中报告的 bug,仅此而已,所以通常 bug 可能被分配,但功能很少被分配,全凭自己的兴趣。 如果你是项目发起人,要认识到其他开发者是来满足开发者自己需要的,而不是来帮你做事的,他们对你没有义务。这种需求有各种层次,例如社会尊重需求跟自我实现需求属于较高层次,但最基本的可能只是因为他们对某个环节感兴趣以及需要某个功能被改进为符合自己需求,因而,功能性任务一般是由每个开发者自发产生,而非被分派。

网站开发和用开源程序的区别是什么~

这二者并不是孤立的无关的两个东西,而是相辅相成互相关联:
网站开发,是一个大范围,可以说,能做出网站来,无论什么方法,都可以叫做网站开发,就像房地产开发,是不会管用什么方法用什么工具开发的。
网站开发是工作范围,而开源程序,是工一种具的。网站开发中可以用到的利器,这种程序一般都是开发者做好之后,愿意公开与众,愿意大家一起共同发展,完善程序。
网站开发,可以用到开源程序,或者用不开源的程序。
开源程序可以拿来做网站开发,也可以做研究分析,或者参考学习。
所以二者相辅相成。

开源
关于开放源代码的定义(1.7版)

开放源代码并不仅仅意味着对源代码的访问权。开放源代码软件的发布条款必须满足以下条件:

1. 自由地再发布

如果被发布的软件是由不同来源的程序组成的,许可证不得限制任何当事人或组织(party)销售或赠送作为被发布软件成分之一的开放源码软件。

许可证不得从此项销售中索取使用费或其它任何费用。(理由)

2. 源代码

程序必须包括源代码,必须允许以源代码方式发布、还必须允许以编译后的形式发布。如果产品的某个部分没有与源代码一同发布,那么必须提供通行的、不需要支付合理范围之外的任何费用的手段以获得源代码---从网络上免费下载是一种可取的方式。源代码必须是程序员对其进行修改的最佳形式。故意地使源代码变得含混晦涩是不允许的。也不允许给出预处理器或翻译器处理的中间结果。(理由)

3. 派生作品

许可证必须允许修改软件和派生软件,并且必须允许它们按照原软件的许可证的条款进行发布。(理由)

4. 作者的源代码的完整性

只有在许可证允许与源代码一同发布"补丁文件"(该"补丁文件"以在创建时对程序进行修改为目的)时,许可证才能限制对修改形式的源代码的发布。许可证必须明确地允许发布由修改后的源代码生成的程序。许可证可以要求派生的作品采用不同的名称或不同的版本号以区别于原来的软件。(理由)

5. 不得歧视任何个人或团体

许可证不得歧视任何个人或者由多人组成的团体。(理由)

6. 不得歧视任何应用领域(fields of endeavor)

许可证不得限制任何人把程序应用于任何领域。例如,不得规定程序不能应用于商业领域或基因研究领域。(理由)

7. 许可证的发布

与程序有关的权利必须适用于该程序的任何使用者,并且程序的使用者也不需要为了使用该程序而获得其它许可证的许可。(理由)

8. 许可证不能针对于一个产品

与程序有关的权利不能由该程序是否作为某个软件产品的一部分来决定。如果程序从那个发布中被抽出来,并且按照程序的许可证的条款进行使用和发布,那么得到该程序的当事人或组织将获得与得到原程序的使用者相同的权利。(理由)

9. 许可证不能影响其它软件

许可证不得向与采用它的软件一同发布的其它软件提出任何限制。例如,许可证不能坚持要求在同一媒体上发布的其它程序都是开放源代码软件。(理由)

Conformance

(本节不是开放源代码定义的一个部分)

我们认为本开放源代码定义涵盖了由绝大多数软件团体使用的术语"开放源代码"的最初含义和当前含义。然而,该术语被广泛地应用,并且它的含义变得不精确了。OSI Certified标志是某个软件发布许可证是否服从开放源代码定义的OST认证方式。一般的术语"开放源代码"并不提供这种担保,但我们仍然鼓励使用" 开放源代码"这一术语以表明它符合"开放源代码定义"。关于OSI Certified标志的信息,以及已经通过了OSI Certified、符合"开放源代码定义"的许可证,请参见OSI Certified标志与纲要。

开放源代码定义之原理

给出开放源代码的定义的目的是:把我们所确信的、由软件开发团体所公认的"开放源代码"的含义作为一组具体的准则写下来---该准则确保按照开放源代码许可证发布的软件可以得到与其它软件同样认真的评审、使软件可以不断地得到改良和遴选,从而提供非开放软件所难以提供的可靠性与能力。

为了使此项工作持续发展,我们必须抵制人们为了短期利益而中止为软件开发做出贡献。这意味着,许可证的条款必须防止人们藏匿(lock up)源代码从而导致只有很少的人才能够阅读和修改它。

当软件的开发者按照由OSI认证的许可证发布他们的软件时,他们可以在软件中使用"OSI Certified"标志。这种认证标志告知用户,该软件所采用的许可证符合开放源代码定义。关于我们的认证标志的更多信息及其纲要,请参见OSI Certified标志与纲要。

1. 自由地再发布

通过强制要求许可证允许自由地再发布,我们抵制了任何为了获得少量短期销售金额而放弃长期效益的诱惑。如果我们不这样做,就会有很多压力迫使合作者放弃承诺。

软件开发流程是什么?
答:首先,开发者需要对软件系统进行概要设计,即系统设计。概要设计需要对软件系统的设计进行考虑,包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,为软件的详细设计提供基础。[2] 详细设计 在概要设计的基础上,开发者需要进行软件系统的详细设计。在详细设计中...

如何开发软件程序
答:4.测试软件程序:经过初步开发的软件程序需要进行测试,在不同的环境中测试软件程序的各种功能和性能表现。5.修改程序代码:根据测试结果,对软件程序进行必要的修改和优化。6.发布软件程序:经过测试和修改后,将软件程序发布到用户手中,提供用户和使用的服务。7.维护和更新软件程序:不断跟进用户反馈和市...

开源软件的开发是如何进行的?
答:开源软件不存在分配任务一说,参与者凭的是兴趣跟信念以及自己的需求。通常来说,一个参与者)可能会根据自己的兴趣去进行修改,或者根据自己的需求,当一个参与者对某个领域或者模块特别熟悉时,可能会被安排负责解决某个模块中报告的 bug,仅此而已,所以通常 bug 可能被分配,但功能很少被分配,全凭自...

软件开发的流程是怎样的
答:软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程。软件一般是用某种程序设计语言来实现的。通常采用软件开发工具可以进行开发。软件分为系统软件和应用软件,并不只是包括可以在计算机上运行的程序,与这些程序相关的文件一般也被认为是软件的一部分。软件设计思路和方法的一般过程,包括设计...

软件开发步骤包括哪些过程?
答:软件开发一般分为五个阶段:问题的定义及规划、需求分析、软件设计、程序编码、软件测试。

请介绍软件是如何开发出来的?
答:软件开发是一个系统工程,包括需求捕获、需求分析、设计、实现和测试。软件通常是用一种编程语言来实现的,通常可以使用软件开发工具来开发。软件分为系统软件和应用软件。它不仅包括可以在计算机上运行的程序。软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块...

软件开发的一般流程是什么?
答:软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程。软件一般是用某种程序设计语言来实现的。通常采用软件开发工具可以进行开发。软件分为系统软件和应用软件,并不只是包括可以在计算机上运行的程序,与这些程序相关的文件一般...

软件是如何开发出来的?
答:1、软件开发的第一个流程是项目开发目的分析与确定,主要是在软件开发商将开发项目确定下来之后,需要与需求方进行讨论,确定需求方对于软件开发的需要实现目标及其具体需要的功能等等,并确定是否可达成;2、接下来就是需求分析,这个步骤也是为软件开发的正常进行确定具体思路的阶段。在确定软件开发可进行后...

软件开发的流程是什么
答:B 开发人员:熟悉针对软件开发的编程工具,并具有丰富的编程经验,负责完成不同层与模块的编程工作。C 业务需求人员:熟悉业务工作流程,有丰富的业务经验。D 文档整理人员:随时整理系统开发过程中相关的技术文档。E 测试工程师:专门进行代码的测试工作,并且计划和执行源代码复审,负责有关返工的任何反馈...

如何开发一款app软件
答:按照以下步骤可以开发app:1、APP的idea形成;2、那些idea来进行APP的主要功能设计以及大概界面构思和设计;3、大功能模块代码编写以及大概的界面模块编写;4、把大概的界面和功能连接起来;5、进行app测试;6、上传至应用商店。