Webb- och mobilutveckling Provmoment: Ladokkod: Tentamen ges för: Tentamen 21WM1B Systemarkitektprogrammet 7,5 högskolepoäng Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum: 2015-03-23 Tid: 14.00 17.00 Hjälpmedel: Inga hjälpmedel Totalt antal poäng på tentamen: För att få respektive betyg krävs: G=23 VG=33 40 poäng Allmänna anvisningar: Skriv dina svar på svarsblanketten (se nästa sida) Markera och ange alla svar tydligt och entydigt efter instruktionerna. Rättningstiden är som längst tre veckor Viktigt! Glöm inte att skriva namn på alla blad du lämnar in. Lycka till! Ansvarig lärare: Håkan Sundell Telefonnummer: 033 435 4426
Svarsblankett Namn: (Ifylles av student) Personnummer: (Ifylles av student) Uppgift 1: Uppgift 4: Uppgift 7: Uppgift 2: Uppgift 5: Uppgift 8: Uppgift 3: Uppgift 6: a) b) c) d) e) A B C D Svar: Svar: Svar: Svar: Svar: 2
1. Svara med något eller några av de angivna alternativen på följande frågor. (a) Document Object Model (DOM) används i huvudsak för att? i. Dynamiskt skapa XML-dokument på servern med hjälp av C# och ASP. ii. Komma åt delar av ett XHTML-dokument med hjälp av javascript på klienten. iii. Ändra delar av ett XHTML-dokument via programspråket Java på servern. iv. Läsa in och skriva XML-dokument på valfritt filsystem. (b) Tillstånd för HTTP-uppkopplingar kan sparas med hjälp av på klienten? i. HTML ii. Cookies iii. Sockets iv. Persistent HTTP (c) För att skapa användbara och interaktiva webbsidor med server-genererade webbsidor används specifikt konstruktionen i HTML? i. <body> ii. <head> iii. <form> iv. <script> (d) Basprotokollet som de flesta webbservrar stödjer för att köra exekverbara program med uppgift att skapa en HTTP-response utifrån ett HTTP-request kallas? i. Dynamic Web Interface ii. Common Gate Interface iii. Document Object Model iv. Enhanced Scripting Model. (e) Vilket eller vilka av följande påståenden gäller för JavaScript? i. JavaScript i ett HTML dokument kan förändra dokumentet medan det visas i en webbläsare. ii. JavaScript kan ersätta alla tillämpningar av ASP.NET. iii. Programspråket JavaScript är en delmängd av programspråket Java. iv. JavaScript körs enbart när ett HTML dokument skapas. 3
2. Svara med något av de angivna alternativen på följande frågor om språket C#. (a) För att definiera om (överskugga) en metod i en klass där en metod med samma namn och signatur redan finns definierad för bas-klassen, används nyckelordet? i. hide ii. new iii. override iv. sub (b) För att definiera en parameter vars värde sätts av metoden och tillåta att en inte initierad variabel används som respektive argument, så används nyckelordet? i. ref ii. out iii. extern iv. intern (c) För att binda en metod till en viss händelse (eng. Event) och på så sätt skapa en händelsehanterare, görs detta genom att koppla metoden till en specifik? i. event ii. delegate iii. enumerator iv. iterator (d) Ett interface är? i. En klass där alla metoder är implementerade som referenstyper ii. En implicit implementation av alla metoder som ingår i en klass definierad explicit iii. iv. En klass där alla metoder är definierade som abstract En mall som talar om vilka metoder och egenskaper som en klass måste implementera (e) En variabel som representerar en instans av en datastruktur definierad med nyckelordet class är alltid klassificerad som en? i. Referenstyp ii. Instanstyp iii. Objekttyp iv. Värdetyp 4
3. Svara med något av de angivna alternativen på följande frågor. (a) Programmiljön som laddar in och kör.net program heter? i. :NET Code Manager. ii. Framework Class Library. iii. Common Language Run-Time. iv. Class Loader. (b) Filer med ändelsen.aspx används inom ASP.NET för? i. Web Forms. ii. Web Clients. iii. Web Controls. iv. HTML Controls. (c) I Session State kan man lagra värden av typen? i. Endast värdetyper. ii. System.Object, direkt eller via arv. iii. Endast referenstyper. iv. System.Cacheable, direkt eller via arv. (d) Huvuddelarna i en MVC-baserad ASP.NET lösning är? i. Model, Validation, och Custom. ii. Mashup, View, och Custom. iii. Model, View, och Controller. iv. Mashup, Viewbag, och Controller. (e) Ett objekt av typen RedirectResult är en typ av? i. Action Results. ii. View Results. iii. Model Results. iv. Controller Results. 5
4. Svara med något eller några av de angivna alternativen på följande frågor. (a) Fördelarna med distribuerade system kan karaktäriseras enligt? i. Resource Sharing, Security, Concurrency, Scalability, Fault tolerance. ii. Manageability, Openness, Security, Scalability, Fault tolerance iii. Resource Sharing, Openness, Concurrency, Scalability, Fault tolerance iv. Complexity, Security, Manageability, Unpredictability (b) Modellen där all hantering av logik och data görs på servern, och klienten endast sköter presentationen kallas för? i. Fat client model. ii. Thin client model. iii. Smart client model. iv. Peer-2-peer model (c) Protokollet som traditionella webbtjänster (eng. web services) använder för kommunikation av information kallas för? i. Remote Procedure Call (RPC). ii. Simple Object Access Protocol (SOAP). iii. Web Services Description Language (WSDL). iv. Representational State Transfer (REST). (d) Ett giltigt (eng. valid) XHTML 1.1-dokument måste ha? i. Minst ett html-element och ett överensstämmande schema. ii. Endast ett rot-element och alla taggar avslutade. iii. Högst ett html-element och inte innehålla tecknen < och >. iv. Innehålla en <?xml?>-tagg och ett html-element innehållande ett head- och ett body-element. (e) För att associera ytterligare information till ett element i XML, förutom att placera data emellan element eller nästla element, används? i. Namnrymder (Namespaces) ii. Character Data (CDATA). iii. Attribut. iv. Parsed Character Data (PCDATA). 6
5. Svara med något av de angivna alternativen på följande frågor om användargränssnitt på Windows Phone-baserade enheter. (a) Metro är? i. Ett tillägg till Windows Phone SDK. ii. Biblioteket för vanliga användargränssnitt på Windows Phone. iii. En synonym till Silverlight. iv. Namnet på den rekommenderade stilen för Windows Phone applikationer. (b) I Windows Phone är XAML-kod? i. Det enda sättet att beskriva vilka element som ingår i ett användargränssnitt. ii. Ett sätt att beskriva vilka element som ingår i ett användargränssnitt. iii. Enbart ett sätt att beskriva hur elementen i användargränssnittet skall se ut. iv. Ett sätt att spara input från användaren. (c) Under körning är användargränssnittets kontroller tillgängliga för applikationsprogrammet som? i. XAML-kod. ii. Properties. iii. Objekt. iv. Inte alls. (d) Material som bilder med mera, som man vill skall vara inlästa i minnet i förväg behöver klassificeras i byggandet av applikationen som? i. Resources. ii. Assets. iii. Contents. iv. Manifests. (e) När enhetens orientering ändras så innebär det för den aktiva applikationen? i. Att applikationen kan behöva ändra kontrollernas layout. ii. Ingenting, eftersom systemet hanterar allt. iii. Att applikationen måste rotera sitt GUI. iv. Att applikationen måste skapa alla kontrollerna igen. 7
6. Svara med något av de angivna alternativen på följande frågor om språket C++. (a) En ifrågasatt möjlighet som finns i språket C++ men saknas i språket C# är? i. Multipelt arv (eng. Multiple inheritance). ii. Gränssnitt (eng. Interface). iii. Referenser. iv. Konstruktor (eng. Constructor). (b) Tidsmässigt kan definitionen av språken i C-familjen ordnas enligt? i. C, Java, C++, C#. ii. C, C#, Java, C++. iii. C, C++, Java, C#. iv. C, C++, C#, Java. (c) En metod (med signaturen int f (char *str)) kan deklareras på ett sätt så att den inte får implementeras i basklassen enligt? i. virtual int f (char *str) = null; ii. abstract int f (char *str); iii. virtual int f (char *str) = 0; iv. pure virtual int f (char *str); (d) För att få kompilatorn att generera speciella versioner av en metod beroende på argumentets aktuella typ (som kan vara valfri) används? i. Nyckelordet template. ii. Destruktorer (eng. destructor). iii. Nyckelordet volatile. iv. Uttrycket void *. (e) Standard Template Library (STL) är? i. Ett tillägg till Microsoft Visual C++. ii. Ett länkbart bibliotek med trådsäkra (eng. Thread-safe) klasser. iii. En del av standardbiblioteket (eng. Run-time library) för C++. iv. Ett tillägg till språket C++ som går att ladda ner fritt. 8
7. Svara med något av de angivna alternativen på följande frågor om Windows Phonebaserade enheter. (a) Applikationer som inte körs för tillfället i förgrunden, sätts av operativsystemet i något av lägena? i. Sleeping eller Blocking. ii. Dormant eller Tombstone. iii. Waiting eller Pending. iv. Running eller Ready. (b) Möjligheten att låta användaren köra flera applikationer samtidigt stöds via? i. Inte på något sätt alls. ii. Full multi-tasking capability. iii. Endast begränsat via background tasks. iv. Full multi-threading capability. (c) Klassen som skapar en komplett bild av vilken riktning och rörelse i rummet som den mobila enheten befinner sig i, heter? i. Accelerometer. ii. Motion. iii. Sensor. iv. Gyroscope. (d) Data som man vill spara för en längre tid från en applikation, sparas till? i. State Storage ii. Isolated Storage iii. Application Storage iv. Flash Storage (e) Konceptet som används för att ett program skall kunna utföra uppgifter som kan äventyra användares integritet eller säkerhet, kallas för? i. Launchers and Choosers. ii. Requesters and Guaranteers. iii. Identifiers and Validators. iv. Toasts and Notifications. 9
8. Studera följande givna C#-program. Svara kortfattat på var och en av frågorna med ett av de givna alternativen, alternativt ett specifikt värde. (a) Vilket värde har average efter exekveringen av följande program? int average = 0; int[] numbers = new int[] 1, 2, 3, 4, 5 ; foreach (int nr in numbers) if (nr is int) average = average / numbers.length; else average = average + nr; A. <ange värde> B. C. D. Inget, programmet kompilerar eller kör inte korrekt (b) Vad har attributet foo för värde i en instans som skapats med konstruktoranropet Counter(4)? class Counter public int foo; public Counter(object foo) foo = foo; A. <ange värde> B. C. D. Inget, programmet kompilerar eller kör inte korrekt 10
(c) Vad har attributet data för värde i en instans som skapats med konstruktoranropet SomeObject(3, 7)? class SomeObject public object data; public object moredata; public SomeObject(int count) data = count; public SomeObject(int count, int number) : this(count) moredata = number; A. <ange värde> B. C. D. Inget, programmet kompilerar eller kör inte korrekt (d) Vilket värde får anropet till b(3) för en ny instans av B? public class A public virtual int a(int a) return a + 4; public int b(int b) return a(b) * 2; public class B : A public override int a(int a) return a + 3; A. <ange värde> B. C. D. Inget, programmet kompilerar eller kör inte korrekt 11
(e) Vilket värde får anropet till G(3) för en ny instans av B? delegate int F(int a); class A public virtual int G(int g) return g + 1; class B : A public override int G(int g) F a = new F(base.G); return a(g) * 2; A. <ange värde> B. C. D. Inget, programmet kompilerar eller kör inte korrekt 12