Sheet 1 / 21© 2006 2006 in Bonn - 21 March 2006 Identification of Crosscutting in Software Design Klaas van den Berg – University.

Slides:



Advertisements
Similar presentations
Awais Rashid, Steffen Zschaler
Advertisements

Course Outline Traditional Static Program Analysis –Theory Compiler Optimizations; Control Flow Graphs Data-flow Analysis – today’s class –Classic analyses.
Control Flow Analysis. Construct representations for the structure of flow-of-control of programs Control flow graphs represent the structure of flow-of-control.
Introduction to Graph “theory”
Ch 3: Unified Process CSCI 4320: Software Engineering.
An Aspect-Oriented Approach For Web Application Access Control Presented by: Mohamed Hassan Carleton University Carleton University
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development.
Formal Techniques in Software Engineering Universiteit AntwerpenIntroduction 1.1 Formal Techniques in Software Engineering 3de BAC Informatica Chapter.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Version control for graph-based models Z. Protić M. F. van Amstel M.G.J. van den Brand.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Generative Programming. Generic vs Generative Generic Programming focuses on representing families of domain concepts Generic Programming focuses on representing.
Using Use Case Scenarios and Operational Variables for Generating Test Objectives Javier J. Gutiérrez María José Escalona Manuel Mejías Arturo H. Torres.
Enterprise Architecture
Applied Discrete Mathematics Week 10: Equivalence Relations
1 Model Interface Implementation for Two-Way Obliviousness in Aspect-Oriented Modeling Presented by Wuliang Sun Department of Computer Science Baylor University.
Deriving AO Software Architectures using the AO-ADL Tool Suite Luis Fernández, Lidia Fuentes, Mónica Pinto, Juan A. Valenzuela Universidad de Málaga
Behaviour-Preserving Model Transformation Arend Rensink, University of Twente IPA Spring Days, 18 April 2012.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
Model Transformations
Rational Unified Process Fundamentals Module 4: Disciplines II.
Aspect Oriented Programming Razieh Asadi University of Science & Technology Mazandran Babol Aspect Component Based Software Engineering (ACBSE)
Introduction to Software Design Chapter 1. Chapter Objectives  To become familiar with the software challenge and the software life cycle  To understand.
Formalizing the Asynchronous Evolution of Architecture Patterns Workshop on Self-Organizing Software Architectures (SOAR’09) September 14 th 2009 – Cambrige.
Reviewing Recent ICSE Proceedings For:.  Defining and Continuous Checking of Structural Program Dependencies  Automatic Inference of Structural Changes.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development 1.
Modularizing Web Services Management with AOP María Agustina Cibrán, Bart Verheecke { Maria.Cibran, System and Software Engineering.
MOTOROLA and the Stylized M Logo are registered in the US Patent & Trademark Office. All other product or service names are the property of their respective.
Validated Model Transformation Tihamér Levendovszky Budapest University of Technology and Economics Department of Automation and Applied Informatics Applied.
RTAS 2003 Workshop on Model-Driven Embedded Systems Washington, D.C., May 27-30, 2003 Juan Pablo Zamora Zapata Francis Bordeleau Defining UML Profiles.
Generative Programming. Automated Assembly Lines.
Design Management: a Collabortive Design Solution ECMFA 2013 Montpellier, France Maged Elaasar (Presenter) Senior Software Engineer, IBM
Hybrid Transformation Modeling Integrating a Declarative with an Imperative Model Transformation Language Pieter Van Gorp
Introduction Better Faster Cheaper (pick any two) On-going issue that continues to motivate research in software engineering Applications: –continue to.
Aspect-Oriented Requirements Engineering David Schaefer, Joao Araujo, Isabel Brito, Awais Rashid, Claudia Mesquita.
Sheet 1 DocEng’03, Grenoble, November 2003 Model Driven Architecture based XML Processing Ivan Kurtev, Klaas van den Berg University of Twente, the Netherlands.
IDENTIFYING SEMANTIC DIFFERENCES IN ASPECTJ PROGRAMS Martin Görg and Jianjun Zhao Computer Science Department, Shanghai Jiao Tong University.
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
Software Design Process
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Requirements Engineering
1 Modularity Analysis of Use Case Implementations Fernanda d’Amorim Advisor: Paulo Borba.
MDA and Separation of Aspects: An approach based on multiples views and Subject Oriented Design Quercus Software Engineering Group Computer Science Department.
UML Profile BY RAEF MOUSHEIMISH. Background Model is a description of system or part of a system using well- defined language. Model is a description.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
Requirement Engineering with URN: Integrating Goals and Scenarios Jean-François Roy Thesis Defense February 16, 2007.
Sheet 1 MDAFA 2003 A Synthesis-based Approach to Transformations in an MDA Software Development Process Ivan Kurtev, Klaas van den Berg University of Twente.
Sheet 1 Forum on Specification and Design Languages (FDL), Frankfurt, September 2003 UML to XML-Schema Transformation: a Case Study in Managing Alternative.
1 Towards Integrated Tool Support for the User Requirements Notation Jean-François Roy
Enterprise Architectures. Core Concepts Key Learning Points: This chapter will help you to answer the following questions: What are the ADM phase names.
A Framework for Automated and Composable Testing of Component-based Services Miguel A. Jiménez, Ángela Villota, Norha M. Villegas, Gabriel Tamura, Laurence.
Sheet 1MDAFA2004 Linköping, June 2004 A Language for Model Transformations in the MOF Architecture Ivan Kurtev, Klaas van den Berg University of Twente,
Chapter 2 Bring systems into being April Aims of this Lecture To explain what is “System Life-Cycle” To understand the systems engineering process.
State Space Representation
SEAA 2014 Automatic Production of Transformation Chains Using Structural Constraints on Output Models Cuauhtémoc Castellanos Etienne Borde Thomas Vergnaud.
Graph-Based Operational Semantics
Intelligent Information System Lab
Trace requirements. What do we mean by the term “Trace”? Why should we trace? 2 Requirements Life Cycle Management Trace Requirements.
Enterprise Data Model Enterprise Architecture approach Insights on application for through-life collaboration 2018 – E. Jesson.
Chapter 13 Logical Architecture.
Implementing Language Extensions with Model Transformations
Chapter 13 Logical Architecture.
State Space Analysis UNIT-V.
Ivan Kurtev, Klaas van den Berg Software Engineering Group
AspectAda Aspect-Oriented Programming for Ada95
Implementing Language Extensions with Model Transformations
EA Framework TOGAF is a framework - a detailed method and a set of supporting tools - for developing an enterprise architecture.
Towards a Common Reference Architecture for Aspect-Oriented Modeling A
Ordered Pair – (11 - 2) CS-708.
Presentation transcript:

Sheet 1 / 21© in Bonn - 21 March 2006 Identification of Crosscutting in Software Design Klaas van den Berg – University of Twente José María Conejero – University of Extremadura Juan Hernández – University of Extremadura

Sheet 2 / 21© in Bonn - 21 March 2006 CC != S & T Problem statement CC = …

Sheet 3 / 21© in Bonn - 21 March 2006 Context & Motivation  Steps  Define crosscutting  Identify crosscutting  Quantify crosscutting  Resolve crosscutting AOSD many solutions! what is the problem?

Sheet 4 / 21© in Bonn - 21 March 2006 Concept Diagram operationalization

Sheet 5 / 21© in Bonn - 21 March 2006 Definitions  Crosscutting  the tangling and/or scattering of concerns  Scattering  the spreading of a concern to multiple modules  Tangling  the intermixing of multiple concerns in a module  Aspect  a concern that crosscuts an artifact’s decomposition  CC != S & T  Needed: operationalization CC = …

Sheet 6 / 21© in Bonn - 21 March 2006 Outline  Crosscutting pattern  definitions of scattering, tangling and crosscutting  change impact analysis  Representation  dependency graph  dependency matrix & crosscutting matrix  Application  change impact analysis / examples / case studies  cascaded crosscutting pattern  extended crosscutting pattern  Open issues

Sheet 7 / 21© in Bonn - 21 March 2006 Crosscutting Pattern source and target

Sheet 8 / 21© in Bonn - 21 March 2006

Sheet 9 / 21© in Bonn - 21 March 2006 Examples Source elementTarget element ConcernModule ConcernRequirement Use Case RequirementArchitectural element Detailed design elementImplementation element Architectural element  source and target are abstractions from specific phases, levels, layers, domains,..

Sheet 10 / 21© in Bonn - 21 March 2006 Crosscutting Pattern  Pattern: recurring problem and reusable solution  Concepts source and target are taken from MDA However, no automated transformations are assumed!

Sheet 11 / 21© in Bonn - 21 March 2006 Crosscutting s1 s3 s4 s5 t1 t2 t3 t4 t5 s2 Elements involved both in scattering and tangling s3 crosscuts s4 source target scattering tangling

Sheet 12 / 21© in Bonn - 21 March 2006 Crosscutting  Crosscutting  a source element is scattered over target elements and where in at least one of these target elements, multiple source elements are tangled  s1 crosscuts s2  source element s1 crosscuts source element s2 for a given mapping between source and target, if s1 is scattered over target elements and in at least one of these target elements, s1 is tangled with source element s2  s1 crosscuts s2 with respect to a mapping to and decomposition of the target

Sheet 13 / 21© in Bonn - 21 March 2006 Change Impact Examples s1 s3 s4 s5 t1 t2 t3 t4 t5 s2  Scattering: change s5 => impacted {t4, t5}  Tangling: change s1 => impacted {t1, s2}  Crosscutting: change s3 => impacted {t2, t3, s4} to be preserved Propagation of change impact across multiple levels Dependency graph

Sheet 14 / 21© in Bonn - 21 March 2006 Change impact change element v in the mapping (x,v) impact(x,v) = change(x,v) + (preserve(u,v) | u ← preds(v); x ≠ v) + (impact(v,w) | w ← succs(v))  preds predecessors of an element adjacent elements in backward trace  succs successors of an element adjacent elements in forward trace

Sheet 15 / 21© in Bonn - 21 March 2006 Representation  Dependency graph  node: elements in source and target  edge: dependency relation between source & target elements  Dependency matrix  source x target  cell: dependency relation between source & target elements  Crosscutting matrix  source x source  cell: crosscutting relation between source elements

Sheet 16 / 21© in Bonn - 21 March 2006 Crosscutting s1 s2 s3 t1 t2 t3 t4 Example s1 crosscuts s3 source = {s1, s2, s3} target = {t1, t2, t3, t4} dependency graph

Sheet 17 / 21© in Bonn - 21 March 2006 Matrices  s[1] crosscuts s[3] dependency matrix target t[1]t[2]t[3]t[4] source s[1]1011S s[2]0100NS s[3]0010NS NT T crosscutting matrix source s[1]s[2]s[3] source s[1]001 s[2]000 s[3]000

Sheet 18 / 21© in Bonn - 21 March 2006 Mathematics  Dependency matrix :: source x target  Scattering matrix :: source x target  Tangling matrix :: target x source  Crosscutting product matrix :: source x source  crosscutting product matrix = scattering matrix x tangling matrix  matrix multiplication  Crosscutting matrix :: source x source  ‘normalized’ crosscutting product matrix

Sheet 19 / 21© in Bonn - 21 March 2006 Case Studies  DVD System  Gradecki & Lesiecki  Logging  Dialog system in GUI  Mediator Pattern  Drawing editor  Adapter Pattern

Sheet 20 / 21© in Bonn - 21 March 2006 Across Life Cycle  Consecutive levels or phases  Traceability links between phases (e.g. concerns, requirements, architecture, design,..)  Approach Cascading of crosscutting pattern Transitivity of dependency relations Matrix multiplication of dependency matrices

Sheet 21 / 21© in Bonn - 21 March 2006 Extended Crosscutting Pattern  Transitivity of inter-level and intra-level dependencies

Sheet 22 / 21© in Bonn - 21 March 2006 Evaluation  Identification of Crosscutting  Crosscutting pattern Based on inter-level dependencies Definitions of tangling, scattering and crosscutting  Formalization Matrix representation and matrix operations Operationalization of tangling, scattering and crosscutting  Across consecutive phases Cascading of crosscutting pattern  Extended crosscutting pattern Based on inter-level and intra-level dependencies

Sheet 23 / 21© in Bonn - 21 March 2006 Open Issues  Elements in source and target granularity of decomposition composites (vs atomic elements)  Dependency relations inter-level dependency types intra-level dependency types directionality and transitivity of relations  Change impact in case of crosscutting number of changes (delete, add, modify) severity of changes (effort)  Validation & scalability in case studies  Tool support