VPLIV MDA NA PROCES RAZVOJA PROGRAMSKE OPREME

Similar documents
Big Data v praksi Kako buzzword spraviti do rezultatov. SMK, 1. junij 2016 Uroš Cvetko

THE ENERGY EFFICIENCY OF FIRMS IN ELECTRONICS INDUSTRY IN SLOVENIA: DO THEY PERFORM BETTER THAN AVERAGE MANUFACTURING FIRMS?

Luka Zupanc THE EFFECT OF ELECTIONS AND OTHER MAJOR EVENTS ON CONSUMER CONFIDENCE IN SLOVENIA

Managing business rules in enterprises

Carbon footprint. Špela Kern Umanotera, Slovenska fundacija za trajnostni razvoj E-pošta:

Hydrostatic Bearings for Machine Tools

Informacijska podpora pri obvladovanju tehničnih sprememb Information system support at Engineering Change Management

Measurement of company effectiveness using analytic network process method

UNIVERZA V LJUBLJANI EKONOMSKA FAKULTETA MAGISTRSKO DELO ZASNOVA INFORMACIJSKEGA SISTEMA ZA UPRAVLJANJE Z RAZVOJNIMI PODATKI IN DOKUMENTACIJO IZDELKOV

Development process of introducing new stell arch in supporting roadways at Velenje Coal Mine

Analyzing the Impact of Investment in Education and R&D on Economic Welfare with Data Mining

Business modelling with UML

Špela Baebler, Kristina Gruden Nacionalni inštitut za biologijo, Večna pot 111, 1000 Ljubljana,

Skills use governmental responsibility or (and) responsibility of the economy?

Modul za sprotno diagnostiko PEM gorivnih celic

SOCIAL ECONOMIC ASPECTS OF THE GEO- GRAPHIC RESEARCH OF THE ENVIRONMENT

PI-MDD Executive Summary

An Alternative Criteria Research Methodology for Selecting a New Product

THERMOPHYSICAL PROPERTIES AND MICROSTRUCTURE OF MAGNESIUM ALLOYS OF THE Mg-Al TYPE

establishment of of a a rational rational relationship between between

DISPOZICIJA DOKTORSKE DISERTACIJE

The Fast Guide to Model Driven Architecture

BEHAVIOUR OF SHORT CRACKS EMANATING FROM TINY DRILLED HOLES

Extending BPMN for integration of internet of things devices with process-driven applications

RAILWAY TRAFFIC MANAGEMENT AS A FUNCTION OF THE NEW INFRASTRUCTURE MANAGER

PRIMERJALNA ANALIZA ERP REŠITEV MICROSOFT DYNAMICS NAV IN SAP

Organisational model of a globally oriented wood industry company

PI-MDD Executive Summary

Danska, estonska, finska in švedska delegacija so napovedale, da bodo glasovale proti osnutku odgovora, in dale naslednjo izjavo:

Spoznanja na področju izbire strategij v podjetju

An MDA Method for Service Modeling by Formalizing REA and Open-edi Business Frameworks with SBVR

POSSIBILITY OF INCREASING CONTAINER TRAFFIC IN THE PORT OF KOPER DUE TO INTRODUCING THE SEA MOTORWAY

Odprtost sistema mysap ERP

REDUCTION OF NO X EMISSION BY SECONDARY-AIR REDISTRIBUTION. Igor KUŠTRIN, Primož GOSTINČAR

THE INFLUENCE OF COXIELLA BURNETII PHASE I AND PHASE II ANTIGENS ON THE SEROLOGICAL DIAGNOSIS OF Q FEVER IN CATTLE

Model for Monitoring and Assessment of a Public Health Care Network

The drilling and casing program for CO 2. Načrtovanje in izvedba globokih vrtin pri skladiščenju CO 2

Aplikacije pretočne citometrije

DOSEGANJE EKOLOŠKE UČINKOVITOSTI PRI POSLOVANJU

Optimization of Latent Semantic Analysis based Language Model Interpolation for Meeting Recognition

