MAMBA Model-Based Software Analysis Utilizing OMGs SMM WSR 2012 - - PowerPoint PPT Presentation

mamba model based software analysis utilizing omg s smm
SMART_READER_LITE
LIVE PREVIEW

MAMBA Model-Based Software Analysis Utilizing OMGs SMM WSR 2012 - - PowerPoint PPT Presentation

MAMBA Model-Based Software Analysis Utilizing OMGs SMM WSR 2012 Sren Frey Andr van Hoorn Reiner Jung Benjamin Kiel Wilhelm Hasselbring Christian-Albrechts-University, Kiel Software Engineering Group 3.05.2012 Contents Motivation


slide-1
SLIDE 1

MAMBA Model-Based Software Analysis Utilizing OMG’s SMM

WSR 2012 Sören Frey André van Hoorn Reiner Jung Benjamin Kiel Wilhelm Hasselbring

Christian-Albrechts-University, Kiel Software Engineering Group

3.05.2012

slide-2
SLIDE 2

Contents

1

Motivation

2

Structured Metrics Meta-Model

3

MAMBA

4

Conclusions

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 2 / 16

slide-3
SLIDE 3

Motivation

Motivation

Goal: Model-Based Software Analysis with SMM [Obj12]

  • Frey, van Hoorn, Jung, Kiel, Hasselbring

MAMBA 3.05.2012 3 / 16

slide-4
SLIDE 4

Motivation

Motivation

Goal: Model-Based Software Analysis with SMM [Obj12] Re-usable metrics

  • Frey, van Hoorn, Jung, Kiel, Hasselbring

MAMBA 3.05.2012 3 / 16

slide-5
SLIDE 5

Motivation

Motivation

Goal: Model-Based Software Analysis with SMM [Obj12] Re-usable metrics Use of metrics across technology boundaries

  • Frey, van Hoorn, Jung, Kiel, Hasselbring

MAMBA 3.05.2012 3 / 16

slide-6
SLIDE 6

Motivation

Motivation

Goal: Model-Based Software Analysis with SMM [Obj12] Re-usable metrics Use of metrics across technology boundaries Combination of static and dynamic analysis

  • Frey, van Hoorn, Jung, Kiel, Hasselbring

MAMBA 3.05.2012 3 / 16

slide-7
SLIDE 7

Motivation

Motivation

Goal: Model-Based Software Analysis with SMM [Obj12] Re-usable metrics Use of metrics across technology boundaries Combination of static and dynamic analysis Solution

  • Frey, van Hoorn, Jung, Kiel, Hasselbring

MAMBA 3.05.2012 3 / 16

slide-8
SLIDE 8

Motivation

Motivation

Goal: Model-Based Software Analysis with SMM [Obj12] Re-usable metrics Use of metrics across technology boundaries Combination of static and dynamic analysis Solution OMG’s Structured Metrics Meta-Model (SMM)

  • Frey, van Hoorn, Jung, Kiel, Hasselbring

MAMBA 3.05.2012 3 / 16

slide-9
SLIDE 9

Motivation

Motivation

Goal: Model-Based Software Analysis with SMM [Obj12] Re-usable metrics Use of metrics across technology boundaries Combination of static and dynamic analysis Solution OMG’s Structured Metrics Meta-Model (SMM) Measurement Architecture for Model-Based Analysis (MAMBA) [FvHJ11]

http://mamba-framework.sf.net/

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 3 / 16

slide-10
SLIDE 10

Bookstore - Example

Motivation

<<component>> Catalog

getBook : Book

<<component>> Bookstore

searchBook : List<Book>

<<component>> CRM

getOrders : List<Order>

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 4 / 16

slide-11
SLIDE 11

Bookstore - Example

Motivation

<<component>> Catalog

getBook : Book

<<component>> Bookstore

searchBook : List<Book>

<<component>> CRM

getOrders : List<Order>

Example Metrics

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 4 / 16

slide-12
SLIDE 12

Bookstore - Example

Motivation

<<component>> Catalog

getBook : Book

<<component>> Bookstore

searchBook : List<Book>

<<component>> CRM

getOrders : List<Order>

Example Metrics Number of classes

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 4 / 16

