Programvaruteknik (software engineering) Flashcards
Vilka tre saker kännetecknar agile development models?
Inkrementell och iterativ
Korta feedback-loopar
Kravanalys
Vad är design patterns?
Generella lösningar på återkommande problem.
Vad är syftet med ett use case diagram?
Att beskriva systemet från användarens synvinkel
Vad är syftet med ett klassdiagram?
Beskriva strukturen och relationer mellan olika typer av klasser.
Vilka är de fyra traditionella utvecklinsfaserna vid programvarututveckling?
Kravanalys(requirement analysis)
Design
Implementation
Testing
Vad är huvudsyftet med att dela upp programvara i moduler?
För att förenkla programvaruutveckling genom att en enskild modul är överblickbar och kan utvecklas
oberoende av andra moduler
Vilka tre egenskaper är önskvärda för moduler?
Hög sammanhållning (cohesion)
Låg koppling (coupling)
Information Hiding
Ge ett exempel på en agile development model
Scrum
Vad är skillnaden mellan glass box och black box testing?
Glass-box testning innebär att testaren känner till den interna strukturen av programvaran som skall testas och utnyttjar denna information vid konstruktion av testerna.
Detta till skillnad från black-box testning som inte bygger på kunskap om programvarans interna struktur.
Vad gör en product owner enligt Scrum?
Upprätthåller och prioriterar en lista med krav som kallas Product Backlog
Förklara begreppet Sprint
Korta iterationer 2-4v som ska resultera i något levererbart till kund
Vad kallas den roll som säkerställer att Scrum-ramverket följs?
Scrum master
Vad är Daily scrum?
Korta morgonmöten då varje projektdeltagare redogör deras progress genom att svara på 3st frågor
Vilka tre frågor ska projektdeltagare svara på varje morgon?
Vad har jag gjort sedan igår?
Vad ska jag åstakomma till imorgon?
Vad hindrar mig?
Hur går Sprint retrospective till och vad är syftet?
Alla projektdeltagare, Scrum master och produktägaren arbetar tillsammans för att diskutera och lära sig från tidigare sprint.
Det är ett förbättringsarbete.
Vad är ett Increment?
Ett Increment är de uppgifter/delmås i Product Backlog som har gjorts färdiga under en sprint och alla tidigare sprintar.
Increment is the sum of all the Product Backlog items completed during a Sprint and the value of the increments of all previous Sprints.
Vad är Sprint review?
En Sprint Review hålls i slutet av en sprint. Där presenteras det arbete som har utförts och utvärderar arbetet.
Därefter anpassas Product Backlog ifall det behövs.
Vad är syftet med Sprint planning?
Att ändringsönskemål gås igenom av produktägaren och gruppen bryter ner kraven och estimerar sedan alla aktiviteter. Slutligen vägs tidsestimaten mot tillgänglig tid och de ändringsönskemål, som gruppen åtar sig att införa under sprinten.
Vid Sprint planning gör man en plan inför den kommande sprinten.
Sprint Planning answers the following:
- What can be delivered in the Increment resulting from the upcoming Sprint?
- How will the work needed to deliver the Increment be achieved?
Ge ett exempel på:
One to One
One to Many
Many to Many
Giftemål; man kan bara var gift med en person enligt svensk lag
Mamma-Barn; Ett barn kan bara ha en biologisk mamma medans en mamma kan ha flera biologiska barn
Bros-Syster; En broder kan ha flera systrar/bröder och systern kan ha flera systrar/bröder
Förklara begreppet coupling och cohesion.
Coupling är ett mått på hur sammanflätade olika moduler är. Låg coupling är bra.
Cohesion är ett mått på hur väl innehållet i en modul hänger ihop. Hög sammanhållning(cohesion) är bra.
Vill man ha hög eller låg coupling respektive cohesion.
Låg koppling (coupling) och hög sammanhållning (cohesion)
Vad innebär prototyping?
Prototyping innebär att man utvecklar och utvärderar en prototyp (en ofärdig version av det som skall
utvecklas)
Beskriv några fördelar med att dela upp program i moduler:
Genom att dela upp program i moduler så blir modulerna mer läsbara, återanvändbara och pålitliga.
Vad programvarutekniken som bygger på att konstruera programvara genom att kombinera olika färdiga komponenter(istället för att utveckla enga komponenter)?
Component based software architecture.