INFLUENCE OF THE WATER TEMPERATURE ON THE COOLING INTENSITY OF MIST NOZZLES IN CONTINUOUS CASTING

CHARACTERISTICS OF ORGANIC FOOD CONSUMERS IN URBAN REGIONS OF LJUBLJANA AND OSTRAVA

Social Responsibility and Governance-Management Process as a Basis of Excellence in Public Administration

NEW FUNCTION OF SEAPORTS: LOGISTICS AND DISTRIBUTION

EUROMONTANA - European association for mountain areas

NAČRTOVANJE SODOBNE ANALITIČNE ARHITEKTURE KATARINA GAŠPERLIN, univ. dipl. inž. el. mag. BOŠTJAN KOS, MBA

OKOLJSKI RAČUNI NA MADŽARSKEM

DAIRY TECHNOLOGY ON THE TURN OF THE MILLENNIUM * Zdenko PUHAN a) ABSTRACT

The Challenges of International Assignments

MATHEMATICAL MODELLING AND PHYSICAL SIMULATION OF THE HOT PLASTIC DEFORMATION AND RECRYSTALLIZATION OF STEEL WITH MICRO-ADDITIVES

PRIMERJALNA ANALIZA KRITIČNIH DEJAVNIKOV USPEHA UVAJANJA CELOVITIH INFORMACIJSKIH REŠITEV Z VIDIKA FAZ IN Z VIDIKA METOD UVAJANJA

Poročilo o dimenzioniranju toplotne črpalke Stane Preveč - Ogrevanje Rešitev 1 - Atec 11

Application of Fuzzy AHP Approach to Selection of Organizational Structure with Consideration to Contextual Dimensions

DEVELOPMENT OF ALUMINIUM ALLOYS FOR AEROSOL CANS

POSSIBILITIES FOR DESULPHURIZATION OF AN ALLOY STEEL IN A VOD DEVICE WHILE USING CHEMICAL HEATING

SOA MDA and SoaML Introduction

MDA and Stakeholders in an MDA Process

A MODIFIED MEAN-LINEAR-INTERCEPT METHOD FOR DISTINGUISHING LAMELLAR AND GLOBULAR EUTECTIC CARBIDES IN METALLOGRAPHIC SAMPLES

THE INFLUENCE OF THE CHEMICAL COMPOSITION OF STEELS ON THE NUMERICAL SIMULATION OF A CONTINUOUSLY CAST SLAB

INFLUENCE OF BEECH PARTICLE SIZE USED IN SURFACE LAYER ON BENDING STRENGTH OF THREE-LAYER PARTICLEBOARD

Univerza v Ljubljani. Fakulteta za elektrotehniko. Marija Marčan. Načrtovanje zdravljenja globoko ležečih čvrstih tumorjev s

PROTEIN SOLUBILITY CLASSIFICATION IN BIOMEDICAL CONCEPT SPACE

INFORMACIJSKA TEHNOLOGIJA IN MANAGEMENT ZNANJA PRI ODPRTEM INOVIRANJU

INTRASPECIFIC VARIABILITY IN THE PHYTOPATHOGENIC FUNGUS Monilinia laxa (Aderh. & Ruhland) Honey. Breeding, Ljubljana. Ljubljana ABSTRACT

THE IMPORTANCE OF SYSTEMS FOR CONTROLLING LOGISTICS COSTS IN THE SUPPLY CHAIN: A CASE STUDY FROM THE SLOVENIAN AUTOMOTIVE INDUSTRY

CIM to PIM Transformation: An Analytical Survey

TENSILE AND COMPRESSIVE TESTS OF TEXTILE COMPOSITES AND RESULTS ANALYSIS

CORROSION OF Al/SiC METAL-MATRIX COMPOSITES

CHARACTERISTICS OF CREEP IN CONDITIONS OF LONG OPERATION

Tradition with Sentiment Traditión mit Empfindung La tradición con sentimiento La tradizione sentita Le goût de la tradition Tradicija sa osječajem

