Systemudvikling Flashcards

1
Q

Hvad vil det sige at en systemudviklingsmodel er iterativ?

A

At man bevæger sig mellem processens delelementer flere gange, og dermed genbesøger de samme processer igen og igen.

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

Hvad er fordelen ved en iterativ tilgang til systemudvikling?

A

At det er nemmere at løse eventuelle problemer eller fejl, og at det kan lade sig gøre at skifte kurs hvis virksomhedens krav ændrer sig undervejs.

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

Hvad er UP forkortelse for?

A

Unified Process

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

Hvad kendetegner UP?

A

En iterativ systemudviklingsmodel. Use case dreven. Risikodreven.

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

Hvad vil det sige at UP er risikodreven?

A

Udviklingen har hele tiden riscici for øje. Derfor fastlægges eks. arkitekturen hurtigt i processen.

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

Hvad er modsætningen til et iterativt udviklingsforløb?

A

Et sekventielt forløb hvor man bevæger sig fra trin til trin. Og kun besøger hvert trin én gang.

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

Hvad er det primære formål med en IT-forundersøgelse?

A

At kortlægge virksomhedens nuværende aktiviteter og processer.

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

Hvad er formålet med en medarbejder-mål tabel?

A

At kortlægge virksomhedens nuværende arbejdsopgaver, og hvem der udfører dem, på baggrund af et interview med virksomheden.

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

Hvad er formålet med et aktivitetsdiagram/workflow?

A

At visualisere virksomhedens nuværende arbejdsproces i et happy days format.

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

Hvad tager aktivitetsdiagrammet udgangspunkt i?

A

Målene fra medarbejder-mål tabellen. Målenes trin medtages ikke.

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

Hvad betyder det at et artefakt udarbejdes i et “happy days” format?

A

At det tager udgangspunkt i et perfekt scenarie, uden alternative flows.

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

Hvad er mock-ups?

A

Primitive og ikke-funktionelle visualiseringer af brugergrænsefladen på det system kunden skal have.

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

Hvad er formålet med en “tænke-højt-test”?

A

At få en brugers umiddelbare indtryk af systemet. Her bruges ofte mock-ups eller andre prototyper.

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

Hvad er en use case?

A

Et funktionelt krav til et IT-system. En beskrivelse af en funktion i systemet fra aktørens perspektiv.

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

Hvad er formålet med et use case diagram?

A

At visualisere de funktionelle krav til systemet, samt hvilke aktører der kan tilgå de forskellige funktionaliteter.

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

Hvad er en brief use case beskrivelse?

A

En kort og præcis beskrivelse i et happy days format.

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

Hvad er en casual use case beskrivelse?

A

En kort og præcis beskrivelse der medtager alternative flows der er meget hyppigt forekomne.

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

Hvad er en fully dressed use case beskrivelse?

A

En detaljeret og nøjagtig beskrivelse af hvert trin i en use case. Medtager alle alternative flows og eventuelle særlige forretningskrav.

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

Hvorfor prioriterer man på use cases?

A

For at finde ud af hvilke der er vigtigst at implementere først.

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

Hvilke parametre prioriterer man use cases på?

A

Risiko, dækningsgrad og forretnings kritikalitet.

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

Hvad er formålet med domænemodellen?

A

At vise et problemfelt fra virkeligheden. Samt at definere informationskravene i systemet; altså hvilke data der skal lagres.

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

Hvad kendetegner domænemodellen?

A

Den viser et udsnit af virkeligheden. Den består af konceptuelle klasser - klasser der afbilleder data fra virkeligheden.

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

Hvordan udvælges klasser til domænemodellen?

A

Med en kandidatliste der finder inspiration i navneord fra tidligere artefakter.

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

Hvad siger multiplicitet i domænemodellen noget om?

A

Hvor mange objekter af hver klasse der kan eksistere.

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

Hvad er formålet med et systemsekvensdiagram?

A

At visualisere input og output mellem bruger og system.

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

Hvad kendetegner et systemsekvensdiagram?

A

Det udarbejdes i et “happy days” format. Laves altid på engelsk.

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

Hvad er formålet med operationskontrakter?

A

At beskrive de ændringer der forventes når en operation er udført.

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

Hvad kendetegner operationskontrakter?

A

