Aspect-Oriented Software Development (236608) 1 Aspect-Oriented Software Development (AOSD) Tutorial #1 Course site :

Slides:



Advertisements
Similar presentations
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
Advertisements

©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development.
1 Modular Verification of Strongly Invasive Aspects Authors: Emilia Katz, Shmuel Katz The Technion.
Figures – Chapter 21. Figure 21.1 Cross-cutting concerns.
Software Design & Development Year 12. Structure of the Course Development and Impact of Software Solutions Development and Impact of Software Solutions.
Review Amit Shabtay. March 3rd, 2004 Object Oriented Design Course 2 Review What have we done during the course? Where to learn more? What is for the.
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.
1 Introduction to Software Engineering Lecture 42 – Communication Skills.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2005 Pearson Education, Inc. All rights reserved Chapter 3 Control Statements.
Aspect-Oriented Software Development (AOSD) Tutorial #4 Categories of Aspects.
11 3 / 12 CHAPTER Databases MIS105 Lec14 Irfan Ahmed Ilyas.
Rigorous Fault Tolerance Using Aspects and Formal Methods Shmuel Katz Computer Science Department The Technion Haifa, Israel
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
1 CS150 Introduction to Computer Science 1 Relational Operators and the If Statement 9/22/08.
Aspect-Oriented Software Development (AOSD) Additional Tutorial.
Aspect-Oriented Software Development (AOSD) Tutorial #9 Modular Verification of Aspects.
Aspect-Oriented Software Development (AOSD) Tutorial #5 Categories of Aspects – contd.; LTL properties formalization.
Aspect-Oriented Software Development (AOSD) Tutorial #9 Modular Verification of Aspects.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development 2.
Creating Quiz in MOODLE. Step 1: Create Question Bank - Create Question Bank - Click Question Bank on Settings.
CSC230 Software Design (Engineering)
Framework for Model Creation and Generation of Representations DDI Lifecycle Moving Forward.
1 Model Interface Implementation for Two-Way Obliviousness in Aspect-Oriented Modeling Presented by Wuliang Sun Department of Computer Science Baylor University.
Exploring Two-Step Equations
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
Lecture for Week Spring.  Numbers can be represented in many ways. We are familiar with the decimal system since it is most widely used in everyday.
Free Mini Course: Applying SysML with MagicDraw
Outline Introduction Problem Statement Object-Oriented Design Aspect-Oriented Design Conclusion Demo.
Towards Executable Aspect-Oriented UML Models 10th Int. Workshop on Aspect-Oriented Modeling (AOM), 6th Int. Conf. on Aspect-Oriented Software Development.
1 N Degrees of Separation: Multi-Dimensional Separation of Concern (MDSOC) HyperJ: language and concepts of general concern combination.
Introduction to Aspect Oriented Programming Presented By: Kotaiah Choudary. Ravipati M.Tech IInd Year. School of Info. Tech.
Multiplication is the process of adding equal sets together = 6 We added 2 three times.
Aspect Oriented Programming Razieh Asadi University of Science & Technology Mazandran Babol Aspect Component Based Software Engineering (ACBSE)
VERIFICATION OF ASPECT ORIENTED MODELS BY DON MARTIN JAYASHREE VENKIPURAM PATHANGI PIYUSH SRIVASTAVA REFERENCES F. Mostefaoui and J. Vachon,” Design level.
Aspect Oriented Programming Scott Nykl CSSE 411 Senior Seminar.
What is “model transformation”? Distinction between source and target Source may be same as target May be multiple sources, or targets Reaching a fixed.
 Why do we need it?  How can we measure it?  When do we achieve it?
