WikiWiki weaving heterogeneous software artifacts

Good documentation benefits every software development project, especially large ones, but it can be hard, costly, and tiresome to produce when not supported by appropriate tools and methods.The documentation of a software system uses different artifacts, namely source code, for low-level internal documentation, and specific-purpose models and documents, for higher-level external documentation (e.g. requirements documents, use-case specifications, design notebooks, and reference manuals). All these artifacts require continual review and modification throughout the life-cycle to preserve their consistency and value.Good software documents are often heterogeneous, i.e., they combine different kinds of contents (text, code, models, images) gathered from separate software artifacts, a combination usually difficult to maintain as the system evolves over time, considering that source code, models and documents are typically produced and maintained separately in multiple sources using different environments and editors.This paper presents a wiki that helps on quickly weaving different kinds of contents into a single heterogeneous document, whilst preserving its semantic consistency. The fundamental goal of this wiki (XSDoc Wiki) is to reduce the development-documentation gap by making documentation more convenient and attractive to developers. An example taken from the JUnit framework documentation helps to illustrate the features more relevant to do such weaving.

[1]  Ademar Aguiar,et al.  XSDoc: an Extensible Wiki-based Infrastructure for Framework Documentation , 2003, JISBD.

[2]  Douglas Kramer,et al.  API documentation from source code comments: a case study of Javadoc , 1999, SIGDOC '99.

[3]  Kenneth M. Anderson,et al.  Towards large-scale information integration , 2002, ICSE '02.

[4]  Matthew J. Smith,et al.  TOWARDS MODERN LITERATE PROGRAMMING , 2001 .

[5]  Zarella Rendon,et al.  xmLP - a Literate Programming Tool for XML & Text , 2002, Extreme Markup Languages®.

[6]  Andrian Marcus,et al.  Supporting document and data views of source code , 2002, DocEng '02.

[7]  Kurt Nørmark,et al.  Elucidative programming in Java , 2000, SIGDOC.

[8]  Mark H. Chignell,et al.  Website Authoring using Dynamic Hypertext , 1997, WebNet.

[9]  Fabio Vitali,et al.  Hypermedia on the Web: what will it take? , 1999, CSUR.

[10]  Shihong Huang,et al.  Documenting software systems with views II: an integrated approach based on XML , 2001, SIGDOC '01.

[11]  Ademar Aguiar,et al.  A minimalist approach to framework documentation , 2000, OOPSLA '00.

[12]  Ethan V. Munson,et al.  The Software Concordance: A User Interface for Advanced Software Documents , 2002 .

[13]  Donald E. Knuth,et al.  Literate Programming , 1984, Comput. J..

[14]  Greg J. Badros JavaML: a markup language for Java source code , 2000, Comput. Networks.

[15]  Kurt Nørmark An Elucidative Programming Environment for Scheme , 2000 .

[16]  Kostas Kontogiannis,et al.  Towards portable source code representations using XML , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[17]  Johannes Sametinger,et al.  A hypertext system for literate C++ programming , 1992 .

[18]  Greg J. Badros,et al.  JavaML 2 . 0 : Enriching the Markup Language for Java Source Code , 2004 .

[19]  Markus Knasmüller Reverse Literate Programming , 2007 .

[20]  Mark H. Chignell,et al.  Dynamic hypertext: querying and linking , 1999, CSUR.