Systemvetare, dataekonomer och affärsinformatiker

Relevanta dokument
Objektorienterad Systemutveckling Period 3

Systemvetare, dataekonomer och affärsinformatiker

Grundläggande programmering med C# 7,5 högskolepoäng. Provmoment: Ladokkod: Tentamen ges för: TEN1 NGC011 ADAEK17, ASYST17 samt öppen för alla

Viktigt! Glöm inte att skriva tentamenskod på alla blad du lämnar in.

Tentamen NOA011 Systemarkitektprogrammet. 51 poäng

Kvalitets- och miljöstyrning/ Kvalitet och ledningssystem

Viktigt! Glöm inte att skriva tentamenskod på alla blad du lämnar in.

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning.

SYST14h, Systemvetarutbildningen. Tentamensdatum: Tid: Tentamenstiden är tre timmar, 09:00 12:00. för betyget VG krävs minst 53 poäng

7,5 högskolepoäng. Objektorienterad systemutveckling I Provmoment: Ladokkod: 21OS1B Tentamen ges för: Lycka till! /Peter & Petter

Viktigt! Glöm inte att skriva tentamenskod på alla blad du lämnar in.

Tentamen, InteraktionsDesign, 7,5 ECTS

Grundläggande programmering med C# 7,5 högskolepoäng. Provmoment: Ladokkod: Tentamen ges för:

Tentamenskod: Tentamensdatum: Tid: 14:00-19:00. Inga hjälpmedel är tillåtna

Tentamen NOA011 Systemarkitektprogrammet

Viktigt! Glöm inte att skriva Tentamenskod på alla blad du lämnar in.

Inkapsling (encapsulation)

Systemvetarutbildningen och dataekonomutbildningen

Grundläggande programmering med C# 7,5 högskolepoäng

Mål med lektionen! Repetera och befästa kunskaperna.

Del av projektuppgiften. Systemarkitektprogrammet

Objektorienterad Programkonstruktion, DD1346. Tentamen , kl

Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

Tentamen B1AMO1 Administratörsprogrammet HT2014

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion

skriftlig tentamen 21SH1A Administratörprogrammet

Rättningstiden är i normalfall 15 arbetsdagar, annars är det detta datum som gäller:

Tentamen B1AMO1 Administratörsprogrammet HT2014

Objektorienterad Systemutveckling 1 (7,5 hp)

Viktigt! Glöm inte att skriva Tentamenskod på alla blad du lämnar in.

Mål med lektionen! Veta kursmålen. Ha kännedom om några av de grundläggande begreppen.

Tentamen. DD2385 Programutvecklingsteknik vt 2013 Onsdagen den 22 maj 2013 kl Hjälpmedel: penna, suddgummi, linjal

Rättningstiden är i normalfall 15 arbetsdagar, annars är det detta datum som gäller:

Inga hjälpmedel är tillåtna

Tentamen i EDAF25. 1 juni Skrivtid: Skriv inte med färgpenna enda tillåtna färg är svart/blyerts.

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU

2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning

Language Integrated Query, LINQ, och databaser

Design och konstruktion av grafiska gränssnitt

Provmoment: Tentamen Ladokkod: 41F07A Tentamen ges för: TGITT17h, IT-tekniker

För att få respektive betyg krävs: 25 för godkänt, 37,5 för väl godkänt (obs betyget gäller tentan, inte kursen som helhet)

Forskningsmetoder i offentlig förvaltning

Objektorienterad Programkonstruktion. Föreläsning jan 2016

PROGRAMMERINGSTEKNIK TIN212

Systemvetarutbildningen och dataekonomutbildningen

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: Tid: kl

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)

7,5 högskolepoäng. Industriell energihushållning Provmoment: Ladokkod: Tentamen ges för: 41N11C En3. TentamensKod:

Objektorienterad mjukvaruutveckling. 15 högskolepoäng. TentamensKod: Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel

7,5 högskolepoäng. Objektorienterad systemutveckling I. Lycka till! /Peter & Petter. Provmoment: Ladokkod: 21OS1B Tentamen ges för:

TENTAMEN: Objektorienterad programmering. Läs detta! Skriv din tentamenskod på varje blad (så att vi inte slarvar bort dem).

Skrivmaterial och eventuella språklexikon

Administratörprogrammet

