Traceability is about keeping track of the relationship between different
artifacts of a software project. It allows questions such as "Does the
implementation of the system satisfy the requirements?" to be
answered. Manually maintaining traceability links is tedious and
error-prone. Design is the process of deciding how a system should be
structured to satisfy the requirements. There is little in the way of
operational advice on how to do design.
I will describe the beginnings of a technique that provides operational
guidance on developing a design. The technique also has the potential to
automatically provide traceability links between requirements and the
design. This technique relies on the requirements being expressed in
a form of use cases, known as essential use cases.