Software Documentation

as an  Engineering Process

 

 

José R. Hilera, León A. González, José M. Martínez, José A. Gutiérrez

Departamento de Ciencias de la Computación

Universidad de Alcalá

28871 Alcalá de Henares (Madrid)

Fax: 34-918854790    E-mail: ccjjrhg, leon.gonzalez, ccjmms, ccjagm@cc.alcala.es

 

 

Summary

 

The convenience of applying an engineering approach to the production and maintenance of the documents involved in the software life cycle is taken into consideration. We suggest the integration of CASDE technology (Computer Aided Software Document Engineering) in CASE  (Computer Aided Software Engineering) environments used for software development.

 

Key words: Software Engineering, Document Engineering, Software Documentation.

 

 

1. Introduction

 

Traditionally, little attention has been paied to the documentation generated during software development projects. This has given rise to badly drawn up documents, difficult to understand, inadequate or incomplete documents. This, as has been recognised by the principal experts in the area of Software Enginereing [1], has hindered software maintenance throughout the entire history of Computing, due to documentation design deficiency, and has  also degraded its usefulness by not having available the correct information about all the possibilities offered by the constructed software product. For these reasons the accomplishment of quality technical documentation concerning the process, and the software thus obtained, will be equally as important as the actual quality of the aforesaid software.

 

