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

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

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

Page 1: Adaptive Software Kevin Cella Graduate Seminar 02/04/2005.

Adaptive Software

Kevin Cella

Graduate Seminar

02/04/2005

Page 2: 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!

Page 3: Adaptive Software Kevin Cella Graduate Seminar 02/04/2005.

Adaptive Computing

Hardware Fault Tolerant CPU Architectures

EDGE Digital Filter Robot Controller

Software Engineering Agents Adaptive Programming Networking

Page 4: 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!

Page 5: Adaptive Software Kevin Cella Graduate Seminar 02/04/2005.

History

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

Page 6: 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!

Page 7: Adaptive Software Kevin Cella Graduate Seminar 02/04/2005.

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.

Page 8: Adaptive Software Kevin Cella Graduate Seminar 02/04/2005.

Class Graph

Page 9: Adaptive Software Kevin Cella Graduate Seminar 02/04/2005.

ProcedureTraversal Strategy =>

Propagation Pattern =>

Wrapper Definition =>

Generated Code

Page 10: Adaptive Software Kevin Cella Graduate Seminar 02/04/2005.

Result

Page 11: 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!

Page 12: Adaptive Software Kevin Cella Graduate Seminar 02/04/2005.

Formal Definition

Class Graph Context-Free Grammar

Traversal Strategies Regular Expressions NDFA Intersections

Graph Theory Construction edge Subclass edges

Page 13: 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!

Page 14: Adaptive Software Kevin Cella Graduate Seminar 02/04/2005.

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

Page 15: Adaptive Software Kevin Cella Graduate Seminar 02/04/2005.

Demeter Method

Class Dictionary Propagation Pattern Traversal Strategy Demeter Grammar

Delayed Binding Wrapper Code Generation

Page 16: Adaptive Software Kevin Cella Graduate Seminar 02/04/2005.

AOP Join Points Pointcuts Advice Aspects Compiler - AspectJ

Weaving Byte Code Manipulation Observer Pattern Java Language Extension

Page 17: Adaptive Software Kevin Cella Graduate Seminar 02/04/2005.

Alternate Designs

Object-Oriented Databases XML/Java Data Binding Adaptable Plug and Play Components

Aspectual Collaborations Aspectual Components

DJ Java Library

Page 18: Adaptive Software Kevin Cella Graduate Seminar 02/04/2005.

Standardization – Design Patterns AP Patterns

Inventor’s Paradox Structure-Shy Traversal Structure-Shy Object Context Class Graph

Page 19: 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!

Page 20: Adaptive Software Kevin Cella Graduate Seminar 02/04/2005.

Advantages

Maintenance Simplified Implementation Understandability Readability Reusability Code Reduction

Page 21: Adaptive Software Kevin Cella Graduate Seminar 02/04/2005.

Disadvantages

Security Weaving Language Extension

Grammar Integrate into Current OO-Languages

Page 22: Adaptive Software Kevin Cella Graduate Seminar 02/04/2005.

Agenda

Adaptive Computing History Adaptive Software

Examples Formal Definition DemeterJ / AOP

Alternate Designs Advantages/Disadvantages Applications Reactions Wrap it up!

Page 23: Adaptive Software Kevin Cella Graduate Seminar 02/04/2005.

Applications

Hewlett-Packard Planetary Computing SmartFrog

IBM eLiza

Testing EJB .NET

Page 24: 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!

Page 25: Adaptive Software Kevin Cella Graduate Seminar 02/04/2005.

Reactions

Lack of Standards Code Weaving Education Security Cost Analysis

Page 26: Adaptive Software Kevin Cella Graduate Seminar 02/04/2005.

Agenda

Adaptive Computing History Adaptive Software Formal Definition DemeterJ / AOP

Alternate Designs Advantages/Disadvantages Applications

Coding Examples Thesis Wrap it up!

Page 27: Adaptive Software Kevin Cella Graduate Seminar 02/04/2005.

Looking Ahead

AI Naturalistic Programming Tools packaged with SDK

Page 28: Adaptive Software Kevin Cella Graduate Seminar 02/04/2005.

Questions?

Page 29: Adaptive Software Kevin Cella Graduate Seminar 02/04/2005.

Discussion Topics

Practicality Large vs. Small Scale Applications

New Tools Standards Education