Spørsmål til Eksamen Flashcards

1
Q

Hva er smidig utvikling?

A

Tverrfaglige team, product backlog og sprinter med time boxer.

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

Hva er suksesskriteriene for å utvikle programvare?

A

Lever til deadline, hold budsjettet, møt kundens forventninger og vedlikehold et velfungerende team

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

Hva slags risikotyper har man i sammenheng med utvikling av programvare?

A

Teknologi, Mennesker, Organisatorisk, Verktøy, Krav og Estimering

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

Hvordan oppnå effektive team?

A

En god blanding mennesker, organisere teamet slik at alle kan bidra på sitt beste, en god teamfølelse og kommunikasjon

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

Hva er kjerneideen i smidig utvikling?

A

Iterering gjennom product backlog

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

Hvordan gjøres Systemspesifikasjon i Scrum?

A

User stories

Som [ROLLE] ønsker jeg [FUNKSJON] for å oppnå [NYTTEVERDI]

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

Hva er de viktige prinsippene i LEAN?

A

JIT, Tilfredsstille kunden, Flyt, Visualisering, Unngå Waste og Støtte opp om endringer

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

Hva er JIT?

A

Ikke lag noe før det er etterspurt
Ikke ta endelige avgjørelser for tidlig
Unngå Waste

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

Hva er Waste?

A

Alt som krever ressurser men som ikke gir verdi for kunden

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

Hva er de viktigste årsakene til Waste?

A

Kompleksitet, Skalere opp i stedet for flyt og Teknisk gjeld

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

Hva er Teknisk gjeld?

A

“Shortcuts” som tas i utvikling og vedlikehold for å oppnå kortsiktige fordeler. Men som i det lange løp l føre til økte kostnader på vedlikehold og videreutvikling

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

Hva er hensikten med domenemodellen UML?

A

Forstå objektene og få en oversikt over terminologi

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

Hva er generalisering i UML?

A

Generalisering i UML er en måte å dele inn spesifikke og generelle attributter på gjenstander for å håndtere kompleksitet. Det gjøres når det er felles egenskaper i ulike klasser, for eksempel Person og Student

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

Hva er generalisering i Objektorienterte Språk?

A

Generalisering i objektorienterte språk er implementert ved arv (inheritance)

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

Hva er kjennetegn på god design?

A

Gjør det den skal
Lett å forstå
Enkel og elegant
Gjenbrukbar og Utvidbar

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

Hva er Ekspertprinsippet?

A

La det objektet som har kunnskapen (dataene) også behandle den

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

Hva er Skaperprinsippet?

A

Legg ansvar for å opprette et nytt objekt i klassen som må vite om det nye objektet

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

Hva er Kontrollobjektprinsippet?

A

To typer basert på størrelsen av systemet, handler om hvilken klasse som har ansvar for å behandle en systemhendelse/melding

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

Hva er kohesjon?

A

Kohesjon er et mål på hva slags og hvor fokusert ansvar et objekt har. Et objekt som har moderat ansvar innenfor et begrenset funksjonelt område har høy kohesjon.

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

Hva er kobling?

A

Kobling er et mål på hvor sterkt et objekt er knyttet il andre objekter. Et objekt med høy kobling er avhengig av mange andre objekter, noe som kan gjøre endring vanskelig

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

Hvilke typer angrep kan prosjektoppgaven være sårbar for?

A

DDoS angrep og hvis man legger til en bruker database; SQL injections

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

Hva er de vanligste sikkerhetskontrollene?

A

Input filtrering, Kryptering, Logging, Autentisering, Tilgangskontroll og Backup

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

Hva er versjonshåndtering?

A

Et verktøy som lar oss samarbeide med andre på ett eller flere prosjekter, håndtere og overvåke endringer

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

Hva er Git?

A

Et versjonshåndteringssystem (VCS) for å håndtere og administrere endringer av filer og eventuelt koordinere når flere samarbeider

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

Hva er et distribuert versjonshåndteringssystem?

A

