Océ is a mayor player in the worldwide copier market and constantly

advertisement
This document is a summary of the “Visualising an Embedded Software Architecture” thesis written
by Mark van Kessel. This thesis was a result of a graduation project at Océ Research & Development
performed between September 2003 and March 2004. Because the subject of this graduation project
had a confidential character, the resulting thesis also became confidential.
Océ is a mayor player in the worldwide copier market and constantly tries to improve its market
position by innovating and developing new products. Developing a copier is a complex and timeconsuming process. The deployment of a new copier on the market takes years and hundreds of
people. People of all kinds of different disciplines participate and must work close together. One
aspect of developing a new copier deals with the embedded software. The embedded software controls
hardware like motors, heaters and sensors. Because Océ develops a wide range of products, much
efficiency is gained by reusing software. Therefore Océ has developed an Embedded Software
Reference Architecture (ESRA) which specifies the architecture of the embedded control software of
the Engine. When a new product is going to be developed it can make use of ESRA and make a jumpstart in the development of the embedded software. To ensure success, ESRA must be accessible and
understandable to all parties involved.
ESRA consists of documentation describing various architectural subjects, written for an audience of
software architects. These documents describe the architecture in a clear and high-level manner, but
documents are not always the right medium to reach a wide audience. For ESRA to be most effective
it needs to be as accessible and understandable as possible. In particular the ESRA subject of
Functions needs further explaining. Functions are stand-alone parts of a copier that perform one clear
and distinguishable functionality. Examples of these Functions are the Paper Input Module for
providing new sheets to the rest of the Engine, the Finisher to deliver ready sheets to the user and the
Process to actually print a sheet. Functions are also used as a project organisational structure. A
project is divided into Function teams where groups of multidisciplinary experts develop a Function.
These Function team members are the primary targets that ESRA would like to add to the audience.
They do not necessarily have a background in software architecture and are helped by a better
understanding of the embedded software architecture.
This project deals with the realisation of a visual model that shows what the embedded software does.
The approach of this project was to make a model of one particular Function, the Paper Input Module
(PIM) Function. The PIM is that part of a copier that provides sheets to the printing part of the copier.
A PIM typically consists of several paper trays, so different sorts of paper can be printed. The reason
to choose for the PIM is because it is relatively simple, but all architectural aspects are present.
Because too much detail would make such a model too complex (meaning less understandable) it was
chosen to base this project on a simplified version of a PIM with only one paper tray.
To make a jump-start with the development of this model, it was chosen to make use of the Generic
Function component of the Reuse Group. The Generic Function is a reusable software component
based on ESRA, developed to speed up Function software development. This component is developed
with Rational Rose RealTime in C++. Therefore it was chosen to develop the ESRA Explanatory
Model also in Rational Rose RealTime and C++. Rational Rose RealTime has many (debug) features
that can be used to explain the model. But because Rational Rose RealTime was not developed for
explanatory purposes, but for developing embedded (real-time) systems, some extra functionality has
to be implemented to further explain the model. Because the Rational Rose RealTime model and the
explanatory parts are very different, it was chosen to divide the ESRA Explanatory Model into two
layers, the Executable Model Layer and the Presentation Layer. The Executable Model Layer will
be a Rose RealTime model, implementing a PIM. The Presentation Layer will consist of all
functionality that can be used to show and explain the Executable Model Layer.
Most time of this graduation project was used to realise the Executable Model Layer. At the end, all
core functionality was implemented, so realistic behaviour of the Paper Input Module could be shown.
We showed this model to a possible audience to get feedback on how usable and understandably it
was. Based on these talks and demonstrations we started with the Presentation Layer. Several possible
extensions and improvements were investigated but because of the limited time available, only a few
of these possibilities could be worked out. The most important being a supportive tool to make the
output (log-files) of the Executable Model Layer better understandable.
Download