Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Object Oriented Analysis and Design

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

OODA 1

Object-oriented Analsis and design


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 system 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 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. The
purpose of object oriented analysis is to develop a model that describes computer
software as it works to satisfy a set of customer defined requirements.
Object-oriented design:
Object-oriented design is the process of planning a system of interacting objects for the
purpose of solving a software problem. It is one approach to software 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

Software Engineering Suchismita Biswas


Sr. Lecturer, Dept. of IT
OODA 2

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.
Input (sources) for object-oriented design:
The input for object-oriented design is provided by the output of object-oriented analysis.
Realize that an output artifact does not need to be completely developed to serve as input
of object-oriented design; analysis and design may occur in parallel, and in practice the
results of one activity can feed the other in a short feedback cycle through an iterative
process. Both analysis and design can be performed incrementally, and the artifacts can
be continuously grown instead of completely developed in one shot.
Some typical input artifacts for object-oriented design are:
• Conceptual model: Conceptual model is the result of object-oriented analysis, it
captures concepts in the problem domain. The conceptual model is explicitly chosen
to be independent of implementation details, such as concurrency or data storage.
• Use case: Use case is description of sequences of events that, taken together, lead to a
system doing something useful. Each use case provides one or more scenarios that
convey how the system should interact with the users called actors to achieve a
specific business goal or function. Use case actors may be end users or other systems.
In many circumstances use cases are further elaborated into use case diagrams. Use
case diagrams are used to identify the actor (users or other systems) and the processes
they perform.
• System Sequence Diagram: System Sequence diagram (SSD) is a picture that shows,
for a particular scenario of a use case, the events that external actors generate, their
order, and possible inter-system events.
• User interface documentations (if applicable): Document that shows and describes
the look and feel of the end product's user interface. It is not mandatory to have this,
but it helps to visualize the end-product and therefore helps the designer.
• Relational data model (if applicable): A data model is an abstract model that
describes how data is represented and used. If an object database is not used, the
relational data model should usually be created before the design, since the strategy
chosen for object-relational mapping is an output of the OO design process. However,
it is possible to develop the relational data model and the object-oriented design
artefacts in parallel, and the growth of an artefact can stimulate the refinement of
other artefacts.
Object-oriented concepts:
The five basic concepts of object-oriented design are the implementation level features
that are built into the programming language. These features are often referred to by these
common names:
• Object/Class: A tight coupling or association of data structures with the methods or
functions that act on the data. This is called a class, or object (an object is created
based on a class). Each object serves a separate function. It is defined by its properties,
what it is and what it can do. An object can be part of a class, which is a set of objects
that are similar.

Software Engineering Suchismita Biswas


Sr. Lecturer, Dept. of IT
OODA 3

• Information hiding: The ability to protect some components of the object from
external entities. This is realized by language keywords to enable a variable to be
declared as private or protected to the owning class.
• Inheritance: The ability for a class to extend or override functionality of another
class. The so-called subclass has a whole section that is derived (inherited) from the
superclass and then it has its own set of functions and data.
• Interface: The ability to defer the implementation of a method. The ability to define
the functions or methods signatures without implementing them.
• Polymorphism: The ability to replace an object with its subobjects. The ability of an
object-variable to contain, not only that object, but also all of its subobjects.
Characteristics of OOD:
• Objects are abstractions of real-world or system entities and manage themselves.
• Objects are independent and encapsulate state and representation information.
• System functionality is expressed in terms of object services.
• Shared data areas are eliminated. Objects communicate by message passing.
• Objects may be distributed and may execute sequentially or in parallel.
Advantages of OOD:
• Easier maintenance. Objects may be understood as stand-alone entities.
• Objects are potentially reusable components.
• For some systems, there may be an obvious mapping from real world entities to
system objects.
Output (deliverables) of object-oriented design:
• Sequence Diagrams: Extend the System Sequence Diagram to add specific
objects that handle the system events. A sequence diagram shows, as parallel
vertical lines, different processes or objects that live simultaneously, and, as
horizontal arrows, the messages exchanged between them, in the order in which
they occur.
• Class diagram: A class diagram is a type of static structure UML diagram that
describes the structure of a system by showing the system's classes, their
attributes, and the relationships between the classes. The messages and classes
identified through the development of the sequence diagrams can serve as input to
the automatic generation of the global class diagram of the system.

Software Engineering Suchismita Biswas


Sr. Lecturer, Dept. of IT

You might also like