Reconstruction of two road tunnels. Rekonstrukcija dveh cestnih predorov

Process Engineering and Project Management for the Model Driven Approach

Zakaj je lahko SAP moja priložnost?

MDA Overview. Bill Wood

Variability of chemical composition of metallurgical slags after steel production

RVP - Računalniško vodeni procesi. Proizvodni informacijski sistem

TRAINING MATERIALS USED IN A HOP PRODUCTION IN THE CZECH REPUBLIC VODILA V PRIDELAVI HMELJA NA ČEŠKEM

MODEL KRITIČNIH DEJAVNIKOV USPEHA UVAJANJA REŠITEV SAP IN NAVISION

Key words: software quality, testing models, ISO/IEC 12119, cooperative model of testing.

EFFECTS OF EXTRUSION SHEAR ON THE MICROSTRUCTURES AND A FRACTURE ANALYSIS OF A MAGNESIUM ALLOY IN THE HOMOGENIZED STATE

Oxidation of dissolved iron in platinum. Oksidacija železa, raztopljenega v platini

EFFECT OF A COMBINATION OF FLY ASH AND SHRINKAGE-REDUCING ADDITIVES ON THE PROPERTIES OF ALKALI-ACTIVATED SLAG-BASED MORTARS

Analiza relacij med valutnim trgom in

Digital transformation KRIŽEVCI

november 2013, številka Majhen sken za človeka, velik korak za človeštvo

Management. odgovorni urednik izr. prof. dr. Mitja I. Tavčar. glavni urednik prof. dr. Štefan Bojnec

Jernej JEVŠENAK 1, Tom LEVANIČ 2 IZVLEČEK. Slovenija

Simulation Approach to Warehouse Cost Minimization in Stochastic Environment

UNIVERZA V LJUBLJANI EKONOMSKA FAKULTETA DIPLOMSKO DELO

Sistemska biologija pri zdravljenju raka

AN EVALUATION OF THE PROPERTIES OF ROTOR FORGINGS MADE FROM 26NiCrMoV115 STEEL

1. Introduction. URDAD for System Design. Table of Contents. Dr. Fritz Solms. Abstract. Use-Case Responsibility Driven Analysis and Design

PLANNING OF A SELF-SUFFICIENT ENERGY SYSTEM WITH 100% RENEWABLE ENERGY SOURCES AND HYDROGEN STORAGE

IZBRANI VPRAŠALNIKI ZA UPORABO NA PODROČJU PSIHOLOGIJE DELA IN ORGANIZACIJE

The effect of welding flux and welding wire on the microstructure and characteristics of the welded joint

IMPROVING THE CORROSION RESISTANCE OF COMPONENTS MADE FROM STRUCTURAL STEELS

BARBARA DEBELJAK DIPLOMSKA NALOGA

The research of virtual production in wood industry. Raziskava virtualne proizvodnje v lesni industriji

Large-scale integration of distributed energy resources in power networks

An Agile Method for Model-Driven Requirements Engineering

Transcription:

