6 ECTS credits
160 u studietijd

Aanbieding 2 met studiegidsnummer 4012675FNR voor alle studenten in het 1e semester met een gespecialiseerd master niveau.

Semester
1e semester
Inschrijving onder examencontract
Niet mogelijk
Beoordelingsvoet
Beoordeling (0 tot 20)
2e zittijd mogelijk
Ja
Inschrijvingsvereisten
Men mag zich niet inschrijven voor zowel "Software architecturen" als "Software Architectures".
Onderwijstaal
Nederlands
Faculteit
Faculteit Wetenschappen en Bio-ingenieurswetensch.
Verantwoordelijke vakgroep
Computerwetenschappen
Onderwijsteam
Coen De Roover (titularis)
Onderdelen en contacturen
26 contacturen Hoorcollege
26 contacturen Werkcolleges, practica en oefeningen
120 contacturen Zelfstudie en externe werkvormen
Inhoud
Deze cursus behandelt technieken om de architectuur van grootschalige softwaresystemen en integraties daarvan te ontwerpen, documenteren, implementeren, en evalueren.  
We starten met de rol van architectuur in het ontwikkelingsproces, en de verschillende perspectieven van waaruit en de belanghebbenden waarvoor deze gedefinieerd dient te worden.
 
Per perspectief bespreken we architecturale patronen die zich bewezen hebben in succesvolle softwaresystemen.
Waar mogelijk worden deze patronen geïllustreerd aan de hand van architecturale frameworks in de programmeertaal Scala, waarvan aan het begin van de cursus de relevante eigenschappen doorgenomen worden.
 
Vervolgens verschuiven we de aandacht van architecturale patronen in het algemeen, naar ontwerp-patronen voor micro-service architecturen in het bijzonder. Deze helpen belangrijke kwaliteitsattributen realiseren zoals foutentolerantie en schaalbaarheid.
 
Inhoud:
 
1. Architecture Definition
  • Software Architecture: Stakeholders, Lifecycle, Types of Architectural Structures
  • Architectural Views: Views for Module Structures, Views for Component-and-Connector Structures, Views for Allocation Structures 
  • Modular Programming in Object-Oriented Languages: Self Types, Abstract Type Members, Family Polymorphism Problem, Expression Problem
2. Architectural Patterns
  • Module Patterns: Layered, Dependency Injection, Hexagonal, Aspect-Oriented
  • Component-and-Connector Patterns: Pipe-and-Filter, Publish-Subscribe, Model-View-Controller, Client-Server, Shared-Data, Peer-to-Peer, Broker, Service-Oriented
  • Allocation Patterns: Multi-tier
3. Design Patterns for Micro-Service Architectures
  • Message Flow Patterns: Request-Response, Ask, Forward Flow, Aggregator, Business Handshake
  • State and Persistence Patterns: Domain Object, Event-Sourcing, Event Stream
  • Scalability Patterns: Pull-based Workers, Managed Queue, Drop
  • Fault Tolerance and Recovery Patterns: Error Kernel, Heartbeat, Circuit Breaker
 
Studiemateriaal
Handboek (Aanbevolen) : Software architecture in Practice, Len Bass, Paul Clements, Rick Kazman, Third Edition, Addison Wesley, 9780321815736, 2013
Handboek (Aanbevolen) : Reactive Design Patterns, Roland Kuhn, Brian Hanafee, Jamie Allen, Manning, 9781617291807, 2017
Digitaal cursusmateriaal (Aanbevolen) : Cursusmateriaal beschikbaar op leerplatform
Bijkomende info

   

 

Leerresultaten

Algemene competenties

De doelstellingen van dit opleidingsonderdeel zijn:
  • Studenten verwerven kennis over het ontwerpen, documenteren, implementeren, en evalueren van de architectuur van grootschalige software-systemen en integraties daarvan
  • Studenten worden vaardig in het herkennen en toepassen van architecturale patronen bij het ontwerpen van de architectuur van een software-systeem
 
De hieraan gekoppelde leerresultaten zijn: 
 