Udføres på state ændrende input i systemsekvensdiagrammet; er der oprettet eller slettet en instans? Er der sket en ændring eller en tilskrivning af værdi? Er der oprettet eller brudt associeringer?

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

Hvad er formålet med et interaktionsdiagram?

A

At visualisere objektinteraktionen i et system for en given use case.

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

Hvad er formålet med et designklassediagram?

A

At vise alle systemets klasser, attributter, constructors og metoder, samt associeringer mellem designklasserne.

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

Hvordan kan interaktionsdiagrammet valideres?

A

Ved at tjekke om post-conditions i operationskontrakterne er opfyldt.

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

Hvad er et kommunikationsdiagram?

A

Et interaktionsdiagram i en komprimeret udgave.

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

Hvad er et sekvensdiagram?

A

En interaktionsdiagram i en mere “udvidet” udgave end kommunikationsdiagrammet.

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

Hvad betyder den fuldt-optrukne pil i designklassediagrammet.

A

At to designklasser associeres så længe de lever.

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

Hvad betyder den stiplede pil i designklassediagrammet?

A

At to designklasser associeres ved et bestemt metodekald, hvorefter forbindelsen “dør”.

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

Hvad er formålet med test helt generelt?

A

At undersøge om systemet lever op til kravene, samt udbedre fejl og mangler.

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

Hvad er unit test?

A

En test af et lille udsnit kode.

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

Hvad er integrationstest?

A

Test af om flere stykker kode snakker korrekt sammen.

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

Hvad er systemtest?

A

Test af hvorvidt systemet lever op til kravene. Både de funktionelle og ikke-funktionelle.

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

Hvad er en acceptance test?

A

En test som udføres af kunden og som gerne skal udmunde i kundens accept af, at systemet opfylder kravene.

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

Hvad kendetegner en black-box test?

A

At der kun tages højde for input og output af testen.

42
Q

Hvad kendetegner en white-box test?

A

At alle “veje” i en metode testes.

43
Q

Hvad er fremgangsmåden for at udføre test cases?

A

Der defineres test scenarier for både happy days flowet og alternative flows i fully dressed beskrivelsen. For hvert scenarie opstilles der mindst en test case der definerer hvad der skal testes og hvordan.

44
Q

Hvad er en “generalisering” i domænemodellen.

A

Når en superklasse nedarver til flere subklasser.

45
Q

Hvad er “the role pattern” (rolle mønstret) i donænemodellen?

A

Når to konceptuelle klasser begge er associeret til hinanden. (Multiple association).

46
Q

Hvad viser billedet?

A

En generalisering i en domænemodel.

47
Q

Hvad viser billedet?

A

The role pattern (rolle mønstret) i en domænemodel.

48
Q

Hvad viser billedet?

A

Et item-descripter mønster i domænemodellen.

49
Q

Hvad er et item-descriptor mønster i en domænemodel?

A

Når en kopi er associeret til en anden klasse der indeholder den fælles beskrivelse for alle kopier. Kopien har så ansvaret for at gøre alle kopier unikke (eks. med ID).

50
Q

Hvad er en aggregering i en domænemodel? Og hvordan ser den visuelt ud?

A

En stærkere associering. Vist med en “tom”/hvid diamant.

51
Q

Hvad er en komposition i en domænemodel? Og hvordan ser den ud?

A

En stærkere aggregering. Betyder at den ene ikke kan leve uden den anden. Vist med en “fyldt/sort diamant.

52
Q

Hvad er et aftalemønster i domænemodellen? Giv et eksempel på et aftalemønster.

A

Et mønster der fortæller noget om styring af en aftale. Eks. et salg der binder en kunde og et produkt. Her er salget aftalen.

53
Q

Hvad viser billedet?

A

Et aftalemønster i en domænemodel.

54
Q

Hvad er en composite attribute i en domænemodel? Kom med et eksempel.

A

En attribut i en konceptuel klasse der er en sammensætning af flere dele. Eks. ‘Adresse’ som kan splittes i gadenavn, postnummer osv.

55
Q

Hvad viser billedet?

A

En relationel model (relationel database skema).

56
Q

Hvad er en Relationel Model (relationel database skema)?

A

En model der viser opbygningen af en relationel database. Udarbejdes på baggrund af en domænemodel.

57
Q

Hvad er reglerne for at mappe multi-valued attributter fra domænemodellen til den relationelle model?

A

