An approach to the design of software for distributed real-time systems
- 格式:pdf
- 大小:232.20 KB
- 文档页数:49
An Approach to the Design of Software for Distributed Real-Time Systems
Andrew J.Vickers†and John A.McDermid
Department of Computer Science
University of York
Heslington
York
Y015DD
ABSTRACT
The design of distributed real-time systems is difficult because of the large number
of issues involved with their design—inter-process communication,module
structure,timing constraints,hardware constraints,reliability,etc.In this paper,we
show how such issues may usefully be partitioned through the use of viewpoints
before being combined together to provide an overall design solution.Our design
approach and notation is based upon a set of concepts which are analagous to the
construction industry’s notion of an architecture which acts as the central artefact
within the civil engineering design process.The approach is introduced by way of
a small case study which allows the reader to be exposed to the detail of the
notation as it becomes necessary within the development of the example design.
1.Introduction
Distributed real-time systems are becoming more and more widely used in applications such as power station monitoring systems,aeroplane control systems,etc.A distributed system typically contains logically separate multiple processing units that communicate by way of some underlying electronic network[1].Such units may be housed together or be physically separate and may or may not share memory.Distributed real-time software controls such systems and in doing so must satisfy many of the requirements of traditional data processing software.In addition such software must service the needs of its environment within well-defined timing deadlines(the penalties in terms of risk and safety to man and the environment are often severe if such deadlines are missed).This issue,and others like it(including reliability)are often termed non-functional and are prevalent in this type of software[2].
It is typically these kinds of requirement that make the successful design and implementation of real-time systems so difficult.These requirements are difficult to specify,difficult to validate against and difficult to satisfy in implementation.Perhaps however,the main difficulty in realising distributed real-time systems is that the requirements are hard to design with;at least in part this is because the non-functional properties are emergent,rather than being properties which we can allocate or budget in some top-down design process[3].It is usually the case that such non-functional issues are dealt with late in the design process,i.e.during implementation[4,5]where they are often addressed through the use of‘tinkering’or‘optimisation’techniques.Whilst this works occasionally,it fails when the issue was ultimately decided by some previous design decision(for example,no amount of optimisation will increase system performance if some structural design decision was taken which introduced bottlenecks at all of the performance
†Andrew Vickers is funded by an SERC Studentship.