Computing Department On the Impact of Aspectual Decompositions on Design Stability: An Empirical Study Phil Greenwood 1 Co-authors:

Slides:



Advertisements
Similar presentations
Comparing AO-Design Patterns Implementations. Quantitative study that compares aspect-based solutions for the GoF patterns in AspectJ, Compose* and CaeserJ.
Advertisements

Rodrigo Bonifácio Paulo Borba Informatics Center Federal University of Pernambuco Brazil Sérgio Soares Department of Computing.
Rodrigo Bonifácio Paulo Borba Informatics Center Federal University of Pernambuco Brazil Sérgio Soares Department of Computing.
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Chapter 11 Component-Level Design
Awais Rashid, Steffen Zschaler
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
Computing Department Awais Rashid Aspect-Oriented Software Development in Practice: Tales from AOSD-Europe © A. Rashid (2009)
Marko Rosenmüller - University of Magdeburg, Germany 1 Feature-oriented Refactoring of Berkeley DB Dagstuhl Seminar on Software Engineering for Tailor-made.
Object-Oriented Metrics. Characteristics of OO ● Localization ● Encapsulation ● Information hiding ● Inheritence ● Object abstraction.
A Brief Introduction to Software Design and Design Quality By Laura Leventhal.
ASPECT ORIENTED SOFTWARE DEVELOPMENT Prepared By: Ebru Doğan.
Object-Oriented Metrics
1 CS115 Class 7: Architecture Due today –Requirements –Read Architecture paper pages 1-15 Next Tuesday –Read Practical UML.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
Technion Israel Early Aspects Based on lectures by Awais Rashid, Alessandro Garcia Lectures at AOSD Summer School, Brussels, July 2006 © A. Rashid, A.
Outline Introduction Problem Statement Object-Oriented Design Aspect-Oriented Design Conclusion Demo.
Computing Department On the Design of a Testbed for AOSD Alessandro Garcia May 2007.
Secure Systems Research Group - FAU Aspects and mobile applications Sergio Soares Paulo Borba, “PaDA: A Pattern for Distribution Aspects” In Second Latin.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Refactoring.
An Introduction to Software Architecture
Reviewed By: Paul Varcholik University of Central Florida EEL 6883 – Software Engineering II Spring 2009 Marc Eaddy, Thomas Zimmermann,
Aspect Oriented Programming Razieh Asadi University of Science & Technology Mazandran Babol Aspect Component Based Software Engineering (ACBSE)
OPUS Group LES | DI |PUC-Rio - Brazil Alessandro Cavalcante Gurgel Composing Design Patterns in CaesarJ: An Exploratory.
Aspect Oriented Programming Scott Nykl CSSE 411 Senior Seminar.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
What is “model transformation”? Distinction between source and target Source may be same as target May be multiple sources, or targets Reaching a fixed.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development 1.
Aspect Oriented Programming Sumathie Sundaresan CS590 :: Summer 2007 June 30, 2007.
COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler
Aspect Oriented Programming Gülşah KARADUMAN.
On the Modularity Assessment of Aspect- Oriented Multi-Agent Systems Product Lines: a Quantitative Study Camila Nunes
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Methodology: The AOP Refactoring Process Aspect-Oriented Refactoring of the Apache Cocoon Shared-Object Resource Allocation System Jeff Dalton Advisor:
Design Rules for Increasing Modularity with CaesarJ Carlos Eduardo Pontual Advisor: Paulo Borba 17/06/2010.
Introduction Better Faster Cheaper (pick any two) On-going issue that continues to motivate research in software engineering Applications: –continue to.
Software Engineering Principles. SE Principles Principles are statements describing desirable properties of the product and process.
Computing Department Testbed for Aspect-Oriented Software Development: TAO Phil Greenwood and numerous other contributors.
1 An Aspect-Oriented Implementation Method Sérgio Soares CIn – UFPE Orientador: Paulo Borba.
An Automatic Software Quality Measurement System.
SOFTWARE METRICS. Software Process Revisited The Software Process has a common process framework containing: u framework activities - for all software.
1 CMPT 275 High Level Design Phase Modularization.
CSc 461/561 Information Systems Engineering Lecture 5 – Software Metrics.
Software Architecture Evaluation Methodologies Presented By: Anthony Register.
Chapter 8: Aspect Oriented Programming Omar Meqdadi SE 3860 Lecture 8 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
AOP-Driven Variability in Software Product Lines Vander Alves, Ayla Dantas, and Paulo Borba Informatics Center – UFPE – Brazil
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
CSE 303 – Software Design and Architecture
1 Modularity Analysis of Use Case Implementations Fernanda d’Amorim Advisor: Paulo Borba.
Design. Practices Principles Patterns What are the characteristics of good design? What are good solutions to common design problems? How do we go about.
Week 6: Software Design HNDIT Software Engineering Software Design Learning Outcomes  Understand the activities involved in the Design process.
1 OO Technical Metrics CIS 375 Bruce R. Maxim UM-Dearborn.
Software Engineering Object Oriented Metrics. Objectives 1.To describe the distinguishing characteristics of Object-Oriented Metrics. 2.To introduce metrics.
Aspect-Oriented Software Development (AOSD)
Implementing Distribution and Persistence Aspects with AspectJ WAS CLASS.
Chapter 10 Software quality. This chapter discusses n Some important properties we want our system to have, specifically correctness and maintainability.
L’origine dei mali: le dipendenze tra componenti Stefano Leli 14° Workshop DotNetMarche Venerdì 16 aprile
Design Concepts ch-8
Department of Computer Sciences
A Hierarchical Model for Object-Oriented Design Quality Assessment
HCI in the software process
Component-Level Design
CS223: Software Engineering
Structuring Adaptive Applications using AspectJ and AOM
John D. McGregor Module 6 Session 1 More Design
Software Metrics SAD ::: Fall 2015 Sabbir Muhammad Saleh.
AspectAda Aspect-Oriented Programming for Ada95
Chenchen Xi CNC Supervisor: Prof. John R. Gurd
Aspect Oriented Software Design
Presentation transcript:

Computing Department On the Impact of Aspectual Decompositions on Design Stability: An Empirical Study Phil Greenwood 1 Co-authors: Thiago Bartolomei, Eduardo Figueiredo, Marcos Dosea, Alessandro Garcia, Nelio Cacho, Claudio Sant’Anna, Sergio Soares, Paulo Borba, Uira Kulesza and Awais Rashid.

Computing Department Motivation & Aims Proponents of AO argue that improved changeability is achieved through new composition mechanisms. Stability is often dependent on the decomposition mechanism. –OO and multiple inheritance. No studies on the ability of AO to promote stability. –Other studies focused on upfront modularisation of concerns. –No empirical knowledge on the affects on ripple-effects. –Multi-dimensional analysis. 2

Computing Department Experiment Design Selected the Health Watcher System. –Web-based information system. –+5000 lines of code, +100 modules. –Designed with modularity and changeability in mind. Implementation of change scenarios (x9) –Perfective, corrective, refactoring, additive. Assessment Process –Analyse change of modularity metrics. –Change impact and stability measures. 3

Computing Department Modularity Stability Size Coupling Cohesion Separation of Concerns Attributes LOC NOA VS CBC LCOO CDC CDO CDLOC Metrics NoC Concern Diffusion over Components Concern Diffusion over Operations Concern Diffusion over LOC Lines of Code Number of Attributes Vocabulary Size Coupling between Components Number of Children Lack of Cohesion in Operations WOC Weighted Operations per Component 4

Computing Department Better coupling and cohesion in AO. Need to avoid unnecessary changes to the base code. Apply AO software artefacts in a disciplined manner. Does AOP stabilise coupling and cohesion? 5

Computing Department Improved encapsulation reduces scope. Pointcuts absorb some changes. Poor separation of concerns magnified in OO. Concurrency AO Improves Stability in Crosscutting Concerns 6 Concurrency

Computing Department Slightly improved stability in OO. OO decompositions sustain stability. Introduction and modification of pointcuts cause instability. AO Has A Negative Impact on Non-Crosscutting Concerns 7 View

Computing Department Modularisation Outcomes Concerns encapsulated upfront tend to have superior modularity stability. –AO designs tend to have better stability when a change targets a crosscutting concern. AO designs can affect non-crosscutting concerns. Double-edged sword of pointcuts. More results in the paper. 8

Computing Department Change Impact Useful to know the impact of a change to reflect on design tradeoffs. –Quantitatively assess propagation effects. Modularity metrics do not indicate the types of changes made. –Number of components added/removed/modified. –Number of operations added/removed/modified. –Number of LOC, pointcuts, etc. Can infer design principles. –Open-closed principle. –Ripple effects. 9

Computing Department OO changes tend to require more invasive changes. –Increased tangling reduces the scope. –Affect more operations and lines of code. OO performs better or comparable to AO in some circumstances. –Interesting as the AO versions have the same core layers. OO Requires Invasive Changes but Reduces Scope 10

Computing Department AO changes tend to require more new components to be added. –Absorbs invasive changes via inter-type declarations. What is more desirable – modification or addition? –Open-Closed principle. Pointcut fragility is a significant factor of these ripple-effects –Solution: more expressive and semantic-based pointcuts. AO Preserves the Open- Closed Principle 11

Computing Department Deep vs. Wide Ripple Effects OO ripple effects tend to go wider. –They affect related classes more extensively. AO ripple effects tend to go deeper. –They affect more (seemingly) unrelated aspects. Which is more desirable? –Wider ripple effects more obvious. –Modularity metrics would suggest otherwise... 12

Computing Department Summary of Key Findings Concerns aspectised upfront show superior stability. AO solutions requires less intrusive changes. AO solutions satisfy more closely the Open-Closed principle. Both AO and OO solutions show good stability in high- level design structures. AO modifications tend to propagate to unrelated components. AO design degeneration occurred when aspectising exception handling. 13

Computing Department On the Impact of Aspectual Decompositions on Design Stability: An Empirical Study Phil Greenwood 14 Co-authors: Thiago Bartolomei, Eduardo Figueiredo, Marcos Dosea, Alessandro Garcia, Nelio Cacho, Claudio Sant’Anna, Sergio Soares, Paulo Borba, Uira Kulesza and Awais Rashid. Study Resources: