1 Modularity Analysis of Use Case Implementations Fernanda d’Amorim Advisor: Paulo Borba.

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

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
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.
Object-Oriented Software Development CS 3331 Fall 2009.
ASTA Aspect Software Testing Assistant Juha Gustafsson, Juha Taina, Jukka Viljamaa University of Helsinki.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development.
Computing Department On the Impact of Aspectual Decompositions on Design Stability: An Empirical Study Phil Greenwood 1 Co-authors:
Page 1 Building Reliable Component-based Systems Chapter 7 - Role-Based Component Engineering Chapter 7 Role-Based Component Engineering.
Introduction To System Analysis and Design
Object-Oriented Metrics. Characteristics of OO ● Localization ● Encapsulation ● Information hiding ● Inheritence ● Object abstraction.
ASPECT ORIENTED SOFTWARE DEVELOPMENT Prepared By: Ebru Doğan.
University of British Columbia Software Practices Lab CAS Seminar 06 Fluid AJ - A Simple Fluid AOP Tool Terry Hon Gregor Kiczales.
Object-Oriented Metrics
Evaluating the impact of refactorings on internal and external quality indicators.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
The chapter will address the following questions:
T. E. Potok - University of Tennessee Software Engineering Dr. Thomas E. Potok Adjunct Professor UT Research Staff Member ORNL.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Design Patterns.
1 N Degrees of Separation: Multi-Dimensional Separation of Concern (MDSOC) HyperJ: language and concepts of general concern combination.
Secure Systems Research Group - FAU Aspects and mobile applications Sergio Soares Paulo Borba, “PaDA: A Pattern for Distribution Aspects” In Second Latin.
CSE 303 – Software Design and Architecture
Reviewed By: Paul Varcholik University of Central Florida EEL 6883 – Software Engineering II Spring 2009 Marc Eaddy, Thomas Zimmermann,
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
Aspect Oriented Programming Razieh Asadi University of Science & Technology Mazandran Babol Aspect Component Based Software Engineering (ACBSE)
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
Aspect Oriented Programming Scott Nykl CSSE 411 Senior Seminar.
Introduction To System Analysis and Design
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
Software Measurement & Metrics
©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.
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 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
CSE 303 – Software Design and Architecture LECTURE 4.
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.
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
Introduction Better Faster Cheaper (pick any two) On-going issue that continues to motivate research in software engineering Applications: –continue to.
1 An Aspect-Oriented Implementation Method Sérgio Soares CIn – UFPE Orientador: Paulo Borba.
An Automatic Software Quality Measurement System.
Introduction to Design. What is Design? 2 minutes Pairs.
CSc 461/561 Information Systems Engineering Lecture 5 – Software Metrics.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Demeter Aspects We study techniques for the emerging area of Aspect-Oriented Software Development and focus on the following areas:  Aspectual Collaborations.
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.
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
Applying Aspect-Orientation in Designing Security Systems Shu Gao Florida International University Center for Advanced Distributed Systems Engineering.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Aspect-Oriented Software Development (AOSD)
Object Design More Design Patterns Object Constraint Language Object Design Specifying Interfaces Review Exam 2 CEN 4010 Class 18 – 11/03.
Chapter 10 Software quality. This chapter discusses n Some important properties we want our system to have, specifically correctness and maintainability.
CSE 2341 Object Oriented Programming with C++ Note Set #4
Object Oriented Systems Design
Software Engineering Lecture 7
Programming paradigms
Object-Oriented Metrics
Aspect-Oriented Programming
Need for the subject.
Structuring Adaptive Applications using AspectJ and AOM
AspectAda Aspect-Oriented Programming for Ada95
CS 2704 Object Oriented Software Design and Construction
Aspect Oriented Software Design
Refactoring the Aspectizable Interfaces: An Empirical Assessment
Presentation transcript:

1 Modularity Analysis of Use Case Implementations Fernanda d’Amorim Advisor: Paulo Borba

2 Component-based decomposition Use cases are system concerns Use case Actor Requirements are assigned to components Requirements can be specified as use cases

3 Ideally, we want to isolate different concerns into separate components… but, in practice…

4 Typical Use Case Implementation

5 Use Cases are crosscutting concerns with respect to implementation!

6 Crosscutting Concerns impact on Modularity Changeability –Invasive changes Traceability –Loss of 1:1 Mapping between use case code and assets Understandability –Tangling and scattering makes code difficult to understand Increase on maintenance and evolution cost !