Thus it is clearly necessary to improve the aspects concerning document management in the development projects. That is to say, those aspects relaed to document control by means of their complete life cycle, from their intial creation to their final filing. Some very limited proposals exist along these lines  regarding the treatment of documents in Software Engineering. These only now begin to be considered by the organizations that wish to improve the quality of the products developed, and above all, to compete in a market dominated at present by the demands of the organizations for compliance with quality assessment standards that allow  comlpete confidence to be placed in the results of the software project. It is precisely these standards, in particular those of the ISO 9001 [`2] which are considered fundamental to an adequate documentation in order to guarantee the aforementioned quality.

 

 

 

2. The Complexity of Software

    Documentation

 

The importance  of this is apparent as it deals with an element integrating the different aspects of a software project. Standarization organizations such as the ISO [3] or ANSI [4] have established the need to treat document management as one more process of the software life cycle, as it is in charge of documenting the results obtained in the remainder of the cycle.

 

To get an idea of  the complexity and importance of documentation in software projects, Figure 1 shows the processes established by the ISO in its norm 12007 and some of the documents involved. The treatment of these is carried out by the so called “Documentation Process”

 

In view of the figure, the importance of documentation in all ambits of a project is evident, but however, its is precisely the aspect most neglected by the organizations dedicated to software development. This gives rise to the paradox that projects whose objective to produce document management software for a given orgainzation, institution of library etc., are precislyl those that completly ignore the management of their own engineering documentation generated by the project, with the subsequent problems of  maintaining  the product thus obtained.

 

Both ISO and ANSI establish the convenience of considering a documentation process that differs from the rest of the software life cyle processes, and they break it down into a series of activities which they consider necessary in order to execute the process. In actual fact, what the recommendations of ISO and ANSI establesh, albeit implicitly, is that the documentation process is an engineering process, during which the planning, design, manufacture and maintenance of the required documents for the software development is carried out.

 

 


 

Figure 1. Process and some of  the documents involved in the software life cycle according to ISO 12007

 

 


3. Software documentation engineering

 

If by engineering we understood the “set of methods, techniques and tools for the design contruction and utilization of diverse products”, the production of the documenation containing the information required for carrying out a software development project must also be approached as if it were an engineering process, performing, in the first instance, a rigorous analysis of the domental requirements in order to proceed later to the definition and design of the identified documents. the next step is the drawing up of the same and subsequent preparation for their recuperation, and finally their exploitation in within the organization.

 

Software Documentation Engineering must be based on a document development methodology which establishes on the one hand, the life cycle composed of the phases and stages that constitute the documentary process, and on the other  hand, the set of techniques that should  be applied to each one of the activities of the life cycle.

 

In the Derpartment of Computing Sciences of the University of Alcalá we have defined a methodology of this type based on the recommendations of the ISO and ANSI. The life cycle established for the documents is shown in figure 2.

 

The five phases of the life cycle are in turn divided into a series of stages during which the joint tasks  guaranteeing a complete processing of the different management aspects of the documents involved in a project are carried out. The objective of each one of these phases is the following.

 

Figure 2. Phases of the software
documentation life cycle

 

1.   Documentation Planning: the aim of this phase is to study the documentation requirements of the software project to be developed, drawing up a “Documentation Plan” which will establish, among other things, the type of documents to be drawn up, the technology to be used and the operations sequence for producing and distributing the documents, and also for  the document language to be used during their indexing and referencing. This plan will be the starting point for the following phase, that of design. The sequence of activities to be carried our during the planning phase consists of the following: 1) Identification of documentation requirements, 2) Definition of the documents and their relations, 3) Establish the organization of the documents, 4) Drawing up of a document Production and Distribution Plan, 5) Draw up a Construction Plan of the documentary language, and 6) A study  of different alternative technologies.

 

2.   Documentation Design: Once established  the previous plan the manner in which the documentation process will be carried out, we proceed to the description, in the form of different conceptual models, of all the aspects required for the production of each individual document, ranging from those related to their internal structure to those referring to the characteristics of its presentation to the end user, including other types of specifications, for example those of the hypermedia type. The object of this phase is also  to review the “Documentation Plan” now that more detailed information on the documents to be produced is available. The sequence of activities to be executed during the design phase consists of the following. 1) Design the documents structure, 2) Design the dynamic behaviour of the documents, 3) Incorporate the hypermedia aspects into the design, 4) Design the documents presentation, and 4) Revise the production and distribution plan of the documents.

 

3.   Documentation Production: The object of this phase is to generate the different documents according to the preliminary design. Each document will be drawn up with the information produced during one or several activities of the software life cycleand shall serve as the starting point for other project activities. During this phase, on the basis of the contents registered in each document, the document language will also be constructed, this will then be used in the next phase to index and reference the documents. The sequence of activities to be performed during the production phase consists of the following: 1) Prepare the production environment, 2) Produce and revise the documents, 3) Construct the document language and 4) Release (publish) the documents.

 

4.   Documentation Indexing: To facilitate the work of the personnel involved in the software development, who will constantly need to consult documents drawn up previously  within  the project (e.g. a programmer will  have to consult  design documents, a designer the analysis documents, etc.) , the methodolgy is  included in this phase so that  the contents of each document produced can be analyzed, identifying the indexing/referencing terms in order to make their localization easier for consulting or modification purposes. The sequence of activities to be carried out during the indexing phase consists of the following:  1) Examination of the documentation, 2) Concept idenfication of the documents, 3) Selection of the indexing terms, 4) Establishment of hyper-links (cross- referencing) AMD 59 Validation of the indexes produced.

 

5.   Documentation Exploitation and Maintenance: This last phase of the methodolgy envisages  the utilization of each document in order to exploit its contents during the execution of detrmined activities of software development. For this, the information contained in the document will be released or distributed to the personnel requiring it. The activities related to the controlled introduction of  modifications to the documents should be envisaged, and those related to the destruction of osbolete documents, or the storing  of documents in an archive in order to form part of the documental partrimony of the organization. The sequence of activities to be undertaken during this last phase consists of the following. 1) Release and exploitation of the documents, 2) Carry out document maintenance, 3) File or eliminate documents.

 

Although the natural documentation process will follow the general sequence of established phases, really the only phase which should be totally completed in order to commence the next is, as can be supposed ,the planning phase. Starting from there, what happens is that each document is drawn up according to the specifications established in the plan, meeting the sequence of phases for each document. For example it could occur that several documents are designed simultaneously, that during the production of one another is being designed, that until a specfic document  undergoes exploitation others will not be drawn up, etc.

 

 Apart from the management activities to be carried out on the documents involved in the projects, the methodology support of Software Documentation Engineering should also take into consideration the techniques to be used in such activities. For example, one technique is required to model the structure and the static organization of the documents, and other techniques  are required  to do likewise regarding the dynamic aspects of document management; be it from the point of view of the documentary work to be undertaken within an organization, or be it the adoption of an approach orientated towards the interactions produced among the documents during the execution of a documentary task, or  be it while modelling the “life” or “states” through which each individual document may pass.

 

The fact that in a software project many of the documents will be handled in an electronic format, with the result that techniques should be proposed  enabling us to model the way in which the end-user will perceive the contents of the document by means of a Graphic Interface on a computer screen. In this case, if the documents are able to include multi-media elements, apart from the special layout of the contents, their synchronization in time will have to be established when they are diplayed before the user. This naturally requires an additional technique. If, in addition, there exists the posibility of establishing hyper-links which support cross-referencing in order to be able to navigate in the contents of the documents, another technique should be offered with which the cross references can be modeled.

 

In order to make searching for the documents easier, it would be convenient to complement the cross-referencing, based on the hyper-links, with some other  indexing/referencing technique based on a language, for example a Describers Thesaurus. This should, in addition, be designed and modelled using another technique that could be similar to that used for modelling the structure and organization of the documents. Finally, in order to facilitate document localization and recovery  during their exploitation, another technique should be established in the form of a document search language which allows its users to express their information requirements.

 

The methodology we have drawn up in the University of Alcalá include the definition of all these techniques required to carry out the activities of the documentation process [5].

 

 

4. Conclusions

 

 In this article the need is made clear for the production of documents involved in software development projects to be considered as an engineering process (Software Documentation Engineering  ). Thus we propose a possible breakdown of the tasks of Document Engineering into some twenty stages, grouped in five phases, which take into consideration both the design and the construction and the use or exploitation of the documents.. The existance of different techniques that can serve as tools in order to carry out the documentary tasks is also established as necessary.

 

Just as occurs in other branches of engineering, the aplication of a documental methodology will not really be effective unless an automated environment is available to serve as a support in carrying out the established activities. For example, it is unthinkable to make design models of the structure of  documents and their relations without an adequate tool prepared for this purpose. Furthermore, even if this was done manually, its usefulness would  really be very limited, since what is required is that any document constructed verify designed models, the which could be done automatically in the case of an available magnetic support

 

We call the technology which serves as a support to a methodology of Document Engineering CASDE (Computer Aided Software Document Engineering). CASDE makes reference to a Document Management System  similar to those currently in existance in the groupware environment for document production and exploitation in groupwork [6], but improving the document recovery possibilities offered and incorporating facilities to approach both the planning and design of the aforesaid management, using the techniques required  in each phase of the document process.

 

All CASE tools must incorporate a system of this type in order to convert them into an integrated environment of documented software development.

 

References.

 

1 Sommerville, I. Software engineering, Addison Wesley, Reading, MA 1992.

2 ISO 9001, Qulaity Systems – Model for quality assurance in design development, production, installation and servicing, International Standards Organization, Geneva, Switzerland, 1994.

3 ISO/IEC 12207, Software Life-cycle Processes,ISO, Geneva; Switzerland, 1995

4 ANSI/IEEE Std 1074, Standard for Software Life Cycle Processes, IEEE Computer Society, New York, 1991.

5 Hilera, J.R. Methodolgical contributions to document management in software development (in spanish), PhD thesis, University of Alcalá, Spain, 1997.

6 Khoshafian, S. and Buckiewicz, M.  Groupware, Workflow and Workgroup Computing, John Wiley & Sons, New York, 1995.