Förklara vanligt förekommande arkitekturstilar, mönster, och taktiker (t.ex., lagrad arkitektur, klient-server arkitektur eller Mikroservicearkitektur), och vilka kvalitetsegenskaper de underlättar eller förhindrar.
Förklara sambanden mellan arkitekturbeslut, systemets kvalitetsegenskaper, utvecklingprocessen, resursbehov, och organisationen som utvecklar systemet.
2. Färdighet och förmåga
Designa arkitekturen för ett enklare mjukvarusystem och visa hur designen kan uppnå önskade kvalitetsattribut genom att välja lämpliga arkitekturmönster och taktiker.
3. Värderingsförmåga och förhållningssätt
Kritisk utvärdera en mjukvaruarkitektur utifrån dess dokumentation för att bedöma hur väl de önskade kvalitetsattributen uppnås.
Definiera och diskutera kvantitativa mått för att kritisk utvärdera vanligt förekommande kvalitetsattribut på ett existerande mjukvarusystem.
Kursinnehåll
Mjukvaruarkitektur är ett viktigt koncept inom modern mjukvaruutveckling som tjänar flera syften: planering av utvecklingsresurser, analys av problemdomänen ur flera perspektiv och abstraktion av stora mängder information för att få en meningsfull och användbar överblick av systemet. Arkitekturella beslut om hur mjukvarusystems konstruktion är dessutom avgörande för att planera och uppnå önskade systemegenskaper som till exempel modifierbarhet, prestanda, och säkerhet, vilket därigenom påverkar systemets framgångspotential. Studenter i kursen förväntas förvärva ingående kunskaper om mjukvaruarkitekturer och kvalitetsattribut och de effekter som arkitekturbeslut har på ett mjukvarusystems kvalitetsegenskaper. Studenterna kommer skaffa sig förståelse för hur man: i) dokumenterar ett systems mjukvaruarkitektur; ii) designar mjukvaruarkitekturer baserade på moderna metoder och idéer såsom t.ex. arkitekturstilar, arkitekturmönster, och "tactics" för att uppnå olika kvalitetsegenskaper, samtidigt som man beaktar systemets funktionella och icke-funktionella krav, närliggande system, tekniska begränsningar, och den utvecklande organisationen; samt iii) diskuterar ett systems kvalitetsattribut baserat på empiriska observationer och mått. Kursen består av följande områden: Kvalitetsattribut och deras roll i arkitekturdesign Design av mjukvaruarkitekturer med arkitektoniska stilar, mönster och taktiker Dokumentation av mjukvaruarkitekturer med hjälp av olika vyer Metoder för arkitekturdesign och -utvärdering Empirisk utvärdering av kvalitetsattribut på existerande mjukvarusystem
Förutsättningar
För tillträde till kursen krävs 5 hp avklarade kurser inom objektorienterad programmering och 5 hp avklarad kurs inom programvaruutveckling, introduktion inom programvaruteknik, eller från en projektkurs.