Brukerne speiler hele repoet istedet for å stadig hente ut det nyeste filene (i.e. sentralisert). Med andre ord har alle brukere har en kopi av repoet. Feks. Git

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

Hva inngår i den fundamentale testprosessen?

A

Planlegge, Analysere og Designe, Implementere og Eksekvere, Evaluere og Test Closure activities

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

Hva er de forskjellige testnivåene?

A

Unit, Integration, System og Acceptance

28
Q

Hva er de forskjellige testtypene?

A

Funskjonell, Ikke-funksjonell, Relatert til endringer og Strukturelle

29
Q

Hva er de forskjellige reviewene i stigende formalitetsgrad?

A

Informal review, Walkthrough, Technical review og Inspection

30
Q

Hvorfor er testing viktig?

A

Redusere risikoen for problemer, Validasjon og Verifikasjon

31
Q

Hva er de 7 test prinsippene?

A
Testing shows presence of defects
Exhaustive testing is impossible
Early testing is important
Defect clustering
Pesticide paradox
Testing is context dependent
Absence-of-errors fallacy
32
Q

Hva er karakteristikker for god testing?

A

Nysgjerrighet, Profesjonell pessimisme, Detaljorientert, Konstruktiv og God kommunikasjon

33
Q

Hva er typiske feil funnet gjennom statisk testing?

A

Udefinerte & Ubrukte variabler, Brudd på Syntax, Deadlocks og Sikkerhetshull

34
Q

Hva er de viktigste teknikkene innen dynamisk testing?

A

Ekvivalens Partisjonering. Grenseverdi Analyse, Use case testing, State transition, Decision tables og Erfaringsbasert testing

35
Q

Hva er ansvaret til en testleder?

A

Koordinere, planlegge, estimere bruk av ressurser, introdusere metrics, velge hva som skal automatiseres, velge testverktøy og skrive sammendragsrapporter

36
Q

Hva slags testverktøy har vi?

A

Test management tools, Static testing tools, Test Specification tools, Execution and Logging tools, Performance and Monitoring tools

37
Q

Hva er en stakeholder i et prosjekt?

A

Et individ, gruppe eller organisasjon som kan påvirke eller bli påvirket av et valg, aktivitet eller utfall av prosjektet

38
Q

Hva er systemarkitektur?

A

Generell systemstruktur, ett sett med arkitektoniske designvalg og grunnmuren i systemet

39
Q

Hva er vedlikeholdbar kode?

A

Kan endres og testes

40
Q

Hva er MVP?

A

Et arkitektonisk mønster som deler opp i tre lag. Model, View og Presenter

41
Q

Hva gjør Model i MVP?

A

Administrerer hvordan dataene lagres og aksesseres

42
Q

Hva gjør View i MVP?

A

Viser frem dataene den får fra Presenteren som henter fra Modelen

43
Q

Hva gjør Presenter i MVP?

A

Mellommannen mellom Model og View, holder all presentasjon logikken. Har ansvar for å gi spørringer til Model og oppdatere Viewet

44
Q

Hvordan unngå teknisk gjeld?

A

Eneste måten er å ikke ta teknisk gjeld
Men i praksis lar det seg ikke gjøre, så sørg for å holde den synlig
Bruk Issue tracker, Backlog og verktøy for å iterativt sjekke kodebasen

45
Q

Hva er en kravspesifikasjon?

A

Et dokument som spesifiserer hva som skal lages
Inneholder Bruker- og systemkrav
Er ofte en del av kontrakten

46
Q

Hva er Brukerkrav?

A

Uttrykkes på naturlig språk / diagrammer
Viser ønsket funksjonalitet
Kunden skal kunne forstå disse kravene uten problemer

47
Q

Hva er Systemkrav?

A

Detaljert beskrivelse av systemfunksjoner
Definerer hva som skal implementeres
Basis for kontrakt

48
Q

Hvorfor er det nødvendig å lage en kravspesifikasjon?

A

Spesifiserer hva som skal lages og ytelsen
Basis for anbud, kontrakt, design og implementasjon
Skape felles forståelse av systemet
Forhindre eventuelle konflikter - Ulike forventninger

49
Q

