7
votes

Projet Open Source avec une documentation de conception réelle

Vous pouvez trouver de nombreux projets open source sur Internet (tels que Linux, Open Office, ...)

Mais je n'ai trouvé aucun projet open source avec une documentation complète, bonne et réelle

Je ne veux pas dire une documentation source. Je veux dire, rassembler des exigences de costumes, des modèles de conception et tous les paperassures.

genre considère


2 commentaires

Je ne pense pas que vous allez trouver un projet open source qui possède toute la documentation de conception.


Je suis toujours surpris du nombre de programmeurs qui utilisent votre quand ils signifient que vous êtes :)


3 Réponses :


3
votes

Les projets Open Source commencent généralement à partir d'une démangeaison de gratter à la différence des applications propriétaires qui commencent à cibler un client potentiel riche (exigences du client). Les modèles de conception n'ont rien à voir avec la documentation. C'est juste la conception de la chaudron. En ce qui concerne la paperasse, vous faites ce sonner comme une "bonne chose". :)

Il existe des projets open source qui détaillent à l'avance avant la mise en œuvre. Un rapide qui vient à l'esprit est les DVC BZR. Les docs sont disponibles ici . Martin Pool a passé un bon temps en le documenter avant qu'il ne commence à travailler.


0 commentaires

12
votes

Pourquoi avons-nous des exigences de documents et de documents de conception? Pour marteler un accord entre deux parties, une personne qui veut certains logiciels, et une autre qui est chargée de le faire. Le document est utile car il aide les deux parties à travailler ensemble à rendre le bon logiciel efficacement.

Parfois dans un logiciel open source, vous pouvez trouver ce type de relation. Et dans de tels cas, vous pouvez parfois trouver des documents de conception initiaux. Si vous souhaitez ajouter une fonctionnalité à la langue de programmation Python, vous devez écrire un Proposition d'amélioration Python et obtenez-la approuvé, pour vous assurer que ce que vous mettez en œuvre est quelque chose que les responsables de Python sont disposés à prendre. Vous pouvez trouver de nombreux liens vers des documents de conception de Cette page de l'opensolaris Documentation ; Je suppose que le "client" ici est le marketing Sun. J'ai récemment conçu une API pour un logiciel open source que quelqu'un d'autre implémentée et J'ai écrit une spécification pour ça à l'avant.

Mais beaucoup de développement open source suit un modèle totalement différent, où un ou plusieurs des facteurs suivants s'applique:

  • L'unité de travail est une fonction unique ou une solution de bogue. souvent dans un système de suivi de bogues, vous pouvez trouver des documents d'exigences d'un paragraphe, si vous souhaitez y penser de cette façon. Les plus petites unités de travail sont en fait un avantage ; Le développement des sources fermées ne peut souvent pas suivre un tel modèle car les coûts de transaction (d'établir la confiance, déterminant ce qui est nécessaire, acceptation de la portée et du prix, etc.) sont trop élevés.

  • Les développeurs travaillent sur des logiciels pour eux-mêmes. Si vous savez ce que vous voulez, écrire un document de conception formel pourrait ne pas payer. (Vous pourriez écrire quelques gigues sur un tableau blanc à la place.)

  • Le projet n'est pas initialement destiné à voir une utilisation généralisée. Si le code va fonctionner et faire son travail sur votre machine dans une heure, comment un document de conception séparé aider? Si cela pousse au fil du temps à quelque chose que d'autres personnes puissent utiliser, à quel moment le processus doit traiter la documentation est entré dans l'image?

  • Il y avait un document de conception mais il n'a pas été publié. N'oubliez pas que ces documents ont pour but d'aider à rendre le bon logiciel efficacement. Une fois que cela est fait, les documents ne sont pas terriblement utiles. (En outre: le logiciel Open Source est souvent écrit sous contrat pour une entreprise. Alors que le code fini est public, la documentation de processus peut être explicitement ou implicitement considérée comme confidentielle.)

  • Les développeurs ne sont tout simplement pas disposés à faire la conception initiale. J'ai tendance à penser que cela est dommage, mais hélas, c'est un facteur contributif. < / li>

    Parfois, le logiciel est documenté après il est mis en œuvre et prouvé. Voici une partie de Le manuel de la GCC décrivant ses internes. Voici un à propos de Moteur JavaScript de Mozilla . Il est assez facile de trouver des exemples s'il y a un projet spécifique qui vous intéresse. GOOGLING Linux Kernel Design trouvé Plus de documentation détaillée .


1 commentaires

Je ne crois pas que le seul but est de formaliser l'accord entre les personnes qui demandent au logiciel et les personnes qui en font. Il empêche également les gens de le faire sur la même page. Le document de conception n'est pas un document simplement écrit à l'avant, mais cela peut changer à mesure que le projet se poursuit, Joel Spolsky a écrit un excellent article de blog sur le sujet. Joelonsoftware.com/articles/fog000000000036.html



1
votes

Jetez un coup d'œil à (versions précoces de) JhotDraw . C'est la version Java du cadre HotDraw. Erich gamma (GOF) s'est développé pour son travail de langue de motif.

Il est peu probable que vous trouviez des projets (source ouverte ou fermée) avec une documentation complète et actualisée, y compris les cartes de dépendance. Vous pourrez peut-être trouver quelque chose d'extrêmement petit renforcé à des fins éducatives. Pour les systèmes où cela est mandaté par la loi, la qualité réelle des documents est généralement très faible, car elles ne sont pas produites pour un bénéfice réel pour l'auteur ou le consommateur de l'information, mais simplement pour couvrir la responsabilité légale.

Dans les projets open source, il existe une forte tendance à ne pas écrire de la documentation directement utilisée, car elles ont un très bon processus de priorisation de travail. La communication est nécessaire à une main sur le travail. La documentation peut fournir cela. Mais dans la plupart des projets open source, il existe une forte tendance aux personnes qui souhaitent également être la mise en œuvre de la fonctionnalité. Dans cette situation, il n'ya guère besoin de beaucoup de documentation. Les projets Open Source ont besoin de la documentation décrivant les normes de travail, les modèles de conception utilisés et tout ce qui peut aider les nouveaux contributeurs à se mettre à la vitesse.

Si vous voulez vraiment comprendre à quel point il est difficile de gérer correctement les dépendances, jetez un coup d'œil à:

Gestion des données de conception: les cinq dimensions des frameworks de CAO, la gestion de la configuration et la gestion de données de produits Van den Hamer, p.; Lepoter, K. Actes de l'IEEE Volume 84, numéro 1, janvier 1996 Page (s): 42 - 56 Identificateur d'objet numérique 10.1109 / 5.476025


0 commentaires