Object-Oriented Analysis & Design

Object-oriented analysis and design (OOAD) is the principal industry-proven methodology for developing high-quality object-oriented systems. This prevailing software development methodology involves three aspects: object-oriented analysis (OOA), which deals with the design requirements and overall architecture of a system, and is focused on describing what the system should do in terms of key objects in the problem domain; object-oriented design (OOD), which translates a system architecture into programming constructs (such as interfaces, classes, and method descriptions); and object-oriented programming (OOP), which implements these programming constructs.

The fundamental idea behind an object-oriented (OO) language is object decomposition, breaking the complex software system down into its various objects, combining the data and the functions that operate on the data into a single unit, the object. Objects are discussed and built by modeling real-world instances. A typical OO system consists of a number of cooperating objects, each of which may or may not collaborate with other objects in order to achieve some task for the user. Real-world objects display the characteristic of high cohesion, they maintain a single theme or focus, in turn, software objects model real-world objects. This form of object decomposition provides a natural way of breaking the problem down into isolated, manageable parts. In many cases, the development effort shifts from writing a new code, to assembling existing objects in new and innovative ways to solve a problem. Thus, object-oriented analysis and design methodology cuts down development time and costs, leading to faster time to market and significant competitive advantage, and enables producing more flexible, modifiable, easily maintainable object-oriented systems.