Multi-valued attributter er ikke tilladte. Derfor laves der en ny relation for sådanne værdier. Eks. på en multi-valued attribut: “children” eller “courses”.

58
Q

Hvad er reglerne for at mappe composite (sammensatte) attributter fra domænemodellen til den relationelle model?

A

Composite (sammensatte) attributter bør splittes i flere dele. Der laves som oftest en ny relation der indeholder hvert delelement. Eks. på en composite attribut: “address”.

59
Q

Hvad er reglerne for NULL værdier når der mappes fra domænemodel til relationel model (relationel database skema)?

A

Antallet af NULL værdier bør minimeres. Jo færre jo bedre.

60
Q

Forklar følgende mapping fra en konceptuel klasse til skemaer i den relationelle model. (Primære og fremmede nøgler, relation, osv.) Hvad er det for et problem der løses?

A

Den konceptuelle klasse Employee indeholder en multi-valued attribut (education). Derfor laves endnu en relation (EmployeeEducation) hvor education attributten vises. I denne relation laves der en sammensat primærnøgle der består af education attributten og primær nøglen fra Employee relationen - som desuden også er en fremmednøgle der peger på Employee id.

61
Q

Forklar følgende mapping fra en konceptuel klasse til skemaer i den relationelle model. (Primære og fremmede nøgler, relation, osv.) Hvad er det for et problem der løses?

A

Den konceptuelle klasse Employee indeholder en composite attribut (address). Derfor laves endnu en relation (Address) hvor address attributten splittes i alle dens delelementer. Relationens fremmednøgle peger på Employee relationens primær nøgle (id).

62
Q

Hvilke tre typer associeringer er vigtige i forbindelse med mapping fra domænemodellen til den relationelle model?

A

Tre typer associeringer: one-to-many, one-to-one, many-to-many. Multipliciteter i domænemodellen afgører hvilken type der er tale om for den pågældende associering.

63
Q

Hvad er den typiske måde at mappe en one-to-many associering fra domænemodellen til den relationelle database?

A

I tabellen på “mange-siden” tilføjes primær nøglen fra “en-siden” som attribut. Denne bliver fremmednøglen der peger på primærnøglen på “en-siden”.

64
Q

Hvad betyder kardinalitet i forbindelse med domænemodellen?

A

Kardinalitet er et andet udtryk for multiplicitet.

65
Q

Hvad er den typiske måde at mappe en one-to-one associering fra domænemodellen til den relationelle database? Og hvilken generel regel om mapping af relationelle databaser er vigtig at overveje i den forbindelse?

A

Den ene relation får tilføjet den anden relations primær nøgle som attribut. Denne bliver samtidig en fremmednøgle der peger på den anden tabels primær nøgle. Hvilken der referer til den anden afhænger af, om det ene eller det andet giver risiko for flest NULL værdier - hvilket er vigtigt for at mindske antallet af NULL værdier i databasen.

66
Q

Hvad er den typiske måde at mappe en many-to-many associering fra domænemodellen til den relationelle database?

A

Der laves en ny “join” relation der får primær nøglerne fra begge af de to relationer som attributter. Disse to attributter bliver en sammensat primær nøgle. Hver attribut er desuden en fremmed nøgle der peger på hver af de oprindelige relationers primær nøgle. Hvis der er behov for flere attributter i join relationen må de gerne tilføjes.

67
Q

Billedet viser et eksempel på mapping fra domænemodel til relationel database. Forklar hvad der er gjort og hvorfor.

A

Viser mapping af en many-to-many associering i domænemodellen. Der er lavet tre relationer, hvoraf en af dem er en “join relation” der har de to øvrige relationers primær nøgler som attributter. Disse danner tilsammen en sammensat primær nøgle. De er desuden hver i sær fremmed nøgler der peger tilbage på henholdsvis Customer og Account.

68
Q

Hvad er en sammensat primær nøgle i en relationel database?

A

To eller flere attributter i en relation der tilsammen gør hver række unik.

69
Q

Hvilke tre fremgangsmåder findes der til mapping af generaliseringer fra domænemodellen til den relationelle model?

A

Fremgangsmåder: “table-each”, “pull-down”, “pull-up”.

70
Q

Hvordan mappes en generalisering fra domænemodellen til den relationelle model med fremgangsmåden “table-each”? Hvad er ulemperne ved fremgangsmåden?

