Information Technology Reference
In-Depth Information
analysis, were the most popular idea (DeMarco, 1979). As the requirement for pro-
ductive software systems has increased, the object-oriented method has become the
basic programming tool (Cox, 1986). It emphasizes the need to design software right
during the early stages of software development and the importance of modularity.
However, even with object-oriented methods, there are many problems that intelli-
gent software programmers face in developing and maintaining software during its
life cycle. Although there are several reasons for these difficulties, the main reason
is that the current software design methodology has difficulty explaining the logical
criterions of good software design.
Modularity alone does not ensure good software because even a set of indepen-
dent modules can couple software functions. The concept of the axiomatic design
framework has been applied successfully to software design (Kim et al., 1991; Do &
Park, 1996; Do, 1997). The basic idea used for the design and development of soft-
ware systems is exactly the same as that used for hardware systems and components,
and thus, the integration of software and hardware design becomes a straightforward
exercise.
The methodology presented in this section for software design and development
uses both the axiomatic design framework and the object-oriented method. It consists
of three steps. First, it designs the software system based on axiomatic design (i.e.,
the decomposition of FRs and DPs) the design matrix, and the modules as defined
by axiomatic design (Suh, 1990, 2001). Second, it represents the software design
using a full-design matrix table and a flow diagram, which provide a well-organized
structure for software development. Third is the direct building of the software code
based on a flow diagram using the object-oriented concept. This axiomatic approach
enhances software productivity because it provides the road map for designers and
developers of the software system and eliminates functional coupling.
A software design based on axiomatic design is self-consistent, provides uncoupled
or decoupled interrelationships and arrangements among “modules,” and is easy to
change, modify, and extend. This is a result of having made correct decisions at each
stage of the design process (i.e., mapping and decomposition [Suh, 1990; El-Haik,
2005]).
Based on axiomatic design and the object-oriented method, Do and Suh (2000)
have developed a generic approach to software design. The software system is called
“axiomatic design of object-oriented software systems (ADo-oSS)” that can be used
by any software designers. It combines the power of axiomatic design with the
popular software programming methodology called the object-oriented programming
technique (OOT) (Rumbaugh et al., 1991) (Booch, 1994). The goal of ADo-oSS is
to make the software development a subject of science rather than an art and, thus,
reduce or eliminate the need for debugging and extensive changes.
ADo-oSS uses the systematic nature of axiomatic design, which can be generalized
and applied to all different design task, and the infrastructure created for object-
oriented programming. It overcomes many of the shortcomings of the current software
design techniques, which result in a high maintenance cost, limited reusability, an
extensive need to debug and test, poor documentation, and limited extensionality of
the software. ADo-oSS overcomes these shortcomings.
Search WWH ::




Custom Search