VPLIV MDA NA PROCES RAZVOJA PROGRAMSKE OPREME Damjan Vavpotič, Marko Bajec, Marjan Krisper Univerza v Ljubljani, Fakulteta za računalništvo in informatiko, Tržaška 25, 1000 Ljubljana damjan.vavpotic@fri.uni-lj.si, marko.bajec@fri.uni-lj.si, marjan.krisper@fri.uni-lj.si Povzetek Organizacija Object Management Group (OMG) je sredi lanskega leta predstavila prvo različico specifikacije arhitekture za razvoj programske opreme na podlagi modelov - Model driven architecture (MDA). Bistvo MDA je dvig nivoja abstrakcije, na katerem nastaja programska oprema, česar posledica so tudi pomembne spremembe v procesu razvoja programske opreme. V začetku prispevka je na kratko predstavljen standard MDA, v nadaljevanju pa se posvetimo predvsem vplivu MDA na proces razvoja programske opreme. Abstract IMPACT OF MDA ON SOFTWARE DEVELOPMENT PROCESS Object Management Group presented the first version of Model Driven Architecture (MDA) specification in the middle of the last year. MDA s goal is to raise the level of abstraction at which the applications are being developed today. This also has a significant impact on the software development process. In the first part of the paper we briefly present the most important features of MDA and in the second part we discuss the impact of MDA on software development process. 1. UVOD Pri razvoju IS se pogosto srečamo z vprašanjem, katere tehnologije uporabiti, da bo aplikacija razvita v kar najkrajšem času, s čim nižjimi stroški ter pozneje razširljiva. Pri izbiri smo navadno omejeni na tehnologije, ki jih razvijalci obvladajo. S hitrim razvojem tehnologij postaja problem izbire še bolj pereč. Razvijalci morajo namreč poznati veliko število tehnologij, ki se pogosto nadgrajujejo in menjajo. Prehod na drugo tehnologijo navadno pomeni, da je potrebno aplikacijo razviti na novo ali pa so potrebne vsaj obsežne prilagoditve. V tem pogledu, bi bistveno prednost pomenil razvoj aplikacij na višjem nivoju abstrakcije, ki ni odvisen od uporabljenih implementacijskih tehnologij. Ideja o dvigu nivoja abstrakcije, na katerem nastajajo IS, pravzaprav ni nova in se je na posameznih področjih tudi precej uveljavila. Tako na primer že vrsto let poznamo orodja, ki omogočajo generiranje kode in skript za PB na podlagi konceptualnih podatkovnih modelov. S standardizacijo jezika za vizualno modeliranje programske opreme (UML) ter razvojem vedno zmogljivejših orodij za generiranje kode je ideja v zadnjem času dobila nov zagon. Bistven napredek na tem področju predstavlja standardizacija ogrodja za razvoj programske opreme na podlagi modelov MDA, ki je nastala v okviru OMG. 2. MODEL DRIVEN ARCHITECTURE Osnovno vodilo razvoja programske opreme na podlagi modelov ali Model Driven Development (MDD), kot ga predvideva standard MDA, je, da se razvijalci posvetijo predvsem funkcionalnosti sistema oziroma določijo njegove bistvene funkcije, namesto, da v programskem jeziku opisujejo tehnološke podrobnosti njegovega delovanja. Razvijalci funkcionalnosti opišejo na visokem abstraktnem nivoju, v veliki meri z uporabo vizualnih modelov sistema. Osnovna zahteva za te visoko abstraktne modele je, da so splošni, kar

