Eksamensoppgave i TDT4250 Avansert programvaredesign

Like dokumenter
Eksamensoppgave i GEOG1004 Geografi i praksis Tall, kart og bilder

Eksamensoppgave i AFR1000 Innføring i Afrikastudier

Examination paper for TDT4252 and DT8802 Information Systems Modelling Advanced Course

Unit Relational Algebra 1 1. Relational Algebra 1. Unit 3.3

Examination paper for (BI 2015) (Molekylærbiologi, laboratoriekurs)

Eksamensoppgave i GEOG Menneske og sted I

Eksamensoppgave i GEOG Befolkning, miljø og ressurser

Eksamensoppgave i SANT1001 Sosial organisasjon og identitetsdannelse

Eksamensoppgave i SANT2100 Etnografisk metode

Eksamensoppgave i SOS1000 Innføring i sosiologi

buildingsmart Norge seminar Gardermoen 2. september 2010 IFD sett i sammenheng med BIM og varedata

Eksamensoppgave i SANT3508 Globalization Theory and Culture

EXAM TTM4128 SERVICE AND RESOURCE MANAGEMENT EKSAM I TTM4128 TJENESTE- OG RESSURSADMINISTRASJON

Eksamensoppgave i POL1003 Miljøpolitikk, energipolitikk og ressursforvaltning

Examination paper for BI2034 Community Ecology and Ecosystems

Fakultet for informasjonsteknologi, Institutt for datateknikk og informasjonsvitenskap AVSLUTTENDE EKSAMEN I. TDT42378 Programvaresikkerhet

Eksamensoppgave i GEOG1001 Menneske og sted II

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITY OF OSLO DEPARTMENT OF ECONOMICS

Eksamensoppgave i SANT1002 Økonomi, politikk og økologi

Eksamensoppgave i SFEL Samfunnsfaglige perspektiver på naturressursforvaltning

Eksamensoppgave i GEOG1005 Jordas naturmiljø

EN Skriving for kommunikasjon og tenkning

Eksamensoppgave i SFEL Samfunnsfaglige perspektiver på naturressursforvaltning

Eksamensoppgave i FIN3006 / FIN8606 Anvendt tidsserieøkonometri

UNIVERSITETET I OSLO

Eksamensoppgave i GEOG Geografi i praksis - Tall, kart og bilder

EXAM IN COURSES TDT4252 MODELLING OF INFORMATION SYSTEMS- ADVANCED COURSE. DT8802 MODELLING OF INFORMATION SYSTEMS (English version)

Information search for the research protocol in IIC/IID

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

MID-TERM EXAM TDT4258 MICROCONTROLLER SYSTEM DESIGN. Wednesday 3 th Mars Time:

Eksamen ENG1002/1003 Engelsk fellesfag Elevar og privatistar/elever og privatister. Nynorsk/Bokmål

Slope-Intercept Formula

Eksamensoppgave i SOS1000 Innføring i sosiologi Examination paper for SOS1000 Introduction to Sociology

Examination paper for TDT4252 and DT8802 Enterprise Modeling and Architecture

AVSLUTTENDE EKSAMEN I/FINAL EXAM. TDT4237 Programvaresikkerhet/Software Security. Mandag/Monday Kl

EKSAMENSOPPGAVE I BI2034 Samfunnsøkologi EXAMINATION IN: BI Community ecology

EKSAMENSOPPGAVE I FAG TKP 4105

Den som gjør godt, er av Gud (Multilingual Edition)

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Andrew Gendreau, Olga Rosenbaum, Anthony Taylor, Kenneth Wong, Karl Dusen

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

EKSAMENSOPPGAVE I BI3013 EKSPERIMENTELL CELLEBIOLOGI

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Elektronisk innlevering/electronic solution for submission:

Server-Side Eclipse. Bernd Kolb Martin Lippert it-agile GmbH

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Examination paper for TDT4252 and DT8802 Enterprise Modeling and Architecture

Besvar tre 3 av følgende fire 4 oppgaver.

Bestille trykk av doktoravhandling Ordering printing of PhD Thesis

Trådløsnett med. Wireless network. MacOSX 10.5 Leopard. with MacOSX 10.5 Leopard

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

1 User guide for the uioletter package

Oppgave 1a Definer følgende begreper: Nøkkel, supernøkkel og funksjonell avhengighet.

Endringer i neste revisjon av EHF / Changes in the next revision of EHF 1. October 2015

LISTE OVER TILLATTE HJELPEMIDLER EKSAMEN I NOVEMBER OG DESEMBER 2014

Server-Side Eclipse. Martin Lippert akquinet agile GmbH

