From Requirements To Design Specifications-A Formal Approach
From Requirements To Design Specifications-A Formal Approach
1. Introduction
The traditional development process for mechatronic systems is criticized as inappropriate for the
development of systems characterized by complexity, dynamics and uncertainty as is the case with
today’s products. Software is playing an always increasing role in the development of these systems
and it has become the evolving driver for innovations. It does not only implement a significant part of
the functionality of today’s mechatronic systems, but it is also used to realize many of their
competitive advantages [Thramboulidis 2009]. However, the current process is traditionally divided
into software, electronics and mechanics, with every discipline to emphasize on its own approaches,
methodologies and tools. Moreover, vocabularies used in processes and methodologies are different
making the collaboration between the disciplines a great challenge.
System development activities such as requirements and design specification, implementation and
verification are well defined in software engineering. In terms of software engineering the term
“design specification” is used to refer to the various models that are produced during the design
process and describe the various models of the proposed solutions. Therefore, “design specifications”
are descriptions of solution space while “analysis specifications” are descriptions of problem space.
Analysis specifications include both requirements specifications but also the problem space structuring
that is represented by analysis models such as class diagrams that capture the key concepts of the
problem domain and in this sense they provide a specific structuring of the problem space. Dorst and
Cross (2001) emphasize on the co-evolution of problem and solution spaces up to the point of time
that a match will be found, and consider artefacts of both spaces very important. However, it is clear
that the most important are the ones of the problem space since it is not possible to have an acceptable
system even with the best solution space if this is based on an incorrect problem space formulation. On
the other hand it is possible to have an acceptable system, even without a very good solution space
formulation assuming that this is based on a correct problem space model. It is clear that both
activities i.e. those involved in problem space formulation (problem space structuring) as well as those
involved in solution space formulation include design decisions. Requirements engineering along with
domain analysis improve the knowledge on the problem space and make the reasoning steps during
the subsequent design process more effective. A well defined model-driven process in software
engineering might result at the end to the automatic synthesis of the executable code [Douglas 2006].
Such type of formal processes has not been obtained in engineering design. This is due to the fact that
knowledge in engineering design is still more empirical and concepts are not defined with the
precision and uniformity as in the software engineering domain. In addition, the role of knowledge
management in the early development phases has to be intensified due to increased systems
complexity, and more demanding productivity requirements and competitiveness.
2. Theoretical background
2.1 State of the art in problem structuring
There is no single universally acclaimed sequence of steps in engineering design. Researchers have
outlined the design process in as few as 4 steps to as many as 25 steps. A complete design process
includes, as the first phase, conceptual design which is the process by which the design is initiated and
carried to the point of creating a number of possible solutions. The discrete activities considered under
conceptual design are, identification of customer needs (IoC), problem definition (PD), information
gathering (IG), conceptualization, concept selection, refinement, and design review. This paper
focuses on PD and IG and uses the term task clarification or problem structuring (PS). The first three
activities are used to refer to activities that are known in software engineering as requirements
elicitation, requirements refinement and formalization, while the latter activities are equivalent to
architectural design in the software engineering domain. PS is based on three elements: 1) designers
Knowledge/
Information
sources Requirement
checklist
Functional/
Logical model
Physical
Requirement operation (C)
Deduction models
checklist (RC)
Abduction
Design
Behaviour
Narrative Logical/matrix specification
models
Requirement operations (DS)
(analysis)
(NR)
Maintenance
Simplify maintenance
Economics
Cost < 50,000euro
Schedule
Project time > 2 years
Figure 4. a) Logical order of initial requirement b) Entities required for load function c) Basic
procedure for loading
The entities in figure 4c (human, loader, soil) and the functions (move, position, connect) are analyzed
using knowledge and information from C. This allows identifying various functions and entities
required for the specific process. Examples of “human” and “move” analysis are shown in figure 5.
5. Conclusion
A well formed requirements specification provides a solid basis for the subsequent design phases.
Design specifications are the most important artefacts in the product development process given that
they are based on a correctly formulated requirements specification. An approach has been described
in this paper to formalize the raw requirements that are usually expressed in narrative format. A formal
basis for the proposed approach was given taking into account the existing knowledge on requirements
management from the mechanical engineering discipline which were combined with current software
engineering practices, such as SysML, workflow diagrams and knowledge management. The use of a
knowledge rich requirement checklist makes requirement formulation more model-centric and helps
the designer to eliminate personal preferences improving this way his effectiveness and productivity.
The checklist based requirement specifications are also useful in improving discussion and
collaboration in a design team. In systems engineering, it will enhance the system developer to
identify and allocate responsibilities based on the checklist categories. The systematic gradual analysis
also helps to identify and emit requirements that have no direct bearing on the system functionality
and its essential characteristics. This formalized description is our first step towards a semi automated
requirements refinement process that will exploit semantic web technologies such as ontologies and
knowledge management. Since a first justification of our formal requirements procedure has been
established, future work will complete this analysis by focusing on the exploitation of machine
readable knowledge representation that will favour the partial automation of the requirements
formulization process.
Acknowledgement
This work is part of an ongoing research project “Hybridization of mobile work machines” (Hyblab) funded by
the Multidisciplinary Institute of Digitalization and Energy (MIDE) of Aalto University School of Science and
Technology.
References
Brace, W., Coatanéa, E., Kauranne, H., Heiska, M., “Early Design Modeling and Simulation of Behaviours:
Case study of mobile work machine “, Proceedings of ASME- IDETC 2009, San Diego, USA, 2009.
Cross, N., “Engineering Design Methods Strategies for Product Design” 3rd edition, WileyBlackwell, 2000.
Dorst, K.,Cross, N., “Creativity in the design process: co-evolution of problem–solution”. Design Studies, 22(5),
pp. 425–437, 2001.
Douglas, S., “Model-Driven Engineering”, IEEE Computer, vol. 39,no. 2, pp. 25-31, 2006.