pomeni, da so neodvisni od uporabljene platforme in tehnologije, ali z drugimi besedami, da opisujejo izključno funkcionalne zahteve. Nadalje MDA predvideva avtomatizirano transformacijo visoko abstraktnih modelov v modele na nižjem nivoju abstrakcije, ki so prilagojeni posameznim platformam in tehnologijam, ter nato avtomatizirano transformacijo teh modelov v delujočo kodo. MDA definira tri osnovne modele. PIM (platform independent model) je model na visokem abstraktnem nivoju, na podlagi katerega so generirani nižjenivojski modeli in koda. PIM mora biti konsistenten, točen in mora vsebovati dovolj informacij o sistemu, da omogoča nadaljnje generiranje nižjenivojskih modelov PSM. PSM (platform specific model) je model na nivoju, ki upošteva konstrukte implementacije, ki so na voljo v okviru izbrane implementacijske tehnologije oziroma platforme. S pomočjo pretvornika PIM transformiramo v enega ali več PSM. Število PSM, ki nastanejo na podlagi PIM, je odvisno od števila različnih implementacijskih tehnologij, ki jih uporablja sistem. Programska koda je model na najnižjem nivoju, ki jo je mogoče s pomočjo prevajalnika pretvoriti v izvedljivo kodo oziroma jo interpretirati. Gre za končni rezultat transformacij, ki nastane na podlagi PSM. Slika 1 poleg opisanih modelov prikazuje tudi druge bistvene elemente MDA. Usmerjene puščice označujejo transformacije, ki omogočajo prehode med modeli na različnih nivojih abstrakcije. Na najvišjem nivoju je PIM, na podlagi katerega s pomočjo transformacij generiramo modela PSM x in PSM y, ki sta prilagojena Platformi x in Platformi y. V nadaljevanju za PSM x generiramo Kodo x, ki je prilagojena Platformi x, za PSM y pa generiramo Kodo y, ki je prilagojena za Platformo y. To pa še ni dovolj, saj je za delovanje sistema potrebno povezati tudi kode oziroma PSM na različnih platformah. To dosežemo s pomočjo mosta med PSM x in PSM y, ki ga prav tako generiramo na podlagi PIM. Most med PSM nadalje omogoča generiranje fizičnega mostu med Kodo x in Kodo y. Na sliki je prikazano generiranje kode in PSM za dve platformi. Na enak način bi lahko potekalo tudi generiranje kode za več platform. PIM Platforma x PSM x Koda x PSM x Koda x PIM PSM x PIM PSM y most med PSM x in PSM y most med Kodo x in Kodo y Platforma y PSM y Koda y PSM y Koda y Slika 1: Osnovni elementi MDA Preden lahko MDA uporabimo, je potrebno izbrati jezike, v katerih bodo zapisani posamezni modeli. MDA ne predpisuje konkretnih jezikov, pomembno je predvsem, da gre za dobro definirane jezike, ki so primerni za avtomatizirane transformacije. Za delovanje MDA je bistvenega pomena jezik za zapis PIM. PIM mora biti namreč zapisan na visokem abstraktnem nivoju, ki ni odvisen od tehnologij, hkrati pa mora vsebovati dovolj podrobnosti,

da omogoča nadaljnje generiranje PSM in kode. Ena izmed možnosti za zapis PIM, ki jo predvideva OMG, je uporaba UML in Object Constraint Language (OCL). V ta namen je OMG razvila novi različici UML 2.0 in OCL 2.0, ki vključujeta konstrukte za podporo MDA. 3. VPLIV MDA NA PROCES RAZVOJA PROGRAMSKE OPREME 3.1 Primerjava klasičnega razvoja in MDD Kot smo že omenili, se proces razvoja MDD, v posameznih aktivnostih precej razlikuje od danes najbolj pogostega načina razvoja IS. V primerjavi z danes običajnim razvojem, kjer je navadno velik del razvojnega časa namenjenega kodiranju, je v MDD končna izvorna koda generirana s pomočjo orodij. Večji del razvojnega časa v MDD je namenjen analizi, v okviru katere nastane PIM, ki mora biti točen, konsistenten ter dovolj podroben. Vzporedno z analizo funkcionalnih zahtev, lahko poteka analiza nefunkcionalnih zahtev, v okviru katere izberemo najbolj ustrezne platforme, arhitekture, vzorce oziroma implementacijske tehnologije, ki jih bo uporabljal sistem. Na podlagi PIM ter analize nefunkcionalnih zahtev generiramo PSM, v naslednjem koraku pa še kodo. Slika 2 prikazuje primerjavo izdelkov in aktivnosti, ki nastopajo pri klasičnem razvoju in pri MDD. Klasičen razvoj Zajem zahtev Večinoma Analiza Načrtovanje Kodiranje Diagrami in Diagrami in Koda MDD Zajem zahtev Analiza izdelava PIM Načrtovanje tran. PIM v PSM Kodiranje tran. PSM v Kodo Večinoma PIM PSM Koda generiranje Slika 2: Primerjava izdelkov in aktivnosti pri klasičnem razvoju in MDD V MDD je torej bistvena izdelava PIM ter izbira ustreznih implementacijskih tehnologij, precej pa se zmanjša pomen klasičnega kodiranja. Tako spremenjen proces tudi pomembno vpliva na znanja in vloge, ki so potrebna pri razvoju IS. Poveča se pomen analitičnih vlog in hkrati zmanjša pomen vlog, ki nastopajo pri implementaciji. Poglejmo si nekaj možnih novih vlog ter kakšna so potrebna znanja. Analitik in načrtovalec PIM na podlagi izdelkov zajema zahtev ter izdelkov poslovnega modeliranja izdelata model PIM. Potrebna znanja obsegajo poznavanje problemske domene, branje izdelkov zajema zahtev - funkcionalne zahteve, določanje logične zgradbe sistema (npr. v jeziku UML), podrobno opredeljevanje poslovnih pravil v PIM (npr. v jeziku OCL) itd. Ker je model PIM neodvisen od platforme, analitiku in načrtovalcu PIM ni treba poznati posebnosti ciljne platforme.