TILLEGGSSPØRSMÅL BILLETT- OG ADMINISTRASJONSSYSTEM KINONOR AS COMPLEMENTARY QUESTIONS POINT OF SALE SOFTWARE PACKAGE KINONOR AS

Kartleggingsskjema / Survey

TDT4117 Information Retrieval - Autumn 2014

Eksamensoppgave i GEOG1005 Jordas naturmiljø

From a table based Feature Catalogue to GML Application schemas

Den europeiske byggenæringen blir digital. hva skjer i Europa? Steen Sunesen Oslo,

Eksamensoppgaver til SOSANT1101. Regional etnografi: jordens folk og kulturelt mangfold. Utsatt skoleeksamen 12. desember 2013 kl.

Smart High-Side Power Switch BTS730

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Exercise 1: Phase Splitter DC Operation

Databases 1. Extended Relational Algebra

Dynamic Programming Longest Common Subsequence. Class 27

Øystein Haugen, Professor, Computer Science MASTER THESES Professor Øystein Haugen, room D

Søker du ikke om nytt frikort/skattekort, vil du bli trukket 15 prosent av utbetalingen av pensjon eller uføreytelse fra og med januar 2016.

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

EKSAMENSOPPGAVE I SØK 1002 INNFØRING I MIKROØKONOMISK ANALYSE

UNIVERSITY OF OSLO. Faculty of Mathematics and Natural Sciences

of color printers at university); helps in learning GIS.

5 E Lesson: Solving Monohybrid Punnett Squares with Coding

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Eksamensoppgave i SOS1000 Innføring i sosiologi Examination paper for SOS1000 Introduction to Sociology

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Hvordan føre reiseregninger i Unit4 Business World Forfatter:

Du kan bruke det vedlagte skjemaet Egenerklæring skattemessig bosted 2012 når du søker om frikort.

SERVICE BULLETINE

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Neural Network. Sensors Sorter

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Fagevalueringsrapport FYS Diffraksjonsmetoder og elektronmikroskopi

Han Ola of Han Per: A Norwegian-American Comic Strip/En Norsk-amerikansk tegneserie (Skrifter. Serie B, LXIX)

UNIVERSITY OF OSLO DEPARTMENT OF ECONOMICS

Prosjektet Digital kontaktinformasjon og fullmakter for virksomheter Digital contact information and mandates for entities

Søker du ikke om nytt frikort, vil du bli trukket 15 prosent av din pensjonsutbetaling fra og med januar 2014.

Examination paper for TTM Access and Transport Networks

Norsk (English below): Guide til anbefalt måte å printe gjennom plotter (Akropolis)

Eksamensoppgave i LITT3000, Litteraturteori og tekstforståelse, 15 sp.

Innovasjonsvennlig anskaffelse

SAS FANS NYTT & NYTTIG FRA VERKTØYKASSA TIL SAS 4. MARS 2014, MIKKEL SØRHEIM

UNIVERSITY OF OSLO. Make sure that your copy of this examination paperis complete before answering.

2A September 23, 2005 SPECIAL SECTION TO IN BUSINESS LAS VEGAS

EXAM IN COURSE TDT4252 MODELING OF INFORMATION SYSTEMS- ADVANCED COURSE

Transkript:

Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT4250 Avansert programvaredesign Faglig kontakt under eksamen: Hallvard Trætteberg Tlf.: 91897263 Eksamensdato: 16. desember Eksamenstid (fra-til): 9.00-13.00 Hjelpemiddelkode/Tillatte hjelpemidler: C Bestemt, enkel kalkulator tillatt. Annen informasjon: Oppgaven er utarbeidet av faglærer Hallvard Trætteberg og kvalitetssikret av John Krogstie. Målform/språk: Bokmål Antall sider: 3 Antall sider vedlegg: 2 Kontrollert av: Dato Sign Side 1 av 8

