RUS | UKR || DonNTU > Master's portal
Student of Donetsk National Technical University Bogdan Guban

Bogdan Guban

Faculty: Computer Science and Technology

Speciality: Applied Mathematics and Informatics

Theme of master's work:

The efficiency analysis algorithms of code generation on technology SADT.

Scientific adviser: Natalia Datsun


About author

Summary on the final work

The efficiency analysis algorithms of code generation on technology SADT

Introduction

The technology of software development (software engineering) is usually high expectations. It is believed that it should solve the problem of high complexity, giving high performance and quality, ensure the effectiveness of support and development programs. Unfortunately, the modern form of software development technology does not justify these expectations. It lags more than a century of engineering. It's more like building houses on a single order, than a mature engineering.

Generative programming - it's automated production of software products from individual components, similar to a decades-long production of machinery, electronics and other goods. The transition to automated production of software (SW) requires two steps. First, you need to move from single systems to develop a family of systems, this will prepare the "correct" implementation components. Secondly, you need to automate the assembly of the components of the implementation with the help of generators.

Relevance of the topic


The general trend is increasing complexity of software products, related both to increase the functionality of programs, and varied and frequently changing conditions of their operation. As a result, the development of the program takes a substantial part of the overall effort. Therefore, research on generative programming aimed at reducing the complexity of software development and maintenance are relevant.

The use of an intuitive, simple and scalable technology specifications SADT will simply create or upgrade the software.


The scientific significance of the work


Applying patterns to programming is common practice and many programming languages (eg C, C # and others) have the functions to work with templates. But when the variables substituted into the templates have different structures (arrays, lists, files and others) the usual patterns become powerless, because the processing of each individual data structures. For an array, for example, you can use an ordinary search of the loop, the matrix is needed nested loops, for a tree - bypassing the depth or breadth.

To solve this problem applies more containers for the same template. Appropriate container is selected according to the type and structure of the input data, after which the contents of the container is used as a normal pattern.


The practical value of the work


The resulting product can be used in educational purposes, to demonstrate to students how the algorithm depending on the type and structure of the input data. Creating a new block diagrams can be applied in other application areas. For example, if you create blocks which will randomly generate data, you can create a generator of problems in mathematics and other subjects.

Obtained by methods provide a basis for further development in this direction.


Main results


Result of the master's work should be the methodology that gives instructions for code generation specification SADT and methods for evaluating the effectiveness of the obtained algorithms.

Methodology code generation involves the separation of invariants of the algorithms and the construction of templates based on the obtained invariants. Invariant - a term denoting something unchangeable. Symmetry property is closely linked to the notion of invariance. According to Weyl object is symmetric if, after applying a certain operation, it remains the same as before the operation. Such an object is invariant under this operation and the operation is called a symmetry operation of the object. It is easy to show that the set of all symmetry operations form a group, so study the symmetry of the theory of groups involved. The main object here is the transformation group G = {g} - the set of all transformations g, is closed under composition of transformations, including inverse g-1 and the identity transformation of e.

Consider the selection of invariants and further generation of new algorithms based on them. Try to identify the invariants for the basic search algorithm of the maximum among the negative. For this we consider the implementation of this algorithm for different types and patterns of input data, namely the array text file and list (figure 1). After analyzing the algorithms can be seen that some parts are the same for all types and data structures. At the beginning of each algorithm flag f is reset to 0 when finding the first day of satisfying the selection box rises and the result is the current value, etc.

Figure 1 — Selection algorithms of invariants


We now consider algorithms for finding the maximum among the negative, finding the minimum and zeroing of positive elements for the same input data structure and extract invariant with respect to the method of treatment.

Figure 2 — Allocation algorithm is invariant with respect to the method of processing

Now, on the basis of the obtained invariants can obtain a new algorithm, combining the inversion of the invariants for different algorithms as shown in Figure 3. The resulting technique can be used to form containers diagrams SADT.


Figure 3 — Getting a new algorithm

The received algorithms will be used further as templates for generation of the resultant code. Templates will be will be attached to chart units. After binding of charts, the templates which are not satisfying to input data structures, will be discarded, and from the remained templates will generate the program code (animation 1).

Methods of generating code from the SADT spetsifkatsii

Methods of generating code from the SADT spetsifkatsii

(animation : size — 106.7 КБ, number of frames — 7, frame size — 605x454)

The received decision allows to generate the code of the program from its description by means of SADT charts.

Conclusion

 

During the decision of tasks in view following languages of specifications have been considered:

The comparative table of characteristics of the considered languages of the specification is made.

Methods of code generation from invariants of algorithms are received. The received technique allows to generate the code for input data of different structure and type. Methods are applied in a software solution generating the code under specification SADT.

Further it is planned to receive the formal description of a method of code generation on SADT specifications.

Literature

  1. Богатырёв М.Ю. Инварианты и симметрии в генетических алгоритмах. - Тула: Тульский государственный университет, 2003. - 8 с.
  2. Кнут Д. Искусство программирования.- издательство «Вильямс» 2004. - 788 с.
  3. Jackson M.A. System Development. - London: Prentice Hall International Series in Computer Science, 1983 - 64.
  4. Деметрвич Я., Кнут Е., Радо П. Автоматизированные методы спецификации. - Москва: Мир, 1989 - 115 с.
  5. Требования и спецификации в разработке программ. - Москва: Мир, 1984 - 344 с.
  6. Вейль Г. Симметрия. – Москва: Наука, 1968. – 192 с.
  7. Фокс Дж. Программное обеспечение и его разработкаю — Москва: Мир, 1985. - 368 с.
  8. Чарнецки К., Айзенекер У. Порождающее программирование. - Спб.:Питер, 2005.- 731с.
  9. Tse T.H., Pong L. An Examination of Requirements Specification Languages. - Hong Kong: The University of Hong Kong, 1991- 24 c.
  10. Hamilton M., Zeldin S. The functional life cycle model and its automation. - New York: Journal of Systems and Software, 1983 - 50.

Important Note

When writing this author's abstract, Master's work is not completed yet. Final completion is scheduled for December 2010. Full text of the paper can be obtained from the author or his manager after that date.