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