Tentamens frågor från studenter Flashcards

1
Q

1) Beskriv skillnaden mellan en commodity feature och en differentiator feature?

A

Svar:
- En commodity är en bit funktionalitet som kunden förväntar sig ska finnas, medans en differentiator är funktionaliteten som avgör ifall kunden väljer din produkt över konkurrerande produkter.

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

2)
Vilket av följande uttalanden beskriver bäst skillnaden mellan kravbaserad utveckling och databaserad utveckling?

a) Kravbaserad utveckling syftar endast till dom viktigaste delarna i ett system medans databaserad utveckling används till hela systemet.

b) Databaserad utveckling måste alltid ta hänsyn till GDPR medans kravbaserad utveckling behöver aldrig det.

c) Databaserad utveckling använder sig av användardata för att förbättra produkten medans kravbaserad utveckling inte gör det.
d) Det finns ingen skillnad mellan kravbaserad utveckling och databaserad
utveckling.

A

Svar: C

c) Databaserad utveckling använder sig av användardata för att förbättra produkten medans kravbaserad utveckling inte gör det.

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

Nämn tre potentiella fallgropar för data-driven utveckling?
Ge utförliga svar med exempel

A

Svar: T.ex.
- För liten sample size. Det svårt eller omöjligt att få ut tillräckligt med data för att göra jämförelser. ex. En hem sida för försäljning av hjullastare har för få kunder som köper för att vi skall se skillnad på försäljning.

  • Dålig data (varför är den dålig)
  • Oviktig data (Varför oviktig )
  • Felaktig analys (Vad kan gå fel)
  • För kort livstid (Hur kort ät kort)??
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

4) Vad är digitalisering och varför sker det?

A

Digitalisering är processen att omvandla information, processer, produkter och tjänster till
digital form för användning med datorer och andra digitala enheter. Det innebär integration
av digital teknik i alla områden av en verksamhet, vilket fundamentalt förändrar hur den
fungerar och levererar värde till kunder.
Det sker därför att differentiering genom mekanik och elektronik blir allt svårare. Samt att för
att undvika “commoditization” behövs nya lösningar och tjänster. Digitalisering av produkter
och förändrade affärsmodeller kan leda till differentiering.

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

5) Rangordna dessa efter leveranscykel, från längst tid till kortast tid:
1. A/B tester
2. Produktgenerationer
3. Förstärkningsinlärning (Reinforcement learning)
4. DevOPS, DataOps och AI/MLOps
5. Årliga mjukvaruuppdateringar

A

Svar:
1. Produktgenerationer
2. Årliga mjukvaruuppdateringar
3. DevOPS, DataOps och AI/MLOps
4. A/B tester
5. Förstärkningsinlärning (Reinforcement learning)

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

6) Vilka av dessa egenskaper stämmer in på outcome/data driven utveckling?

a. Innovation
b. Värde hypotes (Value hypothesis)
c. Minimera prediktionsfel (Minimize prediction errors)
d. Konkurrenskraftiga paritets funktioner(Competitor parity features)
e. Många punkter i datamängd (Many points in data set)

A

a. Innovation
b. Värde hypotes (Value hypothesis)

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

11) Vad är commodity functionally?

A
  • De viktigaste funktionaliteterna (svaret)
    - De minst viktiga och nödvändiga funktionaliteterna
    - De dyraste funtionaliterna
    - De billigaste funktionaliteterna
    - Användare lockas av dessa funktionaliteter
  • Användare lockas inte av dessa funktionaliteter(svaret)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Fråga 12) Vad är Outcome driven? Ge exempel på ett företag, bolag som använder sig utav denna metod.

A

Det är att man inte jobbar mycket med att kraven, utan utvecklarna får i uppgift att uppnå ett viss resultat. Booking.com är ett exempel

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

15) Rangordna nedanstående punkter i rätt ordning utifrån DevOps fasen.
● Kod
● Integration
● Plan
● Operate
● Deploy
● Release
● Monitor
● Test

A

● Plan
● Kod
● Integration
● Test
● Release
● Deploy
● Operate
● Monitor

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

16) Beskriv skillnaden mellan test driven utveckling jämfört med vanlig testing.

A

I testdriven utveckling testar man före implementation.

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

17) Nämn två anledningar till varför ett företag skulle vilja uppdatera sin Legacy-applikation och
migrera den till ett moln av micro services.

A

Alternativ för rätta svar:
● Legacy-applikationer är väldigt svåra och kostsamma att underhålla och blir bara
dyrare med åren.
● Legacy-applikationer har svårare att möta kunders efterfrågan på funktionalitet.
● Legacy-kod är svår att sätta sig in i för nya utvecklare och de som skrivit den från
början har med största sannolikhet slutat/gått vidare till andra projekt.

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

18) Vad är legacysystem och vad är en utmaning i att jobba med dem?

A

Legacy system är tekniska system som utvecklats under en tidigare era och som
fortfarande används idag. De kan vara svåra och dyra att underhålla, uppgradera eller
integrera med moderna system och teknologier.

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

19) Vilka är de olika stegen från idé till release vid DevOps-utveckling?

A

Planering, Kodning, Testning, Integration, Leverans, Övervakning, Underhåll

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

