Printer Friendly

Conceptual similarities and differences between object model and generator application scripting model.

Abstract: The basic features of UML and scripting model of application generators are compared in this paper. The comparison between two models is performed according to the following features: static and dynamic view within the process level and design level, implementation of encapsulation and inheritance, relationships among basic model elements (classes/metascripts) and software requirements specification. Compatibilities of models are ascertained, but there are also conceptual differences. The scripting model actually represents a model of generators and it is based on aspects and their distribution on different program parts. UML is based on the generic approach which lacks efficiency in dealing with the modelling of aspects due to the features of the object model being a system based on types. The comparison shows that the scripting model is simpler and type-free. As such, it enables more flexibility in the development of application generators, and the application of Boehm's cyclic model of software development.

Key words: UML, scripting model, aspects, comparison

1. Introduction

Until now, generative programming has been regarded as a discipline of object-oriented programming. However, in recent years there has been a world-wide surge of projects aimed at the development of scripting languages for application generators, such as Open Promol (Stuikys et al., 2001) and CodeWorker (Lemaire, 2003). Advantages of using scripting languages should be reached through avoiding certain weaknesses of object-oriented programming, primarily the (Ousterhout, 1998) rigidity of the object model, high level of standardization and the need to have a translation/compiling phase during the development of the program. In addition, we could single out the following scripting language characteristics useful in generative programming (Stuikys et al., 2001):

--scripting language abilities in character queue processing,

--connecting completed components written in target program languages and

--flexibility of scripting language syntax stemming from low standardization level.

The reason scripting language has not been used so far was the absence of applicable models, using which one could model the generators--ability not available to object oriented modelling based on UML diagrams. Therefore, in order to enable scripting languages for generative programming, the industry needed to develop the corresponding scripting model (Radosevic, 2005). The scripting model represents the graphical model based on the implementation of aspects, i.e. characteristics not connected to individual organizational program units such as functions and classes, but showing up in various application parts, (Kiczales et al., 1997)(Lee, 2002). In that respect, the scripting model is a part of the group of so-called Join Points Model (Kande et al., 2002)(Lieberherr, 2003). Also, the scripting model is a part of the type-free system group (Albano et al., 1989), since the connecting points do not represent classes and their objects, but only connections between metaprograms and characteristics defined in the application specification(Radosevic, 2005).

The object and the scripting model are compared with regard to the following criteria: static and dynamic view within the processing level and the level of software development design, specifications of program requests, implementation of encapsulation and succession, and the relationship between base model elements (classes/metascripts).

Next came the analysis of compatibilities between the two models, but also important conceptual differences. The scripting model is a free-type system (and UML is not), which simplifies the connectivity of the aspects using the join points model. To wit, standardization represents a problem in realizing connective points, thereby also for the implementation of aspects within the join points model (Barca, 2003)(Roychoudhury et al., 2003) and for graphical modelling of aspects (Stein et al., 2003)(Gray et al., 2002). Additionally, using the scripting model, i.e. due to its simplicity, a higher flexibility in the development of generators and applications using the Boehm cyclical software development model is possible (Boehm, 1988).

2. Levels of modelling

UML supports modelling of complex systems through various views in order to reduce the complexity of each such system, while also supporting various modelling levels (business level and IS level).

If we approach the case from the standpoint of static and dynamic view (OMG, 2006), the architecture of the development of s complex software system supported by UML diagram techniques could be modeled as shown in Fig. 1. According to this architecture, we recognize the following levels: the USE CASE level; the processing level, the design level and the implementation level (Jacobson et al., 1999), on Fig. 1.

The attempt to decrease the complexity of such elaborate systems is, therefore, made through modelling static and dynamic system components (static/dynamic view), as shown on Fig 1.


The paper especially emphasizes the defining of relationships between the generator scripting model and base levels of the UML model (Use Case and Process).

The scripting model defines only the dynamic view, and includes two diagrams on two levels: the specification level and the processing level. The dynamic view is a part of the programming code template--metascripts (Fig. 2).


3. Similarities between the object and scripting model

3.1. Basic model elements

Class in the object model represents a cluster of attributes and operations (methods) used to describe the structure and behaviour of class objects.. Object is an instance of the class, i.e. actualization of something which exists within time and space.

Within the Class Diagram, class is represented by a rectangle containing the class name, attributes and methods, and rights of access (Fig. 3).


Metascript from the scripting model represents a metaprogram, part of the code used for generating. The metascript is in the metascript diagram represented by a rectangle (Fig. 4) containing the metascript name, the source of the program code and (optional) exit from the program code (i.e. the name of the exit file).


Script (=application, generated program code) represents the product of generating, i.e. application or a part of an application defined through one or more metascripts and data connections/sources.

3.1.1. Relations between base elements

Classes can be connected through the following connection types (OMG, 2006):

--association (structural relationship between classes or class instances),

