Skriv ut som pdf om du vill ha en pdf! Om du vill ha en snyggare utskrift, klicka bort webbläsarens automatiskt tillagda sidhuvud och sidfot.

Blekinge Tekniska Högskola
Institutionen för programvaruteknik

Revision: 2
Dnr: BTH-4.1.14-0217-2025


Kursplan

Programvaruarkitektur

Software Architecture

6 högskolepoäng (6 credits)

Kurskod: PA1483
Huvudområde: Programvaruteknik, Teknik
Utbildningsområde: Tekniska området
Utbildningsnivå: Grundnivå
Fördjupning: G1F - Grundnivå, har mindre än 60 hp kurs/er på grundnivå som förkunskapskrav

Undervisningsspråk: Engelska
Gäller från: 2025-03-11
Fastställd: 2025-03-11

1. Beslut

Denna kurs är inrättad av dekan 2023-04-27. Kursplanen är fastställd av prefekten vid institutionen för programvaruteknik 2025-03-11 och gäller från 2025-03-11.

2. Förkunskapskrav

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.

3. Syfte och innehåll

3.1 Syfte

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.

3.2 Innehåll

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

4. Lärandemål

Följande lärandemål examineras i kursen:

4.1. Kunskap och förståelse

Efter genomförd kurs ska studenten kunna:

  • 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.

4.2. Färdighet och förmåga

Efter genomförd kurs ska studenten kunna:

  • 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.

4.3. Värderingsförmåga och förhållningssätt

Efter genomförd kurs ska studenten kunna:

  • 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.

5. Läraktiviteter

Kursen bygger på individuell läsning och forskning, workshops och föreläsningar, samt teamwork i inlämningsuppgifter.

Under föreläsningarna förväntas studenterna delta genom att ifrågasätta, diskutera, och reflektera över sina erfarenheter och förståelse av kursens literatur. Genom workshops erbjuds praktiska övningar för att träna arkitekturdesign och -utvärdering.

De två inlämningsuppgifterna består av verkliga, men storleksanpassade, övningar där studenterna förväntas tillämpa de koncept, metoder, och tekniker för att analysera en problembeskrivning och designa en arkitektur, samt att empiriskt utvärdera ett mjukvarusystems kvalitetsegenskaper.

6. Bedömning och examination

Examinationsmoment för kursen

Kod Benämning Omf. Betyg
2510 Inlämningsuppgift 1 3 hp AF
2520 Inlämningsuppgift 2 1,5 hp AF
2530 Salstentamen 1,5 hp AF

Kursen bedöms med betygen A Utmärkt, B Mycket bra, C Bra, D Tillfredställande, E Tillräckligt, FX Underkänd, något mer arbete krävs, F Underkänd.

Examinator har möjlighet att muntligen följa upp skriftliga examinationer.

Slutbetyget på kursen bestäms av det vägda medeltalet av betygen på de tre examinationsmomenten. Kursbetyget sätts när alla examinationsmoment är godkända.

I kurstillfällets information inför kursstart framgår i vilka examinationsmoment som kursens lärandemål examineras samt gällande bedömningsgrunder.

Examinator kan, efter samråd med högskolans FUNKA-samordnare, fatta beslut om anpassad examinationsform för att en student med varaktig funktionsvariation ska ges en likvärdig examination jämfört med en student utan funktionsvariation.

7. Kursvärdering

Kursvärdering ska göras i enlighet med BTH:s beslut om frågeställning i kursvärderingar och beslut om process för hantering och uppföljning av kursvärderingar.

8. Begränsningar i examen

Kursen kan ingå i examen men inte tillsammans med annan kurs vars innehåll, helt eller delvis, överensstämmer med innehållet i denna kurs.

9. Kurslitteratur och övriga lärresurser

Software Architecture in Practice, 4th Edition (2021)
Authors: L. Bass, P. Clements, R. Kazman
Addison-Wesley Professional

Fundamentals of Software Architecture. An Engineering Approach (2020)
Authors: M. Richards, N. Ford
O’Reilly Media, Inc.

10. Övrigt

Denna kurs ersätter kursen PA1454