58309303 Seminaari: Malliperustainen ohjelmistotuotanto (3 op)
Vastuuhenkilö
Assistentti Toni Ruokolainen (Toni.Ruokolainen(at)cs.Helsinki.FI)Ajankohtaista
- Seminaarin aikataulu päivitetty! Aiheet ja esityspäivät määritelty.
- Abstraktien (työsuunnitelman) palautus 20.9. mennessä! Katso ohjeistus alla.
- Seuraava kokoontuminen 3.11. Esityksiä vastaavat paperit jakoon viikolla 44
Kokoontumisajat ja -paikka
3.11.-8.12. ti 8-12 C220Seminaariryhmän järjestäytymiskokouksen ohjelma 8.9.2009
- aihepiirin yleisesittely
- työkalujen esittely
- seminaarityöaiheiden katsaus ja valinta
- viikkoaikataulun täydentäminen
Kuvaus
Malliperustainen ohjelmistotuotanto (engl. model-driven engineering, MDE) on nykyaikainen ohjelmistokehityksen menetelmä, jossa malleilla on ensisijainen rooli ohjelmistotuotannon artefaktina. Malli on tietyn kieliopin mukaan määritelty formaali kuvaus, joka esittää tutkittavan tai toteutettavan järjestelmän tietystä näkökulmasta käsin käyttäen tarpeeseen soveltuvaa abstraktiotasoa. Malliperustaisen ohjelmistuotannon menetelmillä voidaan automatisoida huomattava osa ohjelmiston kehityksen usein toistuvista rutiinitoimenpiteistä, kuten eri teknologiseen alustaan perustuvien toteutusten tuottaminen samasta ohjelmistosta. Malleista tuotetaan ohjelmistoartefakteja automaattisilla mallimuunnoksilla. Niin kutsutut mallista-malliin (engl. model-to-model, M2M) muunnokset muuntavat malleja toisiksi malleiksi lisäämällä esimerkiksi teknologisia yksityiskohtia lähdemalliin. Mallista tekstiin (engl. model-to-text, M2T) muunnoksilla taas tuotetaan annetusta mallista ohjelmistoartefakteja kuten lähdekoodia, konfigurointitiedostoja tai tietokantakuvauksia. Mallien kudonnassa (engl. model weaving) taas yhdistetään kaksi tai useampia malleja uudenlaiseksi kokonaisuudeksi käyttäen hyväksi annettuja kudontasääntöjä. Tämän opintoseminaarin tarkoituksena on tutustuttaa opiskelijat malliperustaisen ohjelmistokehityksen perusteisiin, sovellusalueisiin ja työkalujen nykytilaan. Seminaarin aihepiiri on jaettu kolmeen osioon, jotka käsittelevät malliperustaista ohjelmistotuotantoa eri näkökulmista.- Ensimmäinen osio käsittelee malliperustaisen ohjelmistotuotannon taustaa ja teoriaa.
- Toisessa osiossa tutustutaan malliperustaisen ohjelmistotuotannon sovellusalueisiin, erikoisalueisiin ja metodologioihin, kuten malliperustaiset ohjelmistotuotantolinjat, malliperustainen palvelutuotanto tai aspektiorientoitunut mallintaminen.
- Kolmannessa osiossa käsitellään malliperustaisen ohjelmistotuotannon työkaluja konkreettisten esimerkkien ja demonstraatioiden avulla.
Seminaarin rakenne ja aihepiirit
- Malliperustainen ohjelmistokehitys (Model-Driven Engineering, MDE)
- Mallit, järjestelmät ja mallien väliset suhteet (representaatio, konformanssi, laajentaminen, metatasot,...), abstraktiotasot (ontologiset / lingvistiset) ja näkökulmat (esim. MOF:in mukainen CIM / PIM / PSM)
- Mallien kuvaaminen: abstrakti syntaksi (MOF, Ecore, KM3,...), konkreettinen syntaksi (UML profiilit, Eclipse GMF, TCS, XText...).
- Mallitransformaatiot: M2M, M2T, mallien kudonta, transformaatiokielet (ATL, AMW, JET, XPand,...)
- Mallirajoitteet (esim. OCL), mallien semantiikan määrittely, mallien validointi ja verifiointi
- Malliperustaisen ohjelmistokehityksen sovellusalueet
- Malliperustaiset ohjelmistotuotantolinjat (model-driven software product lines)
- Aspektiorientointunut mallintaminen (aspect-oriented modelling)
- Malliperustaisen ohjelmistotuotannon metodologiat (esim. Midas)
- Malliperustainen palvelutuotanto
- Malliperustaisen ohjelmistokehityksen työkalut
- Käydään läpi openArchitectureWare-ohjelmiston toteuttamia työkaluja
yhteisen esimerkkitapauksen pohjalta.
Esitietovaatimukset
Opintoseminaari on osa maisterintutkinnon opintoja, joten osallistujilla tulee olla suoritettuna LuK-tutkinnon mukaiset opinnot. Seminaari on pääasiassa suunnattu ohjelmistojärjestelmien sekä hajautettujen järjestelmien ja tietoliikenteen linjojen opiskelijoille. Erityisesti suosittelemme joitakin seuraavista kursseista suoritetuiksi: Ohjelmistoarkkitehtuurit, Väliohjelmistot.Seminaarin suoritusmuoto
Jokaiselta seminaariin osallistujalta odotetaan seuraavia suorituksia:- Tiivistelmä (työsuunnitelma). Pituus noin kaksi sivua; sisältää alustavan sisällysluettelon, listan tärkeimmistä lähteistä sekä varsinaisen tiivistelmän. Tiivistelmät julkaistaan (ja tulee olla valmiina) toisella seminaariviikolla (20.9.2009 mennessä).
- Seminaaripaperi Paperit julkaistaan viikkoa ennen seminaariesitystä. Seminaaripaperin pituus on 15-20 sivua, fonttikoko 12 pt, riviväli 1.5, yksipalstaista tekstiä. Paperin rakenteen ja muotoilun tulee olla yhteneväistä "Tieteellinen kirjoittaminen"-kurssin ohjeistuksien kanssa (viittaukset, tieteellisen tekstin yleinen rakenne jne.). Paperista toimitetaan sähköinen versio pdf-muodossa seminaarin vetäjälle sähköpostilla (sähköpostiosoite sivun ylälaidassa) viimeistään viikkoa ennen esitystä. Demonstraatiopaperin pituus on 10-15 sivua, sillä työkaluun tutustumiseen ja demonstraation tekemiseen kuluu osa "kirjoitusajasta".
- Seminaariesitys Esityksen mitta on noin 70 minuuttia. Loput ajasta käytetään keskusteluun. Siis yksi esitys / seminaarikokoontuminen.
- Aktiivinen osallistuminen keskusteluun ja palautteen antamiseen.
Lue ennen seminaarikokoontumista kyseisen viikon paperi ja valmistele kysymyksiä
ja kommentteja aiheesta. Esityksestä annetaan jokaisen kokoontumisen lopuksi
esittäjälle (anonyymiä) rakentavaa palautetta kirjallisessa muodossa; ota siis
ainakin paperia ja kynä mukaan seminaarikokoontumiseen.
Jokaisen tulee osallistua vähintään 6 seminaari-istuntoon.
- Arvosteluperusteet Seminaari arvostellaan seminaaripaperin, -esityksen / demonstraation sekä osallistumisaktiivisuuden perusteella.
Materiaali
intranetTaustamateriaalia
- [1]
-
Colin Atkinson and Thomas Kühne.
Model-driven development: A metamodeling foundation.
IEEE Softw., 20(5):36-41, 2003.
[ bib ] - [2]
-
J. Bezivin, S. Hammoudi, D. Lopes, and F. Jouault.
Applying MDA approach for Web service platform.
Enterprise Distributed Object Computing Conference, 2004. EDOC
2004. Proceedings. Eighth IEEE International, pages 58-70, Sept. 2004.
[ bib ] - [3]
-
Jean Bézivin, Fabian Büttner, Martin Gogolla, Frederic Jouault, Ivan
Kurtev, and Arne Lindow.
Model Transformations? Transformation Models!
In Model Driven Engineering Languages and Systems, volume 4199
of Lecture Notes in Computer Science, pages 440-453. Springer, 2006.
[ bib ] - [4]
-
Jean Bezivin, Frederic Jouault, and David Touzet.
Principles, standards and tools for model engineering.
In ICECCS '05: Proceedings of the 10th IEEE International
Conference on Engineering of Complex Computer Systems (ICECCS'05), pages
28-29, Washington, DC, USA, 2005. IEEE Computer Society.
[ bib | http ] - [5]
-
Jean Bézivin.
On the unification power of models.
Software and Systems Modeling, 4(2):171-188, May 2005.
[ bib ] - [6]
-
Paloma Cáceres, Valeria de Castro, Juan M. Vara, and Esperanza Marcos.
Model transformations for hypertext modeling on web information
systems.
In SAC '06: Proceedings of the 2006 ACM symposium on Applied
computing, pages 1232-1239, New York, NY, USA, 2006. ACM.
[ bib ] - [7]
-
David S. Frankel.
Model Driven Architecture: Applying MDA to Enterprise
Computing.
OMG Press, 2003.
[ bib ] - [8]
-
Jeff Gray, Ted Bapty, Sandeep Neema, Douglas C. Schmidt, Aniruddha Gokhale, and
Balachandran Natarajan.
An Approach for Supporting Aspect-Oriented Domain Modeling.
In Generative Programming and Component Engineering, volume
2830 of Lecture Notes in Computer Science. Springer-Verlag, 2003.
[ bib ] - [9]
-
Iris Groher and Markus Voelter.
XWeave: models and aspects in concert.
In AOM '07: Proceedings of the 10th international workshop on
Aspect-oriented modeling, pages 35-40, New York, NY, USA, 2007. ACM.
[ bib ] - [10]
-
Carsten Köllmann, Lea Kutvonen, Peter Linington, and Arnor Solberg.
An Aspect-Oriented Approach to Manage QoS Dependability Dimensions
in Model Driven Development.
In The 3rd International Workshop on Model-Driven Enterprise
Information Systems (MDEIS 2007), 2007.
[ bib ] - [11]
-
Ioana Manolescu, Marco Brambilla, Stefano Ceri, Sara Comai, and Piero
Fraternali.
Model-driven design and deployment of service-enabled web
applications.
ACM Trans. Inter. Tech., 5(3):439-479, 2005.
[ bib | http ] - [12]
-
Simone Röttger and Steffen Zschaler.
Model-Driven Development for Non-functional Properties: Refinement
Through Model Transformation.
In UML 2004, volume 3273 of Lecture Notes in Computer
Science, pages 275-289. Springer-Verlag, 2004.
[ bib ] - [13]
-
Douglas C. Schmidt.
Model-Driven Engineering.
Computer, 39(2):25-31, February 2006.
[ bib ] - [14]
-
Devon Simmonds, Arnor Solberg, Raghu Reddy, Robert France, and Sudipto Ghosh.
An Aspect Oriented Model Driven Framework.
In Ninth IEEE International EDOC Enterprise Computing Conference
(EDOC'05). IEEE Computer Society, 2005.
[ bib ] - [15]
-
Xavier Thirioux, Benoit Combemale, Xavier Crégut, and Pierre-Loïc Garoche.
A Framework to Formalize the MDE Foundations.
In Richard F. Paige and Jean Bézivin, editors, Workshop on
Towers of Models co-located with TOOLS Europe, pages 14-30, June 2007.
[ bib ] - [16]
-
Markus Voelter and Iris Groher.
Product Line Implementation using Aspect-Oriented and Model-Driven
Software Development.
In SPLC '07: Proceedings of the 11th International Software
Product Line Conference, pages 233-242, Washington, DC, USA, 2007. IEEE
Computer Society.
[ bib ] - [17]
-
Jon Whittle, Joao Araújo, and Ana Moreira.
Composing aspect models with graph transformations.
In EA '06: Proceedings of the 2006 international workshop on
Early aspects at ICSE, pages 59-65, New York, NY, USA, 2006. ACM Press.
[ bib ]