eksamensoppgaver Flashcards

1
Q

Hvorfor er konfigurasjonsstyring viktig?

A

Konfigurasjonsstyring er viktig fordi:

  • Endringer og bygging av programvare og system må håndteres på korrekt, sporbar, og oversiktig vis.
  • Når flere utviklere jobber med de samme komponentene til et system er det viktig å koordinere arbeid og endringer, dette for å holde oversikt over versjoner og systemets utvikling.
  • Det gjør refaktorering og restrukturering enklere, noe som er spesielt viktig i smidige utviklingsprosesser der opprettelse av god systemstruktur kan være utfordrende.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Hva er distribuert versjonshåndtering?

A

Versjonshåndtering innebærer å håndtere og dokumentere ulike versjoner i ett system. En versjon er en utgave av en programvarekomponent, der flere utgaver av samme komponent utgjør en codeline. En baseline er ulike versjoner av forskjellige programvarekomponenter.

Distribuert versjonhåndtering går dermed ut på at utviklere laster ned en kopi av repo til sitt arbeidsområdet for så å arbeide videre med hele systemet der. Slik kan endringer testes lokalt, før man dytter endringene tilbake til felles repo, hvor alle endringer sjekkes opp mot hverandre. Git/GitHub er et eksempel på et verktøy for distribuert versjonhåndtering.

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

Nevn så mange smidige prinsipper som du klarer.

A

Smidige prinsipper

  1. Vår høyeste prioritet er å tilfredsstille kunden gjennom tidlige og kontinuerlige leveranser av programvare som har verdi.
  2. Ønsk endringer i krav velkommen, selv sent i utviklingen. Smidige prosesser bruker endringer til å skape konkurransefortrinn for kunden.
  3. Lever fungerende programvare hyppig, med et par ukers til et par måneders mellomrom. Jo oftere, desto bedre.
  4. Forretningssiden og utviklerne må arbeide sammen daglig gjennom hele prosjektet.
  5. Bygg prosjektet rundt motiverte personer. Gi dem miljøet og støtten de trenger, og stol på at de får jobben gjort.
  6. Den mest effektive måten å formidle informasjon inn til og innad i et utviklingsteam, er å snakke ansikt til ansikt.
  7. Fungerende programvare er det primære målet på fremdrift.
  8. Smidige metoder fremmer bærekraftig programvareutvikling. Sponsorene, utviklerne og brukerne bør kunne opprettholde et jevnt temp hele tiden.
  9. Kontinuerlig fokus på fremragende teknisk kvalitet og godt design fremmer smidighet.
  10. Enkelhet er essensielt.
  11. De beste arkitekturer, krav og design vokser frem fra selvstyrte team.
  12. Med jevne mellomrom reflekter teamet over hvordan hvordan det kan bli mer effektivt og så justerer det adferden sin deretter.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Hva er generalisering i UML-modellering? Hva er nytten av generalisering i programmering? Gi gjerne eksempler.

A

Generalisering kan lett forklares ved hjelp av et enkelt eksempel.
klasse 1 –> person
klasse 2 –> student
klasse 3 –> professor

En student er alltid en person, og en professor er også alltid en person. Siden dette er tilfelle kan vi lagre felles egenskaper (som navn, personnummer, tlf nummer) i klassen person. Mens andre egenskaper som studentnr eller ansattnr må lagres i subklassene. Det er dette som kalles arv i programmering. Person klassen er en superklasse og student og professor er subklasser av denne. Med generalisering når vi programmerer, sparer vi tid, samtidig som alt blir mye mer ryddig. Det åpner også for andre muligheter, uten å bli for tekniske.

Når vi f.eks skal da tegne et klassediagram i UML kan vi lage en slik superklasse, som subklassene peker på med piler. Dette indikerer da at subklassene arver egenskapene til superklassen, som i dette tilfellet er Person-klassen.

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