Softwarearchitectuur (B-KUL-H09B5B)

4 studiepuntenNederlands22 urenTweede semesterUitgesloten voor examencontract
Joosen Wouter |  Sion Laurens (plaatsvervanger)
POC Computerwetenschappen

De architectuur van software staat centraal in de complete ontwikkeling en in de volledige levenscyclus van een software toepassing of software systeem. Deze cursus vertrekt van de realiteit dat dergelijk systeem ontwikkeld wordt in een evoluerend kader: vertrekkend van bestaande en gerelateerde systemen, met het oog op gebruik in verschillende toepassingen, en ook op basis van componenten die door onafhankelijke partijen aangeleverd worden.

De studenten verwerven inzicht, ervaring en vaardigheden die belangrijk zijn bij de verwerking, de realisatie, de evaluatie en de uitbreiding van de architectuur van een software systeem. Hierbij wordt gestart van functionele en vooral niet-functionele vereisten die een belangrijke impact hebben op de software-architectuur, en basistechnieken om dergelijke vereisten te documenteren.

Deze cursus veronderstelt een goede kennis van de principes en de praktijk van het objectgericht programmeren en het objectgericht ontwerpen, en een basiskennis rond gedistribueerde systemen. De cursus sluit nauw aan bij cursussen waarin softwareontwerp aan bod komen, zoals “Ontwerp van softwaresystemen”, “Software-ontwerp” en “Objectgericht programmeren”. De student wordt verwacht vertrouwd te zijn met de Unified Modeling Language (UML), ontwerp- en GRASP patronen, essentiele concepten zoals coupling/cohesie, en abstractiemechanismes zoals (component) interfaces.

Dit opleidingsonderdeel is identiek aan de volgende opleidingsonderdelen:
H07Z9B : Software Architecture

Onderwijsleeractiviteiten

1.5 sp. Softwarearchitectuur (B-KUL-H09B5a)

1.5 studiepuntenNederlandsWerkvorm: Opdracht2 urenTweede semester
Joosen Wouter |  Sion Laurens (plaatsvervanger)
POC Computerwetenschappen

1. Analyse en modellering van de vereisten die een belangrijke impact hebben op architectuur (4h)

Dit gedeelte van de cursus richt zich op het analyseren, het identificeren, het uitwerken en beschrijven van niet-functionele vereisten die een significante impact hebben op de software architectuur, de zgn. “architecturally significant requirements (ASRs)”. Deze vereisten worden gedocumenteerd onder de vorm van kwaliteitsscenario’s (“quality attribute scenarios”).

 

2. Software-architectuur (12h)

Het interpreteren, analyseren en uitbreiden van de architectuur van een software system vereist een aantal specifieke methodes en technieken, bijvoorbeeld de kennis van attribuut-gedreven ontwerp (ADD, “Attribute Driven Design”), de interactie tussen architectuurdefinitie en vereistenanalyse, trade-off analyse, het toepassen van specifieke architecturale patronen, tactieken en strategieën die gericht zijn op specifieke categorieën van niet-functionele vereisten (bijvoorbeeld performantie, beschikbaarheid, aanpasbaarheid, beveiliging), enz.

2a. Basisconcepten: architectuur, architecturale stijlen, referentie-architecturen, enz.

2b. Software-ontwikkelingsprocessen waarin architectuur centraal staat.

2c. Architecturale patronen en taktieken.

2d. Methodologie voor de verwerking van niet-functionele vereisten, toegepast op architectuuruitbreiding

2e. Gevalstudie van een complexe applicatie

 

3. Evaluatie van software-architectuur (4h)

In een derde gedeelte wordt de evaluatie behandeld. Hierbij hoort een bespreking van metrieken, van ruim aanvaarde kwaliteitsprincipes, en van technieken en methodes (zoals bv. ATAM, “Architecture Trade-off Analysis Method”) om een grondige evaluatie uit te voeren.

  • De beschikbare presentaties van alle hoorcolleges
  • Een aantal hoofdstukken uit het boek "Software Architecture in Practice"
  • Een gedocumenteerde gevalstudie.

2.5 sp. Softwarearchitectuur: project (B-KUL-H09B6a)

2.5 studiepuntenNederlandsWerkvorm: Opdracht20 urenTweede semester
Joosen Wouter |  Sion Laurens (plaatsvervanger)
POC Computerwetenschappen

Het leerproces van deze cursus is gekoppeld aan de uitvoering van een uitgebreid project. Labosessies in de software engineering labo’s ondersteunen dit projectwerk. Er wordt voortdurend ondersteuning en terugkoppeling naar de studenten georganiseerd.

De uitvoering van het project gebeurt in twee stappen:

Een eerste fase heeft een eerder inleidend karakter en wordt slechts voor een beperkt deel gebruikt bij de bepaling van de score/resultaten van de student. De tweede fase vertegenwoordigt het grootste gedeelte van de evaluatie voor deze cursus.

Beide delen worden uitgewerkt in groepen van 3 studenten. Het resultaat moet mondeling verdedigd worden enkele weken na de voorgestelde deadlines.

Evaluatieactiviteiten

Evaluatie: Softwarearchitectuur (B-KUL-H29B5b)

Type : Partiële of permanente evaluatie met examen tijdens de examenperiode
Evaluatievorm : Mondeling, Paper/Werkstuk, Ontwerp/Product, Verslag, Presentatie, Self assessment/Peer assessment, Take-home


De evaluatie van deze cursus is gekoppeld aan een globaal project. Concreet verloopt de uitwerking van het project in meerdere stappen. Het project wordt uitgewerkt in groepen van drie studenten. Het tweede deel moet mondeling en in groep worden gepresenteerd; beide delen worden dan ook verdedigd, enkele weken na de voorgestelde einddatum.

Studenten die minder dan 10 halen in de juni-examenperiode moeten een werkje maken, namelijk een aanvulling bij of verbetering van het eerder geleverd project. Dit kan binnen het bestaande groepje gebeuren, of individueel. Deze uitbreiding en/of verbetering dient dan voor de september-examenperiode. Ook dit werk moet mondeling worden verdedigd, in groep of individueel.