slide-13
SLIDE 13

Bookstore - Example

Motivation

<<component>> Catalog

getBook : Book

<<component>> Bookstore

searchBook : List<Book>

<<component>> CRM

getOrders : List<Order>

Example Metrics Number of classes Average response time of methods

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 4 / 16

slide-14
SLIDE 14

Bookstore - Example

Motivation

<<component>> Catalog

getBook : Book

<<component>> Bookstore

searchBook : List<Book>

<<component>> CRM

getOrders : List<Order> AverageResponseTime

Example Metrics Number of classes Average response time of methods (here searchBook)

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 4 / 16

slide-15
SLIDE 15

SMM Features

Structured Metrics Meta-Model

Composition Definition of measures

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 5 / 16

slide-16
SLIDE 16

SMM Features

Structured Metrics Meta-Model

Composition Definition of measures Definition of observations

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 5 / 16

slide-17
SLIDE 17

SMM Features

Structured Metrics Meta-Model

Composition Definition of measures Definition of observations Collection of measurement results

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 5 / 16

slide-18
SLIDE 18

SMM Features

Structured Metrics Meta-Model

Composition Definition of measures Definition of observations Collection of measurement results Measures Direct measures, like a ClassRecognizer

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 5 / 16

slide-19
SLIDE 19

SMM Features

Structured Metrics Meta-Model

Composition Definition of measures Definition of observations Collection of measurement results Measures Direct measures, like a ClassRecognizer Derived measures, like a NumberOfClasses

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 5 / 16

slide-20
SLIDE 20

SMM Features

Structured Metrics Meta-Model

Composition Definition of measures Definition of observations Collection of measurement results Measures Direct measures, like a ClassRecognizer Derived measures, like a NumberOfClasses Closed: rely only on SMM and observed model

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 5 / 16

slide-21
SLIDE 21

SMM Features

Structured Metrics Meta-Model

Composition Definition of measures Definition of observations Collection of measurement results Measures Direct measures, like a ClassRecognizer Derived measures, like a NumberOfClasses Closed: rely only on SMM and observed model Open: require additional external data (e.g. monitoring data)

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 5 / 16

slide-22
SLIDE 22

Measuring with SMM

Structured Metrics Meta-Model

bookstore.smm :MeasureLibrary

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 6 / 16

slide-23
SLIDE 23

Measuring with SMM

Structured Metrics Meta-Model

:CollectiveMeasure name="NumberOfClasses" accumulator=sum bookstore.smm :MeasureLibrary

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 6 / 16

slide-24
SLIDE 24

Measuring with SMM

Structured Metrics Meta-Model

:Scope class="kdm.code.CodeModel" scope :CollectiveMeasure name="NumberOfClasses" accumulator=sum bookstore.smm :MeasureLibrary

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 6 / 16

slide-25
SLIDE 25

Measuring with SMM

Structured Metrics Meta-Model

:Counting name="ClassRecognizer" to :Scope class="kdm.code.CodeModel" scope :CollectiveMeasure name="NumberOfClasses" accumulator=sum bookstore.smm :MeasureLibrary :BaseMeasureRelationship from

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 6 / 16

slide-26
SLIDE 26

Measuring with SMM

Structured Metrics Meta-Model

:Scope class="kdm.code.Package" :Counting name="ClassRecognizer" to scope :Scope class="kdm.code.CodeModel" scope :CollectiveMeasure name="NumberOfClasses" accumulator=sum bookstore.smm :MeasureLibrary :BaseMeasureRelationship from

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 6 / 16

slide-27
SLIDE 27

Measuring with SMM

Structured Metrics Meta-Model

:Operation language="OCL" body="isOCLTypeOf(kdm.code.ClassUnit)"

  • peration

:Scope class="kdm.code.Package" :Counting name="ClassRecognizer" to scope :Scope class="kdm.code.CodeModel" scope :CollectiveMeasure name="NumberOfClasses" accumulator=sum bookstore.smm :MeasureLibrary :BaseMeasureRelationship from

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 6 / 16

slide-28
SLIDE 28

Measuring with SMM

Structured Metrics Meta-Model

