带有真实设计文档的开源项目

时间:2009-12-28 17:05:17

标签: open-source documentation

您可以在INTERNET中找到许多开源项目(例如Linux,开放式办公室......)

但我没有找到任何包含完整,优秀且 REAL 文档的开源项目。

我不仅仅意味着源文档。我的意思是,收集客户需求,设计模式和所有文书工作。

亲切的问候

3 个答案:

答案 0 :(得分:12)

为什么我们有需求文件和设计文件?要达成双方之间的协议,一方需要某些软件,另一方负责制作软件。该文档很有用,因为它有助于双方共同合作,有效地制作合适的软件。

有时在开源软件中你可以找到那种关系。在这种情况下,您有时可以找到预先设计的文档。如果您想为Python编程语言添加一个功能,您必须编写一个Python Enhancement Proposal并获得批准,以确保您正在实现的内容是Python维护者愿意采用的内容。您可以在this page of OpenSolaris documentation中找到许多设计文档的链接;我猜这里的“客户”是Sun营销。我最近为其他人实现的一些开源软件设计了一个API,并为此预先设置了I wrote a specification

但是很多开源开发遵循完全不同的模型,其中一个或多个以下因素适用:

  • 工作单元是一个功能或错误修复。通常在错误跟踪系统中,您可以找到一个段落的需求文档,如果您想以这种方式来考虑它们。较小的工作单元实际上是一个很大的优势;闭源开发往往不能遵循这样的模型,因为交易成本(建立信任,找出所需要的东西,就范围和价格达成一致等)太高了。

  • 开发人员正在为自己开发软件。如果您知道自己想要什么,那么编写正式的设计文档可能无法获得回报。 (你可能会在白板上写几个曲线。)

  • 该项目最初并不打算广泛使用。如果代码将在一小时内在您的计算机上运行并完成其工作,那么单独的设计文档将如何?救命?如果它随着时间的推移逐渐变成其他人可以使用的东西,那么处理文档应该在什么时候进入图片?

  • 有一份设计文件,但没有发布。请记住,这些文件的目的是帮助您有效地制作合适的软件。一旦完成,文档就不是非常有用了。 (另外:开源软件通常根据公司的合同编写。虽然完成的代码是公开的,但流程文档可能被明确或隐含地视为机密。)

  • 开发人员不愿意做前期设计。我倾向于认为这太糟糕了,但唉,这是一个促成因素。

    < / LI>

有时,实施和验证后,会记录软件。以下是the GCC manual描述其内部结构的一部分。这是关于Mozilla's JavaScript engine的一个。如果您感兴趣的是某个特定项目,则很容易找到示例。使用Google搜索linux kernel design找到more free, detailed documentation

答案 1 :(得分:3)

开源项目通常从痒到开始,而不像专有应用程序那样开始针对富有的潜在客户(客户要求)。设计模式与文档无关。它只是样板设计。至于文书工作,你会把这听起来像一件“好事”。 :)

有一些开源项目在实施前提前详细设计。想到的一个快速的是bzr DVCS。文档可用Here。 Martin Pool在开始工作之前花了很长时间记录它。

答案 2 :(得分:1)

看看jHotDraw的早期版本。这是a.o.的HotDraw框架的java版本。 Erich Gamma(GoF)为他的模式语言工作而开发。

您不太可能找到任何包含完整和最新文档的项目(开源或封闭源代码),包括依赖关系图。您可以找到一些非常小的构建用于教育目的。对于法律强制要求的系统,文件的实际质量通常很低,因为它们不是为作者或信息的消费者带来任何实际利益而只是为了承担法律责任。

在开源项目中,很有可能只编写直接使用的文档,因为它们具有非常好的工作优先级排序过程。在移交工作时需要进行沟通。文档可以提供。但在大多数开源项目中,人们都希望某个功能也成为该功能的实现者。在那种情况下,几乎不需要太多文档。 开源项目需要概述文档,描述工作标准,使用的设计模式以及可以帮助新贡献者加快速度的所有内容。

如果您想真正了解正确管理依赖关系的难度,请查看:

  

管理设计数据:CAD框架,配置管理和产品数据管理的五个方面   van den Hamer,P。; Lepoeter,K。   IEEE会议记录   第84卷,第1期,1996年1月页数:42 - 56   数字对象标识符10.1109 / 5.476025