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
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
Christian-Albrechts-University, Kiel Software Engineering Group
1
2
3
4
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 2 / 16
Motivation
MAMBA 3.05.2012 3 / 16
Motivation
MAMBA 3.05.2012 3 / 16
Motivation
MAMBA 3.05.2012 3 / 16
Motivation
MAMBA 3.05.2012 3 / 16
Motivation
MAMBA 3.05.2012 3 / 16
Motivation
MAMBA 3.05.2012 3 / 16
Motivation
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 3 / 16
Motivation
getBook : Book
searchBook : List<Book>
getOrders : List<Order>
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 4 / 16
Motivation
getBook : Book
searchBook : List<Book>
getOrders : List<Order>
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 4 / 16
Motivation
getBook : Book
searchBook : List<Book>
getOrders : List<Order>
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 4 / 16
Motivation
getBook : Book
searchBook : List<Book>
getOrders : List<Order>
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 4 / 16
Motivation
getBook : Book
searchBook : List<Book>
getOrders : List<Order> AverageResponseTime
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 4 / 16
Structured Metrics Meta-Model
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 5 / 16
Structured Metrics Meta-Model
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 5 / 16
Structured Metrics Meta-Model
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 5 / 16
Structured Metrics Meta-Model
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 5 / 16
Structured Metrics Meta-Model
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 5 / 16
Structured Metrics Meta-Model
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 5 / 16
Structured Metrics Meta-Model
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 5 / 16
Structured Metrics Meta-Model
bookstore.smm :MeasureLibrary
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 6 / 16
Structured Metrics Meta-Model
:CollectiveMeasure name="NumberOfClasses" accumulator=sum bookstore.smm :MeasureLibrary
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 6 / 16
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
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
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
Structured Metrics Meta-Model
:Operation language="OCL" body="isOCLTypeOf(kdm.code.ClassUnit)"
: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
Structured Metrics Meta-Model
:Operation language="OCL" body="isOCLTypeOf(kdm.code.ClassUnit)"
: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
Structured Metrics Meta-Model
:Operation language="OCL" body="isOCLTypeOf(kdm.code.ClassUnit)"
: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
Structured Metrics Meta-Model
:Operation language="OCL" body="isOCLTypeOf(kdm.code.ClassUnit)"
: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
Structured Metrics Meta-Model
:Operation language="OCL" body="isOCLTypeOf(kdm.code.ClassUnit)"
: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})"
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
Structured Metrics Meta-Model
:Operation language="OCL" body="isOCLTypeOf(kdm.code.ClassUnit)"
: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
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
Structured Metrics Meta-Model
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 7 / 16
Structured Metrics Meta-Model
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 7 / 16
Structured Metrics Meta-Model
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 7 / 16
Structured Metrics Meta-Model
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 7 / 16
Structured Metrics Meta-Model
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 7 / 16
Structured Metrics Meta-Model
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 7 / 16
Structured Metrics Meta-Model
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 7 / 16
Structured Metrics Meta-Model
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 7 / 16
Structured Metrics Meta-Model
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 7 / 16
MAMBA
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 8 / 16
MAMBA
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 8 / 16
MAMBA
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 8 / 16
MAMBA
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 9 / 16
MAMBA
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 9 / 16
MAMBA
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 9 / 16
MAMBA
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 9 / 16
MAMBA
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 9 / 16
MAMBA
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 9 / 16
MAMBA
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 9 / 16
MAMBA
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 9 / 16
MAMBA
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 9 / 16
MAMBA
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 9 / 16
MAMBA
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 9 / 16
MAMBA
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 9 / 16
MAMBA
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 9 / 16
MAMBA
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 10 / 16
MAMBA
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 10 / 16
MAMBA
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
bookstore.smm :SmmModel :Observation requestedMeasures provide list of named measures Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 10 / 16
MAMBA
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
bookstore.smm :SmmModel :Observation requestedMeasures configure measure- ment provider Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 10 / 16
MAMBA
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
bookstore.smm :SmmModel :Observation requestedMeasures create measure- ment result Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 10 / 16
MAMBA
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
bookstore.smm :SmmModel :Observation requestedMeasures add measurement results to SMM Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 10 / 16
MAMBA
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 11 / 16
MAMBA
bookstore.smm :MeasureLibrary Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 12 / 16
MAMBA
bookstore.smm :MeasureLibrary Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 12 / 16
MAMBA
:CollectiveMeasure name="NumberOfClasses" accumulator=sum bookstore.smm :MeasureLibrary Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 12 / 16
MAMBA
: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
MAMBA
: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
MAMBA
: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
MAMBA
: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
MAMBA
:Operation language="OCL" body="isOCLTypeOf(kdm.code.ClassUnit)"
: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
MAMBA
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 13 / 16
MAMBA
MAMBA 3.05.2012 14 / 16
MAMBA
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 14 / 16
MAMBA
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 14 / 16
MAMBA
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 14 / 16
MAMBA
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 14 / 16
MAMBA
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 14 / 16
Conclusions
MAMBA 3.05.2012 15 / 16
Conclusions
MAMBA 3.05.2012 15 / 16
Conclusions
MAMBA 3.05.2012 15 / 16
Conclusions
MAMBA 3.05.2012 15 / 16
Conclusions
MAMBA 3.05.2012 15 / 16
Conclusions
MAMBA 3.05.2012 15 / 16
Conclusions
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 15 / 16
Conclusions
Frey, van Hoorn, Jung, Kiel, Hasselbring MAMBA 3.05.2012 15 / 16
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
[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