This page has been automatically translate with Google from the German language.

3 configuration options of software

3.2.2 programming paradigms



3.2.2.1 Generative programming

On the basis of the requirements of software development, already described, the holistic Generative models programming of software systems in such a way that "on the basis of a requirement specification by means of configuration knowledge from elementary, re-usable implementation components an high-adapted and optimized Zwischenoder final product can be produced for "86 as required automatically.
In addition the Generative programming uses methods and techniques co-ordinated one on the other for the development of software system families. Substantial components of the Generativen of programming are to a large extent automatic the characteristic-based modelling requirements determined by thing in common and differences of the family members and the development from language means to the description of individual systems as well as the development of generators, the this due to produce87.
The proceeding of the Generativen of programming is represented in the following illustration:


Illustration 4: Computer family development after Czarnecki88
The fundamental components of the Generativen of programming are the Domain engineering and the Application engineering. In the Domain engineering is analyzed first the surrounding field: Which persons with which interests are involved, which requirements become posed. In the most important part, the characteristic model becomes summarizes, which relations has the characteristics of the family. Such a model is e.g. the FORE model presented in chapter 2.1.2. For the consistency examination of the characteristic model it gives to at present DOES to Ilmenau a research project. For the pluginbasierte software Eclipse gives it already such Überprüfungsplugin named pure:: variants89.
In addition tables and libraries must develop, which the appropriate knowledge over dependence, reciprocal effects, descriptions, origin and use of characteristics, as well as the standard defaults, connection times etc. to log. From this can be derived, which functions in the basic system compellingly to belong to to have and which in family members to be realized be able optional. But must be examined, which relevant components in appropriate categories of different implementations to be summarized to be able and which dependence exist.
Foundation-stone of this procedure is the Generative Domain Model, which contains the problem area, This the specialist areas and the specific requirements, the solution area, which describes all components of the system, and which configuration knowledge, which supplies the structural drawing for the components for the solution of concrete problem descriptions.
These results flow into the draft of the flexible software architecture for the complete application family and become then from again usable components, a domain-specific specification language which Domain Specific LANGUAGE implements, developed for it, and from configuration generators.
The results of the Domain engineering are similar a kind catalog for possible automatic derivatives to an offer brochure of car manufacturers. This catalog is the basis for the development of genuine applications of customers in the Application engineering. Here the specific customer requirements are raised and built up by means of the existing components, languages and generators by Templates and the configuration knowledge. Requirements, which are again raised here, flow over the necessary configuration management again into the Domain engineering ein90.

The procedure of the Generativen of programming has following pro and cons:

Evaluation of the Generative Programming91
Advantages Disadvantages
  • Holistic concept
  • Focuses software production on "push of a button "
  • Reduces the arrears of the software development opposite the industry
  • Component-based way of thinking improves maintenance of individual parts and the parallel development
  • Shorter development time with higher productivity
  • Trend-setting procedure
  • Error reduction by automation, elimination of errors directly in the solution area
  • Allocation into individual sections facilitates project management with shorter analysis and a coil windings of variants
  • Platform and programming language independence
  • In the existing system the generator transfers the generation of code, programmer is relieved
  • The Domain engineering is an error-prone process, features forgotten here leads to reduced development possibilities
  • Revisions are here difficult and lengthy
  • The expenditure is enormous, it can years up to the first product offense
  • The multilayeredness requires very experienced team members
  • Integration problems on use of different programming languages for the derivative and associated performance problems

  • Table 14: Evaluation of the Generativen programming



     


    Top| Home| << back | next >>
    >> Home Page www.unitec.it <<