Title :
Systematic OO programming with axiomatic design
Author :
Do, Sung-Hee ; Suh, Nam P.
Author_Institution :
Axiomatic Design Software, USA
fDate :
10/1/1999 12:00:00 AM
Abstract :
Axiomatic design offers a systematic and orderly way to proceed through the software development process. The methodology ensures that developers make the best possible design decisions by providing decision-making criteria in the form of two axioms: the independence 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 function; the information axiom suggests that the best designs minimize their information content. Thus, the solution with the greatest likelihood of success is the simplest solution. Software developers can determine the quality of the design based upon the degree to which it satisfies the defined functional requirements; ensure that the design satisfies each function independently and that coupling, which could cause unintended consequences, does not occur; enjoy easier job assignment and team management because they can use the system architecture diagram to assign tasks and define the interrelationships between various modules or classes; and handle software change orders quickly and easily because the system architecture identifies the modules affected by a change. Axiomatic design lets the developer document the design fully, making it easier to change or add extensions
Keywords :
formal specification; object-oriented programming; software architecture; axiomatic design; decision making criteria; design documentation; functional requirements; independence axiom; information axiom; information content minimisation; job assignment; software change order handling; software development process; system architecture diagram; systematic object-oriented programming; team management; Automotive engineering; Computer architecture; Decision making; Design engineering; Environmental management; Graphical user interfaces; Matrix decomposition; Parallel programming; Process design; Software design;