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

 

 

Refactoring

Doel

  • De studenten kunnen een reeks kleine, beheersbare refactorings uitvoeren om het ontwerp van een software systeem zodanig aan te passen dat de implementatie van nieuwe features opnieuw mogelijk is. De refactorings:
    • Extract Method
    • Move Behaviour Close to the Data
    • Eliminate Navigation Code
    • Transform Self Type Checks

Opgaves

Het doel van deze sessie is om aan te tonen hoe je door het uitvoeren van een reeks kleine, beheersbare refactorings het ontwerp van een software systeem zodanig kan aanpassen dat de implementatie van nieuwe features opnieuw mogelijk is.

Het software-systeem dat we in dit lab gebruiken is de Local Area Network (LAN) Simulatie. Kort samengevat is de huidige implementatie niet geschikt voor het implementeren van nieuwe soorten netwerk-knopen. De reden hiervoor is dat de knoop-klasse een "dumb data holder" is, terwijl de netwerk-klasse alle functionaliteit bevat en daardoor een "god class" vormt. Daarom zullen we in deze sessie de verantwoordelijkheden die werkelijk tot een netwerk-knoop behoren overladen van de netwerk-klasse naar de knoop-klasse. Eens de knoop-klasse opgevuld is zullen we de verschillende soorten knopen, die momenteel nog via conditials onderscheidden worden, opsplitsen in subklassen van de knoop-klasse. Als kers op de taart zullen we hierbij polymorphisme in werking kunnen stellen om de implementatie van nieuwe features te kunnen ondersteunen.

In de Documenten sectie vind je een link naar het materiaal voor dit practicum.

Documenten

Registreer je eerst met je UAntwerpen mailadres op deze site.

De Eclipse-plugin kan je hier downloaden.

Het Eclipse project van de LANSimulation kan je hier downloaden.

Een praktische gids die je doorheen het project leidt vind je hier (opgelet: de voorbeelden in deze tekst staan in C++).

Vul na afloop van het practicum deze vragenlijst in.

Oplossingen

De oplossingen vind je ook terug op de pagina's vermeld in de Documenten sectie.
Valid HTML 4.01! Valid CSS!

 Lab On REengineering - Antwerpen, last modified 09:11:42 06 December 2016