Første års projekt Flashcards

1
Q

Hvilken organisationsform har OK Plus? Og hvilken betydning har det for arbejdsfordeling og koordinering i organisationen?

A

Mekanisk organisationsform. Modsætning til organisk organisationsform.
Klar og tydelig inddeling af opgaver. Koordinering gennem nærmeste overordnede (instrukser).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Har OK Plus en dyb eller en flad organisation?

A

Dyb. Flere ledelseslag i toppen - et medarbejderlag i bunden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

OK’s organisationsform følger linjeprincippet. Hvad betyder det?

A

At en medarbejder kun har én direkte overordnet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Beskriv den øverste leder i OK Plus. Hvad kendetegner ham?

A

Holdleder (ledergitteret), vellidt, handlekraftig, initiativrig, grundig, ikke særlig risikovillig.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Hvilken lederroller passer bedst på den øverste leder hos OK Plus?

A

Producentrollen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Hvad er en SWOT analyse? Hvorfor er den nyttig?

A

Analyse der kortlægger styrker og svagheder ved både interne og eksterne forhold i virksomheden.
Kan bruges når der skal udarbejdes en strategi for virksomheden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Hvad indebærer begrebet forandringsledelse? Hvorfor er det vigtigt?

A

Forandringsledelse dækker over, hvordan en virksomhed håndterer, og reagerer, på forandringer.
Vigtigt for at virksomheden og dens medarbejdere kommer godt igennem forandringer.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Hvilken type forandring er indførelse af digital vagtplan hos OK Plus? Hvad betyder det?

A

Type 1.
Periferikompetence = lavere risiko.
Transformationel = større konflikt niveau.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Hvad er en business case? Hvorfor er den relevant?

A

Beretter om projektets fordele, ulemper, risici, omkostninger og besparelser.
Har til formål at berettige projektets igangsættelse.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Hvad er en cost/benefit analyse?

A

En analyse der kortlægger både håndgribelige og uhåndgribelige fordele og ulemper.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Hvorfor udarbejdes en virksomhedsanalyse af OK Plus? Hvorfor er det vigtigt?

A

For at forstå virksomhedens virke. Vigtigt for at vælge den rette tilgang til den senere systemudvikling.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Hvad kendetegner systemudviklingsmodellen Unified Process? Hvorfor er modellen et godt valg i dette projekt?

A

Iterativ og risikodreven.
Fordi ledelsen i OK Plus er handlekraftig og initiativrig = kan betyde ændringer i kravene undervejs. Og fordi de ikke er særligt risikovillige.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Hvad vil det sige at UP er iterativ?

A

Processens delelementer kan genbesøges igen og igen - og i hver iteration.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Hvad vil det sige at UP er risikodreven?

A

At elementer af høj risiko håndteres tidligt i forløbet. Arkitektur fastlægges i inception, eller starten af elaboration. Kritiske use cases implementeres først.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Hvad er en faseplan?

A

En overordnet plan for arbejdet med UP. Indeholder mål for hver fase, antallet af iterationer i hver fase, deadlines og overblik over artefakter.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Hvad er det primære mål med inception fasen?

A

Vurdering af om projektet skal gennemføres. Forståelse for projektets scope, og krav til systemet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Hvad er det primære mål med elaboration fasen?

A

Arkitekturen fastlægges. Kritiske funktioner designes, implementeres og testes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Hvad viser tabellen helt overordnet?

A

En oversigt over projektets, og systemudviklingens, potentielle risici. Samt deres alvorlighed.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Hvor i projektets forløb hører hver risiko til? Inddel dem efter om de er generelle for projektet, eller hvilken af UP faserne de tilhører.

A

Generelle for projektet:
- Gruppeproblemer.

Generelt for systemudviklingsprocessen:
- Kunden ændrer krav.

Inception:
- Kundens behov misforstås.

Elaboration:
- Design af kompleks algoritme.
- Fejl i systemkoden
- Samtidighedsproblematikker.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Hvor i UP modellen ligger IT-forundersøgelsen?

A

I inception fasen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Hvad er målet med en IT-forundersøgelse?

A

At kortlægge virksomhedens arbejdsgange og opgaver som de er nu.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Hvad tager udarbejdelsen af en medarbejder-mål tabel udgangspunkt i?

A

Interview med virksomheden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Hvad viser en medarbejder-mål tabel?

A

Mål (opgaver) i virksomheden, trin i hvert mål, og hvem der udfører den.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Hvad tager udarbejdelsen af et aktivitetsdiagram udgangspunkt i?

A

Medarbejder-mål tabellen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Hvad viser et aktivitetsdiagram?

A

Viser målene i medarbejder-mål tabellen. Visualiserer workflowet (arbejdsgangen).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Hvad er mock-ups? Hvorfor er de relevante i inception fasen?

A

Prototyper på systemets brugergrænseflade.
Relevante for at validere at virksomhedens behov og krav til systemet er forstået korrekt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Hvad kendetegner designet af brugergrænsefladen til vagtplans systemet?

A

“Less is more”.
Grundige overvejelser om farver, former og skrifttyper.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Hvad er et use case diagram? Hvad viser det?

A

Viser systemets funktionelle krav (use cases), og hvilke aktører der kan tilgå funktionerne.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Hvorfor kan fuldtidsmedarbejdere ikke tilgå use case ‘Take new shift’.

A

Fordi deres vagtplan kører efter fast rul. Funktionaliteten er tiltænkt til at give deltidsmedarbejderne medbestemmelse over vagtplanen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Hvad er en use case beskrivelse? Hvor mange typer beskrivelser findes der? Og hvad kendetegner dem?

A

En beskrivelse af funktionaliteten.

Brief: Lav detaljeringsgrad. Simpel og kortfattet. Happy days.

Casual: Lav detaljeringsgrad. Simpel og kortfattet. Medtager meget hyppige alternative flows.

Fully dressed: Høj detaljeringsgrad. Trin for trin.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

Hvorfor prioriteres use cases? Og hvordan prioriteres de?

A

For at finde de mest kritiske, eftersom de skal implementeres først.
Prioriteres på: risiko, dækningsgrad og hvor kritiske de er for forretningen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

Hvilke områder dækker de ikke-funktionelle krav?

A

Brugervenlighed, pålidelighed, sikkerhed og lign.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

Hvad er en iterationsplan? Hvornår udarbejdes den?

A

En detaljeret plan for en given iteration. Udarbejdes umiddelbart inden iterationens begyndelse.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

Hvilken arkitektur er valgt i systemet? Hvad kendetegner den?

A

Åben tre-lags arkitektur. UI lag, controller lag og model lag. UI kan læse på alle lag.

35
Q

Hvad er DAO mønsteret? Hvor bruges det?

A

Bruges som udvidelse af tre-lags arkitekturen. Indfører en række DB klasser der håndterer koden til databasen. Adskiller den del af koden der snakker med DB fra resten af systemet. Sikrer lav kobling.

36
Q

Hvad viser billedet?

A

Den åbne tre-lags arkitektur, samt brugen af DAO mønsteret.

37
Q

Hvordan implementeres DAO mønsteret?

A

Separate DB klasser for hver modelklasse. Interface for hver DB klasse.

38
Q

Hvad er en kandidatliste? Hvad bruges den til?

A

En vurdering af kandidater til konceptuelle klasser i domænemodellen.

39
Q

Hvad er en domænemodel? Hvad viser den?

A

Viser problemfeltet fra virkeligheden. Består af konceptuelle klasser, altså klasser der portrætterer objekter og data fra den virkelige verden. Er bundet sammen af associeringer.

40
Q

Find tre forskellige mønstre i domænemodellen.

A
  1. Aftalemønster
  2. Item-descriptor mønster
  3. Generalisering
41
Q

Udsnit af domænemodel. Hvilket mønster ses her? Hvad kendetegner det?

A

Aftalemønster. Siger noget om styring af en aftale. Workschedule er aftalen mellem en medarbejder og en vagt.

42
Q

Udsnit af domænemodel. Hvilket mønster ses her? Hvad kendetegner det?

A

Item-descriptor mønster. En klasse der indeholder den generelle beskrivelse, og en kopi klasse der sørger for at differentiere hvert objekt. Den ene kan ikke leve uden den anden.

43
Q

Hvilken type associering er der tale om her? Hvad kendetegner den?

A

En komposition. (Stærk aggregering). Betyder at den ene ikke kan leve uden den anden.

44
Q

Udsnit af domænemodel. Hvilket mønster ses her? Hvad kendetegner det?

A

Generalisering. Nedarvning fra superklasse til subklasser.

45
Q

Hvorfor adskilles der ikke mellem en leder og en almindelig fuldtidsmedarbejder i domænemodellen?

A

Fordi de ikke er forskellige - andet end at de har forskellige rettigheder i systemet. Det er dog ikke relevant for domænet, der jo repræsenterer virkeligheden.

46
Q

Hvordan er denne generalisering mappet fra domænemodellen til databaseskemaet?

