Software Architecture
-
Informatica
-
IM0203
-
7,5 EC
-
Vanaf € 576
-
Voor dit product gelden ingangseisen
Inhoud
De cursus Software Architecture bestaat uit twee delen: een theoretisch en een praktisch gedeelte. Het theoretische gedeelte is onderverdeeld in twaalf leereenheden. De onderwerpen worden besproken aan de hand van het werkboek, een reader met artikelen, en een tekstboek. Er wordt een breed overzicht gegeven over wat softwarearchitectuur is, waarbij de nadruk ligt op modellen en technieken die bij het ontwerpen kunnen worden gebruikt. In het praktische gedeelte wordt jou gevraagd de theorie toe te passen en zelf een architectuur te ontwerpen voor een bestaand softwaresysteem.
Een softwarearchitectuur is een beschrijving op hoog niveau van de componenten waaruit een systeem is opgebouwd en hoe deze componenten onderling samenwerken. Het centrale thema van deze cursus bestaat uit het inventariseren van de belangen van de verschillende betrokken partijen (de stakeholders), op de eisen aan het systeem (de requirements) die daar uit kunnen worden afgeleid, en op het beschrijven en evalueren van een softwarearchitectuur. Verschillende partijen hebben dikwijls tegenstrijdige belangen, en deze zullen door de softwarearchitect zo goed mogelijk tegen elkaar moeten worden afgewogen. Het eenduidig formuleren en categoriseren van eisen gebeurt aan de hand van een kwaliteitsmodel. Verder worden er verschillende technieken behandeld om een architectuur te beschrijven, zoals het 4+1-model van Kruchten, de viewpoints van Rozanski en Woods, en de formele Architectural Description Languages (ADL). Aan de hand van scenario's en use cases kan een architectuur vervolgens worden geëvalueerd ten opzichte van de opgestelde requirements.
Deze cursus gaat ook in op de kenmerken van bedrijfsapplicaties, zoals software voor de boekhouding of voor het roosteren van taken. Deze applicaties hebben dikwijls een soortgelijke architectuur en deze kan worden hergebruikt. Ook wordt er besproken hoe deze bedrijfsapplicaties verder geïntegreerd kunnen worden binnen een bedrijf. Overige onderwerpen die aan bod komen zijn bijvoorbeeld de REST architectural style, cloud computing, service-oriented architectures, variability en software product lines.
In het praktische gedeelte wordt jou gevraagd de behandelde theorie toe te passen en een softwarearchitectuur te ontwerpen voor een bedrijf dat zelfrijdende auto's als service wil aanbieden. De ontworpen architectuur voor dit systeem moet voldoen aan de IEEE 42010 (de opvolger van IEEE 1471) standaard. Het is jouw taak om samen te werken in teams van twee en alle genomen ontwerpbeslissingen zo goed mogelijk te beargumenteren. De eindopdracht bepaalt het eindcijfer voor driekwart deel. Je zal ook de opdracht krijgen om twee discussievragen te behandelen in de vorm van een blog-entry. Deze twee blogs tellen mee voor een kwart van het eindcijfer.
Leerdoelen
Na afronding van deze cursus kun je:
- de stakeholders voor een te ontwerpen systeem onderscheiden en beschrijven,
- de concerns van de stakeholders vanuit hun gezichtspunt beschrijven,
- vanuit de concerns requirements opstellen, waarbij je een oplossing bedenkt voor conflicterende concerns,
- gebruikmaken van architectural patterns en styles om een systeem te ontwerpen dat aan de requirements beantwoordt,
- de voor- en nadelen van ontwerpbeslissingen beargumenteren,
- een architectuurdocument schrijven dat te begrijpen is voor alle stakeholders,
- een gegeven architectuur analyseren en evalueren,
- aangeven welke problemen er kunnen optreden bij het samenvoegen van componenten in een groter software-systeem, en oplossingen aandragen,
- de volgende begrippen uitleggen: standaardarchitecturen, kwaliteitsmodellen (ISO 25010), architectuurpatronen, architectuurbeschrijvingstalen en -modellen (IEEE 1471, UML en andere), een architectuur beoordelen, REST- en SOA-webservices, software product lines, variability and composition.
Ingangseisen
Aanmelden
Toelichting aanmelden
Bij deze cursus hoort online activerende begeleiding. Deze cursus start op vastgestelde momenten, en ook tijdens de bestudering van de cursus zijn er vaste inlevermomenten van opdrachten en feedback. Je studeert online samen met een groep medestudenten. Deze begeleiding is erop gericht je sneller, effectiever en met een beter begrip van de stof door de cursus te helpen. Je kunt vooraf aan de begeleidingsperiode in je eigen tempo de stof alvast doornemen; het materiaal wordt één kwartiel tevoren al uitgeleverd. Aansluitend aan de begeleidingsperiode is je eerste tentamenkans. Na de begeleidingsperiode heb je nog twee ingeroosterde tentamenkansen. Informatie over begeleiding en tentamen vind je op de respectievelijke tabbladen.
Voorkennis
Begeleidingsvorm
De begeleiding bestaat uit uitgebreide terugkoppeling op delen van het architectuurdocument waar je tijdens deze cursus aan werkt. Je wordt beoordeeld op het volledige document. De feedback die je krijgt op de delen geeft je een goed idee over de manier van beoordelen van het volledige document. Daarnaast is er één introductiebijeenkomst en zijn er twee online begeleidingsbijeenkomsten waarbij we ingaan op de opdrachten.
Je kunt de eindopdracht alleen doen wanneer je begeleiding hebt gekregen voor de eerste twee deelopdrachten. Het is, om voor deze cursus te slagen, dus noodzakelijk om de begeleiding te volgen.
Begeleidingsbijeenkomsten
Studiedag Informatica en Informatiekunde Utrecht, onder voorbehoud
Kwartiel 3 - begeleider: dhr.dr. A. Sai
1. vr 14-02-2025/ tijd wordt nader bekend gemaakt
Tijdig aanmelden via: ou.nl/inf-studiedag
Online-bijeekomsten
Kwartiel 3 - begeleider: dhr.dr. A. Sai
2. di 11-03-2025 / 19.00-20.30 uur
3. di 01-04-2025 / 19.00-20.30 uur
Docenten
Tentamenvorm
Tentamendata
Meer informatie
Cursusmateriaal
- een werkboek (Engelstalig);
- een reader met artikelen;
- het tekstboek Essential Software architecture, second edition, Ian Gorton.