Hva er hendelsesdrevet modellering?

A

Viser hvordan systemet responderer på eksterne / interne hendelser
Viser hvordan tilstander er knyttet til hendelser i et system
Spesielt nyttig for sanntidssystemer

50
Q

Hva er et tilstandsdiagram?

A

Representerer en tilstandsmaskin
Grafisk representasjon av tilstandene et system kan ha
Hvordan går vi fra én tilstand og til en annen?

51
Q

Hvorfor er det nyttig å lage tilstandsdiagrammer?

A

Viser hvilke tilstander systemet kan være i
Viser hvordan vi beveger oss mellom tilstander
Triggere og Forutsetninger
Viser ‘‘deadlocks’’ i systemet

52
Q

Hva er de 12 smidige prinsippene?

A
  1. Tilfredsstille kunden
  2. Ønsk kravendringer velkommen
  3. Levere hyppig
  4. Forretningssiden og utviklere må arbeide sammen
  5. Bruk motiverte personer
  6. Ansikt til ansikt
  7. Fungerende programvare er det primære målet på fremdrift/progresjon.
  8. Smidige metoder fremmer bærekraftig programvareutvikling
  9. Kontinuerlig fokus på fremragende teknisk kvalitet og solid design fremmer smidighet.
  10. Enkelhet er essensielt.
  11. De beste produktene vokser frem av selvstyrte team.
  12. Reflekter på forbedringspotensialet
53
Q

Hvilke oppgaver har en Scrum master?

A

Tilrettelegger for Scrum som utviklingsmetodikk
Gjennomføre daglige standups
Organisere øvrige møter
Opprettholder kundekontakt
Beskytte utviklere fra eksterne forstyrrelser/påvirkning

54
Q

Hva er retrospective?

A

Scrum-teamet samles for å diskutere siste sprint
Formål: Reflektere over hvordan utviklingen går / identifisere forbedringsområder
Hva bør man slutte med? (Stop doing)
Hva bør man fortsette med? (Continue doing)
Hva bør man starte med? (Start doing)

55
Q

Hva er kanban?

A

Kanban er et eksempel på en prosessmodell

56
Q

Hvem er ansvarlig for å prioritere produktkøen (product backlog)?

A

Produkteier

57
Q

Hva er verifisering i testing?

A

Verifisering i testing av programvare betyr at produktet bygges på riktig måte.

58
Q

Hva betyr “time boxed” innen smidig metodikk?

A

Fast bruk av tid.

59
Q

Hva er branching?

A

Oppretting av en ny codeline fra en versjon i en eksisterende codeline

60
Q

Hva er de fire mest populære smidige møtene?

A

Sprint planning
Daily Scrum
Sprint review
Retrospective

61
Q

Hva er Sprint planning møtet?

A

Starten på en ny sprint
Bestemmer hva som skal utvikles og leveres i løpet av sprinten
Oppgaver velges ut fra product backlog og legges inn i sprint backlog
Bestemmer hvordan det skal jobbes med de bestemte oppgavene

62
Q

Hva er Daily scrum?

A

Daglig kort møte, gjerne rundt 15 minutter
Hva har jeg gjort siden i går, hva skal jeg gjøre i dag, Evt. hva hindrer meg
Sjekke fremdrift mot sprint målene synkronisere aktiviteter og lage en plan for de neste 24 timene.

63
Q

Hva er Sprint Review?

A

For å konkludere arbeidet som er gjort i sprinten
Inspisere arbeidet som er utført som et resultat av sprinten
Gå over det generelle omfanget av fremgangen
Oppdaterer product backlog

64
Q

Hva er Retrospektiv?

A

Avsluttningen av sprinter hvor man går over sprinten som har vært, finner ut hva som fungerte og hva som kan forbedres i neste sprint.

65
Q

Hva er produkteiers ansvar?

A

Har ansvar for å maksimere verdien i produktet som utviklingsteamet lager.
Har ansvar for å prioritere og administrere product backlog

66
Q

Hva er et Use Case?

A

Beskriver hvordan systemet oppnår et mål av verdi for en aktør