m.b.t. het herinneren en begrijpen van kennis:
  • De student kan de rol van en de belanghebbenden bij de architectuur van een softwaresysteem in een ontwikkelingsproces beschrijven
  • De student kan, aan de hand van voorbeelddiagrammen, de views illustreren die gebruikt worden om architectuur te documenteren
  • De student kan de sterktes en zwaktes van de belangrijkste architecturale patronen bespreken
  • De student kan, aan de hand van voorbeeldcode, ontwerppatronen illustreren voor het realiseren van kwaliteitsattributen in een micro-service architectuur
m.b.t. het toepassen van kennis:
  • De student kan zelfstandig de besproken architecturale raamwerken instantiëren 
  • De student kan zelfstandig de besproken ontwerppatronen voor micro-service architecturen implementeren
m.b.t. analyseren:
  • De student kan variaties op en combinaties van bestaande views herkennen in de documentatie van een gegeven software-architectuur
  • De student kan variaties op en combinaties van bestaande patronen herkennen in een gegeven architecturale documentatie alsook in een gegeven implementatie
  • De student kan verbanden leggen tussen de besproken patronen en de besproken kwaliteitsattributen van software 
m.b.t evalueren: 
  • De student kan de toepasbaarheid van een gegeven architecturaal patroon bespreken voor de architectuur van een grootschalig software-systeem
  • De student kan de toepasbaarheid van een gegeven ontwerppatroon in de implementatie van een micro-service architecturu
  • De student kan de onderhoudbaarheid van een gegeven implementatie inschatten aan de hand van geschikte metrieken en visualisaties
  • De student kan softwaresystemen en raamwerken evalueren vanuit een architecturaal perspectief
m.b.t. creëren:
  • De student kan redelijke architecturale alternatieven genereren oor een software-systeem en ertussen kiezen
  • De student kan schriftelijk rapporteren over architecturale keuzes
 

Beoordelingsinformatie

De beoordeling bestaat uit volgende opdrachtcategorieën:
Examen Schriftelijk bepaalt 50% van het eindcijfer

WPO Praktijkopdracht bepaalt 50% van het eindcijfer

Binnen de categorie Examen Schriftelijk dient men volgende opdrachten af te werken:

  • Schriftelijk theorie examen met een wegingsfactor 1 en aldus 50% van het totale eindcijfer.

    Toelichting: Schriftelijk theorie examen

Binnen de categorie WPO Praktijkopdracht dient men volgende opdrachten af te werken:

  • Verplichte taken met een wegingsfactor 1 en aldus 50% van het totale eindcijfer.

    Toelichting: Verplichte taken voor het praktische deel

Aanvullende info mbt evaluatie
Studenten worden geëvalueerd op drie programmeertaken, en op een schriftelijk examen over de theorie.
De taken zijn verplicht en de deadlines zijn strikt.
Het niet indienen van een taak impliceert een afwezigheid voor deze cursus.
 
Studenten dienen een minimumscore van 7/20 in totaal voor de taken te halen, en een minimumscore van 7/20 voor het een schriftelijk examen.
Anders geldt de laagste score als eindresultaat voor deze cursus. 
 
Toegestane onvoldoende
Kijk in het aanvullend OER van je faculteit na of een toegestane onvoldoende mogelijk is voor dit opleidingsonderdeel.

Academische context

Deze aanbieding maakt deel uit van de volgende studieplannen:
Master in de ingenieurswetenschappen: toegepaste computerwetenschappen: Standaard traject
Master in de toegepaste informatica: Big Data technologie
Master in de ingenieurswetenschappen: computerwetenschappen: afstudeerrichting Artificiële Intelligentie
Master in de ingenieurswetenschappen: computerwetenschappen: afstudeerrichting Multimedia
Master in de ingenieurswetenschappen: computerwetenschappen: afstudeerrichting Software Languages and Software Engineering
Master in de ingenieurswetenschappen: computerwetenschappen: afstudeerrichting Data Management en Analytics
Educatieve master in de wetenschappen en technologie: computerwetenschappen (120 ECTS, Etterbeek)