
                                  TOPO

                            Toolset to support
                            product realization
                         from LOTOS specifications

                      Last version 3R5 -- December, 1995

                        Lotos Tools Development Team
                             <topo@dit.upm.es>
                         Dpt. Ingenieria Telematica
                       Technical University of Madrid

                         E.T.S.I. Telecomunicacion
                           Ciudad Universitaria
                          E-28040  Madrid, SPAIN


TOPO is distributed as free software for non-profit use,
and can be obtained from the address above.
See details in the section "How to get it?" below.

For commercial (profit) use, contact
    Kees Bogaards
    Sofware Ontwikkeling Met Sofware (SOMS) bv
    Institutenweg 1
    7521 PH ENSCHEDE
    The Netherlands
    Tel: +31 53 309682
    Fax: +31 53 309669
    internet: bogaards@soms.nl
    compuserve: 100144.22@CompuServe.com

ADT Abstract Data Types Support
-------------------------------
Abstract Data Types Compiler:
  o Automatic implementation of ADT specifications as a rewrite system.
  o Memory management provided.
  o Opportunity to replace all or part of the data types by hand coded
    implementations.
    For efficient implementations (e.g. machine integers),
    or to link with other worlds
    (e.g. interoperation with ASN.1 coded data).
  o Partial data types may be considered by associating
    a user function to LOTOS operations.
    This function gets control whenever the operation is exercised,
    and may raise an exception or terminate the program.
  o User may specify which operations are constructors and which ones
    are not; this enables effective compile time checking of
    questionable data type specifications.

Behaviour Compiler
------------------
Transition System Compiler:
  o An automata is generated that behaves according to the
    specification.
    Only the transitions allowed by the specification may happen.
  o Random (fair) behaviour is implemented for non-deterministic
    specifications.
  o Side-effects may be specified
    as pieces of code written in a programming language.
    The program fragment is associated to action offers.
    The code is executed upon synchronization success.
    It is similar to output actions in automata.
  o Event offers may be delayed for some time (in seconds).
  o Event offers may depend on external conditions:
    active wait is provided on user specified predicates.
  o Value negotiation may be assisted by means of default values
    provided by the implementer.
  o Multiway rendez-vous supported: synchronization, value matching,
    value exchange, broadcasting, ...
  o Recursive and dynamic creation of processes supported.
  o Automatic scheduling embedded / External scheduling is optional.


TOPO, the toolset
-----------------
TOPO is really a bunch of tools to help in design with LOTOS.
Every tool is conformant to IS 8807, the ISO standard,
and deals with full lotos (unless explicitly stated)

Tool summary:
  o syntax checker
  o pretty printer (warning: no comments)
  o static semantics checker
  o C and Ada code generation for data and behaviour
    TOPO defines virtual machines for data and behaviour,
    before actual code generation.
  o data types analysis (hierarchies, and so ...)
  o objects cross reference listing
  o data type annotating tool, to link LOTOS data objects to external 
    ones (C libraries, Ada packages, ...)
  o data interpreter, for debugging
  o behaviour interpreter library (to build symbolic tools)
    (warning: basic lotos)
  o data types test suite specification language, and translator
  o lotos behaviour test generator
    (warning: basic lotos)
  o generation of CR (Common Representation) as defined in ESPRIT 
    project LotoSphere
  
Several "standard libraries" are provided. The one in the ISO annex is 
bulky and has some flaws. The user may easily define its own library, 
so this is an open list of alternatives
  + minimal     only booleans
  + bool_int    only booleans and integers
  + is          as defined in ISO IS 8807
  + mod-is      is modified by LotoSphere
  + ditupm      an alternative with more realistic types
                (a matter of taste?)

The tools may be accessed individually or under a shell interface that 
may be customized to concrete user needs.

TOPO satellites: contributions
------------------------------
  LOLA (LOtos LAboratory)
    o symbolic simulator, expansion tool, test execution tool

  TLOTOS (Lotos with time extensions)
    o for performance analysis, and time dependencies validation

  GLD (GraphicaL Designer)
        Tool for graphical editing. It uses two
        different formalism G-LOTOS and DART (can be mixed).

    . LOTOS mode:
        - Automatic layout
        - Automatic conversion from/to textual LOTOS.

    . DART mode: (To design the architecture of processes of the
      system and its relations of parallelism, sequecence and disable)
       - DART editing
        - Use of adjustable grid
        - DART transformation

    . both:
        - Mixed design: You can use G-LOTOS or DART in any moment.
        - Usual edit functions (Cut, Copy, Paste, Zoom, ...)
        - Programable transformation from DART into G-LOTOS and viceversa.
        - Rapid navigation over the specification

  GLA (GraphicaL Animator)
        Is a simulator of the behaviour of the specification, using
        graphical views from the DART specification to show:
        - process involved in a synchronization
        - what actions are the potencial offerts of each process
        - the history of instantiations
        - which process are active
        - a trace of the execution

Applications
------------
  o Rapid prototyping.
  o Validation.
  o Specification animation:
    annotate significant events with visual effects
    to trace system evolution.
  o Specification validation by running test suites:
    compose specification with test suite, compile, and run.
  o Product realization.

How to get it
-------------
o On the network.
  TOPO is obtainable via anonymous ftp from
  host             IP address      directory
  --------------   -------------   -------------------------
  ftp.dit.upm.es   [138.4.2.10]    /pub/lotos/tools/TOPO_...
  --------------   -------------   -------------------------
  where ... stands for the version.

o On a streamer.
  Send us two standard Sun streamers (QIC-11, 600ft)
  TOPO will be loaded into one of them, and returned to you.
  The other streamer will be retained as payment for administrative
  costs.