:Operation language="OCL" body="isOCLTypeOf(kdm.code.ClassUnit)"

  • peration

:Scope class="kdm.code.Package" :Counting name="ClassRecognizer" to scope :Scope class="kdm.code.CodeModel" scope :CollectiveMeasure name="NumberOfClasses" accumulator=sum :CollectiveMeasure name="AverageMethodResponseTime" accumulator=average bookstore.smm :MeasureLibrary :BaseMeasureRelationship from

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 6 / 16

slide-29
SLIDE 29

Measuring with SMM

Structured Metrics Meta-Model

:Operation language="OCL" body="isOCLTypeOf(kdm.code.ClassUnit)"

  • peration

:Scope class="kdm.code.Package" :Counting name="ClassRecognizer" to scope :Scope class="kdm.code.CodeModel" scope :CollectiveMeasure name="NumberOfClasses" accumulator=sum :CollectiveMeasure name="AverageMethodResponseTime" accumulator=average :NamedMeasure name="kieker.KDMMethodResponseTime" bookstore.smm :MeasureLibrary :BaseMeasureRelationship from :BaseMeasureRelationship to from

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 6 / 16

slide-30
SLIDE 30

Measuring with SMM

Structured Metrics Meta-Model

:Operation language="OCL" body="isOCLTypeOf(kdm.code.ClassUnit)"

  • peration

:Scope class="kdm.code.Package" :Counting name="ClassRecognizer" to scope :Scope class="kdm.code.CodeModel" scope :CollectiveMeasure name="NumberOfClasses" accumulator=sum :CollectiveMeasure name="AverageMethodResponseTime" accumulator=average :NamedMeasure name="kieker.KDMMethodResponseTime" bookstore.smm :Scope class="kdm.code.ClassUnit" scope :MeasureLibrary :BaseMeasureRelationship from :BaseMeasureRelationship to from

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 6 / 16

slide-31
SLIDE 31

Measuring with SMM

Structured Metrics Meta-Model

:Operation language="OCL" body="isOCLTypeOf(kdm.code.ClassUnit)"

  • peration

:Scope class="kdm.code.Package" :Counting name="ClassRecognizer" to scope :Scope class="kdm.code.CodeModel" scope :CollectiveMeasure name="NumberOfClasses" accumulator=sum :CollectiveMeasure name="AverageMethodResponseTime" accumulator=average :NamedMeasure name="kieker.KDMMethodResponseTime" to :Operation language="OCL" body="kdm.code.ClassUnit.codeElement->select( method : kdm.code.MethodUnit | method.name = ${methodName})"

  • peration

bookstore.smm :Scope class="kdm.code.ClassUnit" scope :MeasureLibrary :BaseMeasureRelationship from :BaseMeasureRelationship to from

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 6 / 16

slide-32
SLIDE 32

Measuring with SMM

Structured Metrics Meta-Model

:Operation language="OCL" body="isOCLTypeOf(kdm.code.ClassUnit)"

  • peration

:Scope class="kdm.code.Package" :Counting name="ClassRecognizer" to scope :Scope class="kdm.code.CodeModel" scope :CollectiveMeasure name="NumberOfClasses" accumulator=sum :CollectiveMeasure name="AverageMethodResponseTime" accumulator=average :NamedMeasure name="kieker.KDMMethodResponseTime" to :Operation language="OCL" body="kdm.code.ClassUnit.codeElement->select( method : kdm.code.MethodUnit | method.name = ${methodName})" :String value="{ String methodName }" parameterStrings

  • peration

bookstore.smm :Scope class="kdm.code.ClassUnit" scope :MeasureLibrary :BaseMeasureRelationship from :BaseMeasureRelationship to from

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 6 / 16

slide-33
SLIDE 33

Measuring in SMM

Structured Metrics Meta-Model

Declaring an Observation Observation

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 7 / 16

slide-34
SLIDE 34

Measuring in SMM

Structured Metrics Meta-Model

Declaring an Observation Observation Observed measures

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 7 / 16

slide-35
SLIDE 35

Measuring in SMM

Structured Metrics Meta-Model

Declaring an Observation Observation Observed measures Referenced measures (selection of the measures)

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 7 / 16