A

Med table-each tilgangen. Både super- og subklasser får hver deres relation. Subrelationerne får samme PK som superrelationen. Disse agerer også FK til superrelationens PK. Superrelationen får desuden en ny attribut der definerer typen.

47
Q

Hvordan er denne relation fra domænemodellen mappet i databaseskemaet?

A

Mappet som mange-til-mange relation. Der laves join mellem de to relationer. Resultatet er en tredje relation med en sammensat PK bestående af hver af de to relationers PK. Den sammensatte PK er samtidig FK til hver af de to relationer.

48
Q

Hvordan er denne relation fra domænemodellen mappet i databaseskemaet?

A

Mappet som en-til-mange relation. Mange-relationen får FK der peger på en-relationens PK.

49
Q

Hvordan er ‘participants’ attributten fra domænemodellen mappet i databaseskemaet?

A

Som multi-valued attribut. Der laves en ny relation for attributten med en sammensat PK bestående af PK fra den oprindelige relation, og værdien for attributten. I dette tilfælde er værdien en medarbejder, og derfor bliver værdien for attributten også en FK. Dermed laves der egentlig et join af employee relationen og meeting relationen.

50
Q

Hvordan er ‘address’ attributten fra domænemodellen mappet i databaseskemaet?

A

Som sammensat attribut. Derfor splittes attributten op i mindre dele og får sin egen relation.

51
Q

Hvordan er tredje normalform af databaseskemaet opnået? Hvad stod i vejen i første omgang?

A

En transitiv afhængighed i ‘address’ relationen. Løsning er en dekomponering af relationen.

52
Q

Hvad er grundlaget for at kunne udarbejde et databaseskema for en relationel database?

A

Domænemodellen.

53
Q

Hvorfor er ‘ON DELETE CASCADE’ valgt her?

A

Fordi ShiftCopy i domænemodellen er forbundet til Shift via en komposition, hvilket betyder at ShifCopy ikke kan leve uden Shift.

54
Q

Hvilket formål har constraint CHECK_State?

A

At sikre mod forurening af databasen ved kun at tillade udvalgte værdier.

55
Q

Hvorfor adskilles der her mellem fuldtidsmedarbejder og leder, når det modsatte blev valgt i domænemodellen?

A

Fordi lederen har flere rettigheder i systemet end en almindelig fuldtidsmedarbejder, derfor er det nødvendigt at adskille de to typer i applikationen.

56
Q

Hvorfor er CPR valgt som PK, i stedet for en surrogatnøgle?

A

Fordi CPR nummer er en god naturlig PK, eftersom CPR altid er unikt.

57
Q

Hvorfor skal aktøren være logget ind som præbetingelse?

A

Fordi login har sin egen use case, og den er lavere prioriteret - og derfor ikke implementeret endnu.

58
Q

Hvilke overvejelser vedrørende samtidighed er der gjort i basisflowet?

A

Når aktøren tager en vagt, bliver det persisteret i databasen med det samme. Der kan altså ikke lægges i kurv, eftersom det vil eskalere samtidighedsproblematikkerne.

59
Q

Hvad viser et systemsekvensdiagram? Og hvad er udarbejdelsen af det baseret på?

A

Viser input og output mellem aktør og system for en given use case.
Udarbejdet på baggrund af basisflowet i en fully dressed beskrivelse.

60
Q

Hvad er en operationskontrakt? Hvad er udarbejdelsen af denne baseret på?

A

En beskrivelse af præ- og postbetingelser for et state ændrende input i et systemsekvensdiagram.

61
Q

Hvilke inputs er der lavet operationskontrakter for? Og hvorfor?

A

Kun for takeNewShift(), eftersom denne er det eneste state ændrende input.

62
Q

Hvorfor er inputtet startTakeNewShift() ikke state ændrende?

A

Fordi det blot finder eksisterende data i databasen, og tilføjer det som objekter til en liste. Hvis operationen blev udført to gange, ville resultatet være det samme begge gange. Dermed er den ikke state ændrende.

63
Q

Hvilke generelle designovervejelser er der gjort i forbindelse med udarbejdelse af interaktionsdiagrammerne for alle tre use cases?

A
  1. Tre-lags arkitektur.
  2. Controllerklasser har hvert sit ansvarsområde.
  3. Lav kobling.
64
Q

Hvilket mønster viser dette udklip fra interaktionsdiagrammet for use case Take new shift?

A