Izdelovalec PSM s pomočjo orodja za transformiranje PIM pretvori v enega ali več modelov PSM. Pred transformacijo mora izbrati ciljne platforme, arhitekture, vzorce, tehnologije itd., ki jih mora dobro poznati. Odločiti se mora na primer ali izbrati.net ali J2EE kot ciljno platformo, ali je potrebna 3-nivojska arhitektura ali zadošča arhitektura odjemalec-strežnik, itd. Osnova za njegove odločitve so predvsem nefunkcionalne zahteve, identificirane v aktivnosti zajema zahtev. Izdelovalec PSM je torej v veliki meri odgovoren, da bo izdelani sistem ustrezal nefunkcionalnim zahtevam, kot so zmogljivost, varnost ipd. Razvijalec definicij transformacij je vloga, ki skrbi za izdelavo definicij transformacij za transformacijska orodja. Razvijalec definicij transformacij je zelo zahtevna vloga, saj terja dobro poznavanje jezikov za zapis PIM in PSM, transformacijskih jezikov in transformacijskih orodij, različnih platform in tehnologij. Večino definicij transformacij bo v prihodnosti najverjetneje mogoče kupiti od proizvajalcev transformacijskih orodij. Kljub temu se bo verjetno izkazala potreba po prilagajanju transformacij in razvoju povsem specifičnih transformacij, ki na trgu ne bodo dostopne. Naštete vloge in njihove zadolžitve v MDD prikazuje Slika 3. Na sliki lahko vidimo tudi nekatere osnovne tipe orodij za podporo MDD. Idealno bi bilo, da bi bila koda v celoti generirana, ročno kodiranje ali ročno spreminjanje PSM pa bi povsem odpadlo. Današnji orodja to žal omogočajo le v omejenem obsegu. Tako je pri bolj kompleksnih delih aplikacij potrebno ročno dodelati generirano kodo oziroma PSM. Poleg tega v razvojnih orodjih, ki le delno podpirajo MDA,»PIM«poleg abstraktnih elementov pogosto vsebuje tudi konkretne, platformsko odvisne elemente (npr. metode zapisane v navadnem programskem jeziku). To je tudi posledica dejstva, da trenutno še nimamo zares primernega jezika za zapis PIM, čeprav se je stanje na tem področju s prihodom UML 2.0 in OCL 2.0 precej izboljšalo. Šele s pomočjo dobro definiranih jezikov in transformacij ter učinkovitih orodij postane ideja MDD zares uporabna tudi v praksi. Čeprav trenutno ni moč najti orodja, ki bi v celoti podpiralo MDA, pa je na voljo kar nekaj orodij, ki so usklajena vsaj z delom MDA. To so na primer orodja ArcStyler, OptimalJ, Rational Rapid Developer, itd. Idejo MDA so sprejeli tudi nekateri znani proizvajalci razvojnih orodij, kot npr. Borland, ki v svojih novejših orodjih podpira MDA s pomočjo ogrodja Enterprise Core Objects. Orodje za modeliranje / izdelavo / preverjanje PIM PIM izdela Analitik in načrtovalec PIM Transformacijsko orodje Izbira platform, arhitektur, vzorcev, nastavitve orodja itd. Orodje za izdelavo / preverjanje definicije transformacije Definicija transformacije izdela Razvijalec def. transformacij PSM izbere, z orodjem generira Izdelovalec PSM Slika 3: Vloge in orodja MDD