slide-36
SLIDE 36

Measuring in SMM

Structured Metrics Meta-Model

Declaring an Observation Observation Observed measures Referenced measures (selection of the measures) Advantages Addresses all aspects of measuring

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 7 / 16

slide-37
SLIDE 37

Measuring in SMM

Structured Metrics Meta-Model

Declaring an Observation Observation Observed measures Referenced measures (selection of the measures) Advantages Addresses all aspects of measuring Meta-model agnostic (works with MOF and Ecore-models)

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 7 / 16

slide-38
SLIDE 38

Measuring in SMM

Structured Metrics Meta-Model

Declaring an Observation Observation Observed measures Referenced measures (selection of the measures) Advantages Addresses all aspects of measuring Meta-model agnostic (works with MOF and Ecore-models) Disadvantages No tool support

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 7 / 16

slide-39
SLIDE 39

Measuring in SMM

Structured Metrics Meta-Model

Declaring an Observation Observation Observed measures Referenced measures (selection of the measures) Advantages Addresses all aspects of measuring Meta-model agnostic (works with MOF and Ecore-models) Disadvantages No tool support Cumbersome and error prone process to develop manually

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 7 / 16

slide-40
SLIDE 40

Measuring in SMM

Structured Metrics Meta-Model

Declaring an Observation Observation Observed measures Referenced measures (selection of the measures) Advantages Addresses all aspects of measuring Meta-model agnostic (works with MOF and Ecore-models) Disadvantages No tool support Cumbersome and error prone process to develop manually Limited aggregate functions

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 7 / 16

slide-41
SLIDE 41

Measuring in SMM

Structured Metrics Meta-Model

Declaring an Observation Observation Observed measures Referenced measures (selection of the measures) Advantages Addresses all aspects of measuring Meta-model agnostic (works with MOF and Ecore-models) Disadvantages No tool support Cumbersome and error prone process to develop manually Limited aggregate functions No support for periodic measures

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 7 / 16

slide-42
SLIDE 42

The MAMBA Framework

MAMBA

A Measurement Architecture for Model-Based Analysis Framework

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 8 / 16

slide-43
SLIDE 43

The MAMBA Framework

MAMBA

A Measurement Architecture for Model-Based Analysis Framework Eclipse-based Tooling

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 8 / 16

slide-44
SLIDE 44

The MAMBA Framework

MAMBA

A Measurement Architecture for Model-Based Analysis Framework Eclipse-based Tooling Specification Languages

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 8 / 16

slide-45
SLIDE 45

Framework

MAMBA

UML

MAMBA Framework

Measurement Controller Execution Engine MDL2SMM MQL2SMM

SMM MDL SMM MQL SMM Kieker Measurement Provider JDepend Measurement Provider ...

Measurement Providers

... KDM

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 9 / 16

slide-46
SLIDE 46

Framework

MAMBA

UML

MAMBA Framework

Measurement Controller Execution Engine MDL2SMM MQL2SMM

SMM MDL SMM MQL SMM Kieker Measurement Provider JDepend Measurement Provider ...

Measurement Providers

... KDM

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 9 / 16

slide-47
SLIDE 47

Framework

MAMBA

UML

MAMBA Framework

Measurement Controller Execution Engine MDL2SMM MQL2SMM

SMM MDL SMM MQL SMM Kieker Measurement Provider JDepend Measurement Provider ...

Measurement Providers

... KDM

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 9 / 16

slide-48
SLIDE 48

Framework

MAMBA

UML

MAMBA Framework

Measurement Controller Execution Engine MDL2SMM MQL2SMM

SMM MDL SMM MQL SMM Kieker Measurement Provider JDepend Measurement Provider ...

Measurement Providers

... KDM

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 9 / 16

slide-49
SLIDE 49

Framework

MAMBA

UML

MAMBA Framework

Measurement Controller Execution Engine MDL2SMM MQL2SMM

SMM MDL SMM MQL SMM Kieker Measurement Provider JDepend Measurement Provider ...

Measurement Providers

... KDM

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 9 / 16

slide-50
SLIDE 50

Framework

MAMBA

UML

MAMBA Framework