Creator mønster (af typen GRASP).
Fortæller noget om hvem der skal have ansvaret for at oprette nye instanser af en given klasse. Ansvaret er tildelt Shift, eftersom den indeholder ShiftCopy. Kunne også have været tildelt controllerklassen, eftersom denne har de initierende data.

65
Q

Hvordan kommer Singleton mønsteret til udtryk her?

A

Nummeret med 1 tal.
Har statisk instansvariabel af klassens type, en privat constructor og en statisk getInstance() metode.

66
Q

Hvorfor har ShiftCopy ikke sin egen DB og controller klasse?

A

Fordi den er meget nært knyttet til Shift, og dermed kan de dele DB og controller klasse.

67
Q

Opsummer kodestandarden for systemkoden.

A
  1. Kodedokumentation.
  2. Instansvariabler præsenteres i rækkefølgen; public, protected, private.
  3. Metoder præsenteres efter funktion - for læsevenlighedens skyld.
  4. Generel standard for parenteser, akkolader og mellemrum.
  5. Linjeskift bruges mellem hver metode, samt mellem en metodes lokale variable og det første statement.
  6. Kommentarer i metoderne.
68
Q

Hvilket formål har ENUM’s i systemkoden?

A

Sikre mod forurening af databasen.

69
Q

Hvorfor implementerer alle DB klasserne et interface?

A

Som led i DAO mønsteret. For at adskille den kode der snakker sammen med databasen fra resten af systemet. Interfacet sørger for, at kun relevante metoder kan bruges af controller klasserne. Sikrer lav kobling.

70
Q

Hvad er en explicit transaktion? Hvad er formålet med sådan en?

A

En transaktion der defineres i systemkoden - og ikke af databasehåndterings systemet. Sikrer “alt eller intet” princippet. Bruges når der skal køres mere end én query.

71
Q

Hvad er de generelle regler for en rekursiv metode?

A
  1. Kalder sig selv.
  2. Tager imod input værdi der bruges i logikken.
  3. En løsning der ikke kræver yderligere rekursion skal forekomme på et tidspunkt.
72
Q

Hvilket grundlag udarbejdes interaktionsdiagrammet på baggrund af?

A

Et systemsekvensdiagram.

73
Q

Hvor mange interaktionsdiagrammer udarbejdes der?

A

En for hver use case.

74
Q

Hvor mange designklassediagrammer udarbejdes der?

A

Et enkelt. Denne opdateres for hver use case der implementeres.

75
Q

Hvad tager testscenarierne for systemtest udgangspunkt i?

A

Basisflow, alternative flow og særlige forretningskrav fra fully dressed beskrivelse.

76
Q

Hvad tager testcases til systemtest udgangspunkt i?

A

Testscenarierne.

77
Q

Hvorfor er det relevant at udarbejde trin til systemtest?

A

For at gøre det nemmere at udføre testen sådan som det er tiltænkt. Og for at gøre det muligt at replikere testen.

78
Q

Hvilke generelle overvejelser er der gjort i forbindelse med udarbejdelsen af GUI.

A
  1. Brugervenlighed.
  2. Sigende error beskeder.
  3. Valgfrihed (tilbage knapper)
79
Q

Hvilken type samtidighedskontrol er der gjort brug af her? Og hvorfor?

A

Pessimistisk samtidighedskontrol. En explicit transaktion hvor isolations niveau der låser dataene sættes.

80
Q

Hvor benyttes der tråde i systemet? Og til hvilket formål?

A

I GUI kører delegate metoden på en tråd i baggrunden for at sikre at GUI ikke blokeres i mellemtiden. Dette er valgt fordi delegate metoden udfører et langsommeligt og tungt kald til DB.

81
Q

Hvordan er trådene i GUI implementeret?

A

Ved hjælp af SwingWorker klassen som GUI klassen udvider. Her er doInBackground() og done() metoderne implementeret for at definere hvad der skal køre på tråden, og hvad der skal ske når den er færdig.

82
Q

Hvordan er Factory mønsteret blevet implementeret i systemet?

A

En ConnectionFactory klasse har til opgave at oprette en instans af enten DBMock eller DBSystem, alt efter hvilken ENUM den modtager. Controllerklasserne bruger ConnectionFactory til at oprette en instans af DBSystem, mens test klasserne bruger den til at oprette en instans af DBMock.

83
Q

Hvorfor er Factory mønsteret benyttet i systemet? Hvilket problem løser det?

A

Udarbejdelsen af unit- og integrationstest blev besværlig pga. de mange databasekald. For at gøre det nemmere blev Factory mønsteret brugt til at oprette en mock database når testmiljøet køres.