Information Technology Reference
In-Depth Information
popular object-oriented modeling approaches of the day: Rumbaugh's OMT, which
was known for object-oriented analysis (OOA), and Grady Booch's Booch method,
which was known for object-oriented design (OOD). Rumbaugh and Booch attempted
to combine their two approaches and started work on a Unified Method.
Another popular approach that started to develop around the same time was the use
of design patterns. 4 A design pattern is a reusable solution used to solve commonly
occurring problems in software design. In other words, a design pattern is not a
finished design that can be transformed directly into code but a template for how to
solve a problem. Originally design patterns emerged as an architectural concept in
the late 1970s. It was not until the late 1980s that design patterns were considered in
programming. However, design patterns did not start to become extremely popular
until around 1994, after the topic Design Patterns: Elements of Reusable Object-
Oriented Software was published. That same year the first Pattern Languages of
Programming Conference was held. 5 In 1995, the Portland Pattern Repository was
set up for documentation of design patterns.
4.3
SOFTWARE DESIGN METHODS
When a software problem occurs, a software engineer usually will try and group
problems with similar characteristics together. This particular approach is called a
problem domain. For each type of software design methodology there is a corre-
sponding problem domain. Some criteria that can be used to classify software design
methods include the characteristics of the systems to be designed as well as the
type of software representation (Khoo, 2009). As best explained by the Software
Engineering Institute, there can be three distinct views of a system:
The basic view of the system taken by a design method, and hence captured by a design
based on that method, can be functional, structural, or behavior. With the functional
view, the system is considered to be a collection of components, each performing a
specific function, and each function directly answering a part of the requirement. The
design describes each functional component and the manner of its interaction with the
other components. With the structural view, the system is considered to be a collec-
tion of components, each of a specific type, each independently buildable and testable,
and able to be integrated into a working whole. Ideally, each structural component
is also a functional component. With the behavioral view, the system is considered
to be an active object exhibiting specific behaviors, containing internal state, chang-
ing state in response to inputs, and generating effects as a result of state changes
(Khoo, 2009, p. 4).
Indeed, grouping software design methodologies into different approaches helps
not only in the explanation of software design but also will aid a designer in selecting
the best available methodology to use. This section discusses the main design
4 http://en.wikipedia.org/wiki/Design pattern (computer science).
5 http://en.wikipedia.org/wiki/Software design pattern.
 
Search WWH ::




Custom Search