Metrics for AOP: Do Aspects Help?

Size: px
Start display at page:

Download "Metrics for AOP: Do Aspects Help?"

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

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 information

Study Goals. Evaluation Criteria. Problems with OO Solution. Design Pattern Implementation in Java and AspectJ

Study 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 information

Modularizing Design Patterns with Aspects: A Quantitative Study

Modularizing 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 information

04/06/2013. Study Goals. Design Patterns in AspectJ. Evaluation Criteria. Problems with OO Solution

04/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 information

Assessing Aspect-Oriented Artifacts: Towards a Tool-Supported Quantitative Method

Assessing 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 information

Assessing Aspect-Oriented Artifacts: Towards a Tool-Supported Quantitative Method

Assessing 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 information

Analyzing 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 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 information

Aspect Oriented Programming

Aspect 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 information

Comparative 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 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 information

Aspect Design Pattern for Non Functional Requirements

Aspect 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 information

Trusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout

Trusted 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 information

Agenda. 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. 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 information

A Multiparadigm Study of Crosscutting Modularity in Design Patterns

A 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 information

Keywords: Abstract Factory, Singleton, Factory Method, Prototype, Builder, Composite, Flyweight, Decorator.

Keywords: 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 information

SDC Design patterns GoF

SDC 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 information

Trusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout

Trusted 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 information

Towards Reusable Components with Aspects: An Empirical Study on Modularity and Obliviousness

Towards 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 information

Language Features for Software Evolution and Aspect-Oriented Interfaces: An Exploratory Study

Language 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 information

On the Impact of Aspect-Oriented Programming on Object-Oriented Metrics

On 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 information

Design Patterns. Manuel Mastrofini. Systems Engineering and Web Services. University of Rome Tor Vergata June 2011

Design 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 information

Evolving Software Product Lines with Aspects: An Empirical Study on Design Stability

Evolving 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 information

Evolving Software Product Lines with Aspects: An Empirical Study on Design Stability

Evolving 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 information

Modellistica 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 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 information

1 Software Architecture

1 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 information

CSCD01 Engineering Large Software Systems. Design Patterns. Joe Bettridge. Winter With thanks to Anya Tafliovich

CSCD01 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 information

An 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 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 information

A Preliminary Study of Quantified, Typed Events

A 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 information

Design Patterns. Observations. Electrical Engineering Patterns. Mechanical Engineering Patterns

Design 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 information

Design Patterns. An introduction

Design 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 information

Application Architectures, Design Patterns

Application 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 information

Overview of Patterns: Introduction

Overview 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 information

Introduction to. Bruno Harbulot. ESNW, the University of Manchester.

Introduction 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 information

Design Pattern Implementation in Java and AspectJ

Design 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 information

DESIGN PATTERN - INTERVIEW QUESTIONS

DESIGN 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 information

Separation of Fault Tolerance and Non-Functional Concerns: Aspect Oriented Patterns and Evaluation

Separation 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 information

Produced by. Design Patterns. MSc in Communications Software. Eamonn de Leastar

Produced 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 information

CS560. 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 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 information

Programming 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 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 information

Object Oriented Methods with UML. Introduction to Design Patterns- Lecture 8

Object 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 information

Aspect-Orientation from Design to Code

Aspect-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 information

Transaction Management in EJBs: Better Separation of Concerns With AOP

Transaction 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 information

Idioms and Design Patterns. Martin Skogevall IDE, Mälardalen University

Idioms 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 information

Introduction 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 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 information

Analyzing Exception Flows of Aspect-Oriented Programs *

Analyzing 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 information

Design Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1

Design 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 information

Software Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.

Software 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 information

Design 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.) 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 information

Topics in Object-Oriented Design Patterns

Topics 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 information

On the Maintainability of Aspect-Oriented Software: A Concern-Oriented Measurement Framework

On 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 information

DISCUSSING ASPECTS OF AOP

DISCUSSING 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 information

The Strategy Pattern Design Principle: Design Principle: Design Principle:

The 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 information

Idioms for Building Software Frameworks in AspectJ

Idioms 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 information

Topics. Software Process. Agile. Requirements. Basic Design. Modular Design. Design Patterns. Testing. Quality. Refactoring.

Topics. 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 information

A Query-Based Approach for the Analysis of Aspect-Oriented Systems by

A 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 information

Information systems modelling UML and service description languages

Information 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 information

AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz

AOSA - 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 information

AJDT: Getting started with Aspect-Oriented Programming in Eclipse

AJDT: 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 information

Using Aspects to Make Adaptive Object-Models Adaptable

Using 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 information

Applying the Observer Design Pattern

Applying 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 information

A Metric of the Relative Abstraction Level of Software Patterns

A 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 information

The GoF Design Patterns Reference

The 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 information

Using Aspects to Make Adaptive Object-Models Adaptable

Using 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 information

Research Article An Assessment of Maintainability of an Aspect-Oriented System

Research 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 information

EINDHOVEN UNIVERSITY OF TECHNOLOGY

EINDHOVEN 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 information

Tuesday, October 4. Announcements

Tuesday, 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 information

Using Design Patterns in Java Application Development

Using 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 information

Composition Graphs: a Foundation for Reasoning about Aspect-Oriented Composition

Composition 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 information

Produced by. Design Patterns. MSc in Communications Software. Eamonn de Leastar

Produced 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 information

C++ for System Developers with Design Pattern

C++ 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 information

7 Evaluation of the Architectural Metrics

7 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 information

Ingegneria 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 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 information

CSCI 253. Overview. The Elements of a Design Pattern. George Blankenship 1. Object Oriented Design: Iterator Pattern George Blankenship

CSCI 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 information

A Metric for Measuring the Abstraction Level of Design Patterns

A 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 information

The Observer Design Pattern

The 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 information

A Rapid Overview of UML

A 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 information

Design Patterns. Gunnar Gotshalks A4-1

Design 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 information

Modularizing Web Services Management with AOP

Modularizing 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 information

AOP Framed! Informatics Center Federal University of Pernambuco

AOP 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 information

Design Patterns. Dr. Rania Khairy. Software Engineering and Development Tool

Design 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 information

Think of drawing/diagramming editors. ECE450 Software Engineering II. The problem. The Composite pattern

Think 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 information

A Proposal For Classifying Tangled Code

A 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 information

Object-oriented Software Design Patterns

Object-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 information

GETTING STARTED WITH ASPECTJ

GETTING 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 information

Software Engineering I (02161)

Software 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 information

Composite Pattern. IV.4 Structural Pattern

Composite 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 information

SYLLABUS CHAPTER - 1 [SOFTWARE REUSE SUCCESS FACTORS] Reuse Driven Software Engineering is a Business

SYLLABUS 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 information

Modellistica 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 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 information

Aspect Oriented Java RMI Server

Aspect 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 information

Lectures 24 and 25 Introduction to Architectural Styles and Design Patterns

Lectures 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 information

Modeling Aspect-Oriented Change Realizations

Modeling 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 information

The Design Patterns Matrix From Analysis to Implementation

The 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 information

Introduction and History

Introduction 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 information

CSCI Object Oriented Design: Frameworks and Design Patterns George Blankenship. Frameworks and Design George Blankenship 1

CSCI 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 information

Review Software Engineering October, 7, Adrian Iftene

Review 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 information

Design 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 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 information

Employing Query Technologies for Crosscutting Concern Comprehension

Employing 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 information

Applying Design Patterns to SCA Implementations

Applying 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 information

WS01/02 - Design Pattern and Software Architecture

WS01/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 information

CS/CE 2336 Computer Science II

CS/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 information

Overview of AspectOPTIMA

Overview 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