Devon M. Simmonds Computer Science Department, CSC592 1 Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington

Slides:



Advertisements
Similar presentations
ICS 434 Advanced Database Systems
Advertisements

A Brief Introduction to Aspect-Oriented Programming Zhenxiao Yang.
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
© Devon M.Simmonds, 2007 CSC 550 Graduate Course in Software Engineering ______________________ Devon M. Simmonds Computer Science Department University.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts Amherst Operating Systems CMPSCI 377 Lecture.
Department of Mathematics and Computer Science
I.1 Distributed Systems Prof. Dr. Alexander Schill Dresden Technical University Computer Networks Dept.
Aspect-Oriented Programming In Eclipse ® Aspect-Oriented Programming in Eclipse with AspectJ Dr Helen Hawkins and Sian January.
Java.sun.com/javaone/sf | 2004 JavaOne SM Conference | Session BUS JavaOne 2004 What is AOP? Gregor Kiczales AspectMentor.com and University of.
359C 10/1/05 Eric Wohlstadter Introductions –Name –Degree objective/Year –Research Area (or interests) Syllabus Aspect-Oriented Programming –AspectJ –AspectC.
University of British Columbia Software Practices Lab Introduction to Middleware for Software Engineering Eric Wohlstadter 539D.
Reseach in DistriNet (department of computer science, K.U.Leuven) General overview and focus on embedded systems task-force.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
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.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Software Engineering and Middleware: a Roadmap by Wolfgang Emmerich Ebru Dincel Sahitya Gupta.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. slide 1 CS 125 Introduction to Computers and Object- Oriented Programming.
Aspect-oriented programming Laura Ricci A.A
Aspect-Oriented Software Development (AOSD) Tutorial #2 AspectJ Basics.
(c) Copyright Palo Alto Research Center Incroporated. All rights reserved.1 AO Tools: State of the (AspectJ™) Art and Open Problems Mik Kersten.
Software modularity group Gregor Kiczales Professor and NSERC/Xerox/Sierra Systems Software Design Chair University of British Columbia Principal Scientist.
Technion Israel 1 Aspect-Oriented Software Development (AOSD) An Introduction Shmuel Katz Part of this lecture: Johan Brichau & Theo D’Hondt
Review David Rabinowitz. March 3rd, 2004 Object Oriented Design Course 2 Review What have we done during the course? Which topics we have not discussed?
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
Aspect-Oriented Programming with AspectJ™ AspectJ.org Xerox PARC Erik Hilsdale Gregor Kiczales with Bill Griswold, Jim Hugunin, Wes Isberg, Mik Kersten.
12-1 © Prentice Hall, 2004 Chapter 12: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.
Course: Introduction to Computers
1 Model Interface Implementation for Two-Way Obliviousness in Aspect-Oriented Modeling Presented by Wuliang Sun Department of Computer Science Baylor University.
An Introduction to AOP Original slides developed by Julie Waterhouse and Mik Kersten for OOPSLA 2004 AspectJ Tutorial ( kerstens.org/mik/publications/aspectj-
Devon M. Simmonds 1 Dr. Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington Presentation to ISIS.
Introduction to Aspect Oriented Programming Presented By: Kotaiah Choudary. Ravipati M.Tech IInd Year. School of Info. Tech.
Chapter 3: Objects, Components, and the Web Textbook IT Architectures and Middleware, Second Edition Chris Britton and Peter Bye AIT 600 Jeff Schmitt September.
Aspect Oriented Programming Scott Nykl CSSE 411 Senior Seminar.
1 An Aspect-oriented Weaving Mechanism Based on Component-and-Connector Architecture Naoyasu Ubayashi (Kyushu Institute of Technology) February 12, 2008.
Modularizing Web Services Management with AOP María Agustina Cibrán, Bart Verheecke { Maria.Cibran, System and Software Engineering.
Aspect-Oriented Refactoring of the Apache Cocoon Shared-Object Resource Allocation System Jeff Dalton February 28th, 2003 Advisor: David G. Hannay Client:
1 A Parameterized Interpreter for Modeling Different AOP Mechanisms Naoyasu Ubayashi(Kyushu Institute of Technology, Japan) Genki Moriyama(Kyushu Institute.
Information System Development Courses Figure: ISD Course Structure.
1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services.
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
Aspect Oriented Programming Gülşah KARADUMAN.
Kiczales and Mezini - FOAL AOP and Modular Reasoning [ICSE05] Start with first-principles definition of modularity and modular reasoning –localization,
AOSD1 Aspect-Oriented Software Design Karl Lieberherr Theo Skotiniotis.
AOP-1 Aspect Oriented Programming. AOP-2 Aspects of AOP and Related Tools Limitation of OO Separation of Concerns Aspect Oriented programming AspectJ.
Devon M. Simmonds Computer Science Department, CSC592 1 Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington
Introduction Infrastructure for pervasive computing has many challenges: 1)pervasive computing is a large aspect which includes hardware side (mobile phones,portable.
Introduction Better Faster Cheaper (pick any two) On-going issue that continues to motivate research in software engineering Applications: –continue to.
MDA – Model Driven Architecture Olivier Riboux. Overview What is MDA? The Challenges MDA addresses Developing in the MDA Benefits / Conclusion Case Study:
Aspect-Oriented Programming and Modular Reasoning G. KiczalesM. Mezini Presented by Alex Berendeyev.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Devon M. Simmonds SERP’08, July-14-17, Las Vegas 1 Aspect-oriented Approaches to Model Driven Engineering Devon M. Simmonds Computer Science Department.
Chapter 8: Aspect Oriented Programming Omar Meqdadi SE 3860 Lecture 8 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Slide 1 CSC450 Review & Summary Slides adapted from various sources.
Alloy-based Lightweight Verification for Aspect-oriented Architecture Naoyasu Ubayashi(Kyushu Institute of Technology) Yuki Sato(Kyushu Institute of Technology)
AOP and observer pattern. Design pattern General reusable solution to a commonly occurring problem in software design Not a finished design that can be.
Model Driven Development (MDD) Devon M. Simmonds Computer Science Department UNCW simmondsd[at]uncw.edu _______________________________________________________.
Devon M. Simmonds Computer Science Department, CSC592 1 CSC550 Software Engineering Devon M. Simmonds Computer Science Department University of North Carolina,
aspectj tools new and noteworthy Mik Kersten University of British Columbia Adrian Colyer IBM Hursley OOPSLA, October
R R R A Brief Introduction to Aspect-Oriented Programming.
CSC450 Software Engineering Devon M. Simmonds University of North Carolina, Wilmington 1.
AspectJ Development Tools Mik Kersten University of British Columbia October 28, 2003.
Aspect-oriented Code Generation Approaches Abid Mehmood & Dayang N. A. Jawawi Department of Software Engineering Faculty of Computer Science and Information.
An Interface Mechanism for Encapsulating Weaving in Class-based AOP
Metaprogramming and its relevance in Software Engineering
UML profiles.
Aspect-oriented programming
Aspects at the Design Level
AspectAda Aspect-Oriented Programming for Ada95
Presentation transcript:

Devon M. Simmonds Computer Science Department, CSC592 1 Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington August 19, 2008 Software Engineering Research

Devon M. Simmonds Computer Science Department, CSC592 2 © Devon M.Simmonds, 2007 Computer science/Information Systems - solving problems with the aid of a computer Artificial intelligence Database management systems Distributed systems Computer graphics Operating systems Software engineering Motivation

Devon M. Simmonds Computer Science Department, CSC592 3 Software Development Simple Tools Power Tools Blueprints International Space Station International Airport Baggage Handling System

Devon M. Simmonds Computer Science Department, CSC592 4 Models in Engineering Benefits of models – Help us understand and manage complex systems – Communicate understanding – Drive implementation – Save resources Need to improve the use of models in software development!

Devon M. Simmonds Computer Science Department, CSC592 5 Model-Driven Development (MDD) CodeCode Create Model Model of the Program AA BB CC Compile Model Compile Code Binary instructions Code-centric Development Manually Create Code Realizing the dream – MDD challenges – Model Specification – Model Transformation Code Generation – Managing technologies – Model Analysis

Devon M. Simmonds Computer Science Department, CSC592 6 The World of Software network Space Europe Asia USA Distributed Systems Africa Distributed systems are normative Complex, critical systems are pervasive! Consequences of errors are far-reaching

Devon M. Simmonds Computer Science Department, CSC592 7 Distributed Systems Context Computer Hardware Operating System Application program Computer Hardware Operating System Application program Transaction management Fault tolerance Security Naming Concurrency Replication Query Event Quality of service Middleware Application program Many middleware technologies –.Net, EJB, SOAP, COM, CORBA, Jini, Software require many middleware technologies Middleware technologies evolve Changing middleware in code is difficult

Devon M. Simmonds Computer Science Department, CSC592 8 Model Driven Architecture (MDA) [From OMG website] An initiative to address pervasive middleware features

Devon M. Simmonds Computer Science Department, CSC592 9 Fall 2008 Graduate Course CSC592 Distributed Systems A practical introduction to the development of distributed systems

Devon M. Simmonds Computer Science Department, CSC CSC592 Distributed Systems Overview – A practical introduction to the development of Distributed Systems – Important theoretical underpinnings – Use of middleware technologies: SOAP, EJB, Java RMI, CORBA, Jini – Introduction to aspect-oriented software development and AspectJ language. – Course web page: s/Fall08/csc592.htm Masters Theses & projects may be started in this course. sss

Devon M. Simmonds Computer Science Department, CSC Theses & Project Possibilities

Devon M. Simmonds Computer Science Department, CSC Using aspect to support the migration of application across middleware. Decouple technology from application code. Project #1 Complete Application Integration Design of Application Design of Middleware Concerns CodeCode

Devon M. Simmonds Computer Science Department, CSC Crosscutting functionality logging in org.apache.tomcat – red shows lines of code that handle logging – not in just one place – not even in a small number of places logging is not modularized The Problem

Devon M. Simmonds Computer Science Department, CSC AOSD 2003 Can we modularize this crosscutting concern? : System.out.println("foo called"); Helper.foo(n/3); : System.out.println("foo called"); Helper.foo(i+j+k); : System.out.println("foo called"); Helper.foo(x); : class Helper { : public static void foo(int n) { … } : } every call to foo is preceded by a log call 14 Tyranny of the dominant decomposition

Devon M. Simmonds Computer Science Department, CSC AOSD 2003 Yes! : System.out.println("foo called"); Helper.foo(…); : System.out.println("foo called"); Helper.foo(…); : System.out.println("foo called"); Helper.foo(…); : class Helper { : public static void foo(int n) { … } : } class Helper { : public static void foo(int n) { System.out.println("foo called."); … } : } : Helper.foo(n/3); : Helper.foo(i+j+k); : Helper.foo(x); : procedures can modularize this case unless logs use calling context, we don’t control source of Helper… 15 Tyranny of the dominant decomposition

Devon M. Simmonds Computer Science Department, CSC AOSD Point getX() getY() setX(int) setY(int) moveBy(int, int) draw() refresh() Line getP1() getP2() setP1(Point) setP2(Point) moveBy(int, int) draw() refresh() FigureElement moveBy(int, int) all subclasses have an identical method 16 Can we modularize this crosscutting concern? Tyranny of the dominant decomposition

Devon M. Simmonds Computer Science Department, CSC AOSD 2003 Yes! 2 Point getX() getY() setX(int) setY(int) moveBy(int, int) draw() refresh() Line getP1() getP2() setP1(Point) setP2(Point) moveBy(int, int) draw() refresh() FigureElement moveBy(int, int) 2 Point getX() getY() setX(int) setY(int) moveBy(int, int) draw() Line getP1() getP2() setP1(Point) setP2(Point) moveBy(int, int) draw() FigureElement moveBy(int, int) refresh() inheritance can modularize this 17 Tyranny of the dominant decomposition

Devon M. Simmonds Computer Science Department, CSC AOSD Point getX() getY() setX(int) setY(int) moveBy(int, int) draw() Line getP1() getP2() setP1(Point) setP2(Point) moveBy(int, int) draw() FigureElement moveBy(int, int) refresh() these methods all end with call to: Display.update(); 18 Can we modularize this crosscutting concern? Tyranny of the dominant decomposition

Devon M. Simmonds Computer Science Department, CSC AOSD 2003 NO! not with Java, C++ etc. DisplayUpdating 2 Point getX() getY() setX(int) setY(int) moveBy(int, int) draw() Line getP1() getP2() setP1(Point) setP2(Point) moveBy(int, int) draw() FigureElement moveBy(int, int) refresh() Need new modular structure after(): call(void FigureElement+.set*(..)) || call(void FigureElement.moveBy(int, int)) { Display.update(); } 19 Tyranny of the dominant decomposition

Devon M. Simmonds Computer Science Department, CSC AOSD 2003 YES! – with AspectJ DisplayUpdating 2 Point getX() getY() setX(int) setY(int) moveBy(int, int) draw() Line getP1() getP2() setP1(Point) setP2(Point) moveBy(int, int) draw() FigureElement moveBy(int, int) refresh() after(): call(void FigureElement+.set*(..)) || call(void FigureElement.moveBy(int, int)) { Display.update(); } 20 Tyranny of the dominant decomposition

Devon M. Simmonds Computer Science Department, CSC Program A AA BB CC Program B B2B2B2B2 B2B2B2B2 DD CC A1A1A1A1 A1A1A1A1 B1B1B1B1 B1B1B1B1 A2A2A2A2 A2A2A2A2 Aspect-based refactoring of components Project #2

Devon M. Simmonds Computer Science Department, CSC Aspect-oriented Testing, Monitoring & Policy Enforcement Project #3

Devon M. Simmonds Computer Science Department, CSC Transformation languages for aspect- oriented model driven development. To be done – Compare language – Extend language – Implement language Model B MM BB CC AA PP KK Project #4

Devon M. Simmonds Computer Science Department, CSC class Department { private: char name[40]; Student csc[100]; public: void manageStudents(){ csc[i]->register(); csc[i]->grade(); csc[i]->graduate(); }} Generating code from aspect-oriented design models Project #5 :Student:Department takeCourse() graduate()

Devon M. Simmonds Computer Science Department, CSC Q u e s t i o n s ? TheEnd Devon M. Simmonds, Computer Science Department, University of North Carolina Wilmington