Variation in engineering disciplines often indicates the
amount of change between two products. Two or more products are similar but not
equal. The product variation must be handled in an advanced way to ensure
effective production and high-quality results. In software engineering the
handling of variation has seen increasing attention. Software applications are
not longer developed as unique stand-alone products but as parts of product
families. The concept of software architecture is an important tool in handling
variation of software product families.
Three papers were planned in the session on variation:
Because Hassan Gomaa was unable to attend the ARES
Workshop, Henk Obbink gave an unplanned presentation about recent research work
at Philips Research (Alison Saunders, Henk te Sligte and Peter van den Hamer).
This work has not been published yet, but plans to do so are underway. The
title of the presentation was Visualising Software Architecture in the 4x4
Approach.
Frank van der Lindens presentation started with an
explanation of different kinds of variation in Philips products. Since each
kind of variation may lead to different kinds of variants the number of
possible variation may become huge. Currently diversity is modelled with option
bits and compilers. Other mechanism for dealing with variants are not used
because of missing support in the programming environment or missing resources.
New concepts should therefore be developed as variant components with late
binding concepts.
Tapio Tallgren presented the paper about configurable
designs. Nokia found that variation is often not handled by designs which leads
to serious problems in controlling the evolution of system families. One
possible solution is to use overlay designs that provide specific design for
each variant without having to consider family variation. The common part is
hereby separated as a shared overlay and the different parts are kept as
variant overlays. An example was shown using SDL state transition diagrams to
depict protocols.
Henk Obbink gave a presentation about the 4x4 model that
supports the development of complex designs which are manufactured in multiple
product variants. The model is based on a 4x4 matrix which serves as a overall
map of key product information. The presentation gave a good example on how to
describe variations on the architectural level. The 4x4 model should also
simplify communication between product development members and the evaluation
of product plans.
The session on variation gave valuable insights in the current state of variation handling in the industry. Examples showed the growing number of possible variations for product families. Widely used variation handling techniques as compiler flags and option bits are not longer sufficient due to the increase in variation. Possible solutions for handling this problem were given such as variant components or configurable designs. One paper focused also on describing variations of the architectural model. More research must be done focusing on handling variation on the architectural level. The session on variation was a good starting point for such activities.