7 Goal: modularize use case implementations

8 Why? Hypothesis: Modularity of use case implementations improve the overall system’s modularity RQ1. Does modularity of use case implementations reduce modularity of non use case concerns? RQ2. Does modularity of use case implementations improve overall maintenance and evolution? RQ3. Which modularity dimensions benefit from modularized use case implementations?

9 Traditional Modularity Techniques –Abstract Data Types –Structured Programming –Object Oriented Programming New Modularity Techniques –Composition Filters –Adaptive Methods –Aspect Oriented Programming How?

10 Modularity improvement? overall evolution? better traceability? better pluggability? X

11 Let’s analyze! Use cases on the target system Changes Concerns Metrics

12 Techniques Use Case as Aspect - with AspectJ –Intertype declaration, advices and aspects. Use Case as Pluggable Collaboration - with CaesarJ –Virtual classes, collaborations and mixins composition.

13 Toy Example – Library System Add Book CheckInBook CheckOutBook StaffMember

14 Use Case as Aspects System composed by core components and use case modules One module per use case implementation

15 Use Case Module Groups code related to a single use case Contains –Specific Classes –Specific Extensions

16 Use Case as Pluggable Collaboration System composed by core collaborations and use case collaborations One collaboration per use case

17 Use Case Collaboration Groups code related to a single use case Contains –Specific Classes and Classes Refinements

18 Key Points to Evaluation Metrics Selection –GQM model linking software quality attributes to meaningful metrics –Most metrics previously defined and used in others AOP studies Change Requests –Changes commonly applied to a system under maintenance. –Different types (perfective, adaptive and corrective) –Different natures (use case scoped and system scoped)

19 Metrics CDC DOSC DOT ADOSC ADOT CDC NSFC NCC NAC NALOC CI NAC CBO, LCO VS, DIT LOC NCC NBDLOC NDLOC

20 Case Studies Library System –Toy application –Used to consolidate techniques and the evaluation process Health Watcher –Real System –Benchmark for AOP studies - Solid Evaluation

21 Health Watcher (HW) Setup

22 Health Watcher Original Design

23 Change Requests CR1- Addition of 6 new use cases CR2 - Modifications on 2 use cases CR3 - Removal of 1 use case CR4 - New persistence mechanism

24 HW - Separation of Concerns

25 HW – DOSC and CDC

26 Chosen Concerns (and assignment) impact results! Less tangling when concerns do not cover most of the code More tangling and scattering when there is more concern intersection Modularity depends on chosen concerns!

27 Ok with GUI, Business and Data concerns but tangling and scattering when we also consider a use case concern… Ok with use case concerns but tangling and scattering when we also consider GUI, Business and Data…

28 HW – Complexity UC_AO implementation –Better result for Cohesion (LCO) UC_OO implementation –Better result for Coupling (CBC) and Vocabulary Size (VS) Similar results for Lines of Code (LOC) and Depth of Inheritance Tree (DIT)

29 HW – Changeability Propagation of change effects depends on the type of change. –Use case scoped changes present better result when use cases code are modularized –System scoped changes present better result in the use case OO implementation Modularity depends on the type of change!

30 HW – Pluggability, Traceability and Parallel Development Modularizing use case implementations leads to a system where it is easier: –To plugg or unplugg a use case –To maintain traceability links between use case code and others assets –To manage parallel development related tasks

31 Threats to Validity Target System Techniques/Languages Concerns selection and assignment Metrics Change requests

32 Modularity Analysis is Relative! Concluding Remarks Language constructs are unable to provide a decomposition that is superior in all situations

33 Related work Use case implementations modularity techniques –Jacobson, Herman et al., and Bhole et al. AOP empirical studies –Garcia et al., Kulesza et al., Greenwood et al., Valente et al.

34 Future Work Execute others case studies considering different and real target systems –Collect more evidence of our findings Analyze and repeat one of our case studies using a tool-based solution –Virtual Separation of Concerns/Features –Program Navigation Analysis

35 Modularity Analysis of Use Case Implementations Fernanda d’Amorim Advisor: Paulo Borba

36 Use Case as Aspect - Constructs Intertypes, advices and aspects.

37 Components and Modularity Encapsulate requirements that change together Essential to design, implement, and test the system Key to Reuse!