Objektorienterad analys och design Provmoment: Ladokkod: Tentamen ges för: Tentamen NOA011 Systemarkitektprogrammet 7,5 högskolepoäng Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum: 2014-02-07 Tid: 09:00 13:00 Hjälpmedel: Inga hjälpmedel Totalt antal poäng på tentamen: För att få respektive betyg krävs: G=27 VG=39 51 poäng Allmänna anvisningar: Svaren skall kryssas i på svarssidan. Alternativa svarsmetoder kommer inte att bedömas. Varje fråga kan ha 1-3 rätta alternativ. Poäng erhålls om och endast om samtliga korrekta alternativ kryssats i (eller inga alternativ är ikryssade för frågor där inga alternativ är korrekta). Varje korrekt ikryssad fråga ger 3 poäng. 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: Tuve Löfström Telefonnummer: 033 435 4236
Answers (swe. svarsblankett) Namn: (Ifylles av student) Personnummer: (Ifylles av student) Questions: A B C A B C 1 10 2 11 3 12 4 13 5 14 6 15 7 16 8 17 9 2
1. Vilka av följande påståenden är korrekta angående utveckling enligt UP? a. Varje iteration inkluderar både analys, design, konstruktion test osv. b. Utvecklingen av ett system delas upp i iterationer, som i sin tur oftast består av flera artefakter. c. Vanliga iterationer är Inception, Construction, Realization och Transition. 2. En viktig del av Designmodellen är interaktionsdiagrammen. Kryssa i alternativ som är korrekta på svarsbladet. a. Interaktionsdiagram är exempel på dynamiska UML diagram b. Kollaborations- och sekvensdiagram är olika former av interaktionsdiagram. Kollaborationsdiagram har färre notationsval än sekvensdiagram. c. Kollaborations- och sekvensdiagram är olika former av interaktionsdiagram. Sekvensdiagram har färre notationsval än kollaborationsdiagram. 3. Betrakta nedanstående diagram och ange vilka av alternativen som korrekt beskriver diagrammet. a. Diagrammet visar ett tillståndsdiagram. b. Diagrammet innehåller tre tillståndsnoder. c. Två objekt skapas i flödet. 3
4. Vilka av följande alternative beskriver diagrammet korrekt? by Controller by Expert returns "null" if not a member confirmmembership(membershipid) :RentVideos Handler 1: m:=getmembership(membershipid): Membership :VideoStore 2: [ ismember ] create( m ) by Creator 1.1: m := find(membershipid): Membership :RentalTransaction 2.1: create( ) :VideoRental :VideoRental :Membership a. RentVideosHandler skapar en RentalTransaction endast om ismember är sann. b. Skapandet av RentalTransaction är det andra anropet I diagrammet. c. Diagrammet använder UML 2.*-notation. 4
5. Betrakta nedanstående diagram och ange vilka av alternativen som korrekt beskriver diagrammet. a. Diagrammet visar två stycken sekvensdiagram som visar hur systemanropet playgame realiseras i systemet b. Player-objektet har ett samlingsobjekt med tärningar. c. Metoden taketurn skulle kunna implementeras på följande sätt enligt diagrammet: void taketurn() { int fvtot = 0, fv; Square oldloc, newloc; for (int i = 0; i < dice.length; i++) { fv = dice[i].getfacevalue(); fvtot += fv; } oldloc = location.getlocation(); newloc = Board.getInstance().getSquare(oldLoc, fvtot); location.setlocation(newloc); } 5
6. Betrakta nedanstående diagram och ange vilka av alternativen som korrekt beskriver diagrammet. a. Man kan skapa ett generellt interaktionsdiagram för att visa hur metoden landedon realiserar sitt ansvar. b. Det är inte specificerat vilken synlighet som Player har till klassen Square. c. Square skulle kunna vara ett interface. 7. Applikationslager (application coordination layer) kan ingå i mjukvaruarkitekturen. Kryssa i alternativ som är korrekta på svarsbladet. a. Applikationslager har ofta en relativt tajt UC-koppling. b. Applikationslager separerar domänlagret från de tekniska lagren och används för att styra vilka lågnivåtjänster applikationen skall utnyttja. c. Underlättar återanvändning av domänpaket genom ytterligare lager av abstraktion mellan logik och UI. 8. Vad innebär elementära affärsprocesser (elementary business processes, EBP) och i vilket utvecklingssammanhang låter vi dem vara vägledande? Kryssa i alternativ som är korrekta på svarsbladet. a. Det finns ett ett-till-ett förhållande mellan use case och elementära affärsprocesser b. En definition är att det är en uppgift som utförs av en person på en plats vid ett tillfälle som respons på en affärshändelse och som leder till affärsvärde och lämnar data i ett konsistent tillstånd. c. Domänmodellen definieras utifrån elementära affärsprocesser 6
9. Betrakta nedanstående diagram och ange vilka av alternativen som korrekt beskriver diagrammet. Swing UI ProcessSale Frame Domain Sales Register Sale Pricing ServiceAccess Services Factory Payments CreditPayment «interface» ICreditAuthorization ServiceAdapter Inventory «interface» IInventoryAdapter POSRuleEngine POSRuleEngineFacade Taxes «interface» ITaxCalculatorAdapter Technical Services Persistence DBFacade Log4J Jess SOAP a. En grundprincip vid lagerindelade system är att anrop sker neråt i hierarkin. b. Diagrammet visar ett exempel på ett strikt lagerindelat system (strict layered system). c. Diagrammet visar ett exempel på ett avslappnat lagerindelat system (relaxed layered system). 10. Kryssa i alternativ som är korrekta avseende krav och kravhantering på svarsbladet. a. God kravhantering är en central förutsättning för framgångsrika projekt. b. Krav delas grovt in i funktionella och icke-funktionella krav. c. Funktionella krav definierar vilka begränsningar som systemet måste anpassas för. 7
11. Betrakta nedanstående figur och kryssa i alternativ som är korrekta på svarsbladet. a. Det finns en namngiven variabel av PercentDiscountPricingStrategy i Sale som möjliggör gettotal-anropet b. Anropet getsubtotal sker till objekten i samlingsobjektet lineitems. c. Exakt två metodanrop sker vid varje anrop till gettotal i Sale. 12. Vilka av följande mönster klassificeras som structural patterns? a. Adapter b. Facade c. Strategy 13. Vilka av följande påståenden är sanna angående Singleton-mönstret? a. Alla metoder i en Singleton måste vara statiska (static). b. En Singletons konstruktorer måste vara private. c. En Singleton måste ha minst ett statiskt (static) attribut. 14. Om ett objekt har många och vitt skilda ansvarsområden kan följande anti-mönster ha implementerats: a. Poltergeist b. God object c. Sequential coupling 15. Vad är sant angående Protected variations? d. Används för att skydda kod mot förändringar. e. Uppnås genom att ange samtliga resurser som private eller protected. f. Pekar ut funktionalitet som kommer vara opåverkade av yttre variationer. 16. Vad är sant angående Facade-mönstret? a. En Facade är en Pure Fabrication. b. En nackdel med Facade-mönstret är att det inför ett globalt tillstånd. c. En Facade kan ses som en Controller. 8
17. Vilka GRASP-mönster kan användas för att motivera State-mönstret? a. Creator b. Information Expert c. High Cohesion 9