Measurement Controller Execution Engine MDL2SMM MQL2SMM

SMM MDL SMM MQL SMM Kieker Measurement Provider JDepend Measurement Provider ...

Measurement Providers

... KDM

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 9 / 16

slide-51
SLIDE 51

Framework

MAMBA

UML

MAMBA Framework

Measurement Controller Execution Engine MDL2SMM MQL2SMM

SMM MDL SMM MQL SMM Kieker Measurement Provider JDepend Measurement Provider ...

Measurement Providers

... KDM

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 9 / 16

slide-52
SLIDE 52

Framework

MAMBA

UML

MAMBA Framework

Measurement Controller Execution Engine MDL2SMM MQL2SMM

SMM MDL SMM MQL SMM Kieker Measurement Provider JDepend Measurement Provider ...

Measurement Providers

... KDM

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 9 / 16

slide-53
SLIDE 53

Framework

MAMBA

UML

MAMBA Framework

Measurement Controller Execution Engine MDL2SMM MQL2SMM

SMM MDL SMM MQL SMM Kieker Measurement Provider JDepend Measurement Provider ...

Measurement Providers

... KDM

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 9 / 16

slide-54
SLIDE 54

Framework

MAMBA

UML

MAMBA Framework

Measurement Controller Execution Engine MDL2SMM MQL2SMM

SMM MDL SMM MQL SMM Kieker Measurement Provider JDepend Measurement Provider ...

Measurement Providers

... KDM

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 9 / 16

slide-55
SLIDE 55

Framework

MAMBA

UML

MAMBA Framework

Measurement Controller Execution Engine MDL2SMM MQL2SMM

SMM MDL SMM MQL SMM Kieker Measurement Provider JDepend Measurement Provider ...

Measurement Providers

... KDM

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 9 / 16

slide-56
SLIDE 56

Framework

MAMBA

UML

MAMBA Framework

Measurement Controller Execution Engine MDL2SMM MQL2SMM

SMM MDL SMM MQL SMM Kieker Measurement Provider JDepend Measurement Provider ...

Measurement Providers

... KDM

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 9 / 16

slide-57
SLIDE 57

Framework

MAMBA

UML

MAMBA Framework

Measurement Controller Execution Engine MDL2SMM MQL2SMM

SMM MDL SMM MQL SMM Kieker Measurement Provider JDepend Measurement Provider ...

Measurement Providers

... KDM

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 9 / 16

slide-58
SLIDE 58

Measurement Provider

MAMBA

Purpose Transforms external data to measurement results

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 10 / 16

slide-59
SLIDE 59

Measurement Provider

MAMBA

Purpose Transforms external data to measurement results Feed results to Measurement Controller

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 10 / 16

slide-60
SLIDE 60

Measurement Provider

MAMBA

Purpose Transforms external data to measurement results Feed results to Measurement Controller Workflow

KDM

MAMBA Framework

Measurement Controller Execution Engine

SMM Kieker Measurement Provider JDepend Measurement Provider ...

Measurement Providers

:ObservedMeasure :NamedMeasure name="Kieker2KDMProvider:KDMMethodResponseTime" :Scope class="kdm.code.ClassUnit" scope :BaseMeasureRelationship :CollectiveMeasure name="AverageMethodResponseTime" accumulator=average to from :Argument name="methodName" type="String" value="searchBooks" measure arguments

  • bservedMeasures

bookstore.smm :SmmModel :Observation requestedMeasures provide list of named measures Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 10 / 16

slide-61
SLIDE 61

Measurement Provider

MAMBA

Purpose Transforms external data to measurement results Feed results to Measurement Controller Workflow

KDM

MAMBA Framework

Measurement Controller Execution Engine

SMM Kieker Measurement Provider JDepend Measurement Provider ...

Measurement Providers

:ObservedMeasure :NamedMeasure name="Kieker2KDMProvider:KDMMethodResponseTime" :Scope class="kdm.code.ClassUnit" scope :BaseMeasureRelationship :CollectiveMeasure name="AverageMethodResponseTime" accumulator=average to from :Argument name="methodName" type="String" value="searchBooks" measure arguments

  • bservedMeasures

