Software Architecture
Informatica en informatiekunde | 7,5 EC | Voor dit product gelden ingangseisen
Code IM0203
Deze cursus heeft een vast startmoment. Kijk in het Jaarrooster wanneer de begeleiding is ingeroosterd.

Softwarearchitectuur is een snelgroeiende discipline waarbinnen de toenemende complexiteit in softwaresystemen en de problemen die daaruit ontstaan worden aangepakt. Een softwarearchitectuur beschrijft de globale structuur van een softwaresysteem: de componenten en onderdelen van het systeem en de onderlinge verbanden tussen deze componenten. Het kiezen van de juiste architectuur is belangrijk, mede omdat de architectuur het startpunt is voor het ontwerpen, implementeren en hergebruiken van componenten. Een foute keuze in de beginfase kan later verstrekkende gevolgen hebben en het repareren is dan vaak erg kostbaar. Tijdens het ontwerpen van een architectuur zal de architect rekening moeten houden met aspecten zoals flexibiliteit, aanpasbaarheid en onderhoudbaarheid van het systeem om de verschillende belanghebbende partijen tevreden te houden. Deze partijen hebben vaak tegenstrijdige belangen. Het is de taak van de architect om hier zo goed mogelijk mee om te gaan.

Algemeen

Inhoud

De structuur van softwaresystemen is vaak uiterst complex: zo'n systeem kan bestaan uit miljoenen regels programmacode, opgebouwd uit meerdere componenten die op verschillende manieren moeten samenwerken en moeten opereren in een gedistribueerde setting. Stringente eisen die aan dit soort systemen worden opgelegd, zoals een korte time-to-market, een extreme betrouwbaarheid en robuustheid, of harde real-time constraints, vormen uitdagingen waar al van het begin af aan rekening mee moet worden gehouden. Softwarearchitectuur is het vakgebied dat zich bezighoudt met het beschrijven en analyseren van een systeem met behulp van modellen om tegemoet te komen aan het (dikwijls tegenstrijdige) eisenpakket dat is opgesteld op basis van de zorgen en belangen van de belanghebbende partijen. Een inschattingsfout in het initiële ontwerp kan verstrekkende en desastreuze gevolgen hebben voor het succes van een softwareproject.

De cursus Software architecture bestaat uit twee delen: een theoretisch en een praktisch gedeelte. Het theoretische gedeelte is onderverdeeld in twaalf leereenheden en wordt getoetst door middel van een tentamen. 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 u 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 software architectuur. 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, variability en software product lines.

In het praktische gedeelte wordt u gevraagd de behandelde theorie toe te passen en een softwarearchitectuur te ontwerpen voor een virtuele onderwijsomgeving. De ontworpen architectuur voor dit systeem moet voldoen aan de IEEE 1471 standaard. Het is uw taak om alle genomen ontwerpbeslissingen zo goed mogelijk te beargumenteren. De eindopdracht bepaalt het eindcijfer voor tweederde deel.

Leerdoelen
Na het bestuderen van deze cursus wordt verwacht dat u:
- de volgende academische vaardigheden beheerst: schrijven, evalueren, verschillende oplossingen met elkaar vergelijken, reflectie op oplossingen en eigen werk;
- de volgende cursusspecifieke vaardigheden beheerst: het modelleren en beschrijven van een architectuur door middel van geschreven documenten, het beschrijven van stakeholders en hun concerns op basis van documenten, het destilleren van requirements uit deze concerns en ze beargumenteerd prioriteren, het ontdekken van tegenstrijdige eisen (van verschillende stakeholders) en daar een oplossing voor vinden;
- concrete kennis heeft van: standaard architecturen, 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.

Aanmelden

Ingangseisen

Aanmelden is alleen mogelijk voor opleidingsstudenten die formeel zijn toegelaten tot de masteropleiding Computer Science of de masteropleiding Software Engineering.

Aanmelden

Aanmelden is alleen mogelijk voor studenten die formeel zijn toegelaten tot de masteropleiding.

Toelichting aanmelden

Deze cursus start 12 februari 2018. We adviseren u om u uiterlijk 22 januari 2018 aan te melden, zodat u tijdig het cursusmateriaal ontvangt, toegang heeft tot de leeromgeving en (indien van toepassing) ingedeeld kunt worden in een studiegroep.

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. U studeert online samen met een groep medestudenten. Deze begeleiding is erop gericht u sneller, effectiever en met een beter begrip van de stof door de cursus te helpen. U kunt vooraf aan de begeleidingsperiode in uw eigen tempo de stof alvast doornemen; het materiaal wordt één kwartiel tevoren al uitgeleverd. Aansluitend aan de begeleidingsperiode is uw eerste tentamenkans. Na de begeleidingsperiode heeft u nog twee ingeroosterde tentamenkansen. Informatie over begeleiding en tentamen vindt u op de respectievelijke tabbladen.

Voorkennis

Om deze cursus met succes te kunnen volgen heeft u kennis nodig op het gebied van (objectgeoriënteerd) ontwerpen, en moet u bekend zijn met modelleertechnieken als UML.

Begeleiding

Begeleidingsvorm

Deze cursus heeft een vast startmoment. Kijk in het Jaarrooster wanneer de cursus van start gaat en wanneer de begeleiding is ingeroosterd.

De begeleiding bestaat uit uitgebreide terugkoppeling op delen van het architectuurdocument waar u tijdens deze cursus aan werkt. U wordt beoordeeld op het volledige document. De feedback die u krijgt op de delen geeft u een goed idee over de manier van beoordelen van het volledige document. Daarnaast is er één online begeleidingsbijeenkomst waarbij we ingaan op de opdrachten.
U kunt de eindopdracht alleen doen wanneer u begeleiding heeft gekregen voor de eerste twee deelopdrachten. Het is, om voor deze cursus te slagen, dus noodzakelijk om de begeleiding te volgen.

Begeleidingsbijeenkomsten


Online bijeenkomsten
Kwartiel 3 - begeleider: mw. ir. S. Stuurman
1. do 15-03-2018 / 19.00-21.00 uur

Docenten

Mw. ir. S. Stuurman en dhr. dr. B. Heeren.

Bereikbaarheidsoverzicht

Bereikbaarheidsinformatie docenten/examinatoren

Tentamen

Tentamenvorm

Regulier schriftelijk tentamen bestaande uit open vragen (ov) en een opdracht.

Tentamendata

Schriftelijk tentamen: 07-02-2018, 23-04-2018, 10-07-2018.
Opdracht: volgens afspraak.

Tentamenhulpmiddelen

Een 'schoon' verklarend Nederlands woordenboek (op eigen risico)
Een schoon exemplaar van het gedrukte cursusmateriaal

Meer info

Meer informatie

Voor een inkijkje in de cursus, ga naar de snapshot.

Cursusmateriaal

De cursus bestaat uit:
- een werkboek (Engelstalig);
- een reader met artikelen;
- het tekstboek Essential Software architecture, second edition, Ian Gorton.

Mediagebruik

Als student heeft u toegang tot een groot aantal online diensten die u nodig heeft tijdens uw studie. Deze zijn bereikbaar via MijnOU, uw persoonlijke online werkplek bij de Open Universiteit, Hier heeft u o.a. toegang tot onze digitale leeromgeving, tentamenroosters, en onze uitgebreide digitale bibliotheek.

Digitale leeromgeving

Als medewerker of als student (na inschrijven) kunt u via de cursussite in de digitale leeromgeving naar de discussiegroepen. Hier kunt u met medestudenten en begeleider informatie uitwisselen en discussiëren over de leerstof.