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

Adaptive Software Kevin Cella Graduate Seminar 02/04/2005

Embed Size (px)

Citation preview

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