3.2 MDD kot agilen proces razvoja Čeprav se na prvi pogled morda zdi, da MDD pomeni premik proti spredaj uteženim (frontloaded) metodologijam, ki zahtevajo dosledno izvajanje analize in načrtovanja, je med rigoroznimi metodologijami in MDD bistvena razlika. Tako lahko MDD (vsaj v teoriji) ustreza načelom agilnosti. Poglejmo si kako je MDD usklajen z nekaterimi načeli agilnosti. Delujoča programska oprema je pomembnejša od popolne dokumentacije. Medtem ko pri klasičnih metodologijah abstraktni modeli služijo predvsem kot dokumentacija, so v MDD abstraktni modeli osnovni izdelek, na podlagi katerega generiramo aplikacijo. S tem na nek način postanejo izvorna koda sistema. To pomeni, da izdelujemo delujočo programsko opremo že v okviru analize, hkrati pa nam modeli služijo kot dokumentacija. Upoštevanje sprememb je pomembnejše od sledenja planu. Generiranje kode omogoča hiter odziv na spremenjene uporabniške zahteve. Spremembe vnesemo le v model, kodo pa generiramo. Spremembe v model na visokem abstraktnem nivoju vnesemo lažje kot, če bi morali neposredno spreminjati programsko kodo. Pri tem ne smemo pozabiti, da se sprememba, ki jo vnesemo v PIM, hkrati prenese na vse platforme in dele kode. Sodelovanje uporabnika je pomembnejše kot pogajanje na osnovi pogodb. Uporabnik bo lažje sodeloval, če bo končni rezultat viden hitro. Do končnega rezultata s pomočjo generiranja pridemo hitreje, kot če bi morali kodo izdelati ročno. Prav tako so uporabniku lažje razumljivi abstraktni modeli kot kompleksna programska koda. Lahko rečemo, da MDA ponuja nove možnosti za sodelovanje uporabnika in sprotno vključevanje njegovih zahtev. Kot vidimo, MDD sledi načelom agilnosti. Žal pa to zaenkrat velja le v teoriji, saj, kot smo že omenili, trenutno še ni orodij, ki bi znala generirati celotno aplikacijo na podlagi PIM, hkrati pa so tu še težave z jezikom za zapis PIM. S tem se izgublja bistvena prednost MDD, kar je tudi glaven očitek kritikov. Zaradi nepopolnega generiranja se pojavljajo tudi novi problemi. Npr., kaj ob ponovnem generiranju PIM narediti s kodo, ki smo jo morali predhodno ročno spreminjati. 4. ZAKLJUČEK MDD lahko razumemo kot odgovor na naraščajočo kompleksnost in vedno hitrejše pojavljanje novih tehnologij ter razvojnih okolij, ki jih razvijalci le stežka obvladujejo. Razvoj aplikacij na nivoju, ki je neodvisen od tehnologije, v tem pogledu prinaša vrsto prednosti (viri [5], [10], [9]): Zvišanje produktivnosti kot posledica generiranja kode. Meritve opravljene na referenčnih projektih kažejo, da naj bi se z uporabo MDD produktivnost povečala celo do 40 odstotkov. Izboljšanje arhitekture nastalih aplikacij kot posledica razvoja na višjem nivoju abstrakcije. Razvijalci - analitiki se lahko bolj posvetijo arhitekturnim vprašanjem ter izdelajo robustno arhitekturo, ki jo bo pozneje moč nadgrajevati. Izboljšanje konsistenčnosti nastale kode kot posledica uporabe generatorjev kode. Pogosta težava pri klasičnem razvoju je, da programerji niso usklajeni. Pri generiranju ta težava odpade, saj generator vse dele modela obravnava na enak način ter generira enotno in konsistentno kodo. Navedene prednosti naj bi bile dosežene že z orodji in standardi, ki so dostopni danes. V prihodnosti pa naj bi po mnenju zagovornikov MDD deloval podobno, kot danes delujejo