Dersom du mener at opplysninger mangler i en oppgaveformulering, gjør kort rede for de antagelser og forutsetninger som du finner nødvendig. Del 1 Modell-basert utvikling (35%) a) Hva er forskjellen mellom modeller av typen CIM og PIM? Vil modeller laget med ecore være av typen CIM eller PIM, eller er det ikke gitt på forhånd? b) Hva er forholdet mellom en instans, modell og meta-modell? Illustrer modell-nivåene M0 til M3 med eksempler. c) Transformasjoner klassifiseres på flere måter. Forklar følgende kategoriseringer: - M2M M2T - Exogenous endogenous - In-place out-place d) EMF-rammeverket bruker flere typer transformasjoner. Klassifiser følgende transformasjoner iht. kategoriene fra c): - Fra ecore til genmodel, altså steget før en kan generere Java-kode fra en ecore-modell. - Fra genmodel til Java-kode, altså når en (re)genererer Java-kode fra genmodel. e) Hvordan er den generelle virkemåten til ATL-baserte M2M-transformasjoner? Beskriv forskjeller og likheter mellom slike transformasjoner og graf-transformasjoner? Del 2 Komponent-basert konstruksjon (35%) a) OSGi-moduler (bundles) definerer to typer avhengigheter (begge typer deklareres i MANIFEST.MF), hvilke? Hva er fordeler og ulemper med disse to typene? b) Beskriv livssyklusen til OSGi-moduler (bundles), med fokus på sammenhengen mellom tilstander og avhengigheter mellom moduler. c) Forklar følgende figur, med fokus på hvordan et system av kjøretidskomponenter rigges opp: d) Hva er Dependency Injection (DI) og hvordan er det brukt av OSGi Declarative Services, f.eks. i øvingsprosjektet? Hvilke fordeler og ulemper ser du ved bruk av DI på denne måten? e) REST API-er er ofte tett koblet til en underliggende datamodellen. På hvilken måte? Hva er problemet med denne tette koblingen, og hvordan ble dette håndtert i øvingsprosjektet? Side 2 av 8

Del 3 DSL-design (30%) Med OSGi Declarative Services (DS) så deklareres kjøretidskomponenter i egne XML-filer (som det henvises til fra MANIFEST.MF). Du finner eksempler på slike fra øvingsprosjektet i vedlegget Sample component definitions. Slike filer er tungvinte å skrive og det oppstår lett feil som er vanskelige å finne, f.eks. ved å feilstave klasse- og metodenavn i reference-elementet. En får dessuten ikke validert egendefinerte komponentegenskaper deklarert med property-elementet. F.eks. fikk mange grupper feil i deklarasjonen av deres app-komponent (tilsvarende GameAppkomponenten vist i vedlegget), fordi EngineAppComponent.eClass-egenskapen hadde et spesielt format som ikke ble sjekket av Eclipse. I denne oppgaven skal du lage et DSL som er ment å 1) gjøre det raskere å deklarere komponentene og 2) gjøre det lettere å unngå og rette slike feil som er nevnt over. a) Lag en objekt-orientert modell som fanger opp informasjonen som en ønsker å representere i disse XML-filene. Tenk spesielt på hva modellen må inneholde for å kunne nå målene 1) og 2) over for øvingsprosjektet. Husk samtidig at instanser av modellen må kunne oversettes til det eksisterende XML-formatet (d, under). Inkluder klasser, datatyper, attributter og referanser (inkl. aggregeringer) med multiplisitet, altså den samme informasjon en trenger for å lage en komplett ecore-modell som grunnlag for en DSL. Velg selv om du vil tegne et diagram og/eller bruke tekst. I vedleggene Ecore data types og Ecore classes finner du ecore-typer du kan bruke i modellen. b) Beskriv en syntaks for et DSL for komponent-deklarasjoner basert på modellen fra a), og vis eksempler basert på vedlegget Sample component definitions. Forklar hvordan du vil definere syntaksen formelt, om du nå velger en tekst-basert syntaks med Xtext eller diagram-basert syntaks med Sirius. c) Beskriv hvordan funksjoner/verktøy knyttet til (editoren for) DSL-en kan hjelpe deg å nå målene 1) og 2) over. d) Forklar hvordan du vil lage en transformasjon fra DSL-modellen til XML-formatet. Side 3 av 8

Department of computer and information science Examination paper for TDT4250 Advanced Software Design Academic contact during examination: Hallvard Trætteberg Phone: 91897263 Examination date: 16. December Examination time (from-to): 9:00-13:00 Permitted examination support material: C Specific, simple calculator is allowed. Other information: This examination paper is written by teacher Hallvard Trætteberg, with quality assurance by John Krogstie. Language: English Number of pages: 3 Number of pages enclosed: 2 Checked by: Date Signature Side 4 av 8

If you feel necessary information is missing, state the assumptions you find it necessary to make. Part 1 Model-based development (35%) a) What is the difference between CIM and PIM type of models? Will ecore models be of type CIM or PIM, or can t it be decided in advance? b) What is the relation between an instance, a model and a meta-model? Illustrate the model levels M0 to M3 with examples. c) Transformations can be classified in several ways. Explain the following categories: - M2M M2T - Exogenous endogenous - In-place out-place d) The EMF framework uses several kinds of transformations. Classify the following transformations according to the categories from c): - From ecore to genmodel, i.e. the step before you can generate Java code from an ecore model. - Fra genmodel to Java code, i.e. when you (re)generate Java code from genmodel. e) How do ATL-based M2M transformations work in general? Describe similarities and differences between such transformations and graph transformations. Part 2 Component-based design (35%) a) OSGi modules (bundles) define two types of dependencies (both are declared in MANIFEST.MF), which ones? What are advantages and disadvantages with these to types? b) Describe the life-cycle of OSGi modules (bundles), with focus on the relation between states and module dependencies. c) Explain the following figure, with focus on how a system of components is rigged: d) What is Dependency Injection (DI) and how is it used by OSGi Declarative Services, e.g. in the exercise project? What advantages and disadvantages do you see for such use of DI? e) REST APIs are often tightly coupled to an underlying data model. In what way? What is the problem with this tight coupling, and how is this handled in the exercise project? Side 5 av 8

