Deze website gebruikt cookies (en daarmee vergelijkbare technieken) om het bezoek voor u nog makkelijker en persoonlijker te maken. Met deze cookies kunnen wij en derde partijen uw internetgedrag binnen en buiten onze website volgen en verzamelen.
Hiermee kunnen wij en derde partijen advertenties aanpassen aan uw interesses en kunt u informatie delen via social media.
Klik op 'Ik ga akkoord' om cookies te accepteren en direct door te gaan naar de website of klik op om uw voorkeuren voor cookies te wijzigen. Bekijk onze privacyverklaring voor meer informatie.
$altText
Software Architecture
Informatica en informatiekunde | 7,5 studiepunten (EC) | Voor dit product gelden ingangseisen
Code IM0203
Prijsindicatie € 486
Deze cursus heeft een vast startmoment. Kijk in het Jaarrooster wanneer de cursus van start gaat en wanneer de begeleiding is ingeroosterd.

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. 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, cloud computing, service-oriented architectures, 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 samen te werken in teams van twee en alle genomen ontwerpbeslissingen zo goed mogelijk te beargumenteren. De eindopdracht bepaalt het eindcijfer voor driekwart deel. U 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 het bestuderen van deze cursus wordt verwacht dat u:
- in staat bent om de stakeholders voor een te ontwerpen systeem te onderscheiden en te beschrijven;
- in staat bent om de concerns van de stakeholders vanuit hun gezichtspunt kunt beschrijven;
- vanuit de concerns requirements kunt opstellen, waarbij u een oplossing bedenkt voor conflicterende concerns;
- gebruik kunt maken van architectural patterns en styles om een systeem te ontwerpen dat aan de requirements beantwoordt;
- voor- en nadelen van ontwerpbeslissingen kunt beargumenteren;
- een architectuurdocument kunt schrijven dat te begrijpen is voor alle stakeholders;
- een gegeven architectuur kunt analyseren en evalueren;
- kunt aangeven welke problemen er kunnen optreden bij het samenvoegen van componenten in een groter software-systeem, en oplossingen kunnen aandragen;
- concrete kennis heeft van: 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.

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 10 februari 2020. We adviseren om uiterlijk zondag 26 januari 2020 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 26 januari 2020 kunnen we dit niet garanderen. Aanmelden is mogelijk tot en met 9 februari 2020.

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 introductiebijeenkomst en éé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. F. Aivaloglou
1. di 11-02-2020 / 19.00-20.30 uur
2. di 10-03-2020 / 19.00-20.30 uur

Docenten

Mw. dr. ir. F. Aivaloglou, dhr. dr. G. Alpar en mw. dr. ir. S. Stuurman.

Bereikbaarheidsoverzicht

Bereikbaarheidsinformatie docenten/examinatoren

Tentamen

Tentamenvorm

Opdracht.

Tentamendata

Volgens afspraak.

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 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.