1 / 11

The Herbal IDE

The Herbal IDE. Isaac Councill 11/05/03. Overview. Protégé An objectification of Soar – the PSCM, roughly Merging the design and programming processes Aspect-oriented software development Herbal IDE architecture summary. Protégé.

Télécharger la présentation

The Herbal IDE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The Herbal IDE Isaac Councill 11/05/03

  2. Overview • Protégé • An objectification of Soar – the PSCM, roughly • Merging the design and programming processes • Aspect-oriented software development • Herbal IDE architecture summary

  3. Protégé • Ontology editor – used to create object systems that describe all concepts and concept relations within a domain. • There are many plugins for protégé, including support for xml and rdf output. Protégé is a free download from http://protege.stanford.edu

  4. An Objectification of Soar • Specified using Protégé • Constructed using PSCM as base model, with augmentations deemed appropriate • Encourages top-down design and programming

  5. Merging Programming and Design

  6. Aspect-Oriented Programming • One step beyond OOP • Programmatic behaviors often do not fit naturally discrete modules (e.g. design patterns, logging, optimization levels) • AOP allows modularization of cross-cutting behaviors in object systems

  7. AOP Example Common solution to logging: public void doGet(JspImplicitObjects theObjects) throws ServletException { logger.entry("doGet(...)"); JspTestController controller = new JspTestController(); controller.handleRequest(theObjects); logger.exit("doGet"); }

  8. AOP Example (cont.) Create an aspect to objectify logging and avoid repetitive coding: public aspect AutoLog { pointcut publicMethods() : execution(public * org.apache.cactus..*(..)); pointcut logObjectCalls() : execution(* Logger.*(..)); pointcut loggableCalls() : publicMethods() && ! logObjectCalls(); before() : loggableCalls() { Logger.entry(thisJoinPoint.getSignature().toString()); } after() : loggableCalls() { Logger.exit(thisJoinPoint.getSignature().toString()); } }

  9. AOP in the Herbal IDE • Soar is difficult to program/understand/explain! • One way to slice it: The interesting parts of models aren’t just the operators they have in them, but how those operators interact with each other (aspects!) • Flexible aspect creation allows developers to specify reusable behaviors • More principled design • Better encapsulation of interesting bits • More understandable and explainable models (that’s the main point, afterall)

  10. Herbal IDE Architecture

  11. Resources • Protégé – http://protege.stanford.edu • RDF – http://www.dlib.org/dlib/may98/miller/05miller.html • XSLT – http://www.xml.com/pub/a/2000/08/holman/ • Aspect-oriented programming • http://www.parc.xerox.com/aop • http://aosd.net

More Related