Page 57 -
P. 57
40 Chapter 2 Software processes
Structured methods
Structured methods are an approach to software design in which graphical models that should be developed as
part of the design process are defined. The method may also define a process for developing the models and rules
that apply to each model type. Structured methods lead to standardized documentation for a system and are
particularly useful in providing a development framework for less-experienced and less-expert software developers.
http://www.SoftwareEngineering-9.com/Web/Structured-methods/
3. Component design, where you take each system component and design how it will
operate. This may be a simple statement of the expected functionality to be
implemented, with the specific design left to the programmer. Alternatively, it may
be a list of changes to be made to a reusable component or a detailed design model.
The design model may be used to automatically generate an implementation.
4. Database design, where you design the system data structures and how these are
to be represented in a database. Again, the work here depends on whether an
existing database is to be reused or a new database is to be created.
These activities lead to a set of design outputs, which are also shown in Figure 2.5.
The detail and representation of these vary considerably. For critical systems, detailed
design documents setting out precise and accurate descriptions of the system must be
produced. If a model-driven approach is used, these outputs may mostly be diagrams.
Where agile methods of development are used, the outputs of the design process may not
be separate specification documents but may be represented in the code of the program.
Structured methods for design were developed in the 1970s and 1980s and were
the precursor to the UML and object-oriented design (Budgen, 2003). They rely on
producing graphical models of the system and, in many cases, automatically generat-
ing code from these models. Model-driven development (MDD) or model-driven
engineering (Schmidt, 2006), where models of the software are created at different
levels of abstraction, is an evolution of structured methods. In MDD, there is greater
emphasis on architectural models with a separation between abstract implementation-
independent models and implementation-specific models. The models are developed
in sufficient detail so that the executable system can be generated from them. I discuss
this approach to development in Chapter 5.
The development of a program to implement the system follows naturally from the
system design processes. Although some classes of program, such as safety-critical
systems, are usually designed in detail before any implementation begins, it is more
common for the later stages of design and program development to be interleaved.
Software development tools may be used to generate a skeleton program from a
design. This includes code to define and implement interfaces, and, in many cases, the
developer need only add details of the operation of each program component.
Programming is a personal activity and there is no general process that is usually
followed. Some programmers start with components that they understand, develop
these, and then move on to less-understood components. Others take the opposite