[Kestrel circling]

Home : Current Projects : EPOXI
 

Home

About Kestrel

Research Staff

Current Projects

Project Archive

Publications

Technology Transfer

Career Opportunities

Contact Kestrel

EPOXI: Evolutionary Programming Over eXplicit Interfaces

Principal Investigators: Dr Dusko Pavlovic & Dr Douglas Smith

Sponsor: DARPA ISO/DASADA

Objective

The EPOXI project is about guaranteeing that complex software systems operate correctly through assured composition and evolution of software modules.

  • Assured composition: in a complex software system, many modules must interact in an intricate manner. The modules may have been developed by different companies at different stages of the system's deployment. How can a system engineer know that the modules will work together correctly? APIs based on conventional technologies provide only signature information (i.e., what functions are available and what parameters they take). This is not enough to ensure module compatibility.
  • System evolution: a complex software system may be in use for decades. Parts of the system may be upgraded. How can a system engineer know that upgrading a module will not cause the system to fail? Conventional APIs do not provide enough information.

Approach: Especs

The core of EPOXI's approach to composition and evolution is a technology called Especs (Evolving Specifications). Especs capture the essential information about the structure and behavior of modules:

  • The structural specification of a module captures the logical functionality of a module (what the module achieves) using algebraic specifications and categorical diagrams.
  • The behavioral specification of a module captures the operational method a module uses to achieve its functionality. One suitable formalism is coalgebraic transition systems.

A prime example of the need to capture both structure and behavior is a communication protocol: the structural specification talks about messages, authentication, encryption, etc., while the behavioral specification talks about the steps required to establish a secured channel, asyncrhonous vs. synchronous transmission, acknowledgements, etc.

If two modules are to interact via such a protocol, they must know what the protocol guarantees and what steps they must take to use the protocol. Similarly, if a system engineer is to directly replace one protocol with another, he must know that the replacement provides at least as much functionality using the same sequence of operational steps.

Glue Code and Evolution

However, the EPOXI project aims to go beyond just specifying structure and behavior: EPOXI aims to leverage these entirely formal specifications to enhance the flexibility of modules and complex software systems.

  • If two modules are essentially compatible, but their implementations do not fit together perfectly, then glue code can, perhaps, be synthesized from the modules' especs: for example, the synthesized glue code may translate from the particular data representation used by one module to the representation used by the other.
  • Similarly, a new version of a module is likely to differ in small ways from the version it is replacing: the functionality may have been enhanced or realized in a different manner. Glue code can be synthesized to ensure that when a module in a system is upgraded, the other (unchanged) modules interact correctly with the new version.

Performance Gauges

The final thread in EPOXI's approach is the synthesis of run-time performance gauges. Because especs address both the functionality of a module and the method for achieving that functionality, they can address how well the functionality is actually delivered at run-time. Gauges can be synthesized from suitable especs to monitor run-time performance and possibly trigger corrective action if the performance is too poor. (Corrective action might, for example, include replacing the module with an alternative that uses a different implementation method, one better suited to the particular run-time data encountered by the module.)

Current Research Themes

The EPOXI project is invesitigating the basic foundation of especs, compact and convenient formalisms for representing especs, and effective technology for exploiting especs.

  • Especs are based on a coupling of algebraic and coalgebraic specifications: the algebraic captures the structure while the coalgebraic captures the behavior.
  • The structure and behavior are related to each other through formal gauges.
  • The representation of especs is based on category-theoretic hereditary diagrams, and on abstract state machines.
  • The technology for composing modules is based on category-theoretic colimit operations.
  • Glue code synthesis and evolution are based on formal refinement technologies, in the form of categoty-theoretic morphisms and interpretations.

Benefits

  • True modularity: especs provide the essential information necessary to allow complex systems to be developed as modules by independent teams of programmers.
  • Cost-effective evolution: modules will be upgraded while system functionality will be maintained. The costs of evolution, stemming from software inventories and quality assurance, will be slashed.

Papers

  • D. Pavlovic, Towards semantics of self-adaptive software. In: "Self-Adaptive Software: First International Workshop", 17-19 April 2000, Oxford, England, pp 50-64, Paul Robertson, Howie Shrobe, Robert Laddaga (Eds.), Spinger 2000, LNCS vol. 1936, pp 50-65
  • D. Pavlovic and D.R. Smith, System Construction via Evolving Specifications, in Complex and Dynamic Systems Architectures (CDSA 2001), Brisbane, Australia, 2001
  • D. Pavlovic and D.R. Smith, Guarded Transitions in Evolving Specifications, in Proceedings of 9th International Conference on Algebraic Methodology And Software Technology (AMAST 2002), Eds. H. Kirchner and C. Ringeissen, Springer-Verlag LNCS, September 9-13, 2002, St. Gilles les Bains, Reunion Island, France.
  • Matthias Anlauff, D. Pavlovic and D.R. Smith, Composition and Refinement of Evolving Specifications, invited paper to appear in Proceedings of Workshop on Evolutionary Formal Software Development, July 2002, Copenhagen, Denmark.

Presentations (powerpoint)

 

 

- Back to Top -


- Home - About Kestrel - Research Staff - Current Projects - Project Archive -
- Publications - Technology Transfer - Career Opportunities - Contact Kestrel -