--aggregation (special type of association showing the relationship between parts and the whole; aggregation by reference is a weaker type of relation/connection in which the class as a whole and class as a part are independent, while aggregation by value is the stronger connection type in which the class as a whole depends on the class as a part and vice-versa),

--dependability (one class uses the other during the execution of its operation),

--generalization (subordinate class is a specialization of a superior class; it has all its traits, but can also have additional characteristics) and

--actualization (of interface class).

The static class structure and their inter-relations can be shown using a certain type of diagram technique: UML class diagram. Relations between the metascripts and between other elements of the scripting model, connections and sources, can all be seen in the metascript diagram (Fig. 5).

Each metascript diagram defines individual multi-level generator.


Connections between the elements of the metascript diagram may be as followsy:

a.) Aggregation. The object model differs aggregation by reference and aggregation by value (Fig. 6), while the metascript diagram defines aggregation by value only, as a basic model between different level generators.

Metascript of a higher level grows using characteristics of lower-level metascripts, that is, a higher-level generator is made by superposition of several single-level generators (Fig. 5).


Aggregation relationship between the superior and subordinate generator is 1: 1..N (Fig. 7).


Aggregation in the metascript diagram is selective, i.e. its actualization in the final implementation depends on the specification of a particular application.

b.) Association. Association exists between the metascript and the source, within the individual single-level generator. Connections represent substitute symbols and physically present within the metascript in a way that each connection within the metascript may appear once or several times, so that the relation between the metascript and the source is 1..N:1 (Fig. 8).


3.2 Basic concepts


Encapsulation in the scripting model exists within the application specification. Application specification encapsulates given application aspects on the level of individual branches of the application description parameter diagram. Characteristics may relate to data and functionality.

Succession within the scripting model functions in the following manner: the superior metascript gets increased by characteristics and functionalities of subordinate metascripts and data sources. This is completely different from the object model, where subordinate classes succeed the superior ones.

Within the scripting model, succession is selective, determined by application specifications. This same way leads to polymorphism--several implementations are gained for one metascript, but base characteristics (within the metascript) remain unchanged.

3.3. Specification of programming requests/demands

Business function (Use Case) is a complex category which can be shown (modelled) using various diagram techniques, depending on the function components which we wish to include in the model. For example, for a certain function we can show activities, events, messages, states, goals, resources, data and other components and their inter-connections.

The static view of the function shows WHAT the function does, while the dynamic view shows HOW the function works, and represents the complete view of all its components. The text further features short descriptions of several UML diagram techniques.

UML Use-Case Diagram (Fig. 9): static view of system functionality and participant (actor) interaction with application cases. In other words, it is a user view of the functioning of the system (what the system does, not how it does it). Users who use the application system are tied into individual functions (i.e. cases of use) aimed at solving their tasks.


Use (application) cases are implemented within the metascripts, as program code templates which contain common characteristics of various applications within the problem domain.

Crosscutting characteristics (aspects) of various application cases are singled out into application specification, i.e., separation of concerns (views) is done as presented by (Stein et al., 2003), Fig. 10.


Application specifications contain values for each characteristic (aspect) and are defined by the diagram of application description parameters (Fig. 11), where specific corresponding tags are used for individual characteristics.

Dispersion of characteristics onto various parts of the application is defined by the metascript diagram, where characteristics are represented by the element source.


4. Conceptual differences

UML is a generic model because it defines generic components containing all characteristics which could be used by all applications from the problem domain. At the same time, UML is a model based on types (i.e. Type System), which makes the implementation of connecting points within aspect modelling harder. Connecting points in such a system represent complex types (classes) (Stein et al., 2002).

The scripting model represents the generative model, because individual characteristics (aspects) are included in the generated application according to its specification, i.e. characteristics are introduced into the goal application according to need, thereby achieving optimization with relation to the generic model. Furthermore, the scripting model is not based on types, i.e. it represents a type-free system (Albano et al., 1989).

Connecting points in the scripting model do not represent classes and their objects, but only connections between metaprograms and characteristics defined in application specification (Fig. 12).


This significantly simplifies aspect implementation using connecting points, and the generative application development becomes more flexible, which allows for easier use of the Boehm spiral model of software development (Boehm, 1988) (Fig. 13).


Generative application development begins with the Requirements plan and the problem domain prototype application. This is followed by the Separation of concerns, so that specific characteristics of each individual application are contained within its specification, while common characteristics end up in metascripts. The scripting model defines the assembling of given application within the presented problem domain.

5. Conclusion

Comparison of the object and the scripting model has shown important analogies between the two models in view of basic model elements, their inter-relations and basic concepts within the processing level and the design level in the development of the software system. However, important conceptual differences have also been ascertained. Specifically, UML represents a generic model based on types (classes), and as such has significant problems in aspect modelling within the Join Point Model.