bookstore.smm :SmmModel :Observation requestedMeasures configure measure- ment provider Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 10 / 16

slide-62
SLIDE 62

Measurement Provider

MAMBA

Purpose Transforms external data to measurement results Feed results to Measurement Controller Workflow

KDM

MAMBA Framework

Measurement Controller Execution Engine

SMM Kieker Measurement Provider JDepend Measurement Provider ...

Measurement Providers

:ObservedMeasure :NamedMeasure name="Kieker2KDMProvider:KDMMethodResponseTime" :Scope class="kdm.code.ClassUnit" scope :BaseMeasureRelationship :CollectiveMeasure name="AverageMethodResponseTime" accumulator=average to from :Argument name="methodName" type="String" value="searchBooks" measure arguments

  • bservedMeasures

bookstore.smm :SmmModel :Observation requestedMeasures create measure- ment result Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 10 / 16

slide-63
SLIDE 63

Measurement Provider

MAMBA

Purpose Transforms external data to measurement results Feed results to Measurement Controller Workflow

KDM

MAMBA Framework

Measurement Controller Execution Engine

SMM Kieker Measurement Provider JDepend Measurement Provider ...

Measurement Providers

:ObservedMeasure :NamedMeasure name="Kieker2KDMProvider:KDMMethodResponseTime" :Scope class="kdm.code.ClassUnit" scope :BaseMeasureRelationship :CollectiveMeasure name="AverageMethodResponseTime" accumulator=average to from :Argument name="methodName" type="String" value="searchBooks" measure arguments

  • bservedMeasures

bookstore.smm :SmmModel :Observation requestedMeasures add measurement results to SMM Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 10 / 16

slide-64
SLIDE 64

Eclipse-based Tooling

MAMBA

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 11 / 16

slide-65
SLIDE 65

MAMBA Measure Definition Language

MAMBA

library bookstore

bookstore.smm :MeasureLibrary Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 12 / 16

slide-66
SLIDE 66

MAMBA Measure Definition Language

MAMBA

library bookstore model kdm "http://schema.omg.Ð

â

  • rg/spec/KDM/1.2"

bookstore.smm :MeasureLibrary Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 12 / 16

slide-67
SLIDE 67

MAMBA Measure Definition Language

MAMBA

library bookstore model kdm "http://schema.omg.Ð

â

  • rg/spec/KDM/1.2"

collect NumberOfClasses sum ...

:CollectiveMeasure name="NumberOfClasses" accumulator=sum bookstore.smm :MeasureLibrary Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 12 / 16

slide-68
SLIDE 68

MAMBA Measure Definition Language

MAMBA

library bookstore model kdm "http://schema.omg.Ð

â

  • rg/spec/KDM/1.2"

collect NumberOfClasses sum ... scope kdm.code.CodeModel

:Scope class="kdm.code.CodeModel" scope :CollectiveMeasure name="NumberOfClasses" accumulator=sum bookstore.smm :MeasureLibrary Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 12 / 16

slide-69
SLIDE 69

MAMBA Measure Definition Language

MAMBA

library bookstore model kdm "http://schema.omg.Ð

â

  • rg/spec/KDM/1.2"

collect NumberOfClasses sum ClassRecognizer scope kdm.code.CodeModel

:Scope class="kdm.code.CodeModel" scope :CollectiveMeasure name="NumberOfClasses" accumulator=sum bookstore.smm :MeasureLibrary Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 12 / 16

slide-70
SLIDE 70

MAMBA Measure Definition Language

MAMBA

library bookstore model kdm "http://schema.omg.Ð

â

  • rg/spec/KDM/1.2"

collect NumberOfClasses sum ClassRecognizer scope kdm.code.CodeModel count ClassRecognizer

:Counting name="ClassRecognizer" to :Scope class="kdm.code.CodeModel" scope :CollectiveMeasure name="NumberOfClasses" accumulator=sum bookstore.smm :MeasureLibrary :BaseMeasureRelationship from Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 12 / 16

slide-71
SLIDE 71

MAMBA Measure Definition Language

MAMBA

library bookstore model kdm "http://schema.omg.Ð

â

  • rg/spec/KDM/1.2"

