Research Issues

slide: Guess ...

Are Components better Objects?

Component Technology

slide: Are components better objects?


  • to specify behavior

    what rather than how

slide: Responsibilities in OOP


  • makes request to perform a service


  • provides service upon request
Client/Server Model

slide: Responsibilities in OOP


  • a set of services

Behavioral refinement

  • improving contracts

slide: Contracts and behavioral refinement


if B refines A then B may be used wherever A is allowed

Behavioral Refinement

slide: Behavioral refinement

Subtype -- signature and behavior

  • preservation of behavioral properties

slide: Subtyping and behavior

Behavioral properties

  • invariant properties -- true of all states
  • history properties -- all execution sequences
Types as Behavior

slide: Subtyping and behavior

Example -- IntSet \not<= FatSet

  • FatSet -- insert, select, size
  • IntSet -- insert, delete, select, size

slide: History properties -- example

History -- not satisfied by IntSet

Objects as Behavioral Types

slide: History properties -- example

From Metaphor to Calculus

  • a strong object is a weak agent
Agents for the Web

slide: Research Challenges

Case Study: Verifiable (Component) Software

  • e.g. CMG Test Frame -- UML Use cases -> Test Action Words
Towards a formal approach

slide: Research Challenges