Background for the header
To the home page of the University of Antwerp

 

 

Tijdschema | Studiemateriaal | Project | Examenregeling | 2e zittijd

LORE / Teaching / SReengMaster

Studenten: Master Informatica
Periode: 2de semester 2007-2008

Docent: Prof. S. Demeyer

Assistenten: Jan Vlegels, Bart Van Rompaey en Joris Van Geet

Theorie & Oefeningen
Tijdstip: Maandagnamiddag 14u00-18u
Locatie: G.025 (Computerklas in gebouw G)

Doelstelling en Inhoud

De student zal een waaier van principes, technieken en vaardigheden aanleren die vandaag de dag gebruikt worden tijdens het herstructureren (i.e. "reengineering") van bestaande softwaresystemen. De cursus heeft een erg praktische inslag en beslaat naast een minimum aan theorie (gedoceerd in de vorm van reengineering patterns) ook lab-sessies (uitproberen van allerhande werktuigen) en een project (waar een bestaand groot software systeem wordt geherstructureerd).

Objectieven

Na de cursus zal de student in staat zijn om (1) vast te stellen wat prioritair geherstructureerd dient te worden; (2) de risico's en opportuniteiten van een reengineering project te identificeren; (3) ruwe en gedetailleerde ontwerpmodellen te extraheren; (4) tests exploiteren tijdens het reengineeren; (5) de meest geschikte migratiestrategie kiezen; (6) de typische problemen van een objectgericht reengineering project kunnen oplossen.

Onderwijsvorm

Een introductieles gevolgd door enkele labo-sessies waar verscheidene reverse- en reengineering technieken worden uitgeprobeerd a.h.v. tools. Daarna volgt een project (beoordeeld aan de hand van een verslag en een projectverdediging).

Tijdschema

Het volgende schema is vatbaar voor wijzigingen.

Week Datum Maandag 14u-18u
1 09-02-2009 [Theorieles] Introductie (Serge) - Gebouw G
2 16-02-2009 [Labo] Duplicated Code (Jan Vlegels) - G.025
3 23-02-2009 [Labo] **verplaatst** Metrics and Visualization (Bart VR en Joris) - G.025
4 02-03-2009 [Labo] Refactoring Lab (Serge Demeyer) - G.025
5 09-03-2009 [Labo] **verplaatst** Dynamische Analyse en Testing (Bart VR en Joris) - G.025
6 16-03-2009 [Labo] Mining Software Repositories (Jan Vlegels) - G.025
7 23-03-2009 GEEN LES
8 30-03-2009  
  06-04-2009 -- paasvakantie
  14-04-2009 -- paasvakantie
9 20-04-2009  
10 27-04-2009  
11 04-05-2009  
12 11-05-2009 [Discussieles] Conclusie (Serge) [Verplaatst van 4 mei 2009]
13 18-05-2009  
 
??? te bepalen Mondelinge verdediging: project; tijdsschema nader te bepalen.

Studiemateriaal

Elk van de studenten wordt verondersteld het volgende boek gelezen te hebben (het zal o.a. nodig zijn bij het schrijven van het artikel dat op het einde gebruikt zal worden als examen.)

Book Cover Het boek is verkrijgbaar in de bibliotheek.
Book Cover Het originele boek is ondertussen uitverkocht bij de uitgever. Als alternatief is er een publiek beschikbare PDF (onder de Creative Commons Attribution-ShareAlike 3.0 license) die professioneel kan afgedrukt worden via on-line drukkerijen. Meer informatie op http://www.iam.unibe.ch/~scg/OORP/.

Daarnaast is er ook het volgende extra studiemateriaal

  • Transparanten "Introductie" (09-02-2004) [ PDF | PPT ].
  • Werkbundel Duplication Lab Session [ TJZ,32MB ].
  • Boek Working Effectively with Legacy Code door Michael Feathers. De bibliotheek bevat 4 exemplaren.
  • In de practica voorzien we steeds voorbeeldsystemen om technieken op uit te testen. Indien je echter een eigen systeem meebrengt naar de les dan helpen we je graag verder om je eigen project te reengineeren. Vooral systemen ontwikkeld in Java (eventueel met JUnit testen) zijn zeer geschikt.

Project

Herstructureer een bestaand software systeem zodat nieuwe behoeften gemakkelijker geimplementeerd kunnen worden. Merk op dat extra functionaliteit als zodanig niet geimplementeerd moet worden; wel moet het bestaande ontwerp zodanig aangepast worden dat het toevoegen van de nieuwe functionaliteit een spreekwoordelijk fluitje van een cent wordt.

>>>>>Het project staat op deze pagina beschreven.<<<<<