On the other hand, the scripting model represents the generator model and is fully type-free. This eases generative application development, since it makes the development system much more flexible, and also facilitates the use of the Boehm spiral model for software system development.

6. References

Albano, A., Dearle, A., Ghelli, G., Marlin, C., Morrison, R., Orsini, R., Stemple, D. (1989). A Framework for Comparing Type Systems for Database Programming Languages,

Barca, M. (2003). Aspect Oriented Programming, With an Overview of AspectJ, CIS Department of Ohio State University,

Boehm, B.W. (1988). A Spiral Model of Software Development and Enhancement, Computer, May 1988, v. 21 no. 5, pp. 61-72.

Gray J., Bapty, T., Sandeep N., Ariruddha G. (2002). Aspect-Oriented Domain-Specific Modeling,

Jacobson, I., Booch, G., Rumbaugh, J. (1999). The Unified Software Development Process, Addison-Wessley

Kande, M.M., Kienzle,J., Strohmeier, A. (2002). From AOP to UML--A Bottom-Up Approach, 1st International Conference on Aspect-Oriented Software Development, Enschede, The Netherlands,

Kiczales, G., Lamping, J., Mendhekar, A., Chris Maeda, Cristina Videira Lopes, Jean-Marc Loingtier, John Irwin. (1997). Aspect-Oriented Programming. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP), Finland. Springer-Verlag LNCS 1241. June 1997.

Lee, K.W.K. (2002). An Introduction to Aspect-Oriented Programming, COMP610E: Course of Software Development of E-Business Applications (Spring 2002), Hong Kong University of Science and Technology, 2002.

Lemaire, C. (2003). CODEWORKER Parsing tool and Code generator--User's guide & Reference manual,,

Lieberherr, K.J. (2003). General AOP: Join Point Model, Demeter, Center for Software Sciences, 2003., http://

Object Management Group (OMG) (2006). The Unified Modelling Language,

Ousterhout J. K. (1998). Scripting : Higher Level programming for the 21st Century, IEEE computer magazine, march 1998.

Radosevic, D. (2005). Integration of generative programming and skripting languages, doctorate thesis, Faculty of Organization and Informatics, Varazdin, pages 41-82.

Roychoudhury, S., Gray, J., Wu, H., Zhang, J., Lin, Y. (2003). A Comparative Analysis of Meta-programming and Aspect-Orientation, Proceedings of 41st Annual ACM Southeast Conference, Armstrong Atlantic State University, Savannah, Georgia, March 7-8 2003

Stein D., Hanenberg, S., Unland R. (2003). Position Paper on Aspect-Oriented Modelling: Issues on Representing Crosscutting Features, International Conference on Aspect-Oriented Software Development, Boston, 2003.

Stein D., Hanenberg, S., Unland R. (2002). On Representing Join Points in the UML, 2nd AOSD-UML Workshop at UML '02, Dresden, Germany, 2002.

Stuikys, V., Damasevicius, R., Ziberkas, G. (2001). Open PROMOL: An Experimental Language for Target Program Modification, Software Engineering Department, Kaunas University of Technology, Kaunas, Lithuania, 2001.,

Authors' data: PhD. Higher assistant Radosevic D.[anijel], PhD. Ass. Prof. Kozina M.[elita], Klicek B.[ozidar], Faculty of organization and informatics, University of Zagreb, Croatia,, ,

This Publication has to be referred as: Radosevic, D.; Kozina, M. & Klicek, B. (2006). Conceptual Similarities and Differences Between Object Model and Generator Application Scripting Model, Chapter 40 in DAAAM International Scientific Book 2006, B. Katalinic (Ed.), Published by DAAAM International, ISBN 3-901509-47-X, ISSN 1726-9687, Vienna, Austria

DOI: 10.2507/daaam.scibook.2006.40
COPYRIGHT 2006 DAAAM International Vienna
No portion of this article can be reproduced without the express written permission from the copyright holder.
Copyright 2006 Gale, Cengage Learning. All rights reserved.

Article Details
Printer friendly Cite/link Email Feedback
Author:Radosevic, Danijel; Kozina, Melita; Klicek, Bozidar
Publication:DAAAM International Scientific Book
Article Type:Report
Geographic Code:1USA
Date:Jan 1, 2006
Previous Article:Generative application development using scripting model of application generators.
Next Article:Proposes a methodology and architecture suitable for generating the process plan of machining parts.

Related Articles
Advances in Fuzzy Object-Oriented Databases: Modeling and Applications.
Just-in-time generation of pedagogically sound, context sensitive personalized learning experiences.
Database Modeling for Industrial Data Management: Emerging Technologies and Applications.
Generative application development using scripting model of application generators.
Information modeling and relational databases.
Selected readings on database technologies and applications.

Terms of use | Privacy policy | Copyright © 2019 Farlex, Inc. | Feedback | For webmasters