Software Architecture

Software Architecture

  • Informatica
  • IM0203
  • 7,5 EC
  • Vanaf € 504
  • Voor dit product gelden ingangseisen
Deze cursus heeft een vast startmoment. Kijk in het Jaarrooster wanneer de cursus van start gaat en wanneer de begeleiding is ingeroosterd.

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. 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 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 13 februari 2023. We adviseren om uiterlijk zondag 29 januari 2023 hiervoor aan te melden zodat u tijdig het eventuele cursusmateriaal ontvangt, toegang heeft tot de leeromgeving en (indien van toepassing) ingedeeld kunt worden in een studiegroep. Bij aanmelding na 29 januari 2023 kunnen we dit niet garanderen. Aanmelden is mogelijk tot en met 12 februari 2023.

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

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

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 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
Kwartiel 3 - begeleider: dhr.dr.ir. A. Swidan
1. vr 17-02-2023 / tijd nader te bepalen
Online-bijeekomsten
2. di 14-03-2023 / 19.00-20.00 uur
3. di 04-04-2023 / 19.00-20.00 uur

Tentamenvorm

Opdracht.

Tentamendata

Volgens afspraak.

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 heb je toegang tot een groot aantal online diensten die je nodig hebt tijdens je studie. Deze zijn bereikbaar via MijnOU, je persoonlijke online werkplek bij de Open Universiteit. Hier heb je o.a. toegang tot onze digitale leeromgeving, tentamenroosters, en onze uitgebreide digitale bibliotheek.

Digitale leeromgeving

Als student kun je, na inschrijving, via de cursussite in de digitale leeromgeving naar de discussiegroepen. Hier kun je met medestudenten en begeleiders informatie uitwisselen en discussiëren over de leerstof.