Title: Systematic OO Programming with Axiomatic Design
1Systematic OO Programming with Axiomatic Design
- Sung-Hee Do
- Nam P. Suh,
- Axiomatic Design
2Axiomatic Design
- Offers a systematic and orderly way to proceed
through the software development process - Provides for a methodology that ensures
developers make the best design decisions by
providing decision-making criteria in the form of
2 axioms - The independence axiom
- The information axiom
-
3Independence Axiom
- Suggests that the best designs maintain the
independence of the functional requirements,
ensuring that the design can achieve each
function without inadvertently affecting any
other functions. - (Coupling)
4Information Axiom
- Suggests that the best designs minimize their
information content. Thus the solution with the
greatest likelihood of success is the simplest
solution.
5Benefits of Axiomatic Design
- The quality of design can be determined upon the
degree to which it satisfies the defined
functional requirements - The design ensures that each function is
satisfied independently and that coupling does
not occur - (cont.?)
6Benefits of Axiomatic Design (cont.)
- Job assignment and team management is easier
because they can use the system architecture
diagram to assign tasks and define the
inter-relationships between various modules or
classes - Software change orders can be handled quickly and
easily because the system architecture identifies
the modules affected by a change
7The Process
8Investigate customer attributes to discover
customers needs.
Note these needs and determine the designs
functional requirements (FRs) by answering the
question What must this design do to satisfy
the customers needs?
Developers determine the answers and record the
results as FRs in the left column of a design
matrix.
(here)
9Developers record the design parameters (DPs)-
physical solutions that satisfy each functional
requirement.
More than one design DP may satisfy each FR, but
the information axiom will help determine the
best solution.
This process is recorded across the top of the
design matrix.
10Developers may indicate a relationship between
the FRs and the DPs with an X in the matrix or
with an equation. The matrix checks that each DP
satisfies only one FR.
Developers decompose the design, working through
each part to determine the subfunctional
requirements and subdesign of their previous
design until theyve completed the entire design.
Axiomatic development pushes the development team
to define the problem explicitly, envisioning the
entire design before writing a single line of
code.
11 Axiomatic Development Process
12Axiomatic Design Example
- The authors make use of a case study to
illustrate the effectiveness of axiomatic design.
The Acclaro design software is the first
implementation of a software design package using
axiomatic design principles.
13State tasks in terms of what the software must
accomplish at the highest level.
Highest level FR to help developers succeed
with software design.
Find associated DPs choose most feasible
solution create axiomatic design
software
Define next level of FRs and DPs
P in the leftmost column represents the parent
level items in numbered rows below it represent
highest level DPs and FRs
Continue from system level down to individual
modules in increasing specific detail until the
design is decomposed into manageable pieces.
The matrix tracks decomposition ensuring that
DPs satisfy the FRs and are not coupled.
14Fourth level branch of Acclaro
Xs represent specific functions.
Outmost FRs and DPs are parents.
Numbers are assigned to the first level that
further define the parent level. Sub FRs and Sub
DPs acquire additional numbers.
Compare these numbers with those in Table1.
(Relationship)
15Module 1141 excerpt. (4th level branch)
-Outermost layer is 1141, next deeper is
11412.
-Module 1141 has sub-module 11411- Module
11412 is five layers deep
-Only diagonal Xs describe independence of
FR-DP relationships (ie 114121 and 114122
are independent of one another)
-Module 114123 is decoupled- its impacted
by 114121 and 114122. Developers make
decisions about 114123 only after making
those for 114121 112122.
16Corresponding system architecture for example
design matrix. Circled Ss represent summations
of modules the circled Cs represent control
points that indicate one step must precede the
other.
17System architecture
- Serves as a graphical representation of the
matrix - Gives order in which to make design decisions
- Indicates how those decisions will impact other
design functions
18Development Ordering
- Core functions are diagonal matrix Xs and should
be developed along the diagonal in order - Off-diagonal terms do not represent core
functions-but are considered in development - The matrix helps developers establish and
organize the relationships
19Object Orientation
- DP leaves can represent attributes, methods, or
arguments of a specific class - One or two levels up, the DPs can also be defined
as a class combining the leaves below. - Once classes are defined, developers can define
attributes and operations, then create interfaces
by establishing relationships bewteen objects and
operations, using the design matrices.
20???Questions???