A

Hver klasse (både super- og subklasser) får sin egen relation. Primærnøglerne i subrelationerne er også fremmednøgler der peger på superrelationen. I superrelationen defineres en “type” attribut der viser hvilken subrelation den enkelte række er associeret til.
Ulemper: Flere tabeller skal joines for at udføre basale operationer (CRUD).

71
Q

Hvordan mappes en generalisering fra domænemodellen til den relationelle model med fremgangsmåden “pull-down”? Hvad er ulemperne ved fremgangsmåden?

A

Alle subklasser får hver sin relation. Der laves ikke en relation for superklassen. I stedet trækkes superklassens attributter ned i hver af subrelationerne.
Ulempe: duplikering af superklassen attributter. Gør det mere komplekst at vedligeholde eller foretage ændringer i superklassens attributter.

72
Q

Hvordan mappes en generalisering fra domænemodellen til den relationelle model med fremgangsmåden “pull-up”? Hvad er ulemperne ved fremgangsmåden?

A

Der laves en relation for superklassen men ingen for subklasserne. I stedet trækkes alle subklassernes attributter op i relationen for superklassen.
Ulempe: relationen vil indeholde mange NULL værdier.

73
Q

Hvad er en method stub? Og hvad bruges den til i relation til systemudvikling?

A

En stub er en midlertidig erstatning af underliggende metoder. Bruges til at udføre unit test hvor en enkelt metode isoleres ved at indsætte stubs på metodens interne og eksterne metodekald.

74
Q

Hvad kendetegner åben 3-lags arkitektur?

A

Opdeling i tre lag; ui-, controller- og modellag. I ui laget modtages og videregives information til og fra brugeren. I ctr laget foregår logikken. I modellaget holdes der på data. Når arkitekturen er åben kan ui laget læse på modellaget.

75
Q

Hvad er Singleton for et type mønster?

A

GoF (Gang of Four).

76
Q

Hvad er GRASP forkortelse for?

A

General Responsibility Assignment Software Patterns

77
Q

Hvad er definitionen på et (design)mønster?

A

En løsning på et typisk (design)problem, som med mindre modifikationer kan bruges i mange sammenhænge.

78
Q

Hvorfor er det vigtigt at minimere antallet af NULL værdier i databasen?

A

Fordi det ikke er muligt at vide hvorfor en værdi er NULL (kender vi ikke værdien, eller eksisterer den slet ikke?). Desuden fylder NULL værdier unødvendigt.

79
Q

Hvorfor er det vigtigt at undgå multi-valued attributter i databasen?

A

Fordi det gør det enormt komplekst at fremsøge attributtens informationer.

80
Q

Hvorfor er det vigtigt at decompose en sammensat attribut i databasen?

A

Fordi det gør det muligt at tilgå eller ændre i hvert delelement.

81
Q

Hvad siger GRASP mønstre generelt noget om?

A

Hvordan ansvar skal tildeles objekter.

82
Q

Hvilken type mønster er ‘Creator mønstret´? Hvilket problem løser det, og hvordan?

A

Type: GRASP mønster.
Problem: Hvilket objekt B skal have ansvaret for at oprette nye forekomster A af en klasse?
Løsning: Objekt B vælges så
- Objekt B indeholder eller aggregerer A.
- Objekt B har de initierende data for A.

83
Q

Hvilken type mønster er ‘Information expert mønstret´? Hvilket problem løser det, og hvordan?

A

Type: GRASP mønster.
Problem: Hvem skal have ansvaret for at udføre en handling?
Løsning: Ansvaret gives til den der har informationen.

84
Q

Hvilken type mønster er ‘Controller mønstret´? Hvilket problem løser det, og hvordan?

A

Type: GRASP mønster.
Problem: Hvilket objekt skal modtage en systemhændelse fra grænsefladen?
Løsning: Ansvaret gives til den klasse der repræsenterer use case funktionaliteten.

85
Q

Hvilken type mønster er ‘High cohesion mønstret´? Hvilket problem løser det, og hvordan?

A

Type: GRASP mønster.
Problem: Hvordan holdes kompleksiteten lav?
Løsning: Ansvar tildeles så cohesion forbliver høj.

86
Q

Hvad betyder High cohesion? Og hvad er fordelene ved det?

A