Del 3 DSL-design (30%) With OSGi Declarative Services (DS) components are declared in separate XML files (that are referenced from MANIFEST.MF). You find examples of such from the exercise project in the Sample component definitions appendix. Such files are cumbersome to write and errors are easily introduced and difficult to find, e.g. by misspelling class and method names in the reference element. In addition, there is no validation of custom component properties declared with the property element. E.g., a lot of groups made mistakes in the declaration of their app component (corresponding to the GameApp component shown in the appendix), because the EngineAppComponent.eClass property had a special format that wasn t checked by Eclipse. In this part you will make a DSL that is meant to 1) make it quicker to declare components and 2) easier to avoid and fix mistakes like those mentioned above. a) Make an object-oriented model that captures the information you wish to represent in these XML files. In particular, consider what the model must include to achieve the goals 1) and 2) over for the exercise project. And keep in mind that it must be possible to convert instances of the model to the existing XML format (d). Include classes, data types, attributes and references (incl. aggregations) with multiplicity, i.e. the same information you need to make a complete ecore model as the basis for a DSL. You re free to decide to use a diagram and/or text. In the appendix Ecore data types and Ecore classes you ll find ecore types you can use in your model. b) Describe a syntax for a DSL for component declarations based on the model from a), and show examples based on the appendix Sample component definitions. Explain how you ll define the syntax formally, whether you choose a textual syntax with Xtext or diagram-based syntax with Sirius. c) Describe how functions/tools related to (the editor for) the DSL can help you achieve goals 1) and 2) above. d) Explain how you ll make a transformation from the DSL model to the XML format. Side 6 av 8

Vedlegg/Appendix Sample component definitions. <scr:component name="no.hal.pg.runtime.engine.util.playerreferencehandler"> <implementation class="no.hal.pg.runtime.engine.util.playerreferencehandler"/> <service> <provide interface="no.hal.pg.runtime.engine.ireferenceprovider"/> <provide interface="no.hal.pg.runtime.engine.ireferenceresolver"/> </service> </scr:component> <scr:component name="no.hal.pg.runtime.engine.http.engineappendpointprovider"> <implementation class="no.hal.pg.runtime.engine.http.engineappendpointprovider"/> <reference bind="sethttpservice" name="httpservice" cardinality="1..1" interface="org.osgi.service.http.httpservice" unbind="unsethttpservice"/> <reference bind="addengine" cardinality="0..n" interface="no.hal.pg.runtime.engine.iengine" name="engine" unbind="removeengine"/> <reference bind="addengineapp" name="engineapp" cardinality="0..n" interface="no.hal.pg.runtime.engine.http.iengineapp" unbind="removeengineapp"/> </scr:component> <scr:component name="no.hal.pg.runtime.engine.web.gameapp"> <implementation class="no.hal.pg.runtime.engine.http.engineappcomponent"/> <service> <provide interface="no.hal.pg.runtime.engine.http.iengineapp"/> </service> <property name="iengineapp.name" type="string" value="gameapp"/> <property name="engineappcomponent.eclass" type="string" value="platform:/plugin/no.hal.pg.runtime/model/pg-runtime.ecore#game"/> <property name="iengineapp.displayname" type="string" value="game app"/> <property name="engineappcomponent.main" type="string" value="/web/gameapp.html"/property> <property name="engineappcomponent.resourcenames" type="string" value="/web"></property> <property name="engineappcomponent.aliaspathformat" type="string" value="/web"/> </scr:component> Ecore data types Name Java type Description EInt int int values EIntegerObject Integer Integer objects EDouble double double values EDoubleObject Double Double objects EBoolean boolean boolean values EBooleanObject Boolean Boolean objects Estring String String objects EJavaClass Class<?> Java Class objects Side 7 av 8

Ecore classes Name Description EPackage An ecore package. Has a name and id (URI) and contains EClassifiers. EClassifier Superclass of EClass and EDataType EClass Ecore s class concept, contains EStructuralFeatures EDataType Wraps ordinary Java types, so they can be used in Ecore models EStructuralFeature Superclass of EAttribute and EReference. Has a name, a type and multiplicity. EAttribute A structural feature with an EDataType as the type. EReference A structural feature with an EClass as the type. Side 8 av 8