Object-Oriented Systems: Object-Oriented Analysis and Design (OOAD) Is A

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 3

Object-oriented analysis and design (OOAD) is a software engineering approach that

models a system as a group of interacting objects. Each object represents some entity of
interest in the system being modeled, and is characterised by its class, its state (data
elements), and its behavior. Various models can be created to show the static structure,
dynamic behavior, and run-time deployment of these collaborating objects. There are a
number of different notations for representing these models, such as the Unified Modeling
Language (UML).

Object-oriented analysis (OOA) applies object-modeling techniques to analyze the


functional requirements for a system. Object-oriented design (OOD) elaborates the
analysis models to produce implementation specifications. OOA focuses on what
the system does, OOD on how the does it

Object-oriented systems
An object-oriented system is composed of objects. The behavior of the system results from
the collaboration of those objects. Collaboration between objects involves them sending
messages to each other. Sending a message differs from calling a function in that when a
target object receives a message, it itself decides what function to carry out to service that
message. The same message may be implemented by many different functions, the one
selected depending on the state of the target object.

The implementation of "message sending" varies depending on the architecture of the system
being modeled, and the location of the objects being communicated with.

Object-oriented analysis
Object-oriented analysis (OOA) looks at the problem domain, with the aim of producing a
conceptual model of the information that exists in the area being analyzed. Analysis models
do not consider any implementation constraints that might exist, such as concurrency,
distribution, persistence, or how the system is to be built. Implementation constraints are
dealt with during object-oriented design (OOD). Analysis is done before the Design.

The sources for the analysis can be a written requirements statement, a formal vision
document, interviews with stakeholders or other interested parties. A system may be divided
into multiple domains, representing different business, technological, or other areas of
interest, each of which are analyzed separately.

The result of object-oriented analysis is a description of what the system is functionally


required to do, in the form of a conceptual model. That will typically be presented as a set of
use cases, one or more UML class diagrams, and a number of interaction diagrams. It may
also include some kind of user interface mock-up.

Object-oriented design
Main article: Object oriented design

Object-oriented design (OOD) transforms the conceptual model produced in object-oriented


analysis to take account of the constraints imposed by the chosen architecture and any non-
functional – technological or environmental – constraints, such as transaction throughput,
response time, run-time platform, development environment, or programming language.

The concepts in the analysis model are mapped onto implementation classes and interfaces.
The result is a model of the solution domain, a detailed description of how the system is to be
built.

system does it.

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.
References

• Grady Booch. "Object-oriented Analysis and Design with Applications, 3rd


edition":http://www.informit.com/store/product.aspx?isbn=020189551X Addison-
Wesley 2007.
• Brett McLaughlin, Gary Pollice, David West. Head First Object-Oriented Analysis
and Design. O'Reilly, 2006.
• Craig Larman. Applying UML and Patterns - Introduction to OOA/D & Iterative
Development. Prentice Hall PTR, 3rd ed. 2005.
• Martin Fowler. Analysis Patterns: Reusable Object Models. Addison-Wesley, 1997.
[An introduction to object-oriented analysis with conceptual models]

You might also like