ORDER OF OPERATIONS x 2 Evaluate the following arithmetic expression: x 2 Each student interpreted the problem differently, resulting in.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development 1.
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.
Aspect Oriented Programming Sumathie Sundaresan CS590 :: Summer 2007 June 30, 2007.
Aspect Oriented Programming Gülşah KARADUMAN.
VERIFICATION OF ASPECT-ORIENTED MODELS Review of Aspect-Oriented Definitions aspect – crosscutting concern that may involve multiple classes pointcut –
Joel Phinney March 31, ◦ Concerns  Separation of Concerns, Tangled and Scattered Concerns, Cross-Cutting Concerns, Aspects ◦ Aspect-Oriented Software.
© Siemens AG, CT SE 2, Iris Groher, Markus Voelter C O R P O R A T E T E C H N O L O G Y XWeave – Models and Aspects in Concert 1 XWeave Models.
Software Development CSCI-1302 Lakshmish Ramaswamy.
Formal Methods in Software Engineering
Introduction Better Faster Cheaper (pick any two) On-going issue that continues to motivate research in software engineering Applications: –continue to.
An Overview of Aspects Shmuel Katz Computer Science Department The Technion
1 An Aspect-Oriented Implementation Method Sérgio Soares CIn – UFPE Orientador: Paulo Borba.
Aspect-Oriented Action Semantics Descriptions Luis Menezes University of Pernambuco
Final Exam Review of Expressions
Splash Screen. Lesson Menu Five-Minute Check (over Lesson 5–7) Main Idea and Vocabulary Example 1:Addition Equations Example 2:Subtraction Equations Example.
Topics for exam in AOSD Basic concepts: tangling, scattering, joinpoint, advice, cross-cutting, weaving AspectJ: syntax, pointcut notations, around, proceed,
Chapter 8: Aspect Oriented Programming Omar Meqdadi SE 3860 Lecture 8 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Aspect Oriented Development Alex Beatty.  Purpose  Cross-cutting Concerns  Join Points, Pointcuts, and Advices  Weaving  Invasive vs. Non-Invasive.
Multiplication Facts X 3 = 2. 8 x 4 = 3. 7 x 2 =
SATMathVideos.Net A set S consists of all multiples of 4. Which of the following sets are contained within set S? A) S2 only B) S4 only C) S2 and S4 D)
1 Modularity Analysis of Use Case Implementations Fernanda d’Amorim Advisor: Paulo Borba.
Converting a Decimal to Scientific Notation 1. Count the number N of places that the decimal point must be moved in order to arrive at a number x, where.
Applying Aspect-Orientation in Designing Security Systems Shu Gao Florida International University Center for Advanced Distributed Systems Engineering.
SwE 455 Tutorial. What is Evolve? Evolve is a tool for defining components and connecting them together to form new components. Also provides a runtime.
Requirement Engineering with URN: Integrating Goals and Scenarios Jean-François Roy Thesis Defense February 16, 2007.
Aspect-Oriented Software Development (AOSD)
Software Engineering Lecture 7
Aspect-Oriented Programming with the Eclipse AspectJ plug-in
Two part course Software Engineering option only!
SwE 455 Tutorial.
Percents and Equations
Presentation transcript:

Aspect-Oriented Software Development (236608) 1 Aspect-Oriented Software Development (AOSD) Tutorial #1 Course site : T.A. :Emilia Katz Reception hours: Sunday 17:00 – 18:00 Taub 641

Aspect-Oriented Software Development (236608) 2 Tutorial 1: Why aspects? We will see: Example system Illustration of tangling and scattering

Aspect-Oriented Software Development (236608) 3 General Remarks Facts about aspects: Aspects can be identified at different stages of the development cycle Ideally: “Low impact (non-invasiveness) of changes” Additive changes in requirements  additive change in design and code. Tangling and scattering reduce reusability and traceability, and changes become invasive

Aspect-Oriented Software Development (236608) 4 Example : SEE Software Engineering Environment for programs consisting of expressions Description: Supports specification of expression programs Contains set of tools for expressions: –evaluation –display –check (syntactic & semantic correctness)

Aspect-Oriented Software Development (236608) 5 Example : SEE – contd. Development process (simplified): Requirements (in natural language) Design (UML) Implementation (Java) decompose by tool decompose by object Intuition: difference in decompositions causes scattering and tangling!

Aspect-Oriented Software Development (236608) 6 Design for SEE (partial) expression number … binary operator … unary operator … plus … minus … unary plus … unary minus … access/modify apply tools create() getters setters eval() display() check()

Aspect-Oriented Software Development (236608) 7 New Requirements for SEE Persistence: expressions should be optionally persistent Style check support: it should be possible to check expressions against multiple styles (fonts, naming conventions, etc.)

Aspect-Oriented Software Development (236608) 8 Adding Persistence expression number … binary operator … unary operator … plus … minus … unary plus … unary minus … access/modify apply tools save - retrieve persistent objects on first access - flush modifications back to database  scattering  tangling

Aspect-Oriented Software Development (236608) 9 Adding Style Checks expression number … binary operator … unary operator … plus … minus … unary plus … unary minus … access/modify apply tools let 3 style checkers be defined visitor ch. 1ch. 2ch. 3 accept(visitor) affect display() method instead of check() method

Aspect-Oriented Software Development (236608) 10 Style Checks + Persistance expression number … binary operator … unary operator … plus … minus … unary plus … unary minus … access/modify apply tools save persistence of style- checkers state information accept(visitor) visitor ch. 1ch. 2ch. 3

Aspect-Oriented Software Development (236608) 11 Adding Persistence as Aspect expression number … binary operator … unary operator … plus … minus … unary plus … unary minus … access/modify apply tools persistence asp. pointcut definition advice() save() retrieve() flush()

Aspect-Oriented Software Development (236608) 12 Crosscutting More than one Hierarchy Example - system for exams in arithmetic Initially, includes exams: Questions: each question is an expression Answers: each answer is a number Grade: grade is calculated based on answers checks (use the “eval()” function of the questions, check equality with the answers, count correct answers percentage) Addition: Persistency of the exams (the whole history)!

Aspect-Oriented Software Development (236608) 13 Adding Persistency - Results Crosscutting more than one class hierarchy? Expressions (Questions)? Answers? Grades? Exam class? Yes! Crosscutting more than one class hierarchy! ✔ ✔ ✔ ✔

Aspect-Oriented Software Development (236608) 14 Adding Persistency - Treatment Without aspects – changes in: Expressions (Questions) Answers Grades Exam as a whole With aspects – Reuse persistency aspect, with changes in: Pointcut definition [on what classes to be applied, …] Additional aspect advice (may be unnecessary)