OBSERV—A Prototyping Language and Environment

Shmuel Tyszberowicz, Amiram Yehudai

Research output: Contribution to journalArticlepeer-review

10 Scopus citations


The OBSERV methodology for software development is based on rapid construction of an executable specification, or prototype, of a systems, which may be examined and modified repeatedly to achieve the desired functionality. The objectives of OBSERV also include facilitating a smooth transition to a target system, and providing means for reusing specification, design, and code of systems and subsystems. We are particularly interested in handling embedded systems, which are likely to have concurrency and have some real-time requirements. The OBSERV prototyping language combines several paradigms to express the behavior of a system. The object-oriented approach provides the basic mechanism for building a system from a collection of objects, with well-defined interfaces between them. We use finite-state machines to model the behavior of individual objects. At a lower level, activities that occur within objects, either upon entry to a state or in transition between thus allowing a nonprocedural description. The environment provided to a prototype builder is as important as the language. We have made an attempt to provide flexible tools for executing or simulating the prototype being built, as well as for browsing and static checking. The first implementation of the tools was window based but not graphic. A graphic front end, name CRUISE, was developed afterwards. A simulation sequence focuses on a single object, which can be as complex as necessary, possibly the entire system, and expects all the interactions between it and the outside world to be achieved by communication between the simulator and the user. The simulator allows the user to easily switch back and forth from one object to another, simulating each object in isolation. To enable testing the behavior of a prototype in a realistic environment, it is possible to construct objects that imitate the environment objects. We also allow simulation of systems with missing pieces, by calling upon the user to simulate any such missing piece by himself.

Original languageEnglish
Pages (from-to)269-309
Number of pages41
JournalACM Transactions on Software Engineering and Methodology
Issue number3
StatePublished - 7 Jan 1992


  • browsers
  • concurrency
  • embedded systems
  • graphical user interface
  • interactive programming environments
  • logic programming
  • modeling with finite state machines
  • object-oriented approach
  • real time systems
  • simulator
  • software reuse
  • static checker


Dive into the research topics of 'OBSERV—A Prototyping Language and Environment'. Together they form a unique fingerprint.

Cite this