You are on page 1of 16

Object Oriented Analysis

and Design
DEPARTMENT OF INFORMATION TECHNOLOGY
GOVT. GORDON COLLEGE RAWALPINDI

Fall 2019 Semester


BS Course: IT-325 OOA/D
Course Instructor: Mubashra Rabbani
Lecture 2
OO Programming
 Object-oriented programming (OOP)

is a type of computer programming in which programmers


define not only the data type of a data structure, but also the
types of operations (functions) that can be applied to the
data structure.

 An object-oriented system integrates the code and data


using the concept of an "object". An object has state
(data) and behavior (code).
example, student object

 It aims to implement real-world entities like inheritance, hiding,


polymorphism, etc in programming.
Objects
 Object is a data structure that encapsulates both data and
operations

 Important -- learn to design objects

 Important -- learn how to design and evaluate


an excellent OO design.

 Some critical questions in the design of a system:


 How to allocate responsibilities to classes of object.
 How should objects collaborate.
 What classes should do what.
Analysis and Design
 Analysis = investigation of problem and requirements rather
than solution
 Example
If a new online trading system is desired. How will it be used.
In object oriented analysis :: investigation of domain objects

 Design = a conceptual solution that fulfills the requirements,


rather than its implementation.
 Example
A description of database schema and software objects
Do the right thing
(Analysis)

Do the thing right


(Design)
Object Oriented
Analysis and Design
 Object – Oriented Analysis
Finding and describing objects or concepts
in the problem domain
Example:
Trading system objects product, company, …

 Object – Oriented Design


Defining Software Objects, & collaboration
Example:
A product software object may have
Attribute :: ProductID, price Method :: getprice
See example 1.5 in book
UML
 The unified modeling language is a
“visual language
for specifying, constructing and documenting
the artifacts of the system”

 UML (unified modeling language) is


 standard diagramming notation.
 a tool for thought
 a form of communication
Three Ways to Apply UML
 UML as Sketch
Informal and incomplete diagrams created to explore
difficult parts of problem or solution space.

 UML as blueprint
Relatively detailed design diagrams used for either forward
engineering (code generation) or reverse engineering
(understand existing code).

 UML as Programming language (under development)


Complete executable specification of software system in
UML. Executable code will be automatically generated.
( requires a practical way to diagram all logic)
Three Perspective to Apply UML
 Conceptual Perspective
Diagrams are interpreted as describing things in a situation
of real world or domain of interest.

 Specification (Software) Perspective


Diagrams describe software abstractions or components
with specification, but no commitment to a particular
implementation.

 Implementation (Software) Perspective


Diagrams describe software implementation in a particular
technology (specifically, a class in java or c#)
UML and Objects

UML alone is of no use.

Important Skill to learn is that


how can we apply UML
in service of doing OOA/D
Development Process
 Development Process
Development Process is process of dividing software
development work into distinct phases to improve design,
product management, and project management

User’s Software Development


Sofwtare
Requirements Process
System

Unified Process
Development Process
Requirement analysis most crucial
Problem Definition/Specifications most crucial
System Design
Implementation
Testing
Documentation
Training & Support
Maintenance (Preventive and troubleshooting)

Waterfall model, spiral development, rapid application


development, iterative and incremental development
Iterative/Evolutionary Development

 Early programming and testing of a partial system, in


repeating cycles.
 Development starts before all the requirements are defined
in detail.
 Feedback is used to clarify and improve the evolving
specifications.
 We rely on short quick development steps, feedback and
adaptation to clarify the requirements and design.
RATHER THAN
Big, upfront speculative requirements and design steps
before programming
 Higher success and productivity rates and lower defect levels
Assignment # 1
 Differentiate the following terms:
 Software Process
 Software Lifecycle
 Development Processes
 Software Development Lifecycle Model
 Process Framework
 Method

 Methodoligies

You might also like