Arbeta med databas. Översikt. Lektion 1: Arbeta med Entity Data Models. Arbeta med Entity Data Models. LINQ (Language Integrated Query).

OBS!!! Studenter som läste kursen läsåret 2017 och tidigare år svarar på frågorna som finns på de två sista sidorna.

Tentamen Objekt-orienterad programmering i Java, 5p distanskurs

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

Projektteknik Tentamen TT141B. Skrivmaterial och eventuella språklexikon

Objekt-orienterad programmering och design. DIT953 Niklas Broberg, 2018

Tentamen i Grundläggande programmering STS, åk 1 fredag

" «Observable» DataGenerator" betyder att klassen DataGenerator ärver från den abstrakta klassen Observable.

TENTAMEN För kursen. Databasteknik. Ansvarig för tentamen: Anna Palmquist. Förfrågningar: Anslås inom 3 veckor

Grundläggande informationssäkerhet 7,5 högskolepoäng

OOP Tenta

Klinisk omvårdnad: Somatisk hälsa, ohälsa och sjukdom Provmoment: Tentamen 2 Ladokkod: Tentamen ges för: SSK 08. 3,0 högskolepoäng.

Skrivmaterial och eventuella språklexikon

Mer OOP. Variation i typ. Medlen repetition. Generiska klasser. Gränssnitt - Interface. Mer om klasser Några exempel UML

Tentamen ges för: ACEKO14h (MANG, MFÖR, REDO), ACIVE14h, SAMEK16h

Modern Programmering (2546) Tentamen lördag

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Design. Vad lärde jag mig förra lekfonen? Hur bidrog jag Fll lärandet? Kravhantering sammanfa0ning 13/04/14

42BK07 Magisterutbildning i byggteknik - hållbart samhällsbyggande

Rättningstiden är i normalfall tre veckor, annars är det detta datum som gäller:

Tentamen i EDAF oktober Skrivtid: Skriv bara på ena sidan av pappret tentorna kommer att scannas in, och endast framsidorna rättas.

Tentamen. DD2385 Programutvecklingsteknik vt Fredagen den 5 juni 2009 kl Inga hjälpmedel utom penna, sudd och linjal

Systemutvecklare SU14, Malmö

Tentamen, InteraktionsDesign, 7,5 ECTS

TENTAMEN OOP

Viktigt! Glöm inte att skriva Tentamenskod på alla blad du lämnar in.

Provmoment: Ladokkod: Tentamen ges för: TentamensKod: Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel

Observer Pattern och MVC. Objekt-orienterad programmering och design Alex Gerdes, 2016

Tentamen i Grundläggande programmering STS, åk 1 lördag

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin

Systemvetarutbildningen och dataekonomutbildningen

Tentamen i Objektorienterad modellering och design Helsingborg

Viktigt! Glöm inte att skriva TentamensKod (ditt anonyma student-id) på alla blad du lämnar in.

Projektteknik Tentamen TT141B. Skrivmaterial och eventuella språklexikon

Tentamen. 2D4135 vt 2004 Objektorienterad programmering, design och analys med Java Torsdagen den 3 juni 2004 kl

Tentamen ID1004 Objektorienterad programmering April 7, 2015

Detta dokument är ett exempel, cirka andra hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling

Tentamen NDA01G Öppen för alla. Tentamenskod: Inga hjälpmedel är tillåtna

Tentamensdatum: Tid: Tentamenstiden är fyra timmar, 09:00 13:00

Tentamen, EDAA10 Programmering i Java

Viktigt! Glöm inte att skriva Tentamenskod på alla blad du lämnar in.

TDP005. Föreläsning 3 - UML. Filip Strömbäck

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer.

Forskningsmetoder i offentlig förvaltning

Svenska språket i högre utbildning; en introduktion Provmoment: Språkstruktur Ladokkod:TE11 Tentamen ges för: 15 högskolepoäng.

TENTAMEN I DATAVETENSKAP

Transkript:

Objektorienterad systemutveckling 2 Provmoment: Ladokkod: Tentamen ges för: TentamensKod: 7,5 högskolepoäng Tentamen C1OB2B Systemvetare, dataekonomer och affärsinformatiker Tentamensdatum: 2017-03-22 Tid: 14-19 Hjälpmedel: Papper, penna samt linjal är tillåtna hjälpmedel. Inga andra hjälpmedel är tillåtna. Totalt antal poäng på tentamen: 75 För att få respektive betyg krävs: För Godkänt krävs godkänt (minst 13 poäng/del) på de tre delarna om systemarkitektur, datalager och databaser samt gränssnitt och interaktionsdesign. För Väl Godkänt krävs minst 56 poäng totalt. Allmänna anvisningar: Sätt ett kryss i tabellerna för rätt alternativ för de teoretiska kryssfrågorna. Varje fråga kan endast ha ett rätt alternativ. Flera kryss ger 0 poäng. Se till att påbörja varje ny del på ett nytt papper! Nästkommande tentamenstillfälle: 2017-05-05 Rättningstiden är i normalfall 15 arbetsdagar, till detta tillkommer upp till 5 arbetsdagar för administration. Viktigt! Glöm inte att skriva Tentamenskod på alla blad du lämnar in. Lycka till! Ansvarig lärare: Anders Gidenstam (del 1, kursansv.) Jens Holgersson (del 2) Johannes Sahlin (del 3) Telefonnummer: 033 435 4214 0723511170 0730571156

Systemarkitekturer (25 p) För godkänt på tentamen måste man ha minst 13 poäng på denna del. Mål (ur kursplanen) som examineras i denna del: Förklara grundläggande koncept i en objektorienterad systemarkitektur. Visa kunskap i användningen av UML i arbetet med att designa och dokumentera en objektorienterad systemarkitektur. Visa förmåga att göra en bedömning av lämpligheten av en systemarkitektur utifrån ett givet problem. Teoretisk del (10 p) Sätt ett kryss för korrekt alternativ a b c d 1 2 3 4 1) Vilken av de följande arkitekturstilarna handlar INTE främst om applikationens logiska arkitektur (och struktur)? (1p) a) Object-Oriented. b) 3-Tier. c) Domain Driven Design. d) Component-Based Architecture. 2) Vilket av följande påståenden om GRASP designprinciperna är INTE sant? (1p) a) Högt sammanhang/fokus (high cohesion) betyder att objekt skall ha så få och starkt relaterade ansvar som möjligt. b) Skyddade variationer (protected variations) föreskriver stabila gränssnitt runt delar som förväntas variera eller förändras. c) Informationsexpert (information expert) föreskriver att all kod som behandlar data av en viss typ skall läggas i en klass, men separerad från klassen som innehåller själva datan. d) Låg/få kopplingar (low coupling) går ut på att hålla antalet beroenden mellan objekt så lågt som möjligt. 3) Vilket av nedanstående påståenden är sant för SOLID designprincipen Open/closed principle? (1p) a) I en öppen (open) klass är alla attribut och metoder publika. b) Klasser skall kunna utökas genom arv utan att bas/superklassen behöver ändras. c) En sub/barnklass får inte ersätta någon av bas/superklassens metoder. d) En stängd (closed) klass har inget gränssnitt som kod utanför klassen kan använda. 4) Vilken av nedanstående är INTE en lämplig komponent för presentationslagret? (1p) a) Dataaccesskomponenter (Data Access Components). b) UI-komponenter och visuella kontroller (UI Components and Visual Controls). c) Presentationslogikkomponenter (Presentation Logic Components). d) Presentationsmodellkomponenter (ViewModel Components). 5) Förklara vad systemarkitektur (Software Architecture) innebär. (2p) 6) Förklara utförligt vad en Application Facade är, dess syfte och hur den förhåller sig till andra klasser/kod inom lagret och klasser/kod i lagret över. (4p) 1