collect NumberOfClasses sum ClassRecognizer scope kdm.code.CodeModel count ClassRecognizer ... scope kdm.code.Package

:Scope class="kdm.code.Package" :Counting name="ClassRecognizer" to scope :Scope class="kdm.code.CodeModel" scope :CollectiveMeasure name="NumberOfClasses" accumulator=sum bookstore.smm :MeasureLibrary :BaseMeasureRelationship from Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 12 / 16

slide-72
SLIDE 72

MAMBA Measure Definition Language

MAMBA

library bookstore model kdm "http://schema.omg.Ð

â

  • rg/spec/KDM/1.2"

collect NumberOfClasses sum ClassRecognizer scope kdm.code.CodeModel count ClassRecognizer select isOCLTypeOf(kdm.code.ClassUnit) scope kdm.code.Package

:Operation language="OCL" body="isOCLTypeOf(kdm.code.ClassUnit)"

  • peration

:Scope class="kdm.code.Package" :Counting name="ClassRecognizer" to scope :Scope class="kdm.code.CodeModel" scope :CollectiveMeasure name="NumberOfClasses" accumulator=sum bookstore.smm :MeasureLibrary :BaseMeasureRelationship from Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 12 / 16

slide-73
SLIDE 73

MAMBA Measure Definition Language

MAMBA

collect AverageMethodResponseTime ( String methodName ) average KDMMethodResponseTime scope ( kdm.code.ClassUnit.codeElement method | method.name == methodName && method instanceof kdm.code.Ð

â

MethodUnit) measure KDMMethodResponseTime

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 13 / 16

slide-74
SLIDE 74

MAMBA Query Language

MAMBA

Defines measurement process Definition of the observations

  • Frey, van Hoorn, Jung, Kiel, Hasselbring

MAMBA 3.05.2012 14 / 16

slide-75
SLIDE 75

MAMBA Query Language

MAMBA

Defines measurement process Definition of the observations If necessary, extension of the measure library

Example can be found in [FvHJ11]

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 14 / 16

slide-76
SLIDE 76

MAMBA Query Language

MAMBA

Defines measurement process Definition of the observations If necessary, extension of the measure library

Example can be found in [FvHJ11]

Query over the collected measurements

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 14 / 16

slide-77
SLIDE 77

MAMBA Query Language

MAMBA

Defines measurement process Definition of the observations If necessary, extension of the measure library

Example can be found in [FvHJ11]

Query over the collected measurements Average response time

use bookstore

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 14 / 16

slide-78
SLIDE 78

MAMBA Query Language

MAMBA

Defines measurement process Definition of the observations If necessary, extension of the measure library

Example can be found in [FvHJ11]

Query over the collected measurements Average response time

use bookstore model appModel "bookstore-model.kdm"

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 14 / 16

slide-79
SLIDE 79

MAMBA Query Language

MAMBA

Defines measurement process Definition of the observations If necessary, extension of the measure library

Example can be found in [FvHJ11]

Query over the collected measurements Average response time

use bookstore model appModel "bookstore-model.kdm" select AverageMethodResponseTime("searchBook") as avgrt from appModel where avgrt > 500

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 14 / 16

slide-80
SLIDE 80

Conclusions

Conclusions

Features Computation engine for SMM and its MAMBA extensions

  • Frey, van Hoorn, Jung, Kiel, Hasselbring

MAMBA 3.05.2012 15 / 16

slide-81
SLIDE 81

Conclusions

Conclusions

Features Computation engine for SMM and its MAMBA extensions Languages to define measures and queries

  • Frey, van Hoorn, Jung, Kiel, Hasselbring

MAMBA 3.05.2012 15 / 16

slide-82
SLIDE 82

Conclusions

Conclusions

Features Computation engine for SMM and its MAMBA extensions Languages to define measures and queries Meta-Model independent

  • Frey, van Hoorn, Jung, Kiel, Hasselbring

MAMBA 3.05.2012 15 / 16

slide-83
SLIDE 83

Conclusions

Conclusions

Features Computation engine for SMM and its MAMBA extensions Languages to define measures and queries Meta-Model independent Incorporation of static and dynamic analysis

  • Frey, van Hoorn, Jung, Kiel, Hasselbring

