Your SlideShare is downloading. ×
Combining fUML and Profiles for Non-Functional Analysis Based on Model Execution Traces
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Combining fUML and Profiles for Non-Functional Analysis Based on Model Execution Traces

272
views

Published on

For developing software systems it is crucial to consider non-functional properties already in an early development stage to guarantee that the system will satisfy its non-functional …

For developing software systems it is crucial to consider non-functional properties already in an early development stage to guarantee that the system will satisfy its non-functional requirements.
Following the model-based engineering para\-digm facilitates an early analysis of non-functional properties of the system being developed based on the elaborated design models.
Although UML is widely used in model-based engineering, it is not suitable for model-based analysis directly due to its lack of formal semantics.
Thus, current model-based analysis approaches transform UML models into formal languages dedicated for analyses purpose, which may introduce accidental complexity of implementing the required model transformations.

The recently introduced fUML standard provides a formal semantics of a subset of UML enabling the execution of UML models.
In this paper, we show how fUML can be utilized for analyzing UML models directly without having to transform them.
We present a reusable framework for performing model-based analyses leveraging execution traces of UML models and integrating UML profiles heretofore unsupported by fUML.
A case study in the performance analysis domain is used to illustrate the benefits of our framework.

Published in: Technology

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
272
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
31
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. University of L’Aquila Department of Information Engineering, Computer Science and Mathematics Combining fUML and Profiles for Non-Functional Analysis Based on Model Execution TracesTanja Mayerhofer, Philip Langer Luca BerardinelliBusiness Informatics Group Sealab Quality GroupInstitute of Software Technology and Interactive Systems Department of Information Engineering , Computer Science and MathematicsVienna University of Technology University of L’AquilaFavoritenstraße 911/1883, 1040 Vienna, Austria Via Vetoio, Coppito 67100 L’Aquila , Italyphone: 43 (1) 5880118804 (secretary), fax: 43 (1) 5880118896office@big.tuwien.ac.at, www.big.tuwien.ac.at
  • 2. Outline• Motivations• UML-Based Analysis Methodologies: • translational approaches • fUML-based approaches• The proposed framework • Model Execution • UML/fUML integration • UML-based Analysis • Reusable and Analysis-specific components• Case Study: Early Performance Analysis• Future work 2
  • 3. Motivations• Problems • fUML ignores UML Profiles: stereotypes and tags don’t have a running counterpart at the instance level. • fUML cannot be exploited by model-based methodologies that relies on model annotations • Semantic anchoring mechanisms (e.g., model transformations) are always required that link external semantics (and notations) to (a subset of )UML modeling elements• Solution (contribution) • a reusable framework for performing model-based analyses leveraging execution traces of UML models and integrating UML profiles heretofore unsupported by fUML.• Example given • Modeling solution for Early Performance Analysis • notation: fUML, MARTE Profile • methodology: Software Performance Engineering (SPE, by C. Smith) • tool: framework tailored for early model-based performance analysis 3
  • 4. Motivations Ninth International ACM Sigsoft Conference on the Quality of Software Architectures QoSA 2013 Vancouver, Canada, June 17-21, 2013 The conference is a part of CompArch 2013 http://comparch2013.org Notification: March, 25th Architecture Evaluation • quality assessment of legacy systems and third party applications • empirical validation, testing, prototyping and simulation for assessing architecture qu • quality attributes of software architectures • methods and processes for evaluating architecture quality • model-driven evaluation of software architecture quality • evaluating the effects of architectural adaptations at run-time • lessons learned and empirical validation of theories and frameworks on architecture quality 4
  • 5. UML-Based Analysis Methodologies: translational approaches Input Output UML Analysis Model Model Analysis Analysis Model Model Model Model Analysis Analysis Model «analyzedBy» Analysis «appliedTo» «produce» Report Report Report Profile Profile Profile Application Application Application «integrate» «produce» Integration Integration Analysis Analysis Integration Tool Analysis Tool Tool Tool Tool Tool• UML-based methodologies prescribe model annotations on input UML Models added through user-defined or standard UML Profiles• Integration Tools produce Analysis Models in different (textual/graphilcal) (formal) notations for sake of semantics anchoring• Model Analysis Reports are produced by Analysis Tools to assess functional/non- functional properties of the modeled system 5
  • 6. UML-Based Analysis Methodologies: translational approaches (example)Vittorio Cortellessa, Raffaela Mirandola: PRIMA-UML: a performance validation incremental methodology on earlyUML diagrams. Sci. Comput. Program. 44(1): 101-129 (2002) • Three “metamodels” combined (UML, S-PMIF, PMIF); • Four unidirectional m2m transformations (UML->SPMIF, UML->PMIF, SPMIF+PMIF->SPMIF, SPMIF+PMIF->PMIF) • Three different technical spaces (MOF, Ecore, XML) • Toolset: modeling tools (UML, S-PMIF, PMIF), analysis tools (Execution Graph Analysis, QN Solvers) [Kurtev02] Kurtev, I., Bézivin, J., Aksit, M. "Technological Spaces: An Initial Appraisal", In Proceedings of the Confederated International Conferences CoopIS, DOA, and ODBASE 2002, Industrial track, Irvine, CA, USA, 2002. 6 http://wwwhome.cs.utwente.nl/~kurtev/files/TechnologicalSpaces.pdf
  • 7. UML-Based Analysis Methodologies: translational approaches Input Output UML Analysis Model Model Analysis Analysis Model Model Model Model Analysis Analysis Model «analyzedBy» Analysis «appliedTo» «produce» Report Report Report Profile Profile Profile Application Application Application «integrate» «produce» Integration Integration Analysis Analysis Integration Tool Analysis Tool Tool Tool Tool Tool model transformations for semantic anchoringPros• Existing analysis techniques and tools for the target language can be directly exploited.Cons• Additional level(s) of indirection• Deep knowledge of source/target(s) metamodels and semantics, model transformation techniques.• Implementation and maintenance of model transformations (as Integration Tools) 7• Academic tools less stable than industrial-strength ones
  • 8. UML-Based Analysis Methodologies: fUML-based approaches - Overview Input UML/fUML Integration fUML-based Model Execution Output UML Model Model Model Model Analysis Analysis Analysis «appliedTo» Report Report Report Profile Profile Profile Application Application Application UML-based Analysis UML fUMLCons- (not) additional level of indirection- (not) implementation and maintenance of model transformations- (not) deep knowledge of source/target(s) metamodels and semantics, model transformation techniques. 8
  • 9. UML-Based Analysis Methodologies: fUML-based approaches - Overview Input UML/fUML Integration fUML-based Model Execution Output UML Model Model Model Model Analysis Analysis Analysis «appliedTo» Report Report Report Profile Profile Profile Application Application Application UML-based Analysis UML fUMLPros  Contribution of paper- Integration of the analysis algorithms directly with the design modeling language- Integration of Model Analysis Report(s) directly with the design modeling language 9
  • 10. The proposed framework: fUML-based Model Execution• fUML View: a UML Model whose fUML-based Model Execution elements belong to the fUML fUML language units (Classes, Common View «executedBy» Behaviors, Activities, and Actions) Extended fUML VM• Extended fUML VM: standard fUML «produce» fUML VM + moliz extensions for Execution Trace 1. analyzing the execution  Trace model  Chronological execution order  Input / output  Token flow  Call hierarchy 2. observing the execution state  Event model 3. controlling the execution  Command API 10
  • 11. The proposed framework: fUML-based Model Execution• fUML View: a UML Model whose fUML-based Model Execution elements belong to the fUML fUML language units (Classes, Common View «executedBy» Behaviors, Activities, and Actions) Extended fUML VM• Extended fUML VM: standard fUML «produce» fUML VM + moliz extensions for Execution Trace 1. analyzing the execution  Trace model 2. observing the execution state  Event model  Start / end of activity execution  Start / end of activity node execution  Suspension of activity execution  Modification of extensional values 3. controlling the execution  Command API 11
  • 12. The proposed framework: fUML-based Model Execution• fUML View: a UML Model whose fUML-based Model Execution elements belong to the fUML fUML language units (Classes, Common View «executedBy» Behaviors, Activities, and Actions) Extended fUML VM• Extended fUML VM: standard fUML «produce» fUML VM + moliz extensions for Execution Trace 1. analyzing the execution  Trace model 2. observing the execution state  Event model 3. controlling the execution  Command API  Start / stop execution  Resume execution until certain activity node  Resume execution stepwise  Retrieve runtime information 12
  • 13. The proposed framework: UML/fUML Integration Input UML/fUML Integration fUML-based Model Execution UML «integrate» fUML «produce» fUML «executedBy» Model Adapter View Extended «appliedTo» «use» fUML VM Profile fUML Profile Profile «integrate» UML Trace «integrate» «produce» Application Execution Application Application Adapter Trace «produce» Execution UML Execution Trace Execution Trace Trace• fUML Adapter: it truncates all unsupported UML elements, as well as the profile applications, and generates the in-memory representation of fUML models processable by the fUML virtual machine;• UML Trace Adapter: It maps the fUML Execution Traces with the corresponding modeling elements on the source UML Model by exploiting mapping information saved by the fUML Adapter. integrated UML execution trace is created• UML Execution Trace: it refers to the original elements of the UML model instead of the fUML view. 13
  • 14. The proposed framework: UML-based Analysis Input UML/fUML Integration fUML-based Model Execution Output UML «integrate» fUML «produce» fUML «executedBy» Model Model Adapter View Model Model Analysis Analysis Extended Analysis «appliedTo» Report Report «use» fUML VM Report Profile fUML Profile Profile «integrate» UML Trace «integrate» «produce» Application Execution Application Application Adapter Trace «produce» Execution UML «analyzedBy» Model-based «produce» Execution Trace Execution Analyzer Trace Trace UML-based AnalysisModel-based Analyzer: A model-based analysis is typically performed to answer certain questions about theexpected behavior of the modeled system. The expected behavior is directly reflected by the trace of themodels execution and can now be analyzed using a model-based analyzer, which computes certain metricsby interpreting the execution trace and the additional information captured using profile applications. 14
  • 15. The proposed framework: Reusable and specific to analysis components Input UML/fUML Integration fUML-based Model Execution Output UML «integrate» fUML «produce» fUML «executedBy» Model Model Adapter View Model Model Analysis Analysis Extended Analysis «appliedTo» Report Report «use» fUML VM Report Profile fUML Profile Profile «integrate» UML Trace «integrate» «produce» Application Execution Application Application Adapter Trace «produce» Execution UML «analyzedBy» Model-based «produce» Execution Trace Execution Analyzer Trace Trace UML-based Analysis Caption: fUML-based Modeling Solution for Software Performance Engineering (SPE) C.U. Smith and L.G. Williams. Performance solutions: A practical guide to specific to the analysis creating responsive, scalable software, volume 1. Addison-Wesley Boston, 2002. Performance Artifact MARTE Execution Time Analyzer Application Report (EG analysis) Tool 15
  • 16. Case Study: Early performance analysis based on fUML (1) Case Study  e-health system  Retrieval of patient information  Analyze end-to-end execution time  Software View: UML Classes (structure)  software components  component operations  Hardware View: UML Classes (structure)  software allocation on hardware  hardware platform resources: processing, storage, communication  MARTE Annotations: hardware resources details like  frequencies of CPUs  bandwidth of comm.networks  disk access time ignored by fUML  … 16
  • 17. Case Study: Early performance analysis based on fUML (2) Software View: UML Activities (behavior)  associated to each component operation  MARTE Annotations: resource usages (a.k.a. demand vectors in SPE) for any atomic behavioral unit. The usedResources correspond to those equipping the execution host where the software components are allocated ignored by fUMLact Client::RPD int RPD messages<<ResouceUsage>> stereotype ignored by fUML 17
  • 18. Case Study: Early performance analysis based on fUML (3)Analysis of execution time based on Execution Graph (graph reduction algorithm) EGs are particularly suitable during the early stages of a software development process because an EG "[...] characterizes the resource requirements of proposed software alone, in the absence of other workloads, multiple users or delays due to contention for resources." [10] UML Metamodel UML2EG S-PMIF Metamodel transformation «conforms to» «conforms to» ……………………………………………………………………………………………… Eclipse MOSQUITO SPEED UML (UAQ) (C.Smith) 18 http://www.perfeng.com/
  • 19. Case Study: Early performance analysis based on fUML (3)Analysis of execution time based on Execution Trace (graph reduction algorithm) execTime = 184,3489 sec +nodeExecutions execTime = 184,3489 sec t : Trace ae1 : ActivityExecution c1 : CallActionExecution - activity = eHS::invokeServices() - callee = Client::requestPatientInfoPages() +activityExecutions +callee execTime = 184,3489 sec +nodeExecutions execTime = 28,3156 sec ae2 : ActivityExecution c2 : CallActionExecution - activity = Client::requestPatientInfoPages() - callee = AppServer::getPatientData() +activityExecutions execTime = 156,0333 sec c3: CallActionExecution execTime = 28,3156 sec +nodeExecutions - callee = displayResults ae3 : ActivityExecution - activity = AppServer::getPatientData() +activityExecutions +callee execTime = 0,0722 sec c4 : CallActionExecution execTime = 0,2888 sec - callee = Database::loginInteraction() c5 : CallActionExecution - callee = Database::getPatientData() execTime = 0,0767 sec c6 : CallActionExecution execTime = 0,0736 sec - callee = Database::getMedicalHistories() c7 : CallActionExecution - callee = Database::getDiseaseData() execTime = 18,5570 sec c8 : CallActionExecution execTime = 9,2473 sec - callee = ImageServer::getXrayImages() c9 : CallActionExecution - callee = ImageServer::getXrayImages() 19
  • 20. Case Study: Early performance analysis based on fUML (3)Analysis of execution time based on Execution Trace (graph reduction algorithm) 20
  • 21. Future Work: overviewDifferent Types of possible future work: fUML-based Modeling Solution for... * Profile Model Analysis Model Analyzer• Modeling Solutions Applications Report • for different Functional Analyses • for Non-Functional Analyses • for combined Functional/Non-Functional Analyses fUML-based Model Execution fUML «executedBy» View Extended• Extending the Model Execution component fUML VM fUML Execution «produce» Trace• Extending the applicability of the framework @runtime Framework Code for Sensor Motes UML2Agilla «produce» Agilla Compiler Code 21