Vous pouvez trouver de nombreux projets open source sur Internet (tels que Linux, Open Office, ...) P>
Mais je n'ai trouvé aucun projet open source avec une documentation complète, bonne et 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. P>
genre considère p>
3 Réponses :
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". :) p>
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. P>
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. P>
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. P>
Mais beaucoup de développement open source suit un modèle totalement différent, où L'unité de travail est une fonction unique ou une solution de bogue. strong> 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 em>; 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. P> LI>
Les développeurs travaillent sur des logiciels pour eux-mêmes. strong> 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.) P> li>
Les développeurs ne sont tout simplement pas disposés à faire la conception initiale. strong> J'ai tendance à penser que cela est dommage, mais hélas, c'est un facteur contributif. P> < / li>
ul>
Parfois, le logiciel est documenté après em> 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 code> trouvé Plus de documentation détaillée . P>
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
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. p>
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. p>
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. p>
Si vous voulez vraiment comprendre à quel point il est difficile de gérer correctement les dépendances, jetez un coup d'œil à: p>
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 P> blockQuote>
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 :)