Lect1 Odp

Download as odp, pdf, or txt
Download as odp, pdf, or txt
You are on page 1of 34

OBJECT ORIENTED SYSTEM

ANALYSIS AND DESIGN

BY: JAMES SIGEI

LECTURE 1
INTRODUCTION

● Object Oriented paradigm (OOP) took its shape


from the initial concept of a new programming
approach
● Design and analysis methods came much later
and have now we have an OO approach.
History
● First OO language was Simula, developed in
1960 by researchers at the Norwegian
Computing Center.
● In 1970, Alan Kay and his research group at
Xerox PARK created the first pure OOPL-
Smalltalk for programming the Dynabook PC.
● In the 1980s, Grady Booch published a paper
titled Object Oriented Design, he used ADA
● In the 1990s, Coad incorporated behavioral
ideas to object-oriented methods.
● Others included:
– Object Modelling Techniques (OMT) by James
Rumbaugh
– Object-Oriented Software Engineering (OOSE) by
Ivar Jacobson.
Object Oriented Analysis (OOA)

● The procedure of identifying software


engineering requirements and developing
software specifications in terms of a software
system’s object model, which comprises of
interacting objects.
● A method of analysis that examines
requirements from the perspective of the
classes and objects found in the vocabulary of
the problem domain.
● The main difference between OOA and other
forms of analysis is that requirements are
organized around objects, which integrate both
data and functions.
● They are modeled after real-world objects that
the system interacts with.
● In traditional analysis methodologies, the two
aspects - functions and data - are considered
separately.
Tasks in OOA
● Identifying objects
● Organizing the objects by creating object
model diagram
● Defining the internals of the objects, or object
attributes
● Defining the behavior of the objects, i.e., object
actions
● Describing how the objects interact
● The common models used in OOA are use
cases and object models
Object Oriented Design (OOD)
● A method of design encompassing the process
of object-oriented decomposition and a notation
for depicting both logical and physical as well
as static and dynamic models of the system
under design
● Involves implementation of the conceptual
model produced during OOA.
● Concepts in the analysis model, are mapped
onto implementing classes

● Constraints are identified and interfaces are
designed, resulting in a model for the solution
domain, i.e., a detailed description of how the
system is to be built on concrete technologies.
OOD Implementation Details

● Restructuring the class data (if necessary).


● Implementation of methods, i.e., internal data
structures and algorithms.
● Implementation of control.
● Implementation of associations.
Object Oriented programming (OOP)
● a method of implementation in which programs
are organized as cooperative collections of
objects, each of which represents an instance
of some class, and whose classes are all
members of a hierarchy of classes united via
inheritance relationships
● Is a programming paradigm based upon objects
(having both data and methods) that aims to
incorporate the advantages of modularity and
reusability.

Object Oriented programming (OOP)
● a method of implementation in which programs
are organized as cooperative collections of
objects, each of which represents an instance
of some class, and whose classes are all
members of a hierarchy of classes united via
inheritance relationships
● Is a programming paradigm based upon objects
(having both data and methods) that aims to
incorporate the advantages of modularity and
reusability.

● Objects, which are usually instances of classes,
are used to interact with one another to design
applications and computer programs.
Features of OOP
● Bottom–up approach in program design
● Programs organized around objects, grouped in
classes
● Focus on data with methods to operate upon
object’s data
● Interaction between objects through functions
● Reusability of design through creation of new
classes by adding features to existing classes
● Examples of OOP languages include:
– C++
– Java
– Smalltalk
– Delphi
– C#
– Perl
– Python
– Ruby
– PHP
Basic Concepts of OO systems.

● Some concepts of OOS include:


– Objects
– Classes

● Above form the foundation of OO paradigm.


Object
● Is a real-world element that may have a
physical or a conceptual existence.
● Each object has :
– Identity that distinguishes it from other objects in the
system.
– State that determines the characteristic properties
of an object as well as the values of the properties
that the object holds.
– Behavior that represents externally visible activities
performed by an object in terms of changes in its
state.
Class

● A collection of objects having same


characteristic properties that exhibit common
behavior.
● It gives the blueprint or description of the
objects that can be created from it.
● Creation of an object as a member of a class is
called instantiation.
● Thus, object is an instance of a class.

Constituents of a class

● A set of attributes for the objects that are to be


instantiated from the class. Generally, different
objects of a class have some difference in the
values of the attributes. Attributes are often
referred as class data.
● A set of operations that portray the behavior of
the objects of the class. Operations are also
referred as functions or methods.
Example - Circle

● The attributes of this class may include:


– x–coord, to denote x–coordinate of the center
– y–coord, to denote y–coordinate of the center
– a, to denote the radius of the circle

● Operations include−
– findArea(), method to calculate area
– findCircumference(), method to calculate
circumference
– scale(), method to increase or decrease the radius
Encapsulation

● Encapsulation
– Encapsulation is the process of binding both
attributes and methods together within a class.
Through encapsulation, the internal details of a
class can be hidden from outside. It permits the
elements of the class to be accessed from outside
only through the interface provided by the class.

Data Hiding

● Data Hiding
– Typically, a class is designed such that its data
(attributes) can be accessed only by its class
methods and insulated from direct outside access.
This process of insulating an object’s data is called
data hiding or information hiding.
Message Passing

● Any application requires a number of objects


interacting in a harmonious manner. Objects in
a system may communicate with each other
using message passing. Suppose a system has
two objects: obj1 and obj2. The object obj1
sends a message to object obj2, if obj1 wants
obj2 to execute one of its methods.
Features of Message Passing
● Message passing between two objects is
generally unidirectional.
● Message passing enables all interactions
between objects.
● Message passing essentially involves invoking
class methods.
● Objects in different processes can be involved
in message passing.
Inheritance
● Is the mechanism that permits new classes to
be created out of existing classes by extending
and refining its capabilities.
● The existing classes are called the base
classes/parent classes/super-classes
● The new classes are called the derived
classes/child classes/subclasses.
● The subclass can inherit or derive the attributes
and methods of the super-class(es) provided
that the super-class allows so.
● The subclass may add its own attributes and
methods and may modify any of the super-
class methods.
● Example:
– From a class Mammal, a number of classes can be
derived such as Human, Cat, Dog, Cow, etc.
Humans, cats, dogs, and cows all have the distinct
characteristics of mammals. In addition, each has
its own particular characteristics. It can be said that
a cow “is – a” mammal.
Polymorphism
● Is originally a Greek word that means the ability
to take multiple forms.
● In object-oriented paradigm, IT implies using
operations in different ways, depending upon
the instance they are operating upon.
● Allows objects with different internal structures
to have a common external interface.
● It is particularly effective while implementing
inheritance.
Example
● Let us consider two classes, Circle and Square,
each with a method findArea().
● Though the name and purpose of the methods
in the classes are same, the internal
implementation, i.e., the procedure of
calculating area is different for each class.
● When an object of class Circle invokes its
findArea() method, the operation finds the area
of the circle without any conflict with the
findArea() method of the Square class.
Advantages of OO model
● It helps in faster development of software.
● It is easy to maintain.
● It is to have upgrades.
● It enables reuse of objects, designs, and
functions.
● It reduces development risks, particularly in
integration of complex systems.

Conclusion
● Object-Oriented Modelling (OOM) technique
visualizes things in an application by using
models organized around objects.
● Any software development approach goes
through the following stages −
– Analysis,
– Design
– Implementation.

● In object-oriented software engineering, the
software developer identifies and organizes the
application in terms of object-oriented concepts,
prior to their final representation in any specific
programming language or software tools.
Reference

You might also like