Adaptive Software Kevin Cella Graduate Seminar 02/04/2005.

Slides:



Advertisements
Similar presentations
Awais Rashid, Steffen Zschaler
Advertisements

Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
ASTA Aspect Software Testing Assistant Juha Gustafsson, Juha Taina, Jukka Viljamaa University of Helsinki.
Software Reuse SEII-Lecture 28
Aspect Oriented Programming - AspectJ Radhika Rajput.
1 Why do we need XAspects Structure-shyness –Can build DSL objects using constructors and use AspectJ to implement meaning of DSL objects. Is inconvenient.
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
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.
CS 101 Course Summary December 5, Big Ideas Abstraction Problem solving Fundamentals of programming.
INTRODUCTION TO DATABASES
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
Introduction to Database
Long-term Evolution of AP® CS A Renee Ciezki SIGCSE 2013.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Debugging Support.
Aspect Oriented Programming Razieh Asadi University of Science & Technology Mazandran Babol Aspect Component Based Software Engineering (ACBSE)
OBJECT ORIENTED SYSTEM ANALYSIS AND DESIGN. COURSE OUTLINE The world of the Information Systems Analyst Approaches to System Development The Analyst as.
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development 1.
Hyper/J and Concern Manipulation Environment. The need for AOSD tools and development environment AOSD requires a variety of tools Life cycle – support.
Aspect Oriented Programming Sumathie Sundaresan CS590 :: Summer 2007 June 30, 2007.
POSL (Principles of Software Languages) Gr. Kyushu Institute of Technology, Japan Pointcut-based Architectural Interface.
Aspect Oriented Programming Gülşah KARADUMAN.
Slides for Gregor Kiczales Two versions –short version: Crosscutting capabilities for Java and AspectJ through DJ (4 viewgraphs only) –long version: Controlling.
A Meta-Level Specification and Profile for AspectJ in UML Joerg Evermann School of Information Management Victoria University of Wellington.
Law of Demeter. What is it: Style Rule for building systems. Proposed by my research group: The Demeter Research Group in 1987, published in Covered.
Methodology: The AOP Refactoring Process Aspect-Oriented Refactoring of the Apache Cocoon Shared-Object Resource Allocation System Jeff Dalton Advisor:
TRANSPARENT EXTENSION OF SINGLE- USER APPLICATIONS TO MULTI-USER REAL-TIME COLLABORATIVE SYSTEMS An Aspect Oriented Approach to Framework Integration ICEIS.
Not only mark-up languages! There are other many other grammar formalisms and tools than XML. Some of them standardized (ASN). Even XML does not always.
AOP-1 Aspect Oriented Programming. AOP-2 Aspects of AOP and Related Tools Limitation of OO Separation of Concerns Aspect Oriented programming AspectJ.
Master’s Thesis Defense: Aspectual Concepts John J. Sung.
Introduction Better Faster Cheaper (pick any two) On-going issue that continues to motivate research in software engineering Applications: –continue to.
John J. Sung TA Consulting. Motivation for TraversalJ KL Enterprises identified AOP Enter into the AOP market early Add value by adding traversals to.
Aspect-Oriented Programming An Introductory Presentation Mike Landi MSCS Candidate Union University.
1 An Aspect-Oriented Implementation Method Sérgio Soares CIn – UFPE Orientador: Paulo Borba.
Drawbacks of object-oriented software development Lecture P12 T120B pavasario sem.
Features of AOP languages AOP languages have the following main elements: –a join point model (JPM) wrt base PL –a specification language for expressing.
Dale Roberts Object Oriented Programming using Java - Introduction Dale Roberts, Lecturer Computer Science, IUPUI Department.
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.
Checking LoD in AspectJ Show the idea, not the details. How can we precisely express it in a programming language?
Translating Traversals to AspectJ. Outline Motivation Demeter Process for Traversals AspectJ Translation Process.
Introduction to Databases
Aspect Oriented Security Tim Hollebeek, Ph.D.
AOP/cross-cutting What is an aspect?. An aspect is a modular unit that cross-cuts other modular units. What means cross-cutting? Apply AOP to AOP. Tease.
3 Project Objectives Aspectual Collaborations (AC) for the Connection Aspect –Metric: Does the restructuring of the UAV code with AC reduce the tangling.
UBC software modularity group 1/14/02 UCSD1 Discussion with Kiczales at UBC Ontology of AOP Ontology is the study of what there is, an inventory of what.
COM1205 TraversalJ Project* Pengcheng Wu Feb.25,2003.
Aspect-Oriented Software Development (AOSD)
AO Mechanisms in Demeter1 Discussion with Gregor Kiczales at UBC Ontology of AOP Ontology is the study of what there is, an inventory of what exists. An.
Talk only to your friends that share the same concerns (Law of Demeter for Concerns) Midterm Review February 2004.
객체지향시스템 연구실 1 THE OBJECT-ORIENTED TECHNOLOGY: An Executive Summary 서울대학교 컴퓨터공학부 객체지향시스템 연구실 교수 김형주.
ECE 750 Topic 8 Meta-programming languages, systems, and applications Automatic Program Specialization for J ava – U. P. Schultz, J. L. Lawall, C. Consel.
1 THE OBJECT-ORIENTED TECHNOLOGY: An Executive Summary 서울대학교 컴퓨터공학부 Internet Database Lab 교수 김형주 Spring 2007.
Features of AOP languages AOP languages have the following main elements: –a join point model (JPM) wrt base PL –a specification language for expressing.
Software Engineering Lecture 7
Aspect-Oriented Programming with the Eclipse AspectJ plug-in
Discussion with Gregor Kiczales at UBC
Demeter Aspects Who We Are Aspectual Collaborations
Software Design and Development
ADAPTIVE PROGRAMMING Sezen ERDEM December 2005.
CS 1104 INTRODUCTION TO COMPUTER SCIENCE
AP/DJ AP: a generic technology
Chapter 7 –Implementation Issues
Better Separation of Crosscutting Concerns with Aspectual Components
Requirements for better object-oriented design and programming languages Could be organized better.
Options for Demeter intergration into AspectJ
AspectAda Aspect-Oriented Programming for Ada95
Aspect Oriented Software Design
Presentation transcript:

Adaptive Software Kevin Cella Graduate Seminar 02/04/2005

Agenda Adaptive Computing History Adaptive Software Formal Definition DemeterJ / AOP  Alternate Designs Advantages/Disadvantages Applications Reactions Wrap it up!

Adaptive Computing Hardware  Fault Tolerant  CPU Architectures EDGE  Digital Filter  Robot Controller Software  Engineering  Agents  Adaptive Programming  Networking

Agenda Adaptive Computing History Adaptive Software Formal Definition DemeterJ / AOP  Alternate Designs Advantages/Disadvantages Applications Reactions Wrap it up!

History 1982 Hades Zeus 1985-presentDemeter 1990 Traversal Strategy 1995Separation of Concerns 1996Xerox PARC - AOP

Agenda Adaptive Computing History Adaptive Software Formal Definition DemeterJ / AOP  Alternate Designs Advantages/Disadvantages Applications Reactions Wrap it up!

A Closer Look What is Adaptive Programming? An extension of OOP using graph theory and formal languages to further abstract collaborating classes and generate a family of programs from a common architectural graph.

Class Graph

Procedure Traversal Strategy => Propagation Pattern => Wrapper Definition => Generated Code

Result

Agenda Adaptive Computing History Adaptive Software Formal Definition DemeterJ / AOP  Alternate Designs Advantages/Disadvantages Applications Reactions Wrap it up!

Formal Definition Class Graph  Context-Free Grammar Traversal Strategies  Regular Expressions  NDFA Intersections Graph Theory  Construction edge  Subclass edges

Agenda Adaptive Computing History Adaptive Software Formal Definition DemeterJ / AOP  Alternate Designs Advantages/Disadvantages Applications Reactions Wrap it up!

Law of Demeter "Only talk to your immediate friends" The methods of a class should not depend in any way on the structure of any class, except the immediate top-level structure of their own class

Demeter Method Class Dictionary Propagation Pattern Traversal Strategy Demeter Grammar  Delayed Binding  Wrapper  Code Generation

AOP Join Points Pointcuts Advice Aspects Compiler - AspectJ  Weaving  Byte Code Manipulation  Observer Pattern  Java Language Extension

Alternate Designs Object-Oriented Databases XML/Java Data Binding Adaptable Plug and Play Components  Aspectual Collaborations  Aspectual Components DJ Java Library

Standardization – Design Patterns AP Patterns  Inventor’s Paradox  Structure-Shy Traversal  Structure-Shy Object  Context  Class Graph

Agenda Adaptive Computing History Adaptive Software Formal Definition DemeterJ / AOP  Alternate Designs Advantages/Disadvantages Applications Reactions Wrap it up!

Advantages Maintenance Simplified Implementation Understandability Readability Reusability Code Reduction

Disadvantages Security Weaving Language Extension  Grammar  Integrate into Current OO-Languages

Agenda Adaptive Computing History Adaptive Software  Examples Formal Definition DemeterJ / AOP  Alternate Designs Advantages/Disadvantages Applications Reactions Wrap it up!

Applications Hewlett-Packard  Planetary Computing  SmartFrog IBM  eLiza Testing EJB.NET

Agenda Adaptive Computing History Adaptive Software Formal Definition DemeterJ / AOP  Alternate Designs Advantages/Disadvantages Applications Reactions Wrap it up!

Reactions Lack of Standards Code Weaving Education Security Cost Analysis

Agenda Adaptive Computing History Adaptive Software Formal Definition DemeterJ / AOP  Alternate Designs Advantages/Disadvantages Applications  Coding Examples Thesis Wrap it up!

Looking Ahead AI Naturalistic Programming Tools packaged with SDK

Questions?

Discussion Topics Practicality  Large vs. Small Scale Applications New Tools Standards Education