Metrics for AOP: Do Aspects Help?
|
|
- Judith Cannon
- 5 years ago
- Views:
Transcription
1 Metrics for AOP: Do Aspects Help? Shmuel Katz From slides of Alessandro Garcia Lancaster University, UK Lecture at AOSD Summer School, Genoa, July 2007 A. Garcia (2007) 1
2 Does AOP scale up in realistic scenarios? Common assumption: implementation of certain crosscutting concerns are always better modularized by aspect-oriented programming (AOP) often cited in introductory AOP texts as "killer applications" of aspect-orientation E.g. exception handling (EH), some design patterns, security, persistence How does AOP scale in more realistic scenarios? aspectual composition of design patterns aspectization of varied EH strategies? 2
3 We have not yet addressed many burning research questions! Positive and negative influences of AOP on fundamental principles? coupling, cohesion, and simplicity open-closed principle, and stability of module interfaces Are the aspectual modules reusable entities? can aspectized handlers and patterns be reused? Is it always beneficial to aspectize the traditional crosscutting concerns (CCCs)? Is modularity preserved in intricate aspectual compositions?... involving interaction of multiple CCCs... involving 3 or more design patterns... involving changes of a diverse nature 3
4 Design Assessment How to assess designs or implementations with respect to external attributes? Qualities Factors Internal Attributes Metrics Reusability Understandability Separation of Concerns CDC CDO CDLOC VS Size LOC NOA WOC Maintainability Flexibility Coupling Cohesion CBC DIT LCOO 4
5 Experimental Procedures - Measurement: 9 used metrics supported by our tool: AJATO Attributes Separation of Concerns Size Coupling Cohesion Metrics CDC CDO CDLOC LOC NOA NOC CBC DIT LCOO Concern Difusion over Components Concern Difusion over Operations Concern Difusion over LOC Lines of Code Number of Attributes Number of Operations Coupling between Components Depth of Inheritance Tree Lack of Cohesion in Operations C. Sant Anna, A. Garcia, C. Chavez, C. Lucena, A. Staa. On the Reuse and Maintenance of Aspect-Oriented Software: An Assessment Framework. Proc. of the ACM Sigsoft XVII Brazilian Symposium on Software 5 Engineering, Manaus, Brazil, October 2003, pp
6 Coupling OO AO <<crosscuts>> CBC (Coupling between Components) Measures the number of components which are coupled to a given component (class or aspect) coupling -> easier to change [CK94] Chidamber, S., Kemerer, C. A Metrics Suite for Object Oriented Design. IEEE Transactions on Software Engineering, 20 (6), June 1994, pp
7 Cohesion Measures Method Aspect A Class B Advice/IT declarations Relationship Class C Low cohesion Aspect D High cohesion LCOM (Lack of cohesion): measures how much internal methods of a class are interconnected 7 LCOM value -> easier to change
8 Other Conventional Metrics Lines of code Number of attributes Number of methods might help identification of replicated code Weighted methods per class compute the number of parameters in method declarations might help identification of wide interfaces due to the presence of crosscutting concerns Higher the measure, higher the complexity 8
9 Concern Metrics (for aspects) Three concerns: figure, subject, observer Concern: Subject public class Point implements Subject { private HashSet observers; <<interface>> Subject addobserver removeobserver notify Figure 1 * FigureElement <<interface>> Observer update private int x; private int y; public Point(int x, int y, Color color) { this.x=x; this.y=y; this.observers = new HashSet(); } public int getx() { return x; } public int gety() { return y; } Point Line Screen public void setx(int x) { this.x=x; notifyobservers(); } getx gety addobserver removeobserver notify setx sety getp1 getp2 addobserver removeobserver notify setp1 setp2 update Display public void sety(int y) { this.y=y; notifyobservers(); } public void addobserver(observer o) { this.observers.add(o); } Role subject CDC - # Classes = 3 CDM - # Methods = 13 CDLOC - # Transition Points = 10 } public void removeobserver(observer o) { this.observers.remove(o); } public void notifyobservers() { for (Iterator e = observers.iterator() ; e.hasnext() ;) { ((Observer)e.next()).update(this); } } 9
10 Lack of Concern-based Cohesion Counts the degree of tangling Concerns: Subject, Observer and Figure public class Screen implements Subject, Observer { private HashSet observers; <<interface>> Observer update <<interface>> Subject addobserver removeobserver notify Figure 1 * FigureElement private String name; public Screen(String s) { this.name = s; observers = new HashSet(); } public void display (String s) { System.out.println(name + ": " + s); notifyobservers(); } Screen display addobserver removeobserver notify update Point getx gety addobserver removeobserver notify setx sety Line getp1 getp2 addobserver removeobserver notify setp1 setp2 public void addobserver(observer o) { this.observers.add(o); } public void removeobserver(observer o) { this.observers.remove(o); } public void notifyobservers() { for (Iterator e = observers.iterator() ; e.hasnext() ;) { ((Observer)e.next()).update(this); } } public void update(subject s) { Class Screen LCC - # Concerns = 3 ( Figure, Subject and Observer ) } } display("update received from a "+s.getclass().getname()+" object"); Class Point LCC - # Concerns = 2 ( Figure and Subject ) 10
11 Broadly-scoped and localized crosscutting concerns R e p l i c a t i o n Empirical Studies SoC improvements = 17 patterns composition transparency = 15 patterns reusable solutions = 12 patterns 1 st : Qualitative Studies Aspectization Case Studies 2 nd : Quantitative Studies Multi-Agent Systems (S:P&E 04) Multi-Agent Systems Design Patterns (OOPSLA.02) Design Patterns Exception Handling (ICSE.00) Exception Handling reduction of more than 85% in the number of handlers Persistence & Distribution (OOPSLA.02) Persistence & Distribution reduction of 20% of code Metrics (SoC, Coupling, Cohesion, 11 Size)
12 The Chosen Crosscutting Concerns Exception Handling (EH) broadly-scoped CCCs explore dedicated AspectJ constructs softening exceptions and around advice 23 GoF Design patterns more localized CCCs, recurring design solutions multiple forms of aspectization multiple inheritance and role-based collaborations Evolving N-tier software architecture multiple architecturally-relevant CCCs transaction management, distribution, and concurrency control F. Filho, N. Cacho, E. Figueiredo, A. Garcia, and C. Rubira. Exceptions and Aspects: The Devil is in the Details. In Proc. of FSE-14, 14th Intl. Conf. on Foundations of Soft. Engineering, November N. Cacho, C. Sant'Anna, E. Figueiredo, A. Garcia, and T. Batista. Composing Design Patterns: a Scalability Study of Aspect-Oriented Programming. In Proc. Of AOSD '06, March P. Greenwood et al. On the Impact of Aspectual Decompositions on Design Stability: An Empirical 12 Study. 21st European Conf. on Object-Oriented Programming (ECOOP.07), July 2007, Germany.
13 ASPECTJ JAVA Experimental Procedures Selection of case studies We partially or totally considered the implementation of: Telestrada: traveller information system 3350 LOC, > 200 modules Pet Store: e-commerce demo for Java EE platform LOC, > 330 modules Eclipse CVS Core Plugin LOC, > 170 modules Health Watcher: web-based information systems for healthcare complaints 6630 LOC, > 134 modules 13
14 Aspectization of Handlers Aspectization strategy Moved try-catch, try-catch-finally, and try-finally blocks to aspects Handler implementation whenever possible -> after advice: simpler ones; raise exceptions otherwise -> around advice softened checked exceptions For each target system: different form for structuring EH aspects Method signatures (throws) and exception raising not considered Looked for reuse opportunities protected region handler 14
15 Results - Separation of Concerns difference is granted to the distinct EH aspectization strategies no reuse & many operations with more reuse was exceptionally high than one try-catch block 15
16 Results - Size Contradicting the general intuition that AOP makes programs smaller some reuse was compensated by the overhead of using AspectJ some reuse of handlers 16
17 Lessons Learned - I Separation of EH concerns comparing our findings and the ones in the LL study our study confirms the improved textual separation Coupling no major influence of aspectization however, a closer examination in the code... subtle kind of coupling use of exception softening creates an implicit, compile-time dependency of the base code on the EH aspect in addition, softening exceptions is not a safe mechanism Exception and Throwable should never be softened AspectJ renders Java s static checks useless Size increased number of operations (join point exposition) new operations: 3.3% Telestrada, 2.9% in the Java Pet Store, 0.79% in the CVS Plugin, 1.7% in the Health Watcher negative result: many cases did not state the developer intent 17
18 Lessons Learned - II Is Exception Handling a Reusable Aspect? reusing handlers is harder than is usually advertised HW system: reduction of CDO 45% very simple handlers contrasts strongly with the findings of Lippert and Lopes (85% reduction in the number of handlers) 18
19 The Chosen Crosscutting Concerns Exception Handling (EH) broadly-scoped CCCs explore dedicated AspectJ constructs softening exceptions and around advice 23 GoF Design patterns more localized CCCs, recurring design solutions multiple forms of aspectization multiple inheritance and role-based collaborations Evolving N-tier software architecture multiple architecturally-relevant CCCs transaction management, distribution, and concurrency control F. Filho, N. Cacho, E. Figueiredo, A. Garcia, and C. Rubira. Exceptions and Aspects: The Devil is in the Details. In Proc. of FSE-14, 14th Intl. Conf. on Foundations of Soft. Engineering, November N. Cacho, C. Sant'Anna, E. Figueiredo, A. Garcia, and T. Batista. Composing Design Patterns: a Scalability Study of Aspect-Oriented Programming. In Proc. Of AOSD '06, March P. Greenwood et al. On the Impact of Aspectual Decompositions on Design Stability: An Empirical 19 Study. 21st European Conf. on Object-Oriented Programming (ECOOP.07), July 2007, Germany.
20 Pattern compositions are everywhere Design patterns are recognized as useful and important 23 Gang-of-Four (GoF) patterns [Gamma95] assignment of roles to their participants they are applied to most software systems means to achieve modularity Composition of design patterns heterogeneous compositional forms simple forms, e.g. method invocations complex forms, e.g. shared participants pattern modularity should be preserved in the presence of pattern interactions [Gamma95] Gamma, E. et al. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley,
21 We already know that A number of patterns exhibit crosscutting concerns Pattern roles vs. participant classes [HK02] <<interface>> Subject addobserver removeobserver notify Figure 1 * FigureElement <<interface>> Observer update * * Point observers getx gety getcolor addobserver removeobserver notify setx sety setcolor * Line observers getp1 getp2 getcolor addobserver removeobserver notify setp1 setp2 setcolor * Screen update Display Members exclusively dedicated to the pattern Methods including some code relative to the pattern [HK02] Hannemann, J., Kiczales, G. Design Pattern Implementation in Java and AspectJ, Proceedings of OOPSLA 02, November 2002, pp
22 We already know that AOP seems to improve the modularization of the pattern roles enhance pattern composability Example: Composable Aspect ObserverProtocol <<interface>> Subject addobserver removeobserver notify Figure 1 * FigureElement <<interface>> Observer update * * CoordinateObserver <<crosscut>> Point observers getx getx gety gety getcolor getcolor setx addobserver sety removeobserver setcolor notify setx sety setcolor * Line observers getp1 getp1 getp2 getp2 getcolor getcolor setp1 addobserver setp2 removeobserver setcolor notify setp1 setp2 setcolor * Screen update Display Display 22
23 Heterogeneous Pattern Compositions Selection of the 62 pair-wise pattern compositions each pattern participated at least in 2 compositions minimum of 9 different compositions per category Category Invocation - based Class - level interl acing Method - leve l interlacing Overlapping List of Compositions Builder + Command, COR + Prototype, Facade + Memento, Facade + Singleton, Iterator + Singleton, AbstractFactory + State, Interpreter + Iterator, Interpreter + State, Proxy + Interpreter CoR + Observer, AbstractFactory + Interpreter, Observer + Bridge, Observer + Memento, Observer + Prototype, Observer + Strategy, Observer + TemplateMethod, Observer + Visitor, Proxy + Singleton, Proxy + Singleton (2), Mediator + Observer Decorator + Observer, Decorator + Prototype, Decorator + State, FactoryMethod + Memento, Mediator + CoR, Mediator + Prototype, Mediator + Proxy, Mediator + State, Observer + Composite, Prototype + Strategy, Prototype + TemplateMethod, State + Observer, State + Strategy, State + TemplateMethod, Interpreter + Composite CoR + FactoryMethod, Command + Flyweight, Command + Proxy, Composite + Visitor, Decorator + Bridge, Decorator + Strategy, FactoryMethod + Bridge, FactoryMethod + Comm and, FactoryMethod + Composite, FactoryMethod + Flyweight, FactoryMethod + Observer, FactoryMethod + Visitor, Flyweight + Adapter, Mediator + Decorator, Mediator + Strategy, Mediator + TemplateMethod, Proxy + Adapter, Proxy + Builder, Proxy + Flyweight, St ate + Prototype, TemplateMethod + Bridge, Proxy + Composite, Strategy + TemplateMethod, Decorator + TemplateMethod, TemplateMethod + Strategy 23
24 Lessons Learned - I Results per composition category more details in the paper Does AOP enhance pattern composability? in this study, good composability means pattern can be directly reused and smoothly extended to different composition contexts extension of abstract pointcuts and methods the core pattern implementation should not be aware of the composition specificities pattern compositions should not impact negatively on modularity attributes N. Cacho, C. Sant'Anna, E. Figueiredo, A. Garcia, and T. Batista. Composing Design Patterns: a Scalability Study of Aspect-Oriented Programming. In AOSD '06: Proc. of the 5 th Intl. Conf. on Aspect-oriented software development, pages , New York, ACM Press. 24
25 Lessons Learned - II Does AOP enhance pattern composability? AspectJ succeeded when the two involved patterns took part in invocation-based compositions, OR having one or more classes in common However, extensive modifications to the core pattern implementations and modularity problems were found compositions with intra-method interlacing and field/method overlapping 25
26 HK Study (Locality) Our First Study (SoC) Separation of Concerns Number of Composition Original Implementations Pattern Previous Studies This Study Lessons Learned Did the separation of aspectized patterns scale? Java is clearly superior 9 no clear benefits of AspectJ Four reasons: (i) typical OO patterns (same results) (ii) non-aspectized patterns (iii) the composition particularities (iv) the pattern instance size (v) aspectization approach (vi) other application-specific requirements Abstract Factory no OO = 2 yes Adapter yes AO = 2 yes Bridge no OO = 7 no* Builder no OO = 2 yes CoR yes AO = 6 yes Command yes AO = 4 yes Composite yes AO AO + 6 yes Decorator yes AO AO + 7 yes Façade Same Implementation for Java and AspectJ 2 yes Factory Method no OO OO 8 yes Flyweight yes OO = 4 yes Interpreter no = AO 4 no Iterator yes AO AO 4 yes Mediator yes AO = 7 no* Memento yes AO AO 3 yes Observer yes AO AO + 11 yes Prototype yes AO AO 7 yes Proxy yes AO AO 8 yes Singleton yes AO AO 4 yes State yes = AO 8 yes Strategy yes AO AO 7 no Template Method yes OO AO 7 no* Visitor yes AO AO 4 yes (+) indicates the AO solutions that achieved the best results in all 26 compositions (*) indicates the patterns which was not aspectized in this study
27 The Chosen Crosscutting Concerns Exception Handling (EH) broadly-scoped CCCs explore dedicated AspectJ constructs softening exceptions and around advice 23 GoF Design patterns more localized CCCs, recurring design solutions multiple forms of aspectization multiple inheritance and role-based collaborations Evolving N-tier software architecture multiple architecturally-relevant CCCs transaction management, distribution, and concurrency control F. Filho, N. Cacho, E. Figueiredo, A. Garcia, and C. Rubira. Exceptions and Aspects: The Devil is in the Details. In Proc. of FSE-14, 14th Intl. Conf. on Foundations of Soft. Engineering, November N. Cacho, C. Sant'Anna, E. Figueiredo, A. Garcia, and T. Batista. Composing Design Patterns: a Scalability Study of Aspect-Oriented Programming. In Proc. Of AOSD '06, March P. Greenwood et al. On the Impact of Aspectual Decompositions on Design Stability: An Empirical 27 Study. 21st European Conf. on Object-Oriented Programming (ECOOP.07), July 2007, Germany.
28 Design Stability Study Aim: assessing various facets of design stability on object-oriented and aspect-oriented designs focus on typical software maintenance tasks Multi-dimensional analysis modularity sustenance ripple effects satisfaction of basic design principles 28
29 Experiment Design: Study Phases (1) Development and alignment of the system versions Java and AspectJ versions previously created Added CaesarJ implementation Aligned functionalities Aligned code style (2) Implementation of 9 change scenarios Added, removed, changed and composed modules Performed step 1 (3) Assessment of the three versions Applied software metrics (SoC, Coupling, Cohesion, Size) Analyzed change impact and stability Analyzed concern interaction P. Greenwood et al. On the Impact of Aspectual Decompositions on Design Stability: An Empirical Study. 21st European Conf. on Object-Oriented Programming (ECOOP.07), 29 July 2007, Germany.
30 HW Architecture: OO View Layer Distribution Layer Business Layer Data Layer 30
31 HW Architecture: AO View Layer Distribution Aspect Business Layer Persistence Aspect Data Layer Concurrency Aspect 31
32 HW Architecture: OO View Layer Distribution Layer ~S3: use Observer to monitor object updates Business Layer Data Layer 32
33 HW Architecture: OO View Layer Business Layer Distribution Layer ~S8: inclusion of use cases to support new queries to date types ~S9: more robust error handling strategies Data Layer 33
34 Average Cohesion Average Coupling Coupling and Cohesion open-closed principle Better coupling and cohesion in AO AO Version 3 required empty hook methods to be inserted Reduces scattering but at cost of cohesion Version 4 introduces the Observer pattern Pointcuts and declare parents reduce coupling Difference in Version 5 due to introduction of the Distribution Adapter pattern Allows distribution mechanism to be pluggable Optional compilation of aspects already allows this CCCs aspectized upfront were stable Exception: again EH refactoring methods to expose context 34
35 Persistence Variation Use of pointcut expressions improves stability in SoC Large increase in OO Version 9 Some associated problems (Fragile Pointcuts) SoC Components SoC Lines of Code Note the drop in CDLOC for V5 in OO Related to applying the distribution adapter pattern 35
36 Architecture Design Stability Similar approach to the implementation analysis Significant difference in the architectural structure of the persistence concern Present in many more OO architectural elements Propagation of exception events from Data to View layer AO catches these exceptions in the Data layer Largest change occurred in Version 9 Resulted in adding a number of operations to the interfaces between layers Each operation added required had to address persistence related exceptions 36
37 Architecture Design Stability View Layer Distribution Layer Business Layer Data Layer 37
38 Related work Persistence, transactions, and distribution Kienzle & Guerraoui, ECOOP 02 Soares et al., OOPSLA 02 Rashid & Chitchyan, AOSD 03 Design patterns Hannemann & Kiczales (HK), OOPSLA 02 Garcia et al., AOSD 05 Exception handling Lippert & Lopes (LL), ICSE 00 Existing studies mainly focus on qualitative assessments focus on separation of concerns do not assess scalability of AOP 38
39 New Challenges SoC cannot be taken as the only factor to conclude for the use of aspects The Devil is on the Details complexity of handlers and their interactions with normal behaviour (dependency on local variables and nesting of handlers) composition particularities also influence the results even for patterns that are recognized as typical applications of AOP New challenges more sophisticated studies involving aspect interactions improve EH mechanisms in AO languages metrics that cover other modularity dimensions implementation and assessment of the patterns in other AO programming languages: Hyper/J and ObjectTeams 39
A Quantitative Assessment
Design Patterns as Aspects: A Quantitative Assessment Cláudio Sant Anna Software Engineering Laboratory Computer Science Department PUC-Rio claudios@inf.puc-rio.br Alessandro Garcia Software Engineering
More informationStudy Goals. Evaluation Criteria. Problems with OO Solution. Design Pattern Implementation in Java and AspectJ
DCC / ICEx / UFMG Study Goals Design Pattern Implementation in Java and AspectJ Develop and compare Java and AspectJ implementations of the 23 GoF patterns Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo
More informationModularizing Design Patterns with Aspects: A Quantitative Study
Modularizing Design s with Aspects: A Quantitative Study Alessandro Garcia Cláudio Sant Anna Eduardo Figueiredo Uirá Kulesza Carlos Lucena Arndt von Staa Software Engineering Laboratory - Computer Science
More information04/06/2013. Study Goals. Design Patterns in AspectJ. Evaluation Criteria. Problems with OO Solution
DCC / ICEx / UFMG Study Goals Design Patterns in AspectJ Develop and compare Java and AspectJ implementations of the 23 GoF patterns Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Aim to keep the
More informationAssessing Aspect-Oriented Artifacts: Towards a Tool-Supported Quantitative Method
Assessing Aspect-Oriented Artifacts: Towards a Tool-Supported Quantitative Method Eduardo Figueiredo 1, Alessandro Garcia 2, Cláudio Sant Anna 1, Uirá Kulesza 1, Carlos Lucena 1 1 PUC-Rio, Computer Science
More informationAssessing Aspect-Oriented Artifacts: Towards a Tool-Supported Quantitative Method
Assessing Aspect-Oriented Artifacts: Towards a Tool-Supported Quantitative Method Eduardo Figueiredo 1, Alessandro Garcia 2, Cláudio Sant Anna 1, Uirá Kulesza 1, Carlos Lucena 1 1 PUC-Rio, Computer Science
More informationAnalyzing effect of Aspect Oriented concepts in design and implementation of design patterns with case study of Observer Pattern
Analyzing effect of Aspect Oriented concepts in design and implementation of design patterns with case study of Observer Pattern Deepali A. Bhanage 1, Sachin D. Babar 2 Sinhgad Institute of Technology,
More informationAspect Oriented Programming
1 Aspect Oriented Programming Programming Languages Seminar Presenter: Barış Aktemur University of Illinois 18 Feb. 2004 Mostly taken from Bedir Tekinerdogan s slides Outline Introduction Problems Terminology
More informationComparative Evaluation of Programming Paradigms: Separation of Concerns with Object-, Aspect-, and Context-Oriented Programming
Comparative Evaluation of Programming Paradigms: Separation of Concerns with Object-, Aspect-, and Context-Oriented Programming Fumiya Kato, Kazunori Sakamoto, Hironori Washizaki, and Yoshiaki Fukazawa
More informationAspect Design Pattern for Non Functional Requirements
Aspect Design Pattern for Non Functional Requirements FAZAL-E-AMIN¹, ANSAR SIDDIQ², HAFIZ FAROOQ AHMAD³ ¹ ²International Islamic University Islamabad, Pakistan ³NUST Institute of Information Technology,
More informationTrusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout
1 Last update: 2 November 2004 Trusted Components Reuse, Contracts and Patterns Prof. Dr. Bertrand Meyer Dr. Karine Arnout 2 Lecture 12: Componentization Agenda for today 3 Componentization Componentizability
More informationAgenda. Tool-Supported Detection of Code Smells in Software Aspectization. Motivation. Mistakes in Software Aspectization. Advice-related mistakes
Agenda Tool-Supported Detection of Code Smells in Software Aspectization Péricles Alves and Diogo Santana Recurring Mistakes Code Smells ConcernReCS Tool ConcernReCS Extension 1 Motivation AOP is about
More informationA Multiparadigm Study of Crosscutting Modularity in Design Patterns
A Multiparadigm Study of Crosscutting Modularity in Design Patterns Martin Kuhlemann 1,SvenApel 2,MarkoRosenmüller 1, and Roberto Lopez-Herrejon 3 1 School of Computer Science, University of Magdeburg
More informationKeywords: Abstract Factory, Singleton, Factory Method, Prototype, Builder, Composite, Flyweight, Decorator.
Comparative Study In Utilization Of Creational And Structural Design Patterns In Solving Design Problems K.Wseem Abrar M.Tech., Student, Dept. of CSE, Amina Institute of Technology, Shamirpet, Hyderabad
More informationSDC Design patterns GoF
SDC Design patterns GoF Design Patterns The design pattern concept can be viewed as an abstraction of imitating useful parts of other software products. The design pattern is a description of communicating
More informationTrusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout
1 Last update: 2 November 2004 Trusted Components Reuse, Contracts and Patterns Prof. Dr. Bertrand Meyer Dr. Karine Arnout 2 Lecture 5: Design patterns Agenda for today 3 Overview Benefits of patterns
More informationTowards Reusable Components with Aspects: An Empirical Study on Modularity and Obliviousness
Towards Reusable Components with Aspects: An Empirical Study on Modularity and Obliviousness ABSTRACT Kevin Hoffman Purdue University 35 N. University Street West Lafayette, IN 4797 kjhoffma@cs.purdue.edu
More informationLanguage Features for Software Evolution and Aspect-Oriented Interfaces: An Exploratory Study
Computer Science Publications Computer Science 2013 Language Features for Software Evolution and Aspect-Oriented Interfaces: An Exploratory Study Robert Dyer Iowa State University Hridesh Rajan Iowa State
More informationOn the Impact of Aspect-Oriented Programming on Object-Oriented Metrics
On the Impact of Aspect-Oriented Programming on Object-Oriented Metrics Jean-Yves Guyomarc h and Yann-Gaël Guéhéneuc GEODES - Group of Open and Distributed Systems, Experimental Software Engineering Department
More informationDesign Patterns. Manuel Mastrofini. Systems Engineering and Web Services. University of Rome Tor Vergata June 2011
Design Patterns Lecture 1 Manuel Mastrofini Systems Engineering and Web Services University of Rome Tor Vergata June 2011 Definition A pattern is a reusable solution to a commonly occurring problem within
More informationEvolving Software Product Lines with Aspects: An Empirical Study on Design Stability
Evolving Software Product Lines with Aspects: An Empirical Study on Design Stability Eduardo Figueiredo, Nelio Cacho, Claudio Sant Anna, Mario Monteiro, Uira Kulesza, Alessandro Garcia, Sergio Soares,
More informationEvolving Software Product Lines with Aspects: An Empirical Study on Design Stability
Evolving Software Product Lines with Aspects: An Empirical Study on Design Stability Eduardo Figueiredo, Nelio Cacho, Claudio Sant Anna, Mario Monteiro, Uira Kulesza, Alessandro Garcia, Sergio Soares,
More informationModellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico
Modellistica Medica Maria Grazia Pia INFN Genova Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003 Lezione 9 OO modeling Design Patterns Structural Patterns Behavioural Patterns
More information1 Software Architecture
Some buzzwords and acronyms for today Software architecture Design pattern Separation of concerns Single responsibility principle Keep it simple, stupid (KISS) Don t repeat yourself (DRY) Don t talk to
More informationCSCD01 Engineering Large Software Systems. Design Patterns. Joe Bettridge. Winter With thanks to Anya Tafliovich
CSCD01 Engineering Large Software Systems Design Patterns Joe Bettridge Winter 2018 With thanks to Anya Tafliovich Design Patterns Design patterns take the problems consistently found in software, and
More informationAn Exploratory Study of the Design Impact of Language Features for Aspect-oriented Interfaces
An Exploratory Study of the Design Impact of Language Features for Aspect-oriented Interfaces Robert Dyer Hridesh Rajan Iowa State University {rdyer,hridesh}@iastate.edu Yuanfang Cai Drexel University
More informationA Preliminary Study of Quantified, Typed Events
A Preliminary Study of Quantified, Typed Events Robert Dyer 1 Mehdi Bagherzadeh 1 Hridesh Rajan 1 Yuanfang Cai 2 1 Computer Science - Iowa State University 2 Computer Science - Drexel University {rdyer,mbagherz,hridesh}@csiastateedu
More informationDesign Patterns. Observations. Electrical Engineering Patterns. Mechanical Engineering Patterns
Introduction o to Patterns and Design Patterns Dept. of Computer Science Baylor University Some slides adapted from slides by R. France and B. Tekinerdogan Observations Engineering=Problem Solving Many
More informationDesign Patterns. An introduction
Design Patterns An introduction Introduction Designing object-oriented software is hard, and designing reusable object-oriented software is even harder. Your design should be specific to the problem at
More informationApplication Architectures, Design Patterns
Application Architectures, Design Patterns Martin Ledvinka martin.ledvinka@fel.cvut.cz Winter Term 2017 Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Application Architectures, Design Patterns Winter Term
More informationOverview of Patterns: Introduction
: Introduction d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Professor of Computer Science Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee, USA Introduction
More informationIntroduction to. Bruno Harbulot. ESNW, the University of Manchester.
Introduction to Aspect-Oriented Software Development Bruno Harbulot ESNW, the University of Manchester http://www.cs.man.ac.uk/~harbulob/ ELF Developers' Forum Manchester - October 2005 1/24 Presentation
More informationDesign Pattern Implementation in Java and AspectJ
Design Pattern Implementation in Java and AspectJ Jan Hannemann University of British Columbia 201-2366 Main Mall Vancouver B.C. V6T 1Z4 jan@cs.ubc.ca Gregor Kiczales University of British Columbia 201-2366
More informationDESIGN PATTERN - INTERVIEW QUESTIONS
DESIGN PATTERN - INTERVIEW QUESTIONS http://www.tutorialspoint.com/design_pattern/design_pattern_interview_questions.htm Copyright tutorialspoint.com Dear readers, these Design Pattern Interview Questions
More informationSeparation of Fault Tolerance and Non-Functional Concerns: Aspect Oriented Patterns and Evaluation
J. Software Engineering & Applications, 2010, 3: 303-311 doi:10.4236/jsea.2010.34036 Published Online April 2010 (http://www.scirp.org/journal/jsea) 303 Separation of Fault Tolerance and Non-Functional
More informationProduced by. Design Patterns. MSc in Communications Software. Eamonn de Leastar
Design Patterns MSc in Communications Software Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie
More informationCS560. Lecture: Design Patterns II Includes slides by E. Gamma et al., 1995
CS560 Lecture: Design Patterns II Includes slides by E. Gamma et al., 1995 Classification of GoF Design Pattern Creational Structural Behavioural Factory Method Adapter Interpreter Abstract Factory Bridge
More informationProgramming AspectJ with Eclipse and AJDT, By Example. Chien-Tsun Chen Sep. 21, 2003
Programming AspectJ with Eclipse and AJDT, By Example Chien-Tsun Chen Sep. 21, 2003 ctchen@ctchen.idv.tw References R. Laddad, I want my AOP!, Part 1-Part3, JavaWorld, 2002. R. Laddad, AspectJ in Action,
More informationObject Oriented Methods with UML. Introduction to Design Patterns- Lecture 8
Object Oriented Methods with UML Introduction to Design Patterns- Lecture 8 Topics(03/05/16) Design Patterns Design Pattern In software engineering, a design pattern is a general repeatable solution to
More informationAspect-Orientation from Design to Code
Aspect-Orientation from Design to Code Iris Groher Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich, Germany groher@informatik.tu-darmstadt.de Thomas Baumgarth Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739
More informationTransaction Management in EJBs: Better Separation of Concerns With AOP
Transaction Management in EJBs: Better Separation of Concerns With AOP Johan Fabry Vrije Universiteit Brussel, Pleinlaan 2 1050 Brussel, Belgium Johan.Fabry@vub.ac.be March 8, 2004 1 Introduction The long-term
More informationIdioms and Design Patterns. Martin Skogevall IDE, Mälardalen University
Idioms and Design Patterns Martin Skogevall IDE, Mälardalen University 2005-04-07 Acronyms Object Oriented Analysis and Design (OOAD) Object Oriented Programming (OOD Software Design Patterns (SDP) Gang
More informationIntroduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of
Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of Computer Science Technische Universität Darmstadt Dr.
More informationAnalyzing Exception Flows of Aspect-Oriented Programs *
Analyzing Exception Flows of Aspect-Oriented Programs * Roberta Coelho 1, Arndt von Staa 1 (PhD supervisor), Awais Rashid 2 (PhD co-supervisor) 1 Computer Science Department, PUC-Rio, Brazil 2 Computing
More informationDesign Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1
What is a Design Pattern? Each pattern Describes a problem which occurs over and over again in our environment,and then describes the core of the problem Novelists, playwrights and other writers rarely
More informationSoftware Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.
Software Design Patterns Jonathan I. Maletic, Ph.D. Department of Computer Science Kent State University J. Maletic 1 Background 1 Search for recurring successful designs emergent designs from practice
More informationDesign Pattern. CMPSC 487 Lecture 10 Topics: Design Patterns: Elements of Reusable Object-Oriented Software (Gamma, et al.)
Design Pattern CMPSC 487 Lecture 10 Topics: Design Patterns: Elements of Reusable Object-Oriented Software (Gamma, et al.) A. Design Pattern Design patterns represent the best practices used by experienced
More informationTopics in Object-Oriented Design Patterns
Software design Topics in Object-Oriented Design Patterns Material mainly from the book Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides; slides originally by Spiros Mancoridis;
More informationOn the Maintainability of Aspect-Oriented Software: A Concern-Oriented Measurement Framework
On the Maintainability of Aspect-Oriented Software: A -Oriented Measurement Framework Eduardo Figueiredo 1, Claudio Sant'Anna 2, Alessandro Garcia 1, Thiago T. Bartolomei 3, Walter Cazzola 4, and Alessandro
More informationDISCUSSING ASPECTS OF AOP
a DISCUSSING ASPECTS OF AOP How would you define AOP? Gregor Kiczales: Aspect-oriented programming is a new evolution in the line of technology for separation of concerns technology that allows design
More informationThe Strategy Pattern Design Principle: Design Principle: Design Principle:
Strategy Pattern The Strategy Pattern defines a family of algorithms, encapsulates each one, and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it. Design
More informationIdioms for Building Software Frameworks in AspectJ
Idioms for Building Software Frameworks in AspectJ Stefan Hanenberg 1 and Arno Schmidmeier 2 1 Institute for Computer Science University of Essen, 45117 Essen, Germany shanenbe@cs.uni-essen.de 2 AspectSoft,
More informationTopics. Software Process. Agile. Requirements. Basic Design. Modular Design. Design Patterns. Testing. Quality. Refactoring.
CS310 - REVIEW Topics Process Agile Requirements Basic Design Modular Design Design Patterns Testing Quality Refactoring UI Design How these things relate Process describe benefits of using a software
More informationA Query-Based Approach for the Analysis of Aspect-Oriented Systems by
A Query-Based Approach for the Analysis of Aspect-Oriented Systems by Eduardo Salomão Barrenechea A thesis presented to the University of Waterloo in fulfillment of the thesis requirement for the degree
More informationInformation systems modelling UML and service description languages
Internet Engineering Tomasz Babczyński, Zofia Kruczkiewicz Tomasz Kubik Information systems modelling UML and service description languages Overview of design patterns for supporting information systems
More informationAOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz
AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz Results obtained by researchers in the aspect-oriented programming are promoting the aim to export these ideas to whole software development
More informationAJDT: Getting started with Aspect-Oriented Programming in Eclipse
AJDT: Getting started with Aspect-Oriented Programming in Eclipse Matt Chapman IBM Java Technology Hursley, UK AJDT Committer Andy Clement IBM Java Technology Hursley, UK AJDT & AspectJ Committer Mik Kersten
More informationUsing Aspects to Make Adaptive Object-Models Adaptable
Using Aspects to Make Adaptive Object-Models Adaptable Ayla Dantas 1, Joseph Yoder 2, Paulo Borba 1, Ralph Johnson 2 1 Software Productivity Group Informatics Center Federal University of Pernambuco Recife,
More informationApplying the Observer Design Pattern
Applying the Observer Design Pattern Trenton Computer Festival Professional Seminars Michael P. Redlich (908) 730-3416 michael.p.redlich@exxonmobil.com About Myself Degree B.S. in Computer Science Rutgers
More informationA Metric of the Relative Abstraction Level of Software Patterns
A Metric of the Relative Abstraction Level of Software Patterns Atsuto Kubo 1, Hironori Washizaki 2, and Yoshiaki Fukazawa 1 1 Department of Computer Science, Waseda University, 3-4-1 Okubo, Shinjuku-ku,
More informationThe GoF Design Patterns Reference
The GoF Design Patterns Reference Version.0 / 0.0.07 / Printed.0.07 Copyright 0-07 wsdesign. All rights reserved. The GoF Design Patterns Reference ii Table of Contents Preface... viii I. Introduction....
More informationUsing Aspects to Make Adaptive Object-Models Adaptable
Using Aspects to Make Adaptive Object-Models Adaptable Ayla Dantas 1, Joseph Yoder 2, Paulo Borba, and Ralph Johnson 1 Software Productivity Group Informatics Center Federal University of Pernambuco Recife,
More informationResearch Article An Assessment of Maintainability of an Aspect-Oriented System
ISRN Software Engineering Volume 2013, Article ID 121692, 11 pages http://dx.doi.org/10.1155/2013/121692 Research Article An Assessment of Maintainability of an Aspect-Oriented System Kagiso Mguni and
More informationEINDHOVEN UNIVERSITY OF TECHNOLOGY
EINDHOVEN UNIVERSITY OF TECHNOLOGY Department of Mathematics & Computer Science Exam Programming Methods, 2IP15, Wednesday 17 April 2013, 09:00 12:00 TU/e THIS IS THE EXAMINER S COPY WITH (POSSIBLY INCOMPLETE)
More informationTuesday, October 4. Announcements
Tuesday, October 4 Announcements www.singularsource.net Donate to my short story contest UCI Delta Sigma Pi Accepts business and ICS students See Facebook page for details Slide 2 1 Design Patterns Design
More informationUsing Design Patterns in Java Application Development
Using Design Patterns in Java Application Development ExxonMobil Research & Engineering Co. Clinton, New Jersey Michael P. Redlich (908) 730-3416 michael.p.redlich@exxonmobil.com About Myself Degree B.S.
More informationComposition Graphs: a Foundation for Reasoning about Aspect-Oriented Composition
s: a Foundation for Reasoning about Aspect-Oriented - Position Paper - István Nagy Mehmet Aksit Lodewijk Bergmans TRESE Software Engineering group, Faculty of Computer Science, University of Twente P.O.
More informationProduced by. Design Patterns. MSc in Communications Software. Eamonn de Leastar
Design Patterns MSc in Communications Software Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie
More informationC++ for System Developers with Design Pattern
C++ for System Developers with Design Pattern Introduction: This course introduces the C++ language for use on real time and embedded applications. The first part of the course focuses on the language
More information7 Evaluation of the Architectural Metrics
152 7 Evaluation of the Architectural Metrics The goal of this chapter is to evaluate the proposed concern-driven architecture metrics in terms of their usefulness to assess design modularity. It is also
More informationIngegneria del Software Corso di Laurea in Informatica per il Management. Design Patterns part 1
Ingegneria del Software Corso di Laurea in Informatica per il Management Design Patterns part 1 Davide Rossi Dipartimento di Informatica Università di Bologna Pattern Each pattern describes a problem which
More informationCSCI 253. Overview. The Elements of a Design Pattern. George Blankenship 1. Object Oriented Design: Iterator Pattern George Blankenship
CSCI 253 Object Oriented Design: Iterator Pattern George Blankenship George Blankenship 1 Creational Patterns Singleton Abstract factory Factory Method Prototype Builder Overview Structural Patterns Composite
More informationA Metric for Measuring the Abstraction Level of Design Patterns
A Metric for Measuring the Abstraction Level of Design Patterns Atsuto Kubo 1, Hironori Washizaki 2, and Yoshiaki Fukazawa 1 1 Department of Computer Science, Waseda University, 3-4-1 Okubo, Shinjuku-ku,
More informationThe Observer Design Pattern
Dr. Michael Eichberg Software Engineering Department of Computer Science Technische Universität Darmstadt Software Engineering The Observer Design Pattern For details see Gamma et al. in Design Patterns
More informationA Rapid Overview of UML
A Rapid Overview of UML The Unified dmodeling Language (UML) Emerged in the mid 90s as the de facto standard for softwareengineering engineering design Use case diagram depicts user interaction with system
More informationDesign Patterns. Gunnar Gotshalks A4-1
Design Patterns A4-1 On Design Patterns A design pattern systematically names, explains and evaluates an important and recurring design problem and its solution Good designers know not to solve every problem
More informationModularizing Web Services Management with AOP
Modularizing Web Services Management with AOP María Agustina Cibrán, Bart Verheecke { Maria.Cibran, Bart.Verheecke@vub.ac.be System and Software Engineering Lab Vrije Universiteit Brussel 1. Introduction
More informationAOP Framed! Informatics Center Federal University of Pernambuco
AOP Framed! Henrique Rebêlo Informatics Center Federal University of Pernambuco Henrique Rebêlo 2009 Contacting Me Ph.D. student Henrique Rebêlo Specialist on AOSD, DbC, Static Metrics, JML Software Architecture,
More informationDesign Patterns. Dr. Rania Khairy. Software Engineering and Development Tool
Design Patterns What are Design Patterns? What are Design Patterns? Why Patterns? Canonical Cataloging Other Design Patterns Books: Freeman, Eric and Elisabeth Freeman with Kathy Sierra and Bert Bates.
More informationThink of drawing/diagramming editors. ECE450 Software Engineering II. The problem. The Composite pattern
Think of drawing/diagramming editors ECE450 Software Engineering II Drawing/diagramming editors let users build complex diagrams out of simple components The user can group components to form larger components......which
More informationA Proposal For Classifying Tangled Code
A Proposal For Classifying Tangled Code Stefan Hanenberg and Rainer Unland Institute for Computer Science University of Essen, 45117 Essen, Germany {shanenbe, unlandr@csuni-essende Abstract A lot of different
More informationObject-oriented Software Design Patterns
Object-oriented Software Design Patterns Concepts and Examples Marcelo Vinícius Cysneiros Aragão marcelovca90@inatel.br Topics What are design patterns? Benefits of using design patterns Categories and
More informationGETTING STARTED WITH ASPECTJ
a GETTING STARTED WITH ASPECTJ An aspect-oriented extension to Java enables plug-and-play implementations of crosscutting. Many software developers are attracted to the idea of AOP they recognize the concept
More informationSoftware Engineering I (02161)
Software Engineering I (02161) Week 10 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2016 Last Time Project Planning Non-agile Agile Refactoring Contents Basic Principles
More informationComposite Pattern. IV.4 Structural Pattern
IV.4 Structural Pattern Motivation: Compose objects to realize new functionality Flexible structures that can be changed at run-time Problems: Fixed class for every composition is required at compile-time
More informationSYLLABUS CHAPTER - 1 [SOFTWARE REUSE SUCCESS FACTORS] Reuse Driven Software Engineering is a Business
Contents i UNIT - I UNIT - II UNIT - III CHAPTER - 1 [SOFTWARE REUSE SUCCESS FACTORS] Software Reuse Success Factors. CHAPTER - 2 [REUSE-DRIVEN SOFTWARE ENGINEERING IS A BUSINESS] Reuse Driven Software
More informationModellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico
Modellistica Medica Maria Grazia Pia INFN Genova Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003 Lezione 8 OO modeling Design Patterns Introduction Creational Patterns Software
More informationAspect Oriented Java RMI Server
Aspect Oriented Java RMI Server Inderjit Singh Dhanoa BIS College of Engineering & Tech., Moga inderp10@yahoo.co.in Er.Dalwinder Singh Salaria Lovely Professional University ds_salaria@yahoo.co.in ABSTRACT
More informationLectures 24 and 25 Introduction to Architectural Styles and Design Patterns
Lectures 24 and 25 Introduction to Architectural Styles and Design Patterns Software Engineering ITCS 3155 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte
More informationModeling Aspect-Oriented Change Realizations
Modeling Aspect-Oriented Change Realizations Erasmus Mobility at Lancaster University Lecture 1 Valentino Vranić Institute of Informatics and Software Engineering Faculty of Informatics and Information
More informationThe Design Patterns Matrix From Analysis to Implementation
The Design Patterns Matrix From Analysis to Implementation This is an excerpt from Shalloway, Alan and James R. Trott. Design Patterns Explained: A New Perspective for Object-Oriented Design. Addison-Wesley
More informationIntroduction and History
Pieter van den Hombergh Fontys Hogeschool voor Techniek en Logistiek September 15, 2016 Content /FHTenL September 15, 2016 2/28 The idea is quite old, although rather young in SE. Keep up a roof. /FHTenL
More informationCSCI Object Oriented Design: Frameworks and Design Patterns George Blankenship. Frameworks and Design George Blankenship 1
CSCI 6234 Object Oriented Design: Frameworks and Design Patterns George Blankenship Frameworks and Design George Blankenship 1 Background A class is a mechanisms for encapsulation, it embodies a certain
More informationReview Software Engineering October, 7, Adrian Iftene
Review Software Engineering October, 7, 2013 Adrian Iftene adiftene@info.uaic.ro Software engineering Basics Definition Development models Development activities Requirement analysis Modeling (UML Diagrams)
More informationDesign Patterns. Hausi A. Müller University of Victoria. Software Architecture Course Spring 2000
Design Patterns Hausi A. Müller University of Victoria Software Architecture Course Spring 2000 1 Motivation Vehicle for reasoning about design or architecture at a higher level of abstraction (design
More informationEmploying Query Technologies for Crosscutting Concern Comprehension
Employing Query Technologies for Crosscutting Concern Comprehension Marius Marin Accenture The Netherlands Marius.Marin@accenture.com Abstract Common techniques for improving comprehensibility of software
More informationApplying Design Patterns to SCA Implementations
Applying Design Patterns to SCA Implementations Adem ZUMBUL (TUBITAK-UEKAE, ademz@uekae.tubitak.gov.tr) Tuna TUGCU (Bogazici University, tugcu@boun.edu.tr) SDR Forum Technical Conference, 26-30 October
More informationWS01/02 - Design Pattern and Software Architecture
Design Pattern and Software Architecture: VIII. Conclusion AG Softwaretechnik Raum E 3.165 Tele. 60-3321 hg@upb.de VIII. Conclusion VIII.1 Classifications VIII.2 Common Misconceptions VIII.3 Open Questions
More informationCS/CE 2336 Computer Science II
CS/CE 2336 Computer Science II UT D Session 20 Design Patterns An Overview 2 History Architect Christopher Alexander coined the term "pattern" circa 1977-1979 Kent Beck and Ward Cunningham, OOPSLA'87 used
More informationOverview of AspectOPTIMA
COMP-667 Software Fault Tolerance Overview of AspectOPTIMA Jörg Kienzle School of Computer Science McGill University, Montreal, QC, Canada With Contributions From: Samuel Gélineau, Ekwa Duala-Ekoko, Güven
More information