130 likes | 202 Views
Multiple Viewpoints Architecture Extraction. Azadeh Razavizadeh 1 , Hervé Verjus 1 , Sorana Cîmpan 1 , Stéphane Ducasse 2 1 Université de Savoie, LISTIC Laboratory 1 INRIA Lille-Nord Europe, RmoD team, LIFL. Outline. The context of Software Evolution Software Systems Understanding
E N D
Multiple Viewpoints Architecture Extraction Azadeh Razavizadeh1, Hervé Verjus1, Sorana Cîmpan1, Stéphane Ducasse2 1 Université de Savoie, LISTIC Laboratory 1 INRIA Lille-Nord Europe, RmoD team, LIFL
Outline • The context of Software Evolution • Software Systems Understanding • Views and Viewpoints • Views Extraction WICSA/ECSA 2009, Cambridge, 14-18 September
Software Evolution and Understanding • Software systems evolve • Understand the System – a key issue • Descriptions other than the code • Architecture • not always available • might no longer represent the system • Architecture Extraction from the code WICSA/ECSA 2009, Cambridge, 14-18 September
Goal: Support System Understanding • Enhancement of system understanding • Different views • Different viewpoints • Framework • Combine existing viewpoints • Define new ones WICSA/ECSA 2009, Cambridge, 14-18 September
Interconnected Views and Viewpoints WICSA/ECSA 2009, Cambridge, 14-18 September
A View on Views * View * * 2..* Architectural Element * Architectural Relationship * * * mapping mapping WICSA/ECSA 2009, Cambridge, 14-18 September
Reverse Engineering and View Extraction WICSA/ECSA 2009, Cambridge, 14-18 September
Simple Architectural Meta Model * WICSA/ECSA 2009, Cambridge, 14-18 September
Cascading Multiple Views Extraction Extraction script = a collection of viewpoints WICSA/ECSA 2009, Cambridge, 14-18 September
An View Extraction Example : Matching approach • Viewpoint = model + extraction algorithm • Matching extraction • Use an entry view and a viewpoint model • For each concept in the viewpoint model an architectural element is created • Elements from the entry view are matched with concepts from the viewpoint model • Remaining elements are grouped in a outside-domain element • Can be refined by another application of the framework • Examples of matching viewpoints: • Business Domain Model • Software Patterns WICSA/ECSA 2009, Cambridge, 14-18 September
Example – matching extraction using domain model WICSA/ECSA 2009, Cambridge, 14-18 September
Resume • Enhance System Understanding • Multiple Viewpoints Architecture Extraction • Generic recursive framework • Multiple Viewpoints • Provided • User-defined • Extraction Scripts WICSA/ECSA 2009, Cambridge, 14-18 September
An View Extraction Example : Matching approach View extractView (aView, aVptM){ View extractedView = new View(); for(int i=0; i<aVptM.size(); i++) for(int j=0; j<aView.size(); j++) if (matches(aView.getElement(j).getName(), aVptM.getConcept(i).getDescription()) { ArchitecturalElement ae = extractedView.getArchitecturalElement(VptM.getConcept(i).getDescription()) ae.addCorrespondingElement(aView.getElement(j)); aView.getElement(j).setExtracted(true); } ArchitecturalElement outsiders ; for(int j=0; j<aView.size(); j++) { if (not aView.getElement(j).getExtracted()) { outsiders = extractedView.getArchitecturalElement(« Outside Domain »); outsiders.addCorrespondingElement(aView.getElement(j)); } } } WICSA/ECSA 2009, Cambridge, 14-18 September