multiple viewpoints architecture extraction

13
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

Upload: ronli

Post on 11-Jan-2016

21 views

Category:

Documents


0 download

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 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

Page 2: Multiple Viewpoints Architecture Extraction

WICSA/ECSA 2009, Cambridge, 14-18 September

Outline

The context of Software Evolution Software Systems Understanding

Views and Viewpoints Views Extraction

Page 3: Multiple Viewpoints Architecture 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

Page 4: Multiple Viewpoints Architecture Extraction

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

Page 5: Multiple Viewpoints Architecture Extraction

WICSA/ECSA 2009, Cambridge, 14-18 September

Interconnected Views and Viewpoints

Page 6: Multiple Viewpoints Architecture Extraction

WICSA/ECSA 2009, Cambridge, 14-18 September

A View on Views

View

Architectural Element Architectural Relationship

*

* *

**

mapping

*

mapping

2..**

Page 7: Multiple Viewpoints Architecture Extraction

WICSA/ECSA 2009, Cambridge, 14-18 September

Reverse Engineering and View Extraction

Page 8: Multiple Viewpoints Architecture Extraction

WICSA/ECSA 2009, Cambridge, 14-18 September

Simple Architectural Meta Model

*

Page 9: Multiple Viewpoints Architecture Extraction

WICSA/ECSA 2009, Cambridge, 14-18 September

Cascading Multiple Views Extraction

Extraction script = a collection of viewpoints

Page 10: Multiple Viewpoints Architecture Extraction

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

Page 11: Multiple Viewpoints Architecture Extraction

WICSA/ECSA 2009, Cambridge, 14-18 September

Example – matching extraction using domain model

Page 12: Multiple Viewpoints Architecture Extraction

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

Page 13: Multiple Viewpoints Architecture Extraction

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)); } }}