TL;DR: This paper proposes a technique that includes this context by analyzing how the Java methods are invoked, and finds that programmers benefit from the generated documentation because it includes context information.
Abstract: A documentation generator is a programming tool that creates documentation for software by analyzing the statements and comments in the software's source code. While many of these tools are manual, in that they require specially-formatted metadata written by programmers, new research has made inroads towards automatic generation of documentation. These approaches work by stitching together keywords from the source code into readable natural language sentences. These approaches have been shown to be effective, but carry a key limitation: the generated documents do not explain the source code's context. They can describe the behavior of a Java method, but not why the method exists or what role it plays in the software. In this paper, we propose a technique that includes this context by analyzing how the Java methods are invoked. In a user study, we found that programmers benefit from our generated documentation because it includes context information.
TL;DR: The cradle file system as discussed by the authors is a composite facility for documentation, maintenance, composition, and testing of information in a source file, which can be used to support all-in-one documentation of contained software systems.
Abstract: A system functions as a composite facility for documentation, maintenance, composition, and testing of information in a source file. A documentation generator converts the source file into exploded detail documentation in a cradle file system from which exploded-view virtual reality displays are generated. For software program code maintenance, a software application source code maintenance controller maintains the cradle file system in a reversible historical and multi-lineal version lattice via an industry-standard revision control system. A website composer utilizes information on cradle file system to support interactive artistic graphical and textual composition of web-displays. A testing and verification manager utilizes information on cradle file system to support the synthesis and maintenance of regression tests and the debugging of software program code from the context of the exploded-view virtual reality displays. Hence, the system functions as scaffolding that supports integrated, all-in-one documentation of contained software systems.
TL;DR: Lpdoc as discussed by the authors is a tool that generates documentation manuals automatically from one or more logic program source files, written in Ciao, ISO-Prolog, and other (C)LP languages.
Abstract: We describe lpdoc, a tool which generates documentation manuals automatically from one or more logic program source files, written in Ciao, ISO-Prolog, and other (C)LP languages It is particularly useful for documenting library modules, for which it automatically generates a rich description of the module interface However, it can also be used quite successfully to document full applications A fundamental advantage of using lpdoc is that it helps maintaining a true correspondence between the program and its documentation, and also identifying precisely to what version of the program a given printed manual corresponds The quality of the documentation generated can be greatly enhanced by including within the program text assertions (declarations with types, modes, etc ) for the predicates in the program, and machine-readable commentsOne of the main novelties of lpdoc is that these assertions and comments are written using the Ciao system assertion language, which is also the language of communication between the compiler and the user and between the components of the compiler This allows a significant synergy among specification, debugging, documentation, optimization, etc A simple compatibility library allows conventional (C)LP systems to ignore these assertions and comments and treat normally programs documented in this way The documentation can be generated interactively from emacs or from the command line, in many formats including texinfo, dvi, ps, pdf, info, ascii, html/css,Unix nroff/man, Windows help, etc, and can include bibliographic citations and images lpdoc can also generate "man" pages (Unix man page format), nicely formatted plain ASCII "readme" files, installation scripts useful when the manuals are included in software distributions, brief descriptions in html/css or info formats suitable for inclusion in on-line indices of manuals, and even complete WWW and info sites containing on-line catalogs of documents and software distributions The lpdoc manual, all other Ciao system manuals, and parts of this paper are generated by lpdoc
TL;DR: In this paper, the authors discuss the construction of software products from customer-specific feature selections using the feature description language (FDL) to capture variation points of product line architectures.
Abstract: In this paper, we discuss the construction of software products from customer-specific feature selections. We address variability management with the Feature Description Language (FDL) to capture variation points of product line architectures. We describe feature packaging, which covers selecting and packaging implementation components according to feature selections using the autobundle tool. Finally, we discuss a generic approach, based on the abstract factory design pattern, to make instantiated (customer-specific) variability accessible in applications.The solutions and techniques presented in this paper are based on our experience with the product line architecture of the commercial documentation generator DocGen.
TL;DR: In this article, an interface definition that specifies the functionality of humanly accessed functions within a software program is parsed into statements by a parser in conjunction with a dictionary and converted to formatted statements using a plurality of formatters.
Abstract: An interface definition that specifies the functionality of humanly accessed functions within a software program is parsed into statements by a parser in conjunction with a dictionary. The parsed statements are converted to formatted statements by a plurality of formatters resulting in expression of the interface definition in a plurality of selected formats. The selected formats comprise source code formats and various documentation formats. Files generated from source code formatters, such as “C++” formatters, are included in the software build process and facilitate restricting software development to the specified functionality. Changes to the interface definition are propagated to the selected formats resulting in software functionality that is consistent with the various forms of documentation such as on-line help and printed documentation. The present invention was developed in response to the needs of multi-platform product development and facilitates timely and accurate coordination between software development and documentation efforts.