Praktisk del (15 p) 7) Företaget DreamHome som ägnar sig åt bostadsförmedling för hyresmarknaden har sedan tidigare ett internt system för att stödja sin verksamhet. Systemet är traditionellt uppbyggt utifrån objektorienterad analys och design och har en traditionell logiskt lagrad arkitektur. Det befintliga systemet består av tunna klienter, en applikations server och en databasserver. Nu tänker sig DreamHome att expandera sin verksamhet och sitt system genom att skapa en Internet/webbtjänst för att låta externa användare söka fram och ansöka om hyresobjekt direkt i sin webbläsare (ett Hemnet för hyresrätter, alltså). Detta ställer naturligtvis nya krav på systemet, bl.a. måste säkerheten för affärsdata skärpas och kapaciteten ökas för att kunna hantera det betydligt större antalet samtidiga användare. Det är inte otänkbart för DreamHome att lägga till fler servrar för den nya situationen. a) Beskriv hur den logiska arkitekturen bör förändras nu när systemet utökas och rita ett UML paketdiagram (package diagram) som beskriver systemets logiska arkitektur, både det som fanns enligt ovan plus det nya som bör tillkomma. (6p) b) Beskriv hur den fysiska arkitekturen bör förändras för att tillgodose de nya kraven och rita ett UML driftsättningsdiagram (deployment diagram) som beskriver systemets fysiska arkitektur, både det som fanns enligt ovan plus det nya som bör tillkomma. Visa alla delar, inklusive klienter, och var de olika logiska delarna av systemet körs. (6p) c) Välj de 3 systemgenomgripande aspekterna (cross-cutting concerns) som du anser vara viktigast för DreamHomes nya utökade system och motivera för var och en av dem varför. Välj bland dessa aspekter: Authentication, Authorization, Caching, Communication, Configuration Management, Exception Management, Logging and Instrumentation, State Management och Validation. (3p) Om du inte vet hur respektive UML diagram ser ut rita ändå något och förklara så tydligt som möjligt vad du menar. 2

Datalager och databaser (25 p) För godkänt på tentamen måste man ha minst 13 poäng på denna del. Mål (ur kursplanen) som examineras i denna del: Förklara grundläggande koncept i hantering av persistent data. Redogöra för tillämpliga metoder och tekniker inom hantering av persistent data. Teoretisk del (10 p) Sätt ett kryss för korrekt alternativ för fråga 10 och 11. Fråga 12 14 besvaras på separat papper. a b c d 8 9 8) Vilket av nedanstående är INTE ett nyckelord i LINQ? (1p) a) from b) join c) class d) select 9) En LINQ-sats startar med. (1p) a) select b) foreach c) from d) interface 10) En LINQ operation består av tre skilda delar. Vilka? (3p) 11) Beskriv de grundläggande skillnaderna mellan Entity Framework:s Database First och Code First. (2p) 12) Förklara med egna ord och exempel minst tre fördelar med att använda lagerseparering i ett utvecklingsprojekt. (3p) 3

Praktisk del (15 p) 13) Utgå från följande kod: class Person { public Person(string f, string e, int a) { fnamn = f; enamn = e; alder = a; } public string fnamn; public string enamn; public int alder; } class Tenta { static void Main(string[] args) { List<Person> persons = new List<Person>(); persons.add(new Person("Bertil", "Bertilsson",6 7)); persons.add(new Person("Frida", "Fridasson", 33)); persons.add(new Person("Eva", "Evasson", 22)); persons.add(new Person("Jonas", "Jonasson", 17)); persons.add(new Person("Marcus", "Markusson", 55)); persons.add(new Person("Fia", "Fiasson", 43)); //Er kod kommer här. a) Med hjälp av LINQ - hitta och skriv ut personen med förnamnet Jonas. (5p) b) Med hjälp av LINQ - skriv ut personerna sorterade på efternamn. (5p) OBS! Ni behöver inte kopiera min kod ovan, utan börja ert svar vid //Er kod kommer här. Var noggrann med datatyper! 14) I Code First används Plain Old CLR Objects (POCOs). a) Definiera i C# ett POCO som ska representera ett Film-objekt innehållandes titel, årtal, genre, IMDB-betyg och lämpliga getters och setters. (3p) b) Addera nu Data-annotations till det POCO ni skapat i uppgiften ovan (skriv ert POCO igen men nu med adderade annotations). Ange med annotations vad tabellen som beskriver ert POCO ska heta och vilken instansvariabel som ska vara primärnyckel. (2p) Dellösningar kan ge poäng såvida det är tydligt ni är på rätt väg. 4

Gränssnitt och interaktionsdesign (25 p) För godkänt på tentamen måste man ha minst 13 poäng på denna del. Mål (ur kursplanen) som examineras i denna del: Förklara grundläggande koncept inom användarinteraktion. Redogöra för tillämpliga metoder och tekniker inom interaktions- och gränssnittsdesign. Visa förmåga att göra en bedömning av lämpligheten av interaktions- och gränssnittsdesign utifrån ett givet problem. Teoretisk del (10 p) Sätt ett kryss för korrekt alternativ a b c d 15 16 17 18 19 15) Om du ska göra en interaktionsdesign enligt begreppet User Centered Design bör du fokusera på att. (1p) a) Anpassa systemet till så många plattformar som möjligt. b) Anpassa systemet efter det marknaden och stakeholders efterfrågar. c) Uppfylla användningsuppgifter (som ska lösas med systemet) samt mål hos användaren. d) Systemet ska vara tillgängligt så att så många användare som möjligt kan använda det. 16) Vilken av följande stämmer vad gäller interaktionsdesign enligt PACT ramverket? (1p) a) Vid design bör fokus läggas på användare (People), aktiviteter (Activities), kontext (Context) och man ska bortse från teknologier (Technologies). b) Vid design bör man INTE lägga fokus på användare (People), aktiviteter (Activities), kontext (Context) och teknologier (Technologies). c) Vid design bör fokus läggas på en balansgång mellan användare (People), aktiviteter (Activities), kontext (Context) och teknologier (Technologies). d) Vid design måste man lägga lika stor vikt enbart på användare (People), och aktiviteter (Activities). 17) Vilken av följande tekniker inom design fokuserar på att fånga interaktionen mellan aktörer och systemet? (1p) a) Scenarier (Scenarios). b) Användningsfall (Use Cases). c) Personas. d) Prototyper. 18) Ett exempel på event-driven GUI är. (1p) a) Console Applikation. b) Windows OS. c) Windows Forms. d) Inget exempel finns i de angivna alternativen. 19) En metod som genomför ett Event-anrop har följande kännetecknande namn? (1p) a) Delegate. b) Event handler. c) Property. d) Event Command. 5

