Conceptual similarities and differences between object model and generator application scripting model.
Key words: UML, scripting model, aspects, comparison
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.
[FIGURE 1 OMITTED]
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).
[FIGURE 2 OMITTED]
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).
[FIGURE 3 OMITTED]
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).
[FIGURE 4 OMITTED]
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.
[FIGURE 5 OMITTED]
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).
[FIGURE 6 OMITTED]
Aggregation relationship between the superior and subordinate generator is 1: 1..N (Fig. 7).
[FIGURE 7 OMITTED]
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).
[FIGURE 8 OMITTED]
3.2 Basic concepts
OF ALL BASIC CONCEPTS OF OBJECT PROGRAMMING (ENCAPSULATION, SUCCESSION, POLYMORPHISM AND DATA HIDING) THE SCRIPTING MODEL SUPPORTS THE FOLLOWING:
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.
[FIGURE 9 OMITTED]
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.
[FIGURE 10 OMITTED]
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.
[FIGURE 11 OMITTED]
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).
[FIGURE 12 OMITTED]
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).
[FIGURE 13 OMITTED]
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.
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.
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, http://citeseer.ist.psu.edu/albano89framework.html
Barca, M. (2003). Aspect Oriented Programming, With an Overview of AspectJ, CIS Department of Ohio State University, http://www.cse.ohio-state.edu/~barca
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, http://www.isis.vanderbilt.edu/projects/PCES/AODM.pdf
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, http://lglwww.epfl.ch/workshops/aosd-uml/Allsubs/kande.pdf
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, http://codeworker.free.fr/CodeWorker.pdf, CodeWorker.free.fr
Lieberherr, K.J. (2003). General AOP: Join Point Model, Demeter, Center for Software Sciences, 2003., http:// www.ccs.neu.edu/research/demeter/
Object Management Group (OMG) (2006). The Unified Modelling Language, http://www.omg.org
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., http://soften.ktu.lt/~damarobe/publications/Vytautas_Stuikys.pdf
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, firstname.lastname@example.org, email@example.com , firstname.lastname@example.org
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
|Printer friendly Cite/link Email Feedback|
|Author:||Radosevic, Danijel; Kozina, Melita; Klicek, Bozidar|
|Publication:||DAAAM International Scientific Book|
|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.|