Kursplan för Arkitektur och designmönster
Architecture and Design Patterns
Kursplan
- 7,5 högskolepoäng
- Kurskod: 2IS226
- Utbildningsnivå: Grundnivå
-
Huvudområde(n) och successiv fördjupning:
Programvaruteknik G1F
Förklaring av koder
Koden visar kursens utbildningsnivå och fördjupning i förhållande till andra kurser inom huvudområdet och examensfordringarna för generella examina:
Grundnivå
- G1N: har endast gymnasiala förkunskapskrav
- G1F: har mindre än 60 hp kurs/er på grundnivå som förkunskapskrav
- G1E: innehåller särskilt utformat examensarbete för högskoleexamen
- G2F: har minst 60 hp kurs/er på grundnivå som förkunskapskrav
- G2E: har minst 60 hp kurs/er på grundnivå som förkunskapskrav, innehåller examensarbete för kandidatexamen
- GXX: kursens fördjupning kan inte klassificeras
Avancerad nivå
- A1N: har endast kurs/er på grundnivå som förkunskapskrav
- A1F: har kurs/er på avancerad nivå som förkunskapskrav
- A1E: innehåller examensarbete för magisterexamen
- A2E: innehåller examensarbete för masterexamen
- AXX: kursens fördjupning kan inte klassificeras
- Betygsskala: Underkänd (U), godkänd (G), väl godkänd (VG)
- Inrättad: 2016-11-24
- Inrättad av: Institutionsstyrelsen
- Reviderad: 2019-01-24
- Reviderad av: Institutionsstyrelsen
- Gäller från: vecka 28, 2019
- Behörighet: 30 hp programvaruteknik eller motsvarande
- Ansvarig institution: Institutionen för informatik och media
Mål
Vad gäller kunskap och förståelse förväntas studenterna efter genomgången kurs kunna:
- beskriva arkitekturmodeller inklusive deras styrkor och svagheter,
- förklara grundläggande designprinciper inom objektorienterad programmering,
- redogöra för vanligt förekommande designmönster inklusive deras möjligheter och begränsningar,
- beskriva och exemplifiera hur designmönster är kopplade till designprinciper.
- översiktligt modellera IT-system utifrån arkitekturmodeller.
- använda designmönster för att skapa objektorienterade program som är enkla att underhålla och testa.
- värdera objektorienterade program med utgångspunkt från designprinciper.
Innehåll
Kursen fokuserar på objektorienterad design utifrån designprinciper och designmönster men behandlar även mjukvaruarkitektur. En designprincip inom mjukvaruutveckling beskriver på hög nivå hur objektorienterade program som är enkla att underhålla och testa kan utvecklas. Kursen behandlar designprinciper såsom Single responsibility principle, Open-closed principle och Dependency inversion principle som tillämpas genom vanligt förekommande designmönster såsom State, Observer och Factory Method. Designmönster är mer konkreta lösningar för hur vanligt förekommande problem inom objektorienterad programmering kan lösas, genom att föreslå hur klasser och deras relationer kan struktureras.
En arkitektur inom mjukvaruutveckling beskriver på en hög nivå hur olika delsystem är strukturerade och relaterade till varandra och fungerar som en ritning när system ska utvecklas, utökas eller omstruktureras. Kursen behandlar olika modeller för mjukvaruarkitektur såsom skiktad, händelsedriven och microservices inklusive deras styrkor och svagheter och när de är lämpliga att använda.
Undervisning
Kursen ges i form av föreläsningar och laborationer.
Examination
Kursen examineras genom inlämningsuppgifter och tentamen.
Om särskilda skäl finns får examinator göra undantag från det angivna examinationssättet och medge att en student examineras på annat sätt. Särskilda skäl kan t.ex. vara besked om särskilt pedagogiskt stöd från universitetets samordnare eller beslut om undantag som fattats av institutionens arbetsgrupp för studieärenden.
Litteratur
Litteraturlista
Gäller från: vecka 27, 2021
I bibliotekets söktjänst kan du se om en titel finns elektroniskt.
-
Freeman, Eric;
Freeman, Elisabeth
Head first design patterns : [your brain on design patterns]
1. ed.: Beijing: O'Reilly, 2004
Obligatorisk
-
Vernon, Vaughn.
Implementing domain-driven design
Upper Saddle River, NJ: Addison-Wesley, 2013
Obligatorisk
Software Architecture Patterns
https://www.oreilly.com/library/view/software-architecture-patterns/9781491971437/cover.html
Versioner av litteraturlistan
- Senaste litteraturlista (giltig från vecka 27, 2021)
- Äldre litteraturlista (giltig från vecka 28, 2019)