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

Post on 05-Jan-2016

215 views 0 download

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

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 1982-1985 Zeus 1985-present Demeter 1990 Traversal Strategy 1995 Separation of Concerns 1996 Xerox 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

ProcedureTraversal 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