Om een idee te hebben van wat de opdrachten van de vorige jaren inhielden kan je die van je collega-studenten van de eerdere jaren eens bekijken:

Merk op dat jullie eventueel zelf een project kunnen kiezen. Dit projectvoorstel moet door ons wel goedgekeurd worden, op basis van een gemotiveerde aanvraag (een simpele e-mail naar Serge Demeyer).

Groepswerk

Het is toegelaten (het wordt zelfs aangemoedigd) om de opdracht in groep uit te werken, maar groepjes worden bij voorkeur niet groter dan drie personen. Het is wel zo dat de verwachtingen voor het eindresultaat in verhouding staan met de groepsgrootte. Bovendien krijgen alle leden van dezelfde groep in principe hetzelfde eindcijfer.

Eindresultaat

Het eindresultaat van dit project bestaat uit een schriftelijk projectverslag dat toegelicht moet worden tijdens een mondelinge projectverdediging. De mondelinge verdediging grijpt plaats tijdens de normale zittijd. Jij moet zelf initiatief nemen om een afspraak te maken. Het verslag moet een week op voorhand afgegeven worden (mag elektronisch).

Schriftelijk verslag

Volgende onderwerpen moeten aan bod komen in het schriftelijk verslag:

  • Korte samenvatting (Wie, Wat, Hoe): Voor wie doen we het? Wat was het probleem? Hoe hebben we het aangepakt?
  • Status: Wat heb je gedaan, wat gaat (kan) er nu gebeuren?
  • Wat voor technieken em reengineering patterns heb je gebruikt op niveau van behoeften analyse, ontwerp, implementatie en testen. T.t.z. hoe heb je de verschillen geidentificeerd tussen de oude en nieuwe behoeftes, tussen het oude en het nieuwe ontwerp ? Hoe heb je de bestaande code omgevormd tot de nieuwe ? Hoe heb je ervoor gezorgd dat deze aanpassingen geen fouten hebben geintroduceerd ?
  • Projectverloop: Overzicht van planning, tijdschema, en tussentijdse problemen.

Mondelinge verdediging

De mondelinge verdediging bestaat vooral uit het bespreken van de oplossingen voor de problemen die jullie tegen gekomen zijn en wat je eruit geleerd hebt. Alles wat je in je projectverslag beweert moet je tijdens de projectverdediging kunnen staven aan de hand van code en electronische documentatie.

Uiteraard drukken jullie je daarbij uit gebruik makende van de juiste terminologie. (cfr . Object-Oriented Reengineering Patterns, Serge Demeyer, Stephane Ducasse, en Oscar Nierstrasz, Morgan Kaufmann, 2002)

Beoordelingscriteria

  1. SELECTIE Om te slagen moet je aantonen dat je minstens in staat bent een bestaand software systeem te herstructureren. (MINIMUMNORM)
    • Je kunt het bestaande ontwerp uit de beschikbare gegevens distilleren (i.e. reverse engineering)
    • Je kunt de bestaande broncode transformeren zodat ze beter geschikt is om de nieuwe behoeftes te implementeren (i.e. refactoring)
    • Je kunt aantonen dat de code transformaties de bestaande functionaliteit niet hebben aangetast (i.e. regression tests)
  2. DIVERSIFICATIE Om goede punten te behalen moet je aantonen dat je het herstructureringsproces zelf onder controle hebt:
    • Welke technieken (reengineering patterns) heb je voor de verschillende fases gebruikt. In hoeverre kun je je keuze argumenteren ?
    • Hoe heb je de nieuwe behoeftes geanalyseerd ? In hoeverre zul je in de toekomst greep kunnen houden op veranderende behoeftes ?
    • Hoe heb je het ontwerp (architectuur) dat je uit de brondcode hebt gedistilleerd gevalideerd ? Hoe heb je dat gebruikt om probleemidentificatie te doen ?
    • Hoe heb je de code transformatie zelf aangepakt ? Waarom zijn die transformaties nuttig in functie van de nieuwe toe te voegen functionaliteit ?
    • Hoe ben je de kwaliteit van je testprocedure nagegaan ? In hoeverre kun je de tijd die je gestopt hebt in het testen verantwoorden ten opzichte van de bestaande functionaliteit en de gemaakte verbeteringen ?
    • Hoe heb je het herstructureringsproces aangepakt ? In hoeverre was je planning en schatting accuraat ? En hoe heb je gereageerd op onvoorziene omstandigheden ?

Examenregeling

Het tijdschema voor de mondelinge verdediging zal hier verspreid worden.

Tweede Zittijd

Voor tweede zittijd blijft de opdracht (project) onveranderd.

 

Valid HTML 4.01! Valid CSS!

 Lab On REengineering - Antwerpen, last modified 17:39:51 06 April 2009