'%(% SPA challenges: how to get rid of worms before - - PDF document

spa challenges how to get rid of worms before
SMART_READER_LITE
LIVE PREVIEW

'%(% SPA challenges: how to get rid of worms before - - PDF document


slide-1
SLIDE 1
  • Catia Trubiani

Dipartimento di Ingegneria e Scienze dell'Informazione e Matematica (DISIM), University of L’Aquila, Italy http://www.di.univaq.it/catia.trubiani

  • !"#$%$&
  • “SPA challenges: how to get rid of worms before contaminating the apple?”,

Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

'%(%

slide-2
SLIDE 2
  • “SPA challenges: how to get rid of worms before contaminating the apple?”,

Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

)% % “apple”

*

“SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

+%( #

problem solution

slide-3
SLIDE 3
  • ,

“SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

'" %-

… get rid of worms before contaminating the apple! Two main %(: 15 Identify when a software system is (performance) sick 25 Fix the issues to get (performance) improvements ./ '

“SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

./'

W.J.Brown, R.C. Malveau, H.W. Mc Cornich III, and T.J. Mowbray. “Antipatterns: Refactoring Software, Architectures, and Project in Crisis”, 1998.

» What to avoid and how to solve (performance) problems! » Negative features of a software system

» Conceptually similar to design patterns: recurring solutions to common design problems » The definition includes common mistakes (i.e. bad practices) in software development as well as their solutions

slide-4
SLIDE 4
  • “SPA challenges: how to get rid of worms before contaminating the apple?”,

Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

1 %

» Problem statement » Reasoning on Performance Antipatterns » Performance Antipatterns in Modeling Languages

  • Unified Modeling Language (UML)
  • Domain Specific Language (PCM)
  • Architecture Description Language (AEmilia)

2

Problem Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

314567+'+676!+- '!899636!+)':+1'31';<8+-

slide-5
SLIDE 5
  • Problem

Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

» Software performance process

(Annotated) Software Architectural Model Model2Model Transformation Performance Model Model Solution Results Interpretation & Feedback Generation Performance Results

Modeling Modeling Analysis Analysis Refactoring Refactoring

639137'!;6 36=5+ ;1756>8+: 5Numbers to be interpreted 5Different levels of granularity 5 Cross5checking of software system characteristics

e.g. UML+Marte, Automata, Process Algebras, PCM, … e.g. Queueing Networks, Simulation Models, …

  • Problem

Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

Software architectural models

UML Component Diagram UML Use Case Diagram UML Deployment Diagram Architectural specification

slide-6
SLIDE 6
  • Problem

Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

Performance results

  • Problem

Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

Software architectural models vs Performance results The interpretation of performance results is not a trivial task!

slide-7
SLIDE 7
  • Problem

Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

Software Performance Feedback: state5of5the5art

'% .'/ '% 7 7 9 ' #

Williams et al. 2002 Software Execution Model System Execution Model SPE5ED …… …… …… …… Parsons et al. 2008 JEE systems Reconstructed runtime model PAD

3#

Barber et al. 2002 Domain Reference Arch. Simulation Model RARE /ARCADE …… …… …… …… Xu 2010 UML Layered QN

  • Perf. Booster

( 6?

Simple Criteria Zheng et al. 2003 UML Simulation Model 5 …… …… …… …… Ipek et al. 2008 Artificial Neural Network Simulation Model 5 Meta5 heuristics Canfora et al. 2005 Workflow Model Workflow QoS Model 5 …… …… …… …… Martens et al. 2010 PCM Simulation Model PerOpteryx

*

Problem Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

Antipattern5based approaches

5 They make use of antipatterns knowledge to cope with performance issues

Williams, L.G., Smith, C.U.: PASA(SM): An Architectural Approach to Fixing Software Performance Problems. In: International Computer Measurement Group Conference, Computer Measurement Group (2002) … Parsons, T., Murphy, J.: Detecting Performance Antipatterns in Component Based Enterprise Systems. Journal of Object Technology 7 (2008)

slide-8
SLIDE 8
  • ,

Problem Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

Rule5based approaches

5 They encapsulate general knowledge on how to improve system performance into executable rules

Barber, K.S., Graser, T.J., Holt, J.: Enabling Iterative Software Architecture Derivation Using Early Non5Functional Property Evaluation. In: ASE, IEEE Computer Society (2002) … Xu, J.: Rule5based automatic software performance diagnosis and

  • improvement. Perform. Eval. 67 (2010)

Problem Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

Design space exploration – simple criteria

5 They explore the design space by examining alternatives that can cope with performance flaws

Zheng, T., Woodside, C.M.: Heuristic optimization of scheduling and allocation for distributed systems with soft deadlines. In Computer Performance Evaluation /TOOLS (2003) … Ipek, E., McKee, S.A., Singh, K., Caruana, R., de Supinski, B.R., Schulz, M.: Efficient architectural design space exploration via predictive modeling. ACM Trans. on Architecture and Code Optimization (2008)

slide-9
SLIDE 9
  • Problem

Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

Design space exploration – Metaheuristics

5 They make use of evolutionary algorithms that look for design alternatives aimed at improving the system performance

Canfora, G., Penta, M.D., Esposito, R., Villani, M.L.: An approach for QoS5 aware service composition based on genetic algorithms. In Beyer, H.G., O'Reilly, U.M., eds.: GECCO, ACM (2005) … Martens, A., Koziolek, H., Becker, S., Reussner, R.: Automatically improve software architecture models for performance, reliability, and cost using evolutionary algorithms. In WOSP/SIPEW (2010)

2

Problem Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

'% .'/ '% 7

  • 7

9 ' #

Williams et al. 2002 Software Execution Model System Execution Model SPE5ED …… …… …… …… Parsons et al. 2008 JEE systems Reconstructed runtime model PAD

9 % Unified Modeling Language (UML), Palladio Component Model (PCM), AEmilia ADL Queueing Network, Simulation Model, Markov Chain Performance Antipatterns aNd feeDback on software Architectures (PANDA)

3#

Barber et al. 2002 Domain Reference Arch. Simulation Model RARE /ARCADE …… …… …… …… Xu 2010 UML Layered QN

  • Perf. Booster
  • ……

……

slide-10
SLIDE 10
  • Problem

Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

Software performance process: introducing

(Annotated) Software Architectural Model Performance Model Model Solution Results Interpretation & Feedback Generation Performance Results

Performance Antipatterns Modeling Modeling Analysis Analysis Refactoring Refactoring

Model2Model Transformation

Antipattern5based Rules and Actions Detection & Solution of Performance Antipatterns

  • Problem

Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

A bird’s5eye look to the problem

  • 15 Representing

Antipatterns 25 Detecting Antipatterns 35 Solving Antipatterns

slide-11
SLIDE 11
  • Problem

Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

What are the software architectural model elements we need for representing antipatterns?

3( '@

  • Problem

Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

( '@

How to explore the architectural models to recognize antipattern occurrences?

slide-12
SLIDE 12
  • Problem

Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

  • "( '@

What are the (that lead the architectural model to remove performance flaws?

*

Problem Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

36'1!8!&1! 639137'!;6'!+8'++63!

slide-13
SLIDE 13
  • ,

Problem Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

Software Performance Antipatterns Classification

  • C. U. Smith and L. G.Williams. “More new software performance antipatterns:

Even more ways to shoot yourself in the foot”, 2003.

' #

  • Unbalanced

Processing Concurrent Processing Systems Processing cannot make use of available processors. Restructure software or change scheduling algorithms to enable concurrent execution. “Pipe and Filter” Architectures The slowest filter in a “pipe and filter” architecture causes the system to have unacceptable throughput. Break large filters into more stages and combine very small

  • nes to reduce overhead.

Extensive Processing Extensive processing in general impedes overall response time. Move extensive processing so that it doesn’t impede high traffic or more important work. … … … The Ramp Occurs when processing time increases as the system is used. Select algorithms or data structures based on maximum size or use algorithms that adapt to the size.

( " 7 "

Problem Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

Single5value vs Multiple5values

» Single5value: performance indices are evaluated in a certain interval, i.e. the mean, max or min values. » Multiple5values: performance indices are evaluated along the time, i.e. the values trend (or evolution).

time P time P 2P nP …

slide-14
SLIDE 14
  • Problem

Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

SPA: why are they complex?

  • C. U. Smith and L. G.Williams. “More new software performance antipatterns:

Even more ways to shoot yourself in the foot”, 2003.

' #

  • Blob

Occurs when a single class or component either 1) performs most of the work of an application or 2) holds all of the applications data. Either manifestation results in excessive message traffic that can degrade performance. Refactor the design to distibute intelligence uniformly over the applications top5level classes, and to keep related data and behavior together.

… … …

What does it mean “” of the work”? What does it mean “?"” message traffic?

2

Problem Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

< AB .CC%#/ % DDD

slide-15
SLIDE 15
  • Problem

Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

Graphical representation of the “Blob” Antipattern

314567@ “occurs when a single class or component either 1) performs of the

work of an application or 2) holds all of the applications data. Either manifestation results in ?" message traffic that can degrade performance”

(Annotated) Software Architectural Model 7 (Annotated) Software Architectural Model 7 i i i i

  • Problem

Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

Graphical representation of the “Blob” Antipattern 15=+81!@“Refactor the design to distribute intelligence uniformly over the

applications top5level classes, and to keep related data and behavior together”

(Annotated) Software Architectural Model 7E (Annotated) Software Architectural Model 7E

slide-16
SLIDE 16
  • Problem

Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

Idea: building a "# to include all model elements involved in the antipatterns specification

STATIC VIEW: software resources, relationships among them, … to model static aspects clientRole supplierRole Relationship

DYNAMIC VIEW

Message senderRole receiverRole

DEPLOYMENT VIEW

ProcesNode utilization deployedInstance F "(G SoftwareEntity Instance DYNAMIC VIEW: interactions such as messages between sw resources, … to model dynamic aspects DEPLOYMENT VIEW: hardware resources, … to model deployment aspects

STATIC VIEW

  • Problem

Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

PAML: Perf.Antipatterns Modeling Language

36'@3 6 '

slide-17
SLIDE 17
  • Problem

Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

The “Model Elements Specification” sub5MM: READ

*

Problem Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

Basic Idea: a performance antipattern can be formalized as a logical predicate LPantipatName A logical predicate is made of (Static, Dynamic, Deployment) basic predicates, BPi

LPantipatName = BP1 (∧, ∨) … (∧, ∨) BPn

slide-18
SLIDE 18
  • ,

Problem Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

Auxiliary elements in the formalization process

9

> FfunctionName elaborates information of the model (e.g. FnumMsgs is a function counting the number of messages sent by an instance of the class/component model element)

+%%

> ThthresholdName is a value used to establish the acceptable range of values for system features (e.g. ThmaxMsgs is a threshold value representing the upper bound for an acceptable number of messages exchanged among two software

  • instances. It can be estimated, for example, as the average number
  • f all messages sent by all software entities, plus the

corresponding variance)

Problem Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

∨ ∧

(

The Blob antipattern occurs when the following predicate is true: where represents the set of SoftwareEntityInstance(s), and represents the set of Service(s).

) ) ( )

(

All the (swEx, swEy, S) instances satisfying the predicate must be pointed out to the designer for a deeper analysis.

slide-19
SLIDE 19
  • Problem

Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

Overview of Antipatterns Thresholds Thresholds in performance antipatterns specification/representation

(@%% (( %.C(C %(%# $# ?%((/C @ %%(

  • .C(C%(%"

H$I(%/C

2

Problem Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

Each antipattern can be expressed by means of first5order logics But this is only OUR interpretation of their textual description

*see more details in:

  • V. Cortellessa, A. Di Marco, and
  • C. Trubiani. “An approach for

modeling and detecting Software Performance Antipatterns based on first5

  • rder logics”, accepted for

publication in the journal of Software and Systems Modeling (SoSyM), 2012.

slide-20
SLIDE 20
  • Problem

Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

J:

Once we have (somehow) “represented” antipatterns, how can we detect them in a software model?

*

Problem Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

< #% %% DDD

slide-21
SLIDE 21
  • *

Problem Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

Define heuristics to calculate antipatterns thresholds

E.g., ThmaxConnects can be estimated as the average number of connections per component, by considering the entire set of software components in the software system, plus the corresponding variance.

*

Problem Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

A case study: the “E5commerce System”

software model excerpt performance model

Requirement Required Value Predicted Value RT(browseCatalog) 1.2 sec 1.5 sec RT(makePurchase) 2 sec 2.77 sec

slide-22
SLIDE 22
  • *

Problem Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

A preliminary complex step: ( %%

design properties (e.g. excessive message traffic) performance results (e.g. high network utilization)

Detecting Antipatterns

**

Problem Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

Performance Antipattern occurrences in ECS:

Antipattern Problem Solution

Blob libraryController performs most of the work, it generates excessive message traffic towards bookLibrary Refactor the design to keep related data and behavior together, i.e. delegate some work from libraryController to bookLibrary Concurrent Processing Systems Processing cannot make use of the processor webServerNode Restructure software or changing scheduling algorithms between processors libraryNode and webServerNode Empty Semi Trucks An excessive number of requests are sent by the userController to perform the task of registering users Refactor the design combining items into messages to make better use of available bandwidth

Detecting Antipatterns

slide-23
SLIDE 23
  • *,

Problem Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

Detecting Antipatterns

» An example: detecting the EST antipattern instance

The (userController, RegisterUsers) instance satisfies the 6 + predicate, hence it must be pointed out to the designer for a deeper analysis

*0

Problem Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

'% J Once we have (somehow) “detected” antipatterns, which refactoring actions must be taken to remove (some of) them? 9(% % First5Order5Logic representation of antipatterns can help: refactoring actions can be (automatically)

  • btained from negating predicates!
slide-24
SLIDE 24
  • *

Problem Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

An example: solving the EST antipattern instance

The removal of the EST antipattern gives rise to a new software architectural model (called here as “ECS \ {est}”)

Solving Antipatterns

*2

Problem Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013 ECS \ {est} ECS \ {cps}

Performance Analysis of refactored models

Modeling Modeling Analysis Analysis

Response Time, Utilisation, …

Queueing Network MVA Prima5UML ECS \ {blob} Unified Modeling Language (UML)

(Annotated) Software Architectural Model RT(browseCatalog) < = 1.2 sec RT(makePurchase) < = 2 sec ECS 1.5 sec 2.77 sec ECS \ {blob} 1.14 sec 2.18 sec ECS \ {cps} 1.15 sec 1.6 sec ECS \ {est} 1.5 sec 2.24 sec

slide-25
SLIDE 25
  • *

Problem Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

Some more thoughts on refactoring

RBML (Role5Based Modelling Language) defines the available constructs (roles and associations among them)

the number of elements playing that role characterizes a (part of a) system in terms of roles that are played by the elements of the system It exists a <<T Role>> for each type T in the modelling language used to specify the system characterization of the () model that has to be refactored characterization of the refactored (() model

,

Problem Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013 Contextual elements: that can support the removal of the bad practice Elements from the antipattern detection phase Empty Semi Trucks (EST) 5 SOURCE ROLE MODEL

slide-26
SLIDE 26
  • ,

Problem Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013 Added elements Empty Semi Trucks (EST) 5 TARGET ROLE MODEL

,

Problem Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

639137'!;6'!+8'++63! 8!71658!&5'!&='&6

slide-27
SLIDE 27
  • ,

Problem Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

Antipattern5based process

(Annotated) Software Architectural Model Performance Results Detecting Antipatterns (i.e. Results Interpretation) (Annotated) Software Architectural Model

Candidate1

(Annotated) Software Architectural Model Candidaten Antipatterns5based Rules and Actions

Solving Antipatterns (i.e. Feedback Generation) Model2Model Transformation Model Solution Performance Model 5 Generic Modeling Languages (UML) 5 Domain Specific Languages (PCM) 5 Architecture Description Languages (Aemilia) 5 … ,*

Problem Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

5( ( -

representing detecting solving

Generic Modeling Language (i.e. UML + Marte profile) ...any modeling language has “antipatterns5 concepts” Domain Specific Language (i.e. Palladio Component Model) Architectural Description Language (i.e. AEmilia)

  • UML

PCM AEmilia

slide-28
SLIDE 28
  • ,,

Problem Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

MDE support: metamodel and model transformations

representing detecting solving

Generic Modeling Language (i.e. UML + Marte profile) ...any modeling language has “antipatterns5 concepts” Domain Specific Language (i.e. Palladio Component Model) Architectural Description Language (i.e. AEmilia)

  • M2: Metamodels

M1: Models

UML model (Marte annotated) PCM model AEmilia specification

,0

Problem Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

Antipatterns in concrete modeling languages

Performance Antipatterns READ UML+MARTE Palladio Component Model Aemilia ADL

Blob

SoftwareEntity ProcesNode BasicResDemand

… …

UML Component UML Node

PCM Basic Component PCM Resource Container

ARCHI_ELEM_TYPE

… …

slide-29
SLIDE 29
  • ,

Problem Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

Is UML+Marte expressive enough to specify antipatterns?

,2

Problem Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

Is PCM expressive enough to specify antipatterns?

slide-30
SLIDE 30
  • ,

Problem Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

Is Aemilia expressive enough to specify antipatterns?

Problem Reasoning on

  • Perf. Antipat.

PA in Modeling Languages “SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

Expressiveness of the considered modeling languages

UML + Marte profile Palladio Component Model Antipattern Detectable Solvable Detectable Solvable Blob Unbalanced Processing Concurrent Processing Systems Pipe and Filter Architectures

Extensive Processing Tower of Babel

… … … … …

The Ramp Traffic Jam More is Less AEmilia Detectable Solvable

≈ ≈

… …

= fully detectable/solvable = partially detectable/solvable = not detectable/solvable

✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✖ ✖ ✖ ✖ ✖ ✖ ✖ ✖ ✖ ✖ ✖ ✖ ✖ ✖ ✖ ✖ ✖ ✔ ✖ ≈

slide-31
SLIDE 31
  • “SPA challenges: how to get rid of worms before contaminating the apple?”,

Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

18 4

− Gap textual/formal representations − Threshold setting − Uncertainty/incompleteness in:

> Architectural/Performance models,

antipatterns specifications, input parameters (e.g., workload, op. profile) − Validation on larger model repositories (industrial case studies)

“SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

18 '"

− Evaluating the framework on:

> Precision (ratio of actual antipatterns found) > Recall (ratio of antipatterns found overall)

− Language5specific antipatterns (other languages to experiment?) − Antipatterns at the code level − Combining approaches (antipatterns with metaheuristics) − Tool construction and integration

slide-32
SLIDE 32
  • “SPA challenges: how to get rid of worms before contaminating the apple?”,

Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

− Interesting points? − Open issues? − Threats to validity? − Links to other research directions? − …

  • +%E G

0*

“SPA challenges: how to get rid of worms before contaminating the apple?”, Invited talk @ Joint Kieker/Palladio Days, Karlsruhe, Germany, 27529 November, 2013

+% G

J catia.trubiani@univaq.it

Credits for this invited talk go to…

Vittorio Cortellessa, Antinisca Di Marco, Davide Arcelli, Martina De Sanctis, Romina Eramo, Alfonso Pierantonio, Anne Koziolek, Ralf Reussner