[AG Zimmermann]

PROTAGOnIST 

Tools for Automated Software Development

Andreas Metzger
Marc Krämer, Thomas Kuhn, Christian Webel
Wolfgang Hanke, Dominik Rehm

Deutsch


Overview:

As part of the sub-project D1 of the special research area SFB 501 the tool environment PROTAGOnIST is being developed (Productmodel- and Generator-based Iterative Software Development Tools). Besides the early generation of prototypes for validation and verification of reactive systems, the PROTAGOnIST tools allow the automation of tedious steps in the development process. 

The development of the PROTAGOnIST tools is carried out systematically and efficiently (c.f. reference) and a model of all development artefacts and relations between these (a so called product model) is applied. Besides documents, also fine-grained or more abstract entities are regarded as development artefacts, e.g. in our product model we regard documents as being composed of atomic artefacts called  FeatureViews, which have an abstract representation called Features.

[Abbildung 1]

Figure 1: Activities and Artefacts of PROTAGOnIST

In Figure 1 the basic activities and artefacts are shown. The Document Parser, Document Generator, Verifier and Analyzer are being implemented in the Java programming language within this research project (see documentation below).The exchange of features and configurations between tools is realized through so called SLANG-Files, which store the data of Java instances similar to XML files.

The commercial tool Telelogic Tau SDL Suite is used as a AlsC-Code Generator.

Tools:
 
Document
Parser

(Javadoc)
The Document Parserscreate a set of features and configurations from HTML or SDL files.
Document
Generator

(Javadoc)
The Document Generators create a set of HTML or SDL documents from a given set of features and configurations.
Verifier
(Javadoc)
Is used for verifying the development products by checking the features and configurations for consistency and completeness. If errors are detected, in many cases the correctness can be established automatically.
Analyzer
(Javadoc)
Analyzes Features and Configurations thus producing statistics (e.g. number of object types) and measurement results (e.g. complexity of artefacts) regarding the development documents.
Clipper
(Javadoc)

Allows the creation of sub-trees throught the generation of stubd and drivers, thus enabling partial prototyping.

Libraries:
 
ProductModel
(UML,Javadoc)
This library contains all classes of the product model. With tool specific extensions, these classes are used in the above tools. These classes are generated from UML models using the tool Rhapsody.
Slang
(Javadoc)
For exchanging instantiation information between tools, SLANG files are used. Generic classes for Marshalling and Unmarshalling can be found in this library.
QuiotixParser
(Javadoc,
Source)
For parsing the HTML documents we apply a modified (GPL-licensed) parser from Quiotix.
ANTLR
For parsing the SDL documents we use a parser that is generated by applying the ANTLR parser generator.


© 2003, Andreas Metzger