80 likes | 103 Views
Performance antipattern detection in distributed systems. Giorgio Luciani, luciani.giorgio@gmail.com Stefano Sotto Corona, ste80s@yahoo.it. Outline. Introduction State of the art Problem setting and designed solution overview Antipattern examples definition UMLAnalyst
E N D
Performance antipattern detectionin distributed systems Giorgio Luciani, luciani.giorgio@gmail.com Stefano Sotto Corona, ste80s@yahoo.it
Outline Introduction State of the art Problem setting and designed solution overview Antipattern examples definition UMLAnalyst OCL definitions of UML temporal semantics Antipattern detection Further development and conclusions
Introduction antipattern (A. Koenig, 1995): in software engineering, design pattern which is often adopted while being a bad solution performance antipatterns in distributed systems: common design errors which concern heavy performance loss in distributed systems very recently presented in literature problem of detection: identification of occurrences of antipatterns in software architectures
State of the art Main reference in literature: Smith and Williams (2000-2003) list of most known design performance antipatterns in generic, object oriented, distributed systems Performance antipattern detection problem very few approaches proposed implementation specific solutions Parsons, 2005: component based enterprise systems Two main subproblems software performance analysis widely investigated in last twenty years design static architectural pattern detection lots of approaches proposed exploiting different techniques
Limits of existing solutions Specific solutions approaches and techniques too tightly coupled with implementation details and architectural choices to be extended to generic cases Software performance analysis based on trace statistical analysis not exploitable for pattern matching Pattern detection tools based on static, structural analyis mostly based on abstract representation (e.g. Abstract Syntax Trees) extracted from source code hardly extensible to dynamic analysis needed for performance pattern matching
Problem setting New approach to dynamic pattern matching needed extensible and generic analyis ability interesting contribution to the problem of software analysis allowing other kinds of analyis (both static and dynamic) high level of abstraction decoupling of implementation and technological details from the logical description of an architecture ability to perform logical analysis over any kind of system during the whole software lifecycle: design, implementation, re-engineering, post-development
Designed solution (i) Architecture description: UML 2.0 (Unified Modeling Language) high-level, logical description mature standard (by OMG) for object-oriented software representation static representation: class diagrams, deployment diagrams, ... dynamic representation: activity diagrams, sequence diagrams,... supported by most commercial and open-source tools through XMI (XML Metadata Interchange) existing reverse engineering tools able to extract UML descriptions from legacy systems
Designed solution (ii) Language for analysis OCL (Object Constraint Language) declarative language for constraint definition and query over UML models developed at IBM and now part of the UML standard