MAMBA 3.05.2012 15 / 16

slide-84
SLIDE 84

Conclusions

Conclusions

Features Computation engine for SMM and its MAMBA extensions Languages to define measures and queries Meta-Model independent Incorporation of static and dynamic analysis Case Studies [FvHJ11]

  • Frey, van Hoorn, Jung, Kiel, Hasselbring

MAMBA 3.05.2012 15 / 16

slide-85
SLIDE 85

Conclusions

Conclusions

Features Computation engine for SMM and its MAMBA extensions Languages to define measures and queries Meta-Model independent Incorporation of static and dynamic analysis Case Studies [FvHJ11] DynaMod: Re-engineering project [vHFG11]

  • Frey, van Hoorn, Jung, Kiel, Hasselbring

MAMBA 3.05.2012 15 / 16

slide-86
SLIDE 86

Conclusions

Conclusions

Features Computation engine for SMM and its MAMBA extensions Languages to define measures and queries Meta-Model independent Incorporation of static and dynamic analysis Case Studies [FvHJ11] DynaMod: Re-engineering project [vHFG11] MENGES: DSL for embedded systems and tooling [GHH12]

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 15 / 16

slide-87
SLIDE 87

Conclusions

Conclusions

Features Computation engine for SMM and its MAMBA extensions Languages to define measures and queries Meta-Model independent Incorporation of static and dynamic analysis Case Studies [FvHJ11] DynaMod: Re-engineering project [vHFG11] MENGES: DSL for embedded systems and tooling [GHH12] CouldMIG: Framework for cloud migration [FH10, FHS12]

Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 15 / 16

slide-88
SLIDE 88

Literature I

Literature

[FH10] Sören Frey and Wilhelm Hasselbring. Model-Based Migration of Legacy Software Systems to Scalable and Resource-Efficient Cloud-Based Applications: The CloudMIG Approach. In Proceedings of the 1st International Conference on Cloud Computing, GRIDs, and Virtualization (Cloud Computing 2010), pages 155–158, 2010. [FHS12] Sören Frey, Wilhelm Hasselbring, and Benjamin Schnoor. Automatic Conformance Checking for Migrating Software Systems to Cloud Infrastructures and Platforms. Journal of Software Maintenance and Evolution: Research and Practice, 2012. [FvHJ11] Sören Frey, André van Hoorn, Reiner Jung, Wilhelm Hasselbring, and Benjamin Kiel. MAMBA: A measurement architecture for model-based

  • analysis. Technical Report TR-1112, Department of Computer Science, University of Kiel, Germany, December 2011.

[GHH12] Wolfgang Goerigk, Wilheln Hasselbring, Gregor Hennings, Reiner Jung, Holger Neustock, Heiko Schaefer, Christian Schneider, Elferik Schultz, Thomas Stahl, Reinhard von Hanxleden, Steffen Weik, and Stefan Zeug. Entwurf einer domänenspezifischen sprache für elektronische stellwerke. In Software Engineering 2012, pages 119–130, 2012. [Obja] Object Management Group, Inc. Architecture-Driven Modernization (ADM): Abstract Syntax Tree Meta-Model (ASTM).

http://www.omg.org/spec/ASTM/.

[Objb] Object Management Group, Inc. Architecture-Driven Modernization (ADM): Knowledge Discovery Meta-Model (KDM).

http://www.omg.org/spec/KDM/.

[Obj12] Object Management Group. Architecture-Driven Modernization (ADM): Structured Metrics Meta-Model (SMM) Version 1.0.

http://www.omg.org/spec/SMM/1.0/, 2012.

[vHFG11] André van Hoorn, Sören Frey, Wolfgang Goerigk, Wilhelm Hasselbring, Holger Knoche, Sönke Köster, Harald Krause, Marcus Porembski, Thomas Stahl, Marcus Steinkamp, and Norman Wittmüss. DynaMod project: Dynamic analysis for model-driven software modernization. In Proceedings of the 1st International Workshop on Model-Driven Software Migration (MDSM 2011), volume 708 of CEUR Workshop Proceedings, pages 12–13, 2011. Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 16 / 16