330 likes | 543 Views
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
E N D
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.
Procedure Traversal Strategy => Propagation Pattern => Wrapper Definition => Generated Code
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
Discussion Topics • Practicality • Large vs. Small Scale Applications • New Tools • Standards • Education