Page 195 -
P. 195
178 Chapter 7 Design and implementation
FPO Structured design methods
Structured design methods propose that software design should be tackled in a methodical way. Designing a
system involves following the steps of the method and refining the design of a system at increasingly detailed
levels. In the 1990s, there were a number of competing methods for object-oriented design. However, the
inventors of the most commonly used methods came together and invented the UML, which unified the
notations used in the different methods.
Rather than focus on methods, most discussions now are about processes where design is seen as part of the
overall software development process. The Rational Unified Process (RUP) is a good example of a generic
development process.
http://www.SoftwareEngineering-9.com/Web/Structured-methods/
2. To introduce important implementation issues that are not usually covered in
programming books. These include software reuse, configuration management,
and open source development.
As there are a vast number of different development platforms, the chapter is not
biased towards any particular programming language or implementation technology.
Therefore, I have presented all examples using the UML rather than in a program-
ming language such as Java or Python.
7.1 Object-oriented design using the UML
An object-oriented system is made up of interacting objects that maintain their own
local state and provide operations on that state. The representation of the state is pri-
vate and cannot be accessed directly from outside the object. Object-oriented design
processes involve designing object classes and the relationships between these
classes. These classes define the objects in the system and their interactions. When
the design is realized as an executing program, the objects are created dynamically
from these class definitions.
Object-oriented systems are easier to change than systems developed using func-
tional approaches. Objects include both data and operations to manipulate that data.
They may therefore be understood and modified as stand-alone entities. Changing the
implementation of an object or adding services should not affect other system objects.
Because objects are associated with things, there is often a clear mapping between real-
world entities (such as hardware components) and their controlling objects in the sys-
tem. This improves the understandability, and hence the maintainability, of the design.
To develop a system design from concept to detailed, object-oriented design,
there are several things that you need to do:
1. Understand and define the context and the external interactions with the system.
2. Design the system architecture.