20) I testdriven utveckling skriver man tester för en funktion innan man börja skriva
koden. Varför vill man köra testerna en gång innan man börjar skriva koden, även om
de ändå kommer misslyckas?

A

För att säkerställa att testerna man skrivit inte “råkar gå igenom”. Går dem igenom så behöver man skriva om sina tester.

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

21) Varför är det viktigt att använda versionshanteringssystem som Git när man utvecklar
programvara?

A

Versionshanteringssystemet Git hjälper till att spåra förändringar i koden, vilket
underlättar samarbete mellan flera utvecklare och möjliggör återställning av tidigare
versioner om något går fel. Det ger också ökad transparens och säkerhet i
utvecklingsprocessen.

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

22) Could Machine Learning (ML) evaluate the software engineering process (collecting req, data cleaning, deployment, etc.) completely? Discuss your answer from an ethical perspective and provide benefits and consequences.

A

ML could possibly make the process efficient by reducing e.g. time and/or
cost. For example, a scenario when requirements are gathered: They can be
classified by what type of requirement it is (is it functional, non-functional
etc.). This type of classification could really optimize the use of resources of
time. From the other side, if there came a special type of requirement that has
never been recognized before, it could lead to wrong classification of
requirement. Afterwards, it could continue to be misunderstood in the
development part in the best case. In the worst case lead to “bad will”. For
systems whose requirements shall be strictly correct because of e.g.
security/safety, then software engineering based on ML could be risky to use
if testing were also being performed by an AI based machine who came to a
point to have no decision. With wrong decisions, it could be harmful for
someone’s life. Who’s fault would that then be? That’s the question

17
Q

23) Vad är syftet med ett “Training set” i maskinlärning?

a) Att testa modellens noggrannhet.

b) Att justera modellens parametrar.

c) Att träna modellen att göra förutsägelser.

d) Att utvärdera modellens prestanda.

A

Svar: C.

Förklaring: Syftet med ett “Training set” i maskinlärning är att använda den datan för att i framtiden kunna göra noggranna förusägelser (“Predictions”) på ny data genom att hitta mönster i den givna datan.

18
Q

24) Räknas ett spamfiltreringssystem som artificell intellegens, maskininlärning eller varken av nämnda valen om systemet endast filltrerar bort genom att hitta en förutbestämd kombination av ord, som t.ex. “won”, “lottery”, “send” och “information”.

A

Det räknas som AI eftersom de fortfarande klassificerar e-postmeddelanden som spam och ham i ett regelbaserat system som skapas och underhålls reglerna av mänskliga experter. Reglerna kan ta hänsyn till faktorer som avsändarens adress, ämnesraden, innehållet i e-postmeddelandet och annan metadata.

Om systemet använder enklare regelbaserade filtreringsmetoder, såsom svarta listor och vitlistor, för att filtrera bort oönskade e-postmeddelanden, anses det inte vara AI.

Om systemet filtrerar bort genom att hitta jämföra likheten med en databas av mejl märkt som spam eller ham (typ 30 procent likhet resulterar mejlet filtreras bort). Då kan systemet lära sig själv nya trender i spammejl utan behov av reglering av människor. Som till exempel, när användare markerar mejl som spam, läggs till det i databasen.

19
Q

25) Placera de olika delarna ur utvecklingscykeln för maskininlärning i rätt ordning.

Skapa modeller

Träna och utvärdera

Ta fram dataset

Deployment

A

Ta fram dataset, Skapa modeller, Träna och utvärdera, Deployment

20
Q

26 a) Varför är det viktigt att använda en iterativ utvecklingscykel för maskininlärning?

A

Det tillåter utvecklarna att kontinuerligt förbättra modellerna och därigenom få fram det mest träffsäkra och pålitliga resultatet. Utvecklarna kan justera modellen baserat på den tidigare iterationens feedback från intressenter samt ny data.

21
Q

26 b)
Fråga: Vad är den största skillnaden mellan ’Supervised’ och ’Unsupervised’ maskininlärning? Ge ett
exempel på ’Supervised learning’.

A

Etiketter! Vid ’Supervised learning’ används förmärkta data som “tränar” modellen,
input/output av dessa data är känd. Vid ’Unsupervised learning’ försöker algoritmen hitta mönster i
en datamängd utan etiketter.
Exempel på övervakade data: klassificering av djur, träning av filter för skräppost, regressionsträning
för huspriser.

22
Q

Vilket påstående beskriver bäst hur Data Driven Development (DDD) kan bidra till förbättrad programvarukvalitet och användarupplevelse?

A) DDD fokuserar på snabb utveckling av programvara, vilket gör att kvaliteten kan
kompromissas.

B) DDD använder datainsamling för att stödja utvecklingsbeslut, men lämnar inget utrymme för kreativitet eller innovativa idéer.

C) DDD möjliggör kontinuerlig feedback från användare och insamlad data, vilket ger möjlighet till förbättringar av programvarukvalitet och användarupplevelse.

D) DDD är främst lämpat för mindre projekt med enklare krav på funktionalitet och användarupplevelse.

E) DDD begränsar utvecklarnas möjligheter att experimentera och prova nya idéer,
vilket kan minska innovationen i programvaran.

A

C) DDD möjliggör kontinuerlig feedback från användare och insamlad data, vilket ger möjlighet till förbättringar av programvarukvalitet och användarupplevelse.