20) Förklara följande fem begrepp i WPF. (5p) a) Event handling. b) Routed event. c) Tunneling event. d) Bubbling event. e) Direct event. Praktisk del (15 p) 21) I denna uppgift ska ni fylla på Tabell 1 nedan baserad på Figur 1. Varje fråga ger 1 poäng. (5p) Figur 1. WPF gränssnitt i körläge med diverse komponenter. Kontroll i Figur 1 Exempel: Kontroll No 3 Kontroll No 1 och Kontroll No 2 Kontroll No 4 Kontroll No 5 Möjlig användning Exempel: För gruppering av andra kontroller (1p) För att välja ett alternativ bland flera (1p) Fungerar som Content Control för alla andra kontroller (1p) (1p) (1p) Tabell 1. Fyll i dina svar här eller på separat papper. 6

22) I denna uppgift ska ni matcha en teknik med motsvarande användning i tabellen, t.ex., om ni anser att PACT är en teknik för att utvärdera UI design i en specifik kontext ska ni skriva 1-B. (5p) TEKNIK Användningssituation 1. PACT A. För att analysera olika UI designdimensioner, t.ex., sätta olika användarkontexter, teknologier och aktiviteter i fokus. 2. GOMS (Goals, Operations, Methods, and Selection rules) B. För att utvärdera gränssnitts design i en specifik kontext. 3. Databinding C. För att modellera användningsaspekter som kunskap och uppfattning av uppgift samt syfte och hur användaren bearbetar eller processar en uppgift. 4. MVVM (Model-View- ViewModel) D. För uppdelning av affärslogik och användargränssnitt, samt översättning av datatyper mellan affärslogik och användargränssnitt. 5. Scenarier E. För att överföra data till gränssnittet före eller under exekvering av programmet. 7

23) Med utgångspunkt i följande kod (Figur 2, nedan), svara på följande frågor med rätt kodradsnummer. Exempel: För att bestämma fönstrets storlek: Rad 9 För att få tillgång till diverse namnrymder: Rad 3-7 Deklarering av fönsterkomponenten: Rad 2 + 47 Inga poäng för halva svar. Som i exemplet med XAML-standardbibliotek, om en fråga gäller mer än en rad (3-7 i exemplet) och du anger bara en rad (som Rad 3 eller Rad 5), får du inga poäng. a) För att bestämma fönsterstorleken för gränssnittet? b) För att möjliggöra one-way data binding? c) För att möjliggöra two-way data binding? d) För att möjliggöra användning av flera kontroller? e) För att möjliggöra layout design så att alla kontroller är rätt placerade? (5p) Figur 2, koden för fråga 23. 8