Name: Shilpashree Srinivasamurthy

Subject: ACS 560 Software Engineering

Paper 4: Enhancing Object-Oriented Software Development through Axiomatic Design.

Advisor: Dr. John Tanik

Date: 10/22/2010

This paper discuss about the enhancement of object-oriented software design by including Axiomatic Design. Results of the recent work that integrates the Axiomatic Design equations with the OMT design documentation is also presented in this paper. Axiomatic Design provides a powerful set of guidelines to aid in developing optimal designs of physical hardware.

Similarities between Object-oriented software methodologies and Axiomatic Design:

  • Traceability between a system’s functional requirements and consequent design of each object’s functionality
  • Metrics for optimizing the public interfaces between objects from the perspective of the overall system
  • Encouraged recursive design process
  • Use hierarchy to represent increasingly detailed levels of design

The next section describes Traditional Object-Oriented Design Approach. Object oriented software design provides a powerful improvement over traditional software development methodologies by organizing and encapsulating data and functionality into modular, reusable packages. The steps in involved in this process are:

  • Identify domain objects
  • Assign functionality to each object
  • Define public interface to each object
  • Document this level of design using a graphical notation
  • Code and test each object functionality
  • Integrate the objects and test them as a subsystem

Figure 1 shows the decomposition hierarchy of objects using OMT object model notation. The diamond symbol represents decomposition and the relationship is knows as aggregation or ownership.

Figure 1: OMT Representation of hierarchical objects

The next section of the paper discuss about enhancing Object-Oriented Design and the revised sequence of steps are as follows:

  • Use Axiomatic Design to identify an optimally independent set of software FRs (Functional Requirement) representing a subsystem
  • For each top-level FR in this subsystem, design an object that satisfies it
  • Design private data and methods which implement the FR
  • Design public methods that present a minimal interface to other objects
  • Document this level of the design using the Axiomatic Design equation, mapping FRs to software objects
  • Code and test each object individually
  • Integrate the objects and test them as a subsystem
  • Iterate/decompose the FR hierarchy as necessary

The paper presents an example to show decomposition of a small part of lithography tool known as wafer prealigner. The FR and DP (Design Parameters) at first level of hierarchy are:

FR 2.1: Determine and correct the wafer rotational position and centering offsets prior to lithographic processing.

DP 2.1: Design a Wafer Prealigner device that performs a coarse alignment of the wafer to put it into proper rotational position for the wafer stage.

Moving down a level the FR2.1 and DP2.1can be decomposed into five software sub requirements and sub design parameters as shown in the following table

Functional Requirements (FR) / Design Parameters (DP)
2.1.1 / Control prealigner rotation / Wafer prealigner rotator
2.1.2 / Maintain lateral position / Pneumatic wafer holder
2.1.3 / Detect wafer positions / Wafer edge detector
2.1.4 / Calculate notch location / Wafer geometry analyzer
2.1.5 / Calibrate prealiner hardware / Wafer prealigner calibrator

The following equation displays the design matrix for the wafer prealigner software.

The off-diagonal elements in the first four rows of the matrix are zero, indicating no coupling exists between these FRs and DPs. The last row of the matrix is non-zero which means the calibration of the prealigner hardware requires all five software objects