Multiple Viewpoints Architecture Extraction
description
Transcript of Multiple Viewpoints Architecture Extraction
Multiple Viewpoints Architecture Extraction
Azadeh Razavizadeh1, Hervé Verjus1, Sorana Cîmpan1, Stéphane Ducasse2
1 Université de Savoie, LISTIC Laboratory1 INRIA Lille-Nord Europe, RmoD team, LIFL
WICSA/ECSA 2009, Cambridge, 14-18 September
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
Architectural Element Architectural Relationship
*
* *
**
mapping
*
mapping
2..**
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)); } }}