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

 

 

Terug naar SRe2Lic.

LORE / Teaching / SRe2LIC / Opdracht 2005

Context

Het Model Driven Architecture paradigma stelt voor om software op basis van software modellen te ontwikkelen. Als logisch gevolg heb je hiervoor tools nodig om software modellen te creëren, en tools om op basis van deze modellen broncode te genereren.

Een voorbeeld van een tool om modellen te creëren is ArgoUML:

  • ArgoUML is een open source Computer-Aided Software Engineering tool voor het creëren van Unified Modeling Language modellen. M.a.w. is het een tekenprogramma dat toelaat om je software te ontwerpen op basis van meerdere diagrammen.

Opdracht

De ontwikkelaars van ArgoUML realiseerden zich dat de huidige opbouw van de broncode zogenaamde change ripples bevorderen. Daarom staat op hun verlanglijstje van todo's het herstructureren van de ArgoUML sources.

Als reengineering-team wordt jullie gevraagd om ArgoUML te beschouwen als een nearly decomposable system.

A nearly decomposable system is a system consisting of subsystems for which the interactions among subsystems is of a different order of magnitude from that of the interactions within subsystems. The analogy with a classification is obvious if one looks upon classes as subsystems. The relevant properties are:
  1. the short-run behaviour of each of the component subsystems is approximately independent of the short-run behaviour of the other components;
  2. the long-run behaviour of each of the component subsystems depends in only an aggregate way on the behaviour of the other components.

Deze herstructurering zal zowel een herindeling van de code als een aanpassing van de build-scripts inhouden. Het uiteindelijke doel is om elk subsysteem als een aparte component te beschouwen, die apart gecompileerd kan worden. Vermits een nearly decomposable system een zwakke vorm van interactie toelaat tussen subsystemen, kan het zijn dat de compilatie van een component zal steunen op een eerder gecompileerde component.

Aangezien dit herstructurerings-voorstel een reële vraag is van de ArgoUML ontwikkelaars, kan je op de ArgoUML website een meer gedetailleerde beschrijving van deze opdracht vinden. Een lokale copie hiervan vindt je hier.

Resultaat

Om aan te tonen dat je in deze opdracht geslaagd bent, zal je volgende zaken moeten kunnen aantonen:

  • De herorganizatie is gedragsbehoudend.
    • Je kan de mapping aantonen tussen elk van de klassen uit de oorspronkelijke structuur en de nieuwe structuur.
    • Het compilatie-proces verloopt foutloos.
    • De testen draaien foutloos.
    • ArgoUML start foutloos.
  • De herorganizatie is kwaliteitsverbeterend.
    • Je hebt sterke interacties tussen voormalige subsystemen gedetecteerd, en deze door een herindeling weggewerkt.
    • De interacties tussen de delen van elk subsysteem zijn sterk.
    • De interacties tussen de de resulterende subsystemen zijn hoogstens zwak.

Vooral het kwaliteitsverbeterende aspect kan je in je projectverslag en verdediging toelichten, door aan te geven dat de resulterende ArgoUML versie wel degelijk de (hierboven beschreven) voordelen van een nearly decomposable system vertoont.

Vermits de uitvoering van dit project een reorganizatie van de hele broncode zal inhouden, is het onhaalbaar dit via het CVS systeem van ArgoUML toe te passen. Daarom zullen jullie deze opdracht moeten uitvoeren op een lokale snapshot. Deze kunnen jullie ofwel uitchecken (zie richtlijnen op de ArgoUML website), ofwel kunnen jullie teruggrijpen naar onze lokale snapshot van ArgoUML 0.17.6.

Na beëindiging van dit project zullen de ArgoUML ontwikkelaars jullie resultaten evalueren, en eventueel overnemen.

 

Valid HTML 4.01! Valid CSS!

 Lab On REengineering - Antwerpen, last modified 16:24:40 11 June 2007