Next: Process modelling
Previous: Experts of the
Software Design deals with the
development of software (and sometimes hardware) components whose joint behaviour must fulfill the
stated requirements (goals).
In the past, the protocol linking these components was sequential:
they were arranged in a hierarchy where superior agents delegated
one well-defined task, specified by pre- and post-conditions, to inferior components.
Since modern information systems are physically distributed
on computers heterogeneous at the hardware and software level,
modern Software Design has to cope with concurrent behaviour
heterogeneous components, leading to the need of a richer model
of interaction; much can be learnt from models used in other fields.
- In the case where the implementation is physically distributed, it becomes important to be able to reason about the configuration
of the system (access control, authorizations, etc) or about the quality
of the service (response time,
performances, reliability, etc). For example, distributed
management policies are considered in [Mof91] and real-time/fault tolerant
programs in [Coe91] [Kho89].
- Another aspect is at the level of the methodology. It is recognized
by several authors that the Object-Oriented (OO) paradigm (used at the programming and/or
at the specification level), although interesting, is not
sufficiently expressive because it is based on a too simple
send/receive messages protocol. In many applications, these two basic
primitives are used to simulate more complex interactions taking place
between programs/specifications. Additional primitives with more semantics
(like `permits', `informs' etc) are considered in some specification and
programming languages [Sho93] [Fia91].