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 Evolution
Informatica en informatiekunde | 5 EC | Voor dit product gelden ingangseisen
Code IM0202
Prijsindicatie € 324
Deze cursus heeft een vast startmoment. Kijk in het Jaarrooster wanneer de cursus van start gaat en wanneer de begeleiding is ingeroosterd.

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.
U kunt daarnaast pas aanmelden als u nog inschrijfrechten heeft voor de cursus Software Life Cycle (IM0303) of deze cursus met een certificaat afgesloten heeft of wanneer u zich voor deze cursus wilt gaan aanmelden. U wordt dan ook geacht om de cursussen System Verification and Testing (IM0402) én SE Graduation Assignment Preparation (IM0502) te bestuderen.

Aanmelden

Aanmelden is alleen mogelijk voor studenten die formeel zijn toegelaten tot de masteropleiding.

Toelichting aanmelden

Deze cursus start 18 november 2019. We adviseren om uiterlijk zondag 3 november 2019 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 3 november 2019 kunnen we dit niet garanderen. Aanmelden is mogelijk tot en met 17 november 2019.

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


Utrecht (Studiedag Informatica)
Kwartiel 2 - begeleider: dhr. dr. B. Heeren
za 23-11-2019 / ntb

Online bijeenkomsten
Kwartiel 2 - begeleider: dhr. dr. B. Heeren
1. di 03-12-2019 / 19.00-21.00 uur
2. do 02-01-2020 / 19.00-21.00 uur
3. do 16-01-2020 / 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 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.