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

Software evolution omvat de activiteiten die volgen op de release van een softwaresysteem. Ook nadat een systeem is uitgebracht en in productie genomen, zal de software moeten worden aangepast aan veranderende omstandigheden, om zo aan de wensen van de gebruikers te blijven voldoen. Hierbij kan worden gedacht aan het oplossen van fouten, het uitbreiden van de functionaliteit, het achterhalen van de structuur van een systeem en het verbeteren van de programmacode.
In de cursus wordt ingegaan op de processen voor het onderhouden van een systeem (software maintenance) en de problemen die daarbij optreden. Verder worden er technieken aangeboden voor het analyseren en transformeren van programmacode. Met deze technieken wordt het makkelijker om bestaande systemen aan te passen. In twee practicumopdrachten gaat u zelf aan de slag met een voorbeeld van een techniek voor programma-analyse, namelijk het toepassen van software metrieken om zo de kwaliteit van het softwareproduct te bepalen.

Algemeen

Inhoud

In de cursus wordt ingegaan op de algemene theorie van de onderwerpen softwareonderhoud en -evolutie, softwarerenovatie, en programma-analyse en programmatransformatie. De nadruk hierbij ligt op het eerste onderwerp. Ook wordt er kort aandacht besteed aan mining van software repositories. De cursus heeft verder nog twee practicumopdrachten, en wordt afgesloten met open vragen over de cursusstof.

In de eerste practicumopdracht wordt u gevraagd om een aantal softwaremetrieken uit te werken, en deze te toetsen op bestaande systemen van verschillende omvang geschreven in Java. De gebruikte metrieken zijn afkomstig uit een kwaliteitsmodel en geven inzicht in de structuur en kwaliteit van een systeem. Uit de gevonden resultaten moeten vervolgens conclusies worden getrokken over de onderhoudbaarheid van de software en de risicogebieden.

In de tweede opdracht wordt één onderwerp op het gebied van programma-analyse verder uitgediept, namelijk het visualiseren van software. Het doel van deze opdracht is om door middel van een grafische voorstelling de uitkomsten van de metrieken uit de eerste opdracht inzichtelijk te maken. Hierbij wordt theorie aangereikt om visualisaties te evalueren, zoals Tufte's grafische ontwerpprincipes en Shneiderman's interactieprincipes.

De cursus maakt gebruik van de domeinspecifieke programmeertaal Rascal, bedoeld voor het analyseren en transformeren van programmacode. Rascal is in de basis een imperatieve programmeertaal, met een syntaxis die sterk lijkt op die van Java. Daarnaast heeft de taal een aantal constructies om gemakkelijk op metaniveau te kunnen programmeren: er is ondersteuning voor het analyseren van Eclipseprojecten en Javabestanden, er zijn speciale datastructuren voor het representeren en combineren van feiten, en er is een rijke bibliotheek voor het visualiseren van gegevens. Metaprogrammeren in Rascal volgt het EASY-paradigma: extraheer feiten, analyseer de gevonden feiten, en synthetiseer (combineer) deze tot een nieuw product.

Bij deze cursus wordt een reeks van vier bijeenkomsten georganiseerd: een startbijeenkomst en drie online bijeenkomsten via de virtuele klas. In deze bijeenkomsten wordt ingegaan op de algemene theorie bij de cursus, en zal er aandacht zijn voor de practicumopdrachten. Beide opdrachten worden na inlevering mondeling nabesproken met de docent. Afsluitend moet een serie open vragen worden beantwoord, waarmee de algemene theorie bij de cursus wordt getoetst.

Leerdoelen
Na het bestuderen van de cursus wordt verwacht dat u:
- een beargumenteerde keuze kunt maken uit verschillende technieken voor het analyseren van een programma in een bepaalde situatie;
- de kwaliteit en structuur van een bestaand softwaresysteem kunt analyseren door het extraheren van feiten, en hier conclusies uit kunt trekken;
- een afweging kunt maken tussen de voor- en nadelen van softwaremetrieken bij het bepalen van de productkwaliteit;
- softwaremetrieken kunt toe passen op een bestaand systeem;
- kunt beschrijven welke problemen er optreden bij het onderhouden en het uitbreiden van software, zowel bekeken vanuit het bedrijfskundige als het softwaretechnologische perspectief;
- de oorzaken van software-evolutie kunt herkennen en de uit software-evolutie voortvloeiende problemen kunt analyseren en oplossen;
- kunt uitleggen hoe een systeem meer flexibel gemaakt kan worden door het toepassen van programmatransformaties, of door middel van reverse engineering;
- gegevens over softwareartefacten kunt visualiseren, en deze visualisatie kunt evalueren aan de hand van Tufte's grafische ontwerpprincipes en Shneiderman's interactieprincipes.

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 maandag 20 november 2017. We adviseren om uiterlijk woensdag 1 november 2017 hiervoor 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 aanmelding na 1 november 2017 kunnen we dit niet garanderen. Aanmelden is mogelijk tot en met 19 november 2017.

Deze cursus start 20 november 2017. We adviseren u om u uiterlijk 1 november 2017 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

Kennis van reguliere en contextvrije grammatica's (op het niveau van de cursus Talen en ontleders), en ruime ervaring met objectgeoriënteerd programmeren.

Begeleiding

Begeleidingsvorm

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

Per kwartiel worden groepen studenten gevormd. De docent organiseert extra begeleidingsactiviteiten zoals online bijeenkomsten, tentamenvoorbereiding of nabespreking van het tentamen. Tijdens de bijeenkomsten gaat de docent inhoudelijke in op de lesstof en bereidt u zich voor op het tentamen. De bijeenkomsten vinden plaats in de avonduren of op zaterdag.
De geboden begeleidingsbijeenkomsten hebben een zeer grote toegevoegde waarde en een verhoogde slagingskans.

Begeleidingsbijeenkomsten


Nog te bepalen locatie
Kwartiel 2 - begeleider: dhr. dr. B. Heeren
1. do 23-11-2017 / 19.00-21.00 uur

Online bijeenkomsten
Kwartiel 2 - begeleider: dhr. dr. B. Heeren
1. do 07-12-2017 / 19.00-21.00 uur
2. do 04-01-2018 / 19.00-21.00 uur
3. do 18-01-2018 / 19.00-21.00 uur

Docenten

Dhr. dr. B. Heeren.

Bereikbaarheidsoverzicht

Bereikbaarheidsinformatie docenten/examinatoren

Tentamen

Tentamenvorm

Practicum en opdracht.

Tentamentoelichting

De cursus wordt getentamineerd via twee bijzondere verplichtingen: een practicumopdracht en een opdracht met open vragen over de verplichte cursusstof (waaronder artikelen).

Tentamendata

Practicum: volgens afspraak.
Opdracht: volgens afspraak.

Meer info

Meer informatie

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

Cursusmateriaal

Het schriftelijke cursusmateriaal bestaat uit een studiewijzer en een reader met artikelen. Al het overige materiaal, zoals de dia's bij de bijeenkomsten, gebruikte artikelen, software en practicumopdrachten, is digitaal beschikbaar via de digitale leeromgeving.

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.