0% found this document useful (0 votes)
3 views23 pages

Module 01

The document provides an overview of Object-Oriented Analysis (OOA) and its historical development, highlighting key concepts such as the central role of objects, classes, and the use of UML. It outlines the primary tasks involved in OOA, including identifying and organizing software requirements, and discusses the advantages and disadvantages of using object-oriented programming. Additionally, it emphasizes the importance of extendibility and adaptability in software design.

Uploaded by

kalamkumar22
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views23 pages

Module 01

The document provides an overview of Object-Oriented Analysis (OOA) and its historical development, highlighting key concepts such as the central role of objects, classes, and the use of UML. It outlines the primary tasks involved in OOA, including identifying and organizing software requirements, and discusses the advantages and disadvantages of using object-oriented programming. Additionally, it emphasizes the importance of extendibility and adaptability in software design.

Uploaded by

kalamkumar22
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Object Oriented Analysis and Design

Dr Abu-Eesa
Islamic Online University
Introduction

 What is Object–Oriented Analysis (OOA)?


History

 New programming approach


 Design and analysis came later
 Simula (1960)
 Dynabook (1970) – Smalltalk } First OOPL
 1980’s Ada
Software life-cycle (Royce’s original waterfall
model)

By Peter Kemp / Paul Smith - Adapted from Paul


Smith's work at wikipedia, CC BY 3.0,
[Link]
0633070
OOA

 Identify software engineering requirements


 Develop specification
 keeping in mind interacting objects)
 Data and functions
 Real world objects
 Traditionally functional and data considered separately
Primary tasks in OOA

 Identify
 Organise
 Define internals
 Define behaviours
 Describe object interactions

Use case and object models are used


Real world problem/example

 Object/class = Vehicle
 What things does a vehicle have?
 Differences between a car and a truck?
 Forget car or truck – continue describing a vehicle
 It moves
 Has an operator/driver
 Back to car
 Has doors, windows
 Truck
 Has doors, windows, more wheels
Class: Vehicle
Vehicle

-Moves
-has operator

Car Truck Aeroplane

-Windows -windows -wings


-Doors -doors
-wheels
Polymorphism
Animal

-Speak()

Dog Cat Cow

-Speak(): -Speak(): -Speak():


output:Bark() output:meow() output:moo()
Popular OO languages

 C++
C#
 Delphi
 Java
 MatLab
 Python
 Visual Basic
Key concepts

 Central role of objects


 Classes
 Abstract specification
 UML
 Standard solutions
 Analysis process for modelling a system
 Extendibility and adaptability
 Other concepts
The central role of objects

 Object-oriented programming
(OOP) is a programming paradigm
based on the concept of
"objects", which may contain
data, in the form of fields, often
known as attributes; and code, in
the form of procedures, often
known as methods.(wikipedia)

Image : [Link]
Class
Animal

-Speak()

Dog Cat Cow

-Speak(): -Speak(): -Speak():


output:Bark() output:meow() output:moo()
Abstract Specification of functionality

 Design process
 Specification is abstract
 Specification (interface or abstract class) -contract
UML –Unified Modelling Language

 Language to define system


 Standard tool – design activities
 Universally understood
Standard Solutions

 Object structure – facilitates documenting (design patterns)


 All stages of software development but design patterns perhaps most
common
Modelling via an Analysis Process

 OO allows function specification to conceptual design in a systematic


way
 Design in terms of conceptual classes
Extendibility and Adaptability

 Flexibility in software – unlike hardware


 Create new entities by modifying existing ones
 inheritance
Other related concepts

 Modular design and encapsulation


 Cohesion and couping
 Modifiability and testability
Advantages & disadvantages of OO

 Objects reflect entities in application system


 OO helps increase productivity
 Changes are easier to make
 Can isolate changes
Summary

 History
 Primary Tasks
 Key Concepts
 Central role of objects, Classes, Abstract specification, UML, Standard solutions,
Analysis process for modelling a system, Extendibility and adaptability
 Other concepts
 Pros
 Objects reflect entities in application system, OO helps increase productivity,
Changes are easier to make, Can isolate changes
Summary cohesion & coupling

Low cohesion High cohesion

Staff Staff

-salary
-emailAddr

checkEmail() setSalary(newSalary)
sendEmail() getSalary()
emailValidate() setEmailAddr(newEmail)
PrintLetter() getEmailAddr()

You might also like