prevajalniki za programske jezike 3. generacije, ki znajo generirati učinkovito strojno kodo. Tako, kot danes za izdelavo programske kode le redkokdo uporablja zbirnik ali strojni jezik, naj bi po njihovem mnenju v prihodnosti le redkokdo uporabljal današnje programske jezike 3. generacije. Razvoj naj bi potekal na visokem nivoju abstrakcije, generirani programi pa naj bi bili v povprečju ravno tako učinkoviti kot programi, ki so napisani ročno. Predstaviti velja tudi argumente kritikov MDD, ki zatrjujejo, da je MDD oz. MDA le vizija, ki stoji na trhlih temeljih. V realnosti namreč nimamo niti ustreznih orodij za generiranje kode niti ustreznega jezika za zapis PIM, brez česar ideja MDD ne more delovati. MDD brez sto odstotno generirane kode, ki je neposredno uporabna, po njihovem mnenju ne prinaša nobenih bistvenih prednosti pred klasičnim razvojem programske opreme. Uveljavitev MDA bi pomenila precejšnje spremembe v procesu razvoja programske opreme, pa tudi spremembe v vlogah in potrebnih znanjih. Čeprav ni mogoče napovedati, ali bo MDD oz. MDA v praksi uspešen, pa lahko zatrdimo, da sta glavna pogoja za njegovo uspešnost nadaljnji razvoj jezika za zapis PIM ter razvoj učinkovitih transformacijskih orodij. Čeravno so tako standardi kot orodja za podporo MDD trenutno še v začetni fazi razvoja, pa njihovo aktualnost dokazuje tudi dokaj velika podpora proizvajalcev razvojnih orodij, ki si v svojih najnovejših razvojnih orodjih prizadevajo podpreti vsaj del MDD oz. MDA. 5. VIRI IN LITERATURA [1] AMBLER, S. W.: Agile Modeling: Effective Practices for extreme Programming and the Unified Process, John Wiley & Sons, Inc., 2002 [2] FERNANDEZ-SANZ, Luis: Software Engineering. A Dream Coming True?, Upgrade, avgust 2003, vol. 4, no. 4 [3] FLATNER, David: Impact of Model-Driven Standards, National Institute of Standards and Technology [4] HAYWOOD, Dan: Evaluating the Model Driven Architecture, Application Development Advisor, januar / februar 2003 [5] IEEE Software: Model-Driven Development, september / oktober 2003, vol. 20, no. 5 [6] KLEPPE, Anneke, WARMER, Jos, BAST, Wim: MDA Explained: The Model Driven Architecture: Practice and Promise, 2003, Addison Wesley [7] MDA Guide, http://www.omg.org/docs/omg/03-06-01.pdf [8] MELLOR, Stephen, BALCER, Marc: Executable UML: A Foundation for Model-Driven Architecture, 2002, Addison Wesley [9] SEWALL, Stanley: Executive Justification for Adopting Model Driven Architecture (MDA), www.omg.org/mda/mda_files/11-03_sewall_mda_paper.pdf [10] The middleware company: Model Driven Development for J2EE Utilizing a MDA Approach, 2003 [11] TOLK, Andreas: Avoiding another Green Elephant A Proposal for the Next Generation HLA based on the Model Driven Architecture, Simualtion Interoperability Workshop, Orlando, Florida, september 2002 [12] VAVPOTIČ, Damjan, BAJEC, Marko: Vzdrževanje in uporabna vrednost modelov in dokumentacije v življenjskem ciklu informacijskih sistemov, INDO, Portorož, 2003 [13] WARMER, Jos, KLEPPE, Anneke: The Object Constraint Language Second Edition: Getting Your Models Ready for MDA, 2003, Addison Wesley