Er et udtryk for høj samhørighed i en klasse. Betyder med andre ord, at en klasses ansvar er tæt sammenhængende, og kan beskrives kort og klar.
Fordele:
- Let forståelig
- Lettere vedligeholdelse
- Fremmer genbrug
- Betyder ofte low coupling - men ikke altid

87
Q

Hvorfor er det vigtigt, ifølge GRASP, at have en controller for hver use case - frem for at have én samlet controller.

A

For at sikre high cohesion ved at hver controller har sit eget ansvar.

88
Q

Hvad betyder Low coupling? Og hvad er fordelene ved det?

A

Er et udtryk for lav afhængighed mellem systemets dele.
Fordele:
- Modvirker “vandrende fejl”
- Fremmer genbrug
- Fremmer forståelse af den enkelte klasse

89
Q

Forklar billedet ifht. principperne omkring high cohesion og low coupling.

A

Figurerne i kasserne repræsenterer et bestemt ansvarsområde. Når de fordeles i kasserne efter figurtype, sikres high cohesion. Stregerne imellem kasserne repræsenterer afhængigheden mellem dem. Med færre forbindelser sikres low coupling.

90
Q

Hvad bruges normalisering helt generelt til?

A

Til validering af database skemaets kvalitet.

91
Q

Hvad er de generelle guidelines for normalisering?

A
  1. Sikre at hver tabel har en klar betydning - altså at hver tabel kun indeholder relevante attributter.
  2. Reducering af redundans.
  3. Reducering af NULL værdier.
  4. Undgå spurious tupler ved join.
92
Q

Hvilket problem viser billedet? Og hvad er løsningen på problemet?

A

Der opnås spurious tupler ved join af to tabeller, hvilket betyder at join tabellen forårsager et brud på data integriteten ved visning af forkerte data. Løsningen er normalisering af databaseskemaet for at sikre kvaliteten.

93
Q

Hvor mange normalformer er vi bekendt med?

A

1, 2, 3, og Boyce-Codd normalformerne.

94
Q

Hvilke fire betingelser skal være opfyldt før et databaseskema er på 1. Normalform?

A
  1. Rækkefølge af kolonner og rækker er ligegyldig
  2. Hver tuple skal være unik
  3. Hver kolonne skal være atomisk (opnås ved at undgå multi-valued attributter og sammensatte attributter)
  4. Ingen gentagne grupper (der kan opstå gentagne grupper hvis en multi-valued attribut splittes op i samme tabel.)
95
Q

Hvilke to betingelser skal være opfyldt før et databaseskema er på 2. Normalform?

A
  1. Er på 1. normalform
  2. None keys skal være afhængige af alle primærnøglens attributter (sammensat PK) - med andre ord skal der være funktionel afhængighed (x –> y).
96
Q

Hvilke to betingelser skal være opfyldt før et databaseskema er på 3. Normalform?

A
  1. Er på 2. normalform
  2. Ingen transitive afhængigheder (x –> y –> z)
97
Q

Hvilke to betingelser skal være opfyldt før et databaseskema er på Boyce-Codd normalform?

A
  1. Er på 3. normalform
  2. For alle funktionelle afhængigheder skal determinanten (x i x –> y) være nøglen.
98
Q

Hvad betyder det når der udføres systemtest ud fra princippet om ækvivalente klasser?

A

Det betyder, at man tester før, på og efter nogle definerede grænser for valide og invalide data.

99
Q

Hvorfor er det relevant at definere steps for udførelsen af hver enkelt testcase (systemtest)?

A

Det gør det muligt at replikere udførelsen af alle testcases. Betyder desuden at de kan udføres af hvem som helst.

100
Q

Hvad er en surrogatnøgle i den relationelle database (surrogate key)?

A

Et unikt “pseudo” ID som bruges som primærnøgle hvis der ikke er en god naturlig primærnøgle til stede.

101
Q

Hvornår er det en god ide at bruge en surrogatnøgle frem for en naturlig nøgle som PK? Kom med et eksempel på en dårlig naturlig nøgle, og en god naturlig nøgle.

A

Når der ikke er en naturlig nøgle der er god som PK. (En primær nøgle må helst ikke have anden funktion end at agere primær nøgle. Desuden bør risikoen for at PK ændres være meget lille.)

Dårlig naturlig nøgle: telefonnummer.
God naturlig nøgle: CPR nummer