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: 3
Dnr: BTH-4.1.14-0439-2024


Kursplan

Introduktion till Programvarudesign och Arkitektur

Introduction to Software Design and Architecture

5 högskolepoäng (5 credits)

Kurskod: PA1460
Huvudområde: Programvaruteknik, Datavetenskap
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: Undervisningen ges i normalfallet på svenska, men undervisning på engelska kan förekomma
Gäller från: 2024-05-02
Fastställd: 2024-05-02

1. Beslut

Denna kurs är inrättad av dekan 2017-10-20. Kursplanen är fastställd av prefekten vid institutionen för programvaruteknik 2024-05-02 och gäller från 2024-05-02.

2. Förkunskapskrav

För tillträde till kursen krävs att den studerande har avklarat programmering, motsvarande 7,5 högskolepoäng.

3. Syfte och innehåll

3.1 Syfte

Arkitekturen och designen av ett mjukvarusystem påverkar i hög grad kvaliteten på systemet och kostnaden för utvecklingen. Utgående från grundläggande objektorienterade begrepp och designprinciper analyseras och modelleras ett systems struktur och beteende med hjälp av modelleringsspråket UML (Unified Modelling Language) i en strukturerad arbetsmetodik, Unified Process. Arbetsmetodiken utgår från en beskrivning av kundkrav och bygger en spårbar kedja via olika UML-modeller hela vägen fram till implementation och testning. Den strukturerade arbetsmetodiken och modelleringsspråket UML ger ett stöd till designarbetet, men för att skapa en hållbar programvarudesign krävs också en förståelse för grundläggande designprinciper och designmönster. Designmönster är generella lösningsförslag på vanligt förekommande problem, och som 
mjukvaruutvecklare förväntas man känna till och kunna anpassa dessa generella lösningar till de konkreta utmaningar man försöker lösa. Grundläggande designprinciper beskriver hur man fördelar olika typer av ansvar mellan klasser för att få löst kopplad och lättunderhållen programvarukod. I takt med att system växer måste man också ägna uppmärksamhet åt dess arkitektur, dvs. dess övergripande struktur av delsystem och komponenter, ur såväl ett konstruktionsperspektiv som ett runtime-perspektiv. Analogt med designmönster finns det arkitekturmönster som underlättar skapandet och underhållet av större system med olika önskade kvalitetsegenskaper.

3.2 Innehåll

Kursen omfattar följande:
• Grundläggande begrepp inom objektorienterad modellering
• Introduktion till modelleringsspråket UML
• Introduktion till arbetsmetodiken Unified Process
• Grundläggande designprinciper, t.ex. låg koppling, hög sammanhållning, inkapsling, och polymorfism
• Introduktion till, och användning av Designmönster
• Testning, i synnerhet ur mjukvarudesignprocess-perspektivet
• Introduktion till mjukvaruarkutektur
• Introduktion till mjukvaruarkutekturstilar

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:

  • visa förståelse för grundläggande principer i objektorienterad programvaruutveckling
  • visa förståelse för UML som modelleringsspråk
  • visa kunskap om grundläggande designprinciper
  • visa kunskap om grundläggande designmönster
  • visa kunskap om grundläggande mjukvaruarkitekturstilar
  • visa förståelse för hur designarbete skapar förutsättningar för testning av mjukvarusystem.

4.2. Färdighet och förmåga

Efter genomförd kurs ska studenten kunna:

  • uttrycka strukturen och beteendet hos ett system i termer av objektorienterade koncept
  • korrekt använda UML för att uttrycka struktur och beteende hos ett system
  • tillämpa grundläggande designprinciper för en objektorienterad design
  • tillämpa grundläggande designmönster i en objektorienterad design
  • tillämpa grundläggande arkitekturstilar för ett mjukvarusystem
  • resonera om de kvalitetsegenskaper ett system med en viss arkitekturstil har eller bör ha
  • resonera om och skapa en grundläggande testplan för ett objektorienterat system.

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

Efter genomförd kurs ska studenten kunna:

  • analysera källkod för eventuella förbättringar
  • analysera och kritiskt diskutera en design för eventuella förbättringar.

5. Läraktiviteter

Undervisningen består av föreläsningar och laborationer. Föreläsningarna behandlar centrala begrepp, tekniker och metoder inom objektorienterad design. Laborationerna syftar till att ge förståelse för hur begrepp, metoder och tekniker kan tillämpas i praktiken.

6. Bedömning och examination

Examinationsmoment för kursen

Kod Benämning Omf. Betyg
1905 Saltentamen 1,0 hp AF
1915 Laboration 4,0 hp AF

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

Betyget på Salstentamen bestämmer kursens slutbetyg vilket utfärdas först när samtliga examinationsmoment godkänts. Slutbetyget på kursen kan höjas om betyget på laborationsserien är A eller B.
Examinator har möjlighet att muntligen följa upp skriftliga examinationer.

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

Huvudbok:
- C. Larman, /Applying UML and Patterns/, Prentice Hall, 3rd Edition.

Referenslitteratur:
- Gamma, Helm, Johnson, Vlissides, /Design Patterns, Elements of Reusable Object-Oriented Software/, Addison-Wesley Professional.
- L. Bass, R. Kazman, P. Clements, /Software Architecture in Practice/, Addison-Wesley, 2012.