Code Generation from UML Model: State of the Art and Practical Implications

Similar documents

Success Criteria: Extend your thinking:

Annual Assembly Abstract Review Process

Module 6: Goal Setting

Year 10 Food Technology. Assessment Task 1: Foods for Special Needs. Name: Teacher:

Signature Assignment. Course. ANTH 2346: General Anthropology. Assignment ID (to be assigned) Outcomes/Rubrics to be Assessed by the Assignment

Statement of Work for Linked Data Consulting Services

EMC believes the information in this publication is accurate as of its publication date. The information is subject to change without notice.

PET FORM Planning and Evaluation Tracking ( Assessment Period)

MGPR Training Courses Guide

Record of Revisions to Patient Tracking Spreadsheet Template

Assessment Field Activity Collaborative Assessment, Planning, and Support: Safety and Risk in Teams

EXPLORING THE PROCESS OF ASSESSMENT AND OTHER RELATED CONCEPTS

EDPS 475: Instructional Objectives for Midterm Exam Behaviorism

A pre-conference should include the following: an introduction, a discussion based on the review of lesson materials, and a summary of next steps.

CSE 331, Spring 2000

FOUNDATIONS OF DECISION-MAKING...

Appendix C. Master of Public Health. Practicum Guidelines

How to Get Set Up and Running with NDepend

Campus Climate Survey

Swindon Joint Strategic Needs Assessment Bulletin

P02-03 CALA Program Description Proficiency Testing Policy for Accreditation Revision 1.9 July 26, 2017

Chapter 3 Perceiving Ourselves and Others in Organizations


Reliability and Validity Plan 2017

Breast Cancer Awareness Month 2018 Key Messages (as of June 6, 2018)

Completing the NPA online Patient Safety Incident Report form: 2016

Novel methods and approaches for sensing, evaluating, modulating and regulating mood and emotional states.

How to become an AME Online

NATIONAL SENIOR CERTIFICATE GRADE 12

Structured Assessment using Multiple Patient. Scenarios (StAMPS) Exam Information

FDA Dietary Supplement cgmp

National Programme on Technology Enhanced Learning (Phase II)

Organizational Capacity for Change and Patient Safety

Commun. Theor. Phys. (Beijing, China) 38 (2002) pp. 555{560 c International Academic Publishers Vol. 38, No. 5, November 15, 2002 Capability Analysis

Medical Device Software Development Management: Following FDA Guidelines for Software Validation

Interpretation. Historical enquiry religious diversity

Session 5: Is FOOD fair?

Proposal 101: So, You Want to Change the World AND Receive Funding to do so?

True Patient & Partner Engagement How is it done? How can I do it?

HSC 106 Personal Health Plan for Learning Activities & Assessment linked to Michigan Teacher Preparation Standards

Name: Anchana Ganesh Age: 21 years Home Town: Chennai, Tamil Nadu Degree: B.Com. Profilometer Score. Profilometer Graph

The estimator, X, is unbiased and, if one assumes that the variance of X7 is constant from week to week, then the variance of X7 is given by

Improving Surveillance and Monitoring of Self-harm in Irish Prisons

AC : STEPWISE METHOD FOR DEAF AND HARD-OF-HEARING STEM STUDENTS IN SOLVING WORD PROBLEMS

Introduction Teaching Interpretation

Graduating Senior Forum

Strategies for Avoiding Plagiarism Part Two: Paraphrasing

Coding. Training Guide

IIBA-session Requirements Engineering and Agile Artefacts

DATA RELEASE: UPDATED PRELIMINARY ANALYSIS ON 2016 HEALTH & LIFESTYLE SURVEY ELECTRONIC CIGARETTE QUESTIONS

Podcast Transcript Title: Common Miscoding of LARC Services Impacting Revenue Speaker Name: Ann Finn Duration: 00:16:10

A Phase I Study of CEP-701 in Patients with Refractory Neuroblastoma NANT (01-03) A New Approaches to Neuroblastoma Therapy (NANT) treatment protocol.

PROCEDURAL SAFEGUARDS NOTICE PARENTAL RIGHTS FOR PRIVATE SCHOOL SPECIAL EDUCATION STUDENTS

For homework, students continue their AIR through the lens of their focus standard.

Chapter 6: Impact Indicators

The Interface Between Theory of Mind and Language Impairment

19 th INTERNATIONAL CONGRESS ON ACOUSTICS MADRID, 2-7 SEPTEMBER 2007 NARROW TUBES ACOUSTIC IMPEDANCE CHARACTERIZATION USING FINITE ELEMENT BASED TOOLS

International Integrative Psychotherapy Association IIPA-

EMEA DICOMBurner solution EMEA DICOMBurner solution

PILI Ohana Facilitator s Guide

Job Satisfaction. Job Satisfaction. Financial rewards, benefits, flexible work hours and stress among lest cited reasons

Candida March, Ines Smyth, and Maitrayee Mukhopadhyay, 1999, A Guide to Gender-Analysis Frameworks, London: Oxfam Publishing.

Data Fusion for Predicting Breast Cancer Survival

Session78-P.doc College Adjustment And Sense Of Belonging Of First-Year Students: A Comparison Of Learning Community And Traditional Students

Career Confidence. by Kevin Gaw

TERMS OF REFERENCE (ToR) NATIONAL INDIVIDUAL CONSULTANCY

NYS Common Core ELA & Literacy Curriculum Grade 12 Module 4 Unit 1 Lesson 14

GSB of EDA Meeting Minutes

Independent Charitable Patient Assistance Program (IPAP) Code of Ethics

Code of employment practice on infant feeding

STAKEHOLDER IN-DEPTH INTERVIEW GUIDE

ENGLISH LANGUAGE ARTS CURRICULUM MAP GRADE 10 (Suggested timeline for introducing standards some overlap all four quarters)

Using Causal Inference To Make Sense of Messy Data

Dysart Unified School District

University of Rochester Course Evaluation Project. Ronald D. Rogge. Associate Professor. Ista Zahn. Doctoral Candidate

Team Project. 1.1 Deliverable: Initial Planning Milestone Submission For the Initial Planning Milestone, you will submit the following artifacts:

Planning Playbook

AP Biology Lab 12: Introduction to the Scientific Method and Animal Behavior

HIS Registry of Ministry Resources

HOSA 105 EMERGENCY PREPAREDNESS

State Health Improvement Plan Choosing Priorities, Creating a Plan. DHHS DPH - SHIP Priorities (Sept2016) 1

The Mental Capacity Act 2005; a short guide for the carers and relatives of those who may need support. Ian Burgess MCA Lead 13 February 2017

Model-driven Reengineering for a Blue Planet - Refactoring for Energy Efficiency -

RI International Peer Employment Training

Effective date: 15 th January 2017 Review date: 1 st May 2017

2017 CMS Web Interface

Awareness of Autistic Spectrum Conditions

Vaccine Impact Modelling Consortium

Vancouver, BC Central Presbyterian Church 1155 Thurlow Street V6E 1X2. Presented by: Wednesday, October 3 & Thursday, October 4, Why attend?

Law Fellowships in Legal Empowerment

Cardiac Rehabilitation Services

A MORE HUMAN APPROACH TO INNOVATION RESEARCH 2

National Imaging Associates, Inc. (NIA) Frequently Asked Questions (FAQ s) For PA Health & Wellness Providers

ICT4LIFE. Final Conference. ICT4Life field work - tailored solutions in diverse regional context Ariane Girault, E-Seniors Association

Educator: ROSEMARY FISS, BASC, MED

ANXIETY SYMPTOMS INTERVENTION SESSION HANDOUTS. Introduction to Fighting Fear by Facing Fear. Making a Fears and Worries List

Social Learning Theories

Transcription:

di: 10.2478/acss-2013-0002 2013/ 14 Cde Generatin frm UML Mdel: State f the Art and Practical Implicatins Andrejs Bajvs 1, Oksana Nikifrva 2, Janis Sejans 3, 1-3 Riga Technical University Abstract The paper draws attentin t the prblem f cde generatin under advanced sftware develpment. In their previus publicatins the authrs already discussed several issues assciated with the incnsistency between the generated sftware cmpnents and thse expected in respect with the rules fr bject-riented prgramming. The current research is an effrt t systematize the infrmatin abut cde generatin methds and techniques applied in the task f cde generatin and t try t answer the questin f what is the reasn fr cde generatin failing t wrk crrectly. Keywrds cde generatin, UML class diagram, cde generatin tl. I. INTRODUCTION Despite high levels f IT technlgy and IT fields as such, develpment related prblems that were traditinally assciated with the develpment f sftware still have nt been cmpletely slved. Of curse, ne wuld always like t decrease the develpment time and csts, hwever, it must be understd that still t much time is being devted t rutine wrk. Therefre, reusability remains an imprtant theme, because technlgy is changing much faster than business prcesses f the prblem dmain. The first reasn, why this prblem has nt yet been slved is the technlgical diversity, which, in its turn, leads t such situatins where every system is verwritten ver and ver again in a case f any change in technlgical architecture. Secnd, even if the prblem dmain is described with the help f "traditinal" CASE tls, this des nt slve the prblem because created mdels are nthing mre than dcumentatin, s that they are nt autmatable t be transfrmed in executable prgram cde. Even mre, further requirements are implemented directly in the cde bypassing system dcumentatin, thus n lnger meeting the actual functinality. Hence, the fundamental prblem f sftware develpment is a "semantic gap" between mdels and prgramming language, which permits transfrmatin f the prblem dmain descriptin int the executable cde. Human brain perceives graphical infrmatin much better than textual ne that is why it is useful t display a system as a mdel during its creatin phase. T accmplish this, the Unified Mdeling Language (UML) [1] which is used t mdel bject-riented systems was develped. UML was created nt nly as a system specificatin tl, it is psitined als as a tl, which will allw t autmatically generate the cde frm UML mdels. With such a psitin Object Management Grup (OMG) annunced its new inventin, Mdel Driven Architecture (MDA), at the end f 2001. Since that time already 10 years passed, and 15 years elapsed since UML was standardized. During that time, a lt f different CASE tls have been develped, which are advertized as mre r less capable f generating the prgram cde frm the system mdel. These are bth pen surce tls and the envirnment as well as cmmercial prducts. Nwadays, MDA tls annunced that they supprt translatin f slutin elements int sftware cmpnents, e.g. transfrmatin frm platfrm independent t platfrm specific mdel, and cde generatin. Hwever nbdy heard abut a sftware system as yet that culd be actually designed based nly n the principles f MDA. The alternative t MDA and UML apprach is Dmain Specific Language (DSL), which allws specifying system behavir. Hwever, DSL d nt fall within the scpe f this article.. Mrever, the results f the authrs previus research n cde generatin abilities in advanced mdeling tls were quite discuraging [2]. The experimental mdel was created t check the ability f the tls t generate expecting prgram cde frm them. The experimental mdels cntained mre than 60 tests. The transfrmatin results (generated cnstructin) were classified int cmpilatin errrs, executin errrs, infrmatin lsses, missing ntatins, etc. In many tests the investigated tls (Sparx Enterprise Architect, Visual Paradigm and Micrsft Visual Studi 2010) shwed different results. And it was nt like ne tl always demnstrates better result than the ther. There were tests, which shwed the crrect result, while ther failed, and vice versa. The analysis f the transfrmatin result shws that the quality f the generated surce cde is very lw (in ur experiments). Only 14% (in Sparx Enterprise Architect), 18% (in Visual Paradigm) and 18% (in Visual Studi) f the tests prved t be crrect. Cnsidering that these tests did nt include all pssible elements f the UML class diagram, such as varius relatinship elements, the btained results may be still cnsidered as ne f the main reasns why the class diagrams and cde generatin frm mdels are nt s widely applied in the IT industry. Therefre, the authrs made cde generatin the bject f their research and tried t investigate, why despite f the mdeling standards cntaining descriptins f efficient mdel creatin techniques there is still n clue f hw t autmatically transfrm a mdel f a cmplex system int a surce cde. The gal f the paper is t research the main principles and appraches f the mdel t cde transfrmatins. The paper describes Mdel Driven Sftware Develpment principles and cde generatin related standards, which were created by 9

2013/ 14 Object Management Grup rganizatin. The imprtance f cde generatin was substantiated. Because f the imprtance f this prcess, the related techniques, methds and appraches were studied mre thrughly, in additin, the cde generatrs taxnmy was created. It was then used t classify mdeling tls built in cde generatrs. The paper als shws the qualitative cmparisn f the tls with the help f certain cmparisn criteria. Finally, the descriptin f the tl created by ne f the paper authrs in the curse f develpment f his bachelr's thesis [3] is presented. The prgram realizes a cmbinatin f template-based and framebased cde generatin appraches. II. PRINCIPLES OF CODE GENERATION UNDER THE FRAMEWORK OF MDSD AND MDA This paper wes its existence t the existence f the prcess called mdeling. OMG rganizatin gives the fllwing definitin f a mdel [4]: A mdel f a system is a descriptin r specificatin f that system and its envirnment fr sme certain purpse. The framewrk called Mdel Driven Sftware Develpment (MDSD) r Mdel Driven Develpment (MDD) is very clsely related t mdeling. The imprtance f its usage in mdern sftware develpment is prved by the wrds f the research area guru Markus Völter. He says: Based n years f my wn experience, as well as the experience f the verall MDD cmmunity, I am cnvinced that Mdel Driven Develpment is a step in the right directin and brings abut significant imprvements in prductivity, quality, and verall system cnsistence. [5] Accrding t [6] mdel in MDSD is cmpact and frmal at the same time. It has the exact meaning f the prgram cde s that the mdel is nt nly dcumentatin, but part f the sftware. MDSD appeared because there was the necessity t decrease effrts, t create and use analysis and design mdels at each stage f the sftware develpment prcess and t autmate transfrmatin f the mdels [7]. MDSD als defines hw t separate high-level business lgic frm system architecture and deplyment platfrm. Hwever, such term as Mdel Driven Architecture (MDA) is much cmmnly used nwadays when the talk is abut usage f mdels in sftware develpment. In general, MDSD and MDA are very similar terms [8, 9]. The Mdel Driven Architecture was intrduced by OMG rganizatin in 2001 as an effrt t standardize the MDSD framewrk. Unlike MDSD, the MDA apprach cnsiders mdels t be central in the develpment prcess (assuming that the mdel represents a set f diagrams, used t express the whle sftware system) [10]. Generally speaking, MDSD is less strict and much blurry than MDA. That is why Mdel Driven Architecture may be cnsidered as a next stage in the evlutin f sftware develpment prcess, which tends t bring sme imprvements t each step f the sftware develpment life cycle. The MDA prpses t cnstruct fur basic mdels fr the develped system (see Figure 1). CIM Requirements elicitatin Business mdeling Verifying mdel cnsistency Maintaining accrdance PIM PSM ISM Diagramming Enrichment, infrastructure PIM t PSM mapping, marking Verifying mdel cnsistency Maintaining accrdance PSM t ISM transfrmatin Set f ISM mdels Cnverting frmalized business mdel t UML PIM t PSM transfrmatin Frnt-end design Back-end design Set f PSM mdels Implementatin Frnt-end Back-end dmain implementatin implementatin Fig. 1. The cmpnent mdel f MDA (adapted frm [11]) The fur basic mdels fr the develped system are: 1. Cmputatin Independent Mdel (CIM) that reflects business and its mdels defined at the prblem dmain level in Figure 1; 2. Platfrm Independent Mdel (PIM) that reflects analysis and design mdels f the sftware system t be develped defined at the slutin dmain level in Figure 1; 3. One r many Platfrm Specific Mdels (PSM) that reflect detailed design mdels f sftware system under cnstructin defined at the sftware dmain level in Figure 1; P r b l e m S l u t i n S f t w a r e d m a i n d m a i n d m a i n 10

2013/ 14 4. One r many Implementatin Specific Mdels (ISM) that reflect implementatin and runtime mdels defined at the implementatin dmain level in Figure 1. The cmpnents f MDA, shwn n Figure 1, represent all f the activities included in the MDA-driven sftware develpment prcess. Dependence n infrmatin exchange, which is imprted/exprted frm ne cmpnent t anther, is written n the arrws between the cmpnents in Figure 1. Regular fnt n the arrws between the cmpnents means that imprt/exprt f mdels is pssible. Transitins between the cmpnents, which can be perfrmed nly by a human at the mment, are expressed in italics. The prcess, which cnverts ne mdel int anther is called transfrmatin. As shwn in Figure 1, CIM t PIM transfrmatins are usually perfrmed manually. As fr the PIM t PSM as well as PSM t ISM transfrmatin, sftware develpers are trying t perfrm it autmatically. In the authrs pinin it is much easier t perfrm these peratins in cmparisn t PSM t ISM transfrmatin because in the first case similar mdel frms are used (graphical). In the secnd case graphical mdel is transfrmed directly int text. This paper mstly deals with PSM t ISM transfrmatin, which is mre cmmnly called 'cde generatin'. III. REVIEW OF CODE GENERATION METHODS AND TECHNIQUES With the annuncement f MDA Object Management Grup als tried t describe hw different parts f this architecture wuld wrk. While the OMG rganizatin develped theretical basis f the research area, the practical side f cde generatin started t fall behind. Nwadays a lt f different standards related t cde generatin exist [12], but n methd is able t prvide cmprehensive guidelines f hw t cnvert all this thery int practice. Hwever, varius methds and techniques d exist, which try t define certain imprtant aspects f the cde generatin prcess. A. Cde generatin appraches Accrding t [13], the tw main cde generatin appraches can be singled ut: visitr-based and templatebased. The pint f the visitr-based apprach is that the cde is being generated while iterating thrugh textual representatin f the mdel. The template-based apprach is mre cmmnly used because it culd prvide mre cmplex and nice cde generatin. This apprach implies writing special textual templates, which basically are a set f rules. These rules specify the way f generating cde frm sme specific mdel. Hwever, the mst significant disadvantage f this apprach is that with the grwth f cmputer system, the template culd quickly becme t cmplex [5]. That is why it is mre preferable t mdify this apprach, fr systems that are prcessing a lt f data t accmplish different sets f tasks. It culd als be wise t use such apprach in cmbinatin with the first ne. B. Cde generatr s types Five different types f cde generatrs can be singled ut [14]: Cde munger is the simplest f these. Mung-ing means transfrming smething frm ne frm int anther frm, thus the generatr ges thrugh the input and searches fr imprtant features (keywrds, tags, etc.) and uses them t create the utput files. This kind f generatr can be used t generate dcumentatin, retrieve and cllect sme specific infrmatin r generate sme kind f the input analysis result. An Inline-cde expander reads the surce cde and, where it finds the predefined markup, inserts the prductin cde. The difference t cde munger is that the utput is the same as the input but with crrectins - additins. The negative aspect is debugging, because markup wrds may cause cmpilatin errrs, and even if the markup is in the cmment frm, the surce cde des nt represent full executin cde. Mixed-cde generatr is the cmbinatin f the previus tw types. The difference is that the generatr utput can be used as the input (mdificatins are dne in the input file), thus the result can be regenerated. Similar t the inline-cde expander the generatr reads the surce cde and finds the predefined markup but instead f inserting the prductin cde the mixed-cde generatr replaces the area between the markup. Because the markup is specially frmatted cmments, which mark the start and the end f the replacement area, the surce file can be used fr debugging. The partial-class generatr input is the definitin file and template files. By analyzing the definitin file, the template is filled and the utput is prduced. The utput f the generatr will depend n the variable infrmatin in the definitin file. The partial-class generatr is used fr generating base structures r base classes which afterwards are manually updated with final functinality. Tier r layer generatr is similar t partial-class generatr, except it takes the respnsibility t cmpletely generate ne tier f an n-tier applicatin. This means, that the generated cde has enugh functinality fr the wrking tier r layer, and nt just base classes. Tier r layer generatr can be psitined as a Mdel Driven generatr, where the UML mdel is an input and ne r mre tiers f the system is an utput. C. Cde generatin techniques The paper [5] describes such cde generatin techniques as: Templates and filtering technique defines that generalized surce cde fragments are represented as textual templates. During cde generatin prcess, the variables f these templates are assciated with the system mdel. Templates and meta-mdel technique is very similar t the previus ne, except the new meta-mdel f the system representatin is being created befre the template is executed in a user defined way. It means that templates are nt dependent n the mdel syntax and culd be written in any prgramming language. Frame prcessrs have the fllwing principle f peratin: the cde is being specified with the help f bject- 11

2013/ 14 like frames. Each frame wns a grup f attributes called slts. When a new frame is being created, its slts are cnnected with specific values. They may represent different aspects f thye system mdel and als may cntain references t ther frames. Thus, during cde generatin, the frames frm the tree structure f the system surce cde. API-based generatr is usually cnnected with a single prgramming language. Thus it prvides the user with a special framewrk, which makes the cde generatin prcess mre intuitive. The surce cde is cmmnly specified with the help f templates. API-based generatrs ften have built-in cmpilers that are able t evaluate the generated cde at nce. In-line generatin technique determines that the prgram surce cde cntains text fragments, which at the time f cmpilatin, depending n the cnditins, can be extended r nt included int the prgram at all. Such cde generatin technique is quite primitive, therefre it cannt be used as the main ne. Cde attributes technique defines that special text such as cmments can be placed in the existing surce-cde. In fact, these cmments are specific instructins t the cde generatr. This technique is cmmnly used t autmatically generate prgram dcumentatin. Cde weaving technique states the fllwing: sme independent and nn-related pieces f text are manually written int the input file. At the same time it is als defined hw all these fragments shuld be jined tgether during the cde generatin prcess. Finally, all these pieces wuld be prcessed and mixed t frm the prgram surce cde. D. Cde generatr taxnmy The earlier defined cde generatin appraches, types and techniques can be cnnected as fllws: cde generatrs can be derived frm ne f the cde generatin appraches: visitr-based r template-based. They differ frm specific generatrs types, which implement specific cde generatin techniques. The essence f the template-based apprach taxnmy is illustrated in Figure 2. Templates and filtering Partial-class generatr Template-based apprach Frame prcessrs Tier r layer generatr Fig. 2. Template-based apprach taxnmy Templates and metamdel APIbased generatr Templates and filtering as well as templates and metamdel techniques are assciated with the partial-class generatr because it perates with templates. These techniques are als the simplest - they allw generating nly the carcass f a system cde. Tier r layer generatrs have a mre cmplex mechanism that is why they implement frame prcessrs and API-based generatrs. The essence f the visitr-based apprach taxnmy is illustrated in Figure 3. Cde attribute technique is assciated with cde munger type generatrs because f their ability t autmatically create prgram dcumentatin. In-line generatr technique is implemented in the in-line cde expander type generatrs because they d nt change the frm f input surce cde but add a new fragments t it. Cde weaving technique has bth cde munger and in-line cde expander characteristics: these cde generatrs are capable f cmpletely changing the input file r, just adding sme new cde fragments. Mixed cde generatr shuld nt be fully assciated with any f the techniques listed abve. Cde generatr may r may nt have any features f this type depending n its purpse and set f tasks. Mixed-cde generatr Cde attributes Visitr-based apprach Cde munger Cde weaving Fig. 3. Visitr-based apprach taxnmy In-line cde expander In-line generatin The presented taxnmies are quite strict, hwever in practice ne cde generatr can have bth the features f the visitr and template-based appraches. Cde generatrs are nt islated and differ frm each ther, yet cmplement each ther. Because f that, it can be difficult t apply strict classificatin t a single cde generatr. IV. REVEALING THE REAL NATURE OF EXISTING CODE GENERATORS The taxnmy f cde generatrs presented in the previus sectin raises sme questins: why the existing tls, which have sme cde generating functins, are nt s widely used in the industry [15] when there are varius methds f cde generatin? Can the great crpratins like Sparx r IBM fully use all these methds t create really functinal cde generatrs? A. Cde generatrs classificatin T answer these questins, the authrs attempted t classify sme f the famus tls, which accrding t their develpers, grant brad cde generating functinality. The fur tls participated in the experiment: IBM Ratinal Sftware 12

2013/ 14 Architect 8.0, Sparx Enterprise Architect 9, Micrsft Visual Studi 2010 and Eclipse 3.7.2. These tls are quite ppular and were develped by the famus and big cmpanies (a huge grup f peple in case f Eclipse). It means that they shuld be quite functinal and qualitative. In general, all f the chsen tls are slightly different in their functinality: Sparx Enterprise Architect 9 is well knwn as a UML mdeling tl [16], IBM Ratinal Sftware Architect 8.0 is psitined as a huge prject-develping framewrk [17]. Micrsft Visual Studi 2010 is a develpment envirnment and its mdeling functinality is much smaller than previus nes [18]. Eclipse is an pen-surce plug-in based prduct, which theretically culd be extended t perfrm any types f tasks [19]. Basically, Eclipse des nt have built-in cde generatin functins, but this can be easily fixed with such add-ns as Accele r XPand. Since tl develpers d nt prvide exact infrmatin abut the mechanisms their cde generatrs are using, the authrs f this paper may nly guess this by reading dcumentatin and study their functinality. The tls were assciated with cncrete methds r types frm the taxnmy nly if authrs were fully sure abut this. Table 1 shws tl classificatin in relatin t cde generatin techniques. TABLE I TOOLS CLASSIFICATION RELATIVELY TO THE CODE GENERATION TECHNIQUES Tls Cde generatin techniques IBM Ratinal Sftware Architect 8.0 Sparx Enterprise Architect 9 MS Visual Studi 2010 Eclipse 3.7.2 Templates and filtering X X X Templates and meta-mdel Frame prcessrs X API-based generatr X X X In-line generatin X X X X Cde attributes X X X X Cde weaving IBM Ratinal Sftware Architect realizes the s-called cmment templates, which are assciated with the cde attribute technique. The tl prvides API t specify cde generatin prcess. It means that Ratinal Sftware Architect is an API-based generatr. The in-line cde generatin technique may als be assciated with this tl because it supprts C++ prgramming language, which has the define instructin [20]. Sparx Enterprise Architect has the built-in language fr writing templates [21]. That is why this tl may be assciated with templates and filtering technique as well as API-based cde generatin technique. Sparx Enterprise Architect als supprts C++ and sme ther prgramming languages, which are cnnected with the in-line cde generatin technique. The tl supprts at least JavaDc dcumentatin, which means that Sparx Enterprise Architect culd be assciated with the cde attributes technique [16]. Visual Studi 2010 gives an pprtunity t define text templates by using C# cde fragments [22]. This allws t assciate Visual Studi 2010 with the templates and filtering as well as the API-based generatr techniques. The in-line cde generatin technique can als be assciated with this tl because f C++ prgramming language supprt. C# prgramming language has an ability t autmatically generate dcumentatin (XML dcumentatin), which is the feature f the cde attributes technique. Eclipse als prvides the develper with the pprtunity t write templates, thus it realizes the templates and filtering cde generatin technique. Eclipse als has the s-called wrkflw cde generatin mechanism, which at its cre is very similar t the principles f frame prcessing technique. The tl supprts sme prgramming languages such as C++, which allws assciating it with the in-line cde generatin technique. The cde attributes technique is als cnnected with Eclipse because f its ability t autmatically generate prgram dcumentatin, such as JavaDc [23]. Accrding t the classificatin as well as cnsidering the taxnmy presented abve, the chsen tls were als classified by types f cde generatrs. The results f this are shwn in Table 2. TABLE II TOOLS CLASSIFICATION RELATIVELY TO THE CODE GENERATORS TYPES Tls Cde generatrs types IBM Ratinal Sftware Architect 8.0 Sparx Enterprise Architect 9 MS Visual Studi 2010 Eclipse 3.7.2 Cde munger X X X X In-line cde expander X X X X Mixed-cde generatr 13

2013/ 14 Partial-class generatr X X X Tier r layer generatr X X X X The presented classificatin shws that sme ppular tls realize a lt f varius cde generatin mechanisms and thus are fcused n slving quite a wide range f prblems. They realize bth template-based and visitr-based cde generatin appraches. Therefre, it sunds quite lgical t state that it is sufficient t make the mentined tls wrk well,. Hwever, in practice they are nt very widely used. B. Qualitative evaluatin f cde generatrs Unppularity f cde generatrs may be cnnected t the fact they are t incnvenient t use r lack certain mdern vital features. The evaluatin f the cde generatrs quality was made t prve this. The tls mentined in the previus sectin (IBM Ratinal Sftware Architect 8.0, Sparx Enterprise Architect 9, Micrsft Visual Studi 2010 and Eclipse 3.7.2) were als tested fr their quality.. First f all, sme criteria were cnsidered with the purpse t find ut mre abut the quality f cde generatrs. Table 3 shws these criteria and prvides shrt explanatin f their meaning. The first eight f them were taken frm [24]. The last ne (Supprt f different prgramming languages) was added by the authrs because smetimes ne prgramming language is preferred fr slving certain tasks ver anther, s it wuld be imprtant t supprt as much f them as pssible. Tls qualitative criteria Ignre specific syntax cde generatin language independence frm mdeling language Pwerful expressin language the easiest way f accessing mdel elements Mdular templates the ability t keep a grup f templates in ne mdule TABLE III RELATION OF THE QUALITATIVE CRITERIA AND CODE GENERATORS IBM Ratinal Sftware Architect 8.0 Tls Sparx Enterprise Architect 9 MS Visual Studi 2010 Eclipse 3.7.2 X X X X X X X Nice syntax better readability f the template text X X X X Object riented templates plymrphism, inheritance and this reference supprt Static type checking & IDE supprt the ability t get errr messages while writing the cde Extensins the ability t attach additinal mdules t extend the functinality Template AOP the ability t define sme architecture-specific cde fragments inside the template X X X X X X X Supprt f different prgramming languages X X X X X X X Table 3 shws that n ne f the chsen tls match the template AOP criterin. Hwever, in the authrs pinin, it is nt s imprtant because mdern perating systems are t different and smetimes it is easier t fully rewrite certain templates depending n the architecture than make them mre cmplicated with specifying a lt f similar cde fragments. Mrever, sme languages, such as Java, d nt depend n particular system architecture at all. In the authrs pinin the mst imprtant criterin is static type checking & IDE supprt because the earlier IDE will warn the develper abut a mistake, the earlier it will be crrected. All f the tls match this criterin, which pints t their gd quality. The ther very imprtant criterin is bject riented templates. This fact is supprted by the cre f the bject riented paradigm. Hwever, nt all f the cde generatrs match this criterin. Talking abut extensins, Micrsft Visual Studi 2010 might als match it, hwever, in cmparisn t ther tls, it prly supprts plug-ins. Thus, the hypthesis presented at the start f this subsectin was nt cnfirmed. The tls are qualitative. They make cding and transfrmatin writing prcess much easier. Mrever, they prvide the user with certain useful additinal functins and supprt a variety f prgramming languages. C. Quantitative evaluatin f cde generatrs Accrding t the presented classificatin f the tls, they use a variety f different techniques t generate the surce cde. The quality f sme f the mst ppular cde generatrs was als substantiated. Hwever, as the current subsectin shws, the main prblem f the cde generatin unppularity in the industry lies within the cde generatrs functinality itself. 14

2013/ 14 Such ppular tls as Sparx Enterprise Architect, Visual Paradigm, Micrsft Visual Studi 2010 were chsen t test their functinality. Sparx Enterprise Architect and Visual Paradigm fr UML [25] are mainly recgnized as UML mdeling tls with the capability t generate prgram cde, cmpared t Visual Studi, which is a develpment envirnment. In the authrs pinin, a tl which is a develpment envirnment culd have mre supprt fr required mdeling structures frm the cde perspective, as well as better algrithms fr cde generatin frm the mdels. T test the chsen tls 69 experimental mdels were made. Each f them was created n the basis f the knwledge f the ntatin f UML elements and its semantics (frm UML specificatins) and, n the ther hand, the knwledge abut C# rules and its syntax. Fr cde generatr testing, the blackbx testing strategy was chsen, which means, that the authrs prvided the input (UML class diagram) and analyzed the utput (C# cde). The authrs were making experiments fr the fllwing prgramming structures/uml ntatin: access mdifiers (private, prtected, internal); class mdifiers (abstract, sealed, static); methd mdifiers (static, new, verride, abstract); methd parameter mdifiers (params, ref, ut); accessr methds; multiplicity; default values; read-nly and derived values; cnstructrs; destructrs; steretypes: cnstant, event, prperty; active class; cnstraints: rdered, unique, redefines; naming cnventins and keywrd usage; namespace scpe; tag-values: precnditin, pstcnditin, etc. The results fr each f the tl (Enterprise Architect / Visual Paradigm / Visual Studi) distributes respectively: almst half with errrs cmpilatin errrs 55%/45%/39% and executin errrs 3%/5%/4%, ne furth is infrmatin lss 20%/26%/16%, here we can als add missing ntatin categry, which is 11% fr Visual Studi. The missing ntatin categry was added (t the list f categries) because f the Visual Studi, riginally the experiments were dne with Sparx EA and Visual Paradigm, and nly later tested with Visual Studi. Because it was nt pssible t prvide tagged values and cnstraints, these tests resulted in missing ntatin. Finally, nly 14%/18%/18% f the tests appeared t be crrect. The reasn fr such results, which shwed the analysis f three cde generatin tls is the primitivism f transfrmatins. Althugh it is pssible t change the transfrmatin templates, this des nt slve the prblem cmpletely because f limitatin t lcal scpe. The rt prblem lies in the simplicity f prgram cde generatrs, which simply transfer the pattern f mdel infrmatin t the prgram cde withut any additinal testing and decisin making n the required infrmatin cnversin fr the target prgramming language. Generatrs d nt have any additinal knwledge supprt abut target platfrm restrictins, laws and keywrd cmbinatins. In fact, the existing tls try t implement sme small pieces f different ideas all at nce. They d nt fcus n ne specific methd and d nt attempt t fully cmplete it. The develpers f cde generatrs als d nt try t bring sme revlutinary new ideas in the field f this research, instead they just try, fr example, t mdify the templatebased cde generatin apprach. Because f this, the evlutin f the cde generatin nearly stpped. V. PRACTICAL EXPERIMENT OF CODE GENERATOR DEVELOPMENT The cde generatr evaluatin test clearly shwed that the cde generatin puzzle is nt yet slved. Thus, it makes sense t experiments with the new cde generatr develpment. The authrs f this paper als want t present their tl, which cmbines frame prcessing as well as templates and filtering cde generatin techniques. Accrding t previusly presented taxnmy, the tl is a partial-class generatr and tier r layer generatr. It realizes the template-based cde generatin apprach. The presented tl was written in C# prgramming language and uses standard.net libraries fr parsing XML dcuments. A. The ideas brn while develping the tl During the tl develpment prcess it became ttally clear that it is very difficult t invent smething new in the cde generatin field. Every idea, which at the first glance seemed riginal eventually reduced t template writing and iterating thrugh mdel meta-data. That is why it was impssible t discard the template apprach cmpletely. Hwever, use f templates can be quite an advantage because they prvide an pprtunity t develp a mre universal cde generatr. It was als mentined that template-based apprach is mre effective than the visitr-based, besides, it ffers mre flexibility during cde specificatin. Mrever, in the authrs pinin, it is easier t make the cde generatr, which uses template-based cde generatin apprach. Hwever, the idea f making templates as much universal as pssible, led t certain difficulties during the tl develpment. In the end, sme share f universality was sacrificed t make certain preplanned features available. In this aspect, it wuld be reasnable t mentin that OMG rganizatin itself interferes the universality by allwing mdeling tls t use xmi:extensin element [26, 27]. Thus develpers f mdeling tls can extend the XMI dcument as they like and eventually they d s. Thus, every template that represents ne piece f cde can be verwritten several times depending n the mdeling tl. It was already mentined earlier that with the system grwth, the templates may als becme mre cmplex and less readable. The reasn is that each template includes mre structures, key wrds, cnditins, etc. That is why it wuld be reasnable t smehw separate the definitin f the template frm the definitin f sme f the structures mentined abve. The template hierarchy must als be better structured in relatin t the elements f UML mdel. The authrs f this paper suggest frames as the mechanism f implementing the ideas mentined abve. B. The tl majr wrking mechanism The develped tl has the fllwing idea: each frame shuld represent ne specific type f the bject-riented 15

2013/ 14 elements (class, interface, methd etc.). Frames stre infrmatin n hw t cnnect cde templates with the mdel XMI meta-data. The XPath 1.0 language is used t achieve this. Each frame has its wn set f attributes. Sme f them are cmmn fr all frames. It means that the user must define their values n the creatin f the frame. Such attributes are: name f the frame, template, prefix, pstfix, separatr f the similar cde pieces and meta-mdel XPath expressin. The user may als specify his wn unique attributes that cnnect the current frame template with the system mdel. Anther purpse f the user-defined attributes is t keep references n ther frames. User-defined attribute names may be put int the template text t specify cnnectin between the system mdels and the templates. The user shuld define the rt frame and the meta-data XML dcument t make it all wrk. The rt frame shuld be the ne, which which keeps the mst abstract infrmatin abut a cde t generate. The tl starts the cde generatin prcess frm prcessing the rt frame. The mechanism f frame prcessing is the same fr all frames. First f all, a value f XPath expressin attribute is taken. It is used t find the matching element frm the meta-data file. Then the template is prcessed and written t the utput file. The prefix and the pstfix text are als attached t the template at the beginning and at the end f the generated text. At this time the template parsing mechanism tests the template fr any userdefined attribute names. The name f the matching attribute is replaced with the value frm meta-data if the matching attribute keeps an XPath expressin. If the matching attribute keeps reference t the ther frame, its name is replaced with the generated text f the matching frame. C. Demnstratin f the tl peratin A simple example is prvided further t demnstrate hw the tl wrks. Let us imagine that we have tw public classes: Thing and Table. The secnd class extends the first ne. The class Thing has tw private attributes f type integer: x and y. The class Table has the private attribute named clr, which is f the type String. The XML dcument, which represents this mdel is given belw: <?xml versin="1.0" encding="windws-1252"?> <mdel> <element ID = "1" type = "class" name = "Thing" scpe = "public"> <attribute ID = "2" name = "x" scpe = "private" type = "int"/> <attribute ID = "3" name = "y" scpe = "private" type = "int"/> </element> <element ID = "4" type = "class" name = "Table" scpe = "public"> <attribute ID = "5" name = "clr" scpe = "private" type = "String"/> <parent ID = "6" IDref = "1"/> </element> </mdel> A list f the frames, which specify cde generating frm this mdel is shwn in Table 5. TABLE IV A LIST OF FRAMES Attribute names Attribute values fr each frame Name _element _attribute _parent Template _scpe _type _name _parent { _attributes _scpe _type _name ; _parent } XPath //mdel/element attribute Parent Separatr \n\n \n Prefix extends Pstfix _type type type attribute is nt defined _name name name attribute is nt defined _scpe scpe scpe attribute is nt defined _attributes Reference n the frame _attribute attribute is nt defined attribute is nt defined _parent Reference n the frame _parent attribute is nt defined FindNdeAttr IDref ID //mdel/element[@type='class'] name In case f the presented example the rt frame is _element. Thus, it is the first frame t prcess. Basically, the _element frame describes the generatin f such structure as class. Accrding t the tl s wrking mechanism the XPath attribute s expressin is being prcessed, and in this example it pints t the element called element f the XML text presented abve. It means that the _element frame attributes _type, _name and _scpe pint t the attributes type, name, and scpe f the XML text element, which name is element. The attributes _parent and _attributes pint t the ther frames with the names _parent and _attribute. Accrding t the separatr attribute, each peace f the _element frame template will be separated with tw caret return symbls if it meets mre than ne element with the name element inside the XML text (actually it will, because f the example definitin). The frame _attribute has the structure, which is similar t the previus ne. Thus, the frame _parent will be described in 16

2013/ 14 mre detail. The specifics f XPath attribute is that each child frame will pint t the child element f the XML element its parent pints t. In this example the frame _element pints t the _parent frame, which means that in this case this frame will be assciated with the XML element available by the path //mdel/element/parent. The _parent frame has nly ne user-defined attribute, which name is _parent. This attribute cntains usage f the functin FindNdeAttr that finds an attribute value f specific XML element, which ther attribute matches t the value f the different XML element specific attribute value. In the presented example this functin is used t get the name f the class parent, if such exists. If it is true, then the prefix attribute s text extends is being added befre the name f the parent. Speaking abut the functins, sme f them were intrduced t implement such things as searching fr similar elements r testing fr existence f sme the particular element. T intrduce these functins, the universality has t be sacrificed, which was mentined earlier. The reasn is that the first versin f XPath language des nt prvide a number f vital functinalities, therefre in the future versins f the tl it will be replaced with the XQuery language. The cde generatin prcess results int the fllwing cde: public class Thing { private int x; private int y; } public class Table extends Thing { private String clr; } VI. CONCLUSION Fr mre than ten years scientists in cperatin with big industrial rganizatins have been trying t find different ways f applying the Object Management Grup inventin MDA architecture. If they succeeded, the cding prcess wuld becme fully autmated. It wuld lead t reducing the amunt f bugs inside the surce cde almst t zer as well as system independency frm the particular cmputer architecture. Unfrtunately, as f tday the fully functining MDA based system remains a utpia. Statistics prves that there are sme gd quality MDA based systems; hwever, there are nt many f them all ver the wrld. That is why in the authrs pinin gd wrk has been dne by qualified and experienced human specialists rather than cde generatrs. The cde generatin field is "crwded" with numerus and differing standards, which prevents frm using them in practice. Hwever, sme practical disciplines f cde generatin d exist. The authrs f this paper fund ut that all f them stem frm the tw different cde generatin appraches: template-based and visitr-based. The study resulted int the taxnmy, which shws hw these tw appraches as well as cde generatin techniques and cde generatr types are linked tgether. The created taxnmy then was used t classify such tls as IBM Ratinal Sftware Architect 8.0, Sparx Enterprise Architect 9, Micrsft Visual Studi 2010 and Eclipse 3.7.2. As a result, it became clear that all thse tls realize a variety f mechanisms t generate a surce cde, mrever they match sme quality criteria presented during the research. Theretically, it means that these tls have a really great functinality as well as they are easy t use. The latter is true. As fr the cde generatrs functinality, it has a huge hidden prblem, which makes cde generatin s rarely used in the industry. The functinality f such tls as Sparx Enterprise Architect, Visual Paradigm and Micrsft Visual Studi 2010 was tested n 69 different experimental mdels. The study shwed that nly 14% f the tests fr Sparx Enterprise Architect, 18% fr Visual Paradigm and 18% fr Micrsft Visual Studi 2010 are crrect. In the authrs pinin such bad results are the cnsequence f the primitivism f transfrmatins and lack f sme clever way f applying them. Basically, cde generatrs d nt have additinal infrmatin abut the target platfrm. Accrding t classificatin, the ther reasn f cde generatrs bad functinality is that they are designed t perfrm many different tasks by applying a lt f techniques at nce. In the authrs' pinin, anther weak spt are the templates. On the ne hand, they are quite effective and therefre the mst cmmnly used. On the ther hand, they becme t cmplex and difficult t read during develping thus making the system grw t big. Hwever, the prcess f designing the authrs wn cde generating tl shwed that it is difficult t invent smething that wuld be much mre innvative than the templates. The mentined tl implements the templates in cmbinatin with the frames. Frames are used t make templates less verladed by meta-mdel cnnectin and ther replaceable strings while string it inside the attributes. Unfrtunately, at present the described tl is able t transfrm mdels int the surce cde, hwever it cannt be extended t perfrm the ppsite task. One f the mst significant disadvantages f the tl is that it was nt designed t update the surce cde, nly t regenerate it every time it runs. This actually lwers the speed f perfrming transfrmatins. In the authrs pinin, in this cntext the questin f speed is nt very imprtant. As it was already mentined, the main gal f cde generatrs is t generate the crrect cde that is why it culd be reasnable t sacrifice speed fr functinality. Despite a permanent slutin f the cde generatrs functinality prblem culd be develping cmpletely new apprach f cde generatin r rewriting the existing specificatins, it may cnsume a lt f time and resurces. T peratively imprve the situatin with cde generatin it is wrth searching fr sme effective cmbinatins f already existing cde generatin methds and techniques. It culd als be reasnable t tryi t develp sme minr tls, which wuld cncentrate n a narrw spectrum f tasks and use these tls in cmbinatin rather than using the bigger nes separately. 17

2013/ 14 ACKNOWLEDGEMENTS The research presented in the paper is partly supprted by Grant f Latvian Cuncil f Science N. 09.1269 "Methds REFERENCES [1] UML Unified Mdeling Language Specificatin, OMG dcument, [Online]. Available: http://www.mg.rg [Accessed: Sept. 23, 2012] [2] Sejans J., Nikifrva O. Practical Experiments with Cde Generatin frm the UML Class Diagram, Prceedings f MDA&MDSD 2011, 3rd Internatinal Wrkshp n Mdel Driven Architecture and Mdeling Driven Sftware Develpment In cnjunctin with the 6th Internatinal Cnference n Evaluatin f Nvel Appraches t Sftware Engineering, Osis J., Nikifrva O. (Eds.), Beijing, China, June 8-11, 2011, SciTePress, Prtugal, Printed in China, pp. 57-67 [3] A. Bajvs, Research f the Basic Principles f the Mdel-T-Cde Transfrmatin, Bachelr Thesis, Riga Technical University, 2012 [4] OMG: MDA Guide Versin 1.0.1, [Online]. Available: http://staffwww.dcs.shef.ac.uk/peple/a.simns/remdel/papers/mdag uide101jun03.pdf [Accessed: Sept. 23, 2012] [5] M. Vlter, Frm Prgramming t Mdeling - and Back Again, IEEE Sftware, Nv.-Dec. 2011, pp. 20-25. [6] T. Stahl and M. Vlter, Mdel-Driven Sftware Develpment, Wiley, 2006, pp. 428. [7] J. L. Eveleens and C. Verhef, The Rice and Fall f the Chas Reprt Figures, IEEE Sftware, IEEE Cmputer Sciety, 2010, pp. 30-36. [8] E. Kalniņa, Mdel Transfrmatin Develpment Using Mla Mappings And Template Mla, PhD thesis, University f Latvia, 2011. [9] M. Brambilla, J. Cabt, and M. Wimmer, Mdel-Driven Sftware Engineering in Practice, Mrgan & Claypl Publishers, 2012, pp. 173. [10] I. Jacbsn, G. Bch, J. Rumbaugh: The Unified Sftware Develpment Prcess, Addisn-Wesley, 2002, pp. 512. [11] O. Nikifrva, A. Cernickins, and N. Pavlva, Discussing the Difference between Mdel-driven Architecture and Mdel-driven Develpment in the Cntext f Supprting Tls, Prceedings f the 4th Internatinal Cnference n Sftware Engineering Advances, IEEE Cmputer Sciety, 2009, pp. 1-6. [12] OMG: Catalg f OMG Mdeling And Metadata Specificatins, [Online]. Available: http://www.mg.rg/technlgy/dcuments/mdeling_spec_catalg.htm [Accessed: Sept. 23, 2012] [13] K. Czarnecki and S. Helsen. Classificatin f Mdel Transfrmatin Appraches, OOPSLA 03 Wrkshp n Generative Techniques in the Cntext f Mdel-Driven Architecture Anaheim OOPSLA, Canada:University f Waterl, 2003, pp. 1-17. Andrejs Bajvs received the Bachelr degree in cmputer systems frm Riga Technical University, Latvia, in 2012. He is presently the first year master study s student and a scientific assistant at the Department f Applied Cmputer Science, Riga Technical University. His current research interests include riginal ways f cde generatin in mdel driven architecture. E-mail: andrej_bv@inbx.lv Oksana Nikifrva received the dctral degree in infrmatin technlgies (system analysis, mdeling and design) frm Riga Technical University, Latvia, in 2001. She is presently a Full Prfessr at the Department f Applied Cmputer Science, Riga Technical University, where she has been n the faculty since 1999. Her current research interests include the bject-riented system analysis and mdeling, especially the issues in the framewrk f Mdel Driven Sftware Develpment (MDSD). She has published extensively in these areas and has been awarded several grants. She has participated and managed several research prjects related t the system mdeling, analysis and design, as well as participated in several industrial sftware develpment prjects. She is a member f RTU Academic Assembly, Cuncil f the Faculty f Cmputer Science and Infrmatin Technlgy, RTU Publishing Bard, RTU Scientific Jurnal Editrial Bard, etc. She is a c-chair f wrkshps fcused n MDSD MDA 2009 in cnjunctin with ADBIS, MDA&MTDD 2010 and MDA&MDSD 2011 in cnjunctin with ENASE. She was awarded as RTU Yung Scientist f the Year 2009. and Mdels Based n Distributed Artificial Intelligence and Web Technlgies fr Develpment f Intelligent Applied Sftware and Cmputer System Architecture". [14] J. Herringtn. Cde Generatin in Actin. Manning, 2003, pp. 342. [15] Sejans, J.: Analysis f Ntatinal Elements f UML Class Diagram. (In Latvian: Valdas UML klašu diagrammas elementu ntācijas analīze). Bachelr Thesis, defended in Riga Technical University. RTU (2007) [16] Sparx Systems Enterprise Architect, [Online]. Available: http://www.sparxsystems.cm.au/ [Accessed: Sept. 23, 2012]. [17] IBM: Are yu new t Ratinal? Get acquainted with IBM Ratinal cllabrative and integrated slutins fr sftware and systems delivery, [Online]. Available: http://www.ibm.cm/develperwrks/ratinal/newt/ [Accessed: Sept. 23, 2012]. [18] Micrsft: Visual Studi 2010, [Online]. Available: http://msdn2.micrsft.cm/en-us/vstudi/default.aspx [Accessed: Sept. 23, 2012]. [19] Eclipse: Abut the Eclipse Fundatin, [Online]. Available: http://www.eclipse.rg/rg/ [Accessed: Sept. 23, 2012]. [20] IBM: Ratinal Sftware Architect 8.0 Dcumentatin, [Online]. Available: http://pic.dhe.ibm.cm/infcenter/rsahelp/v8/index.jsp [Accessed: Sept. 23, 2012]. [21] Sparx: MDA Transfrmatins, [Online]. Available: http://www.sparxsystems.cm/uml_tl_guide/mda_transfrmatins/md astyletransfrms.htm [Accessed: Sept. 23, 2012]. [22] MSDN: Cde Generatin and T4 Text Templates, [Online]. Available: http://msdn.micrsft.cm/ru-ru/library/bb126445.aspx [Accessed: Sept. 23, 2012]. [23] Eclipse: Dcumentatin - Current Release, [Online]. Available: http://help.eclipse.rg/indig/index.jsp [Accessed: Sept. 23, 2012]. [24] M. Völter. Best Practices fr Mdel-t-Text Transfrmatins, Ingenieurbür für sftwaretechnlgie, 2006, pp. 3. [25] Visual Paradigm, [Online]. Available: http://www.visual-paradigm.cm/ [Accessed: Sept. 23, 2012]. [26] OMG: MOF 2 XMI Mapping Specificatin Versin 2.4.1, [Online]. Available: http://www.mg.rg/spec/xmi/2.4.1 [Accessed: Sept. 23, 2012]. [27] A. Cernickins, O. Nikifrva, K. Ozls, J. Sejans. An Outline f Cnceptual Framewrk fr Certificatin f MDA Tls, Prceedings f the 2nd Internatinal Wrkshp n Mdel-Driven Architecture and Mdeling Thery-Driven Develpment, In cnjunctin with ENASE 2010, In Janis Osis, Oksana Nikifrva, (Eds.), Athens, Greece, July 2010, SciTePress, pp. 60-69. E-mail: ksana.nikifrva@rtu.lv Jānis Sējāns has engineering science master degree (Mg.sc.ing) in infrmatin system field frm Riga Technical University, in 2010. Currently studying at the Faculty f Cmputer Science and Infrmatin Technlgy as Phd student. He is a researcher in the Department f Applied Cmputer Science f Riga Technical University. The wrk experience is related t ERP system prgramming and implementatin, since 2002. Currently running wn cmpany TwnTech and wrking at Jint Stck Cmpany Latvian Radwrks as a prgrammer fr ERP system. His current research interests include mdel driven sftware develpment, especially its issues in cde generatin imprvement. E-mail: janis.sejans@rtu.lv 18