Unit – 1 (Introduction to OOAD

)
• An overview of object oriented systems development. • Object basics • object oriented systems development life cycle

1

Important Programming Models

• Procedure Oriented Algorithms • Object Oriented  Classes & Objects

2

Algorithm Analysis
1.Space efficiency

2.Time efficiency 2.1 Worst case efficiency 2.2 Best case efficiency 2.3 Average case efficiency

3

Algorithm analysis (Continued…)
1. Worst case efficiency It is the efficiency for worst case input ( worst case input is the one for which the algorithm runs longest). 2. Best case efficiency It is the efficiency for best case input ( best case input is the one for which the algorithm runs fastest). 3. Average case efficiency It is the efficiency for Average case input
4

Algorithm analysis (Continued…)
Case 1:
If the algorithm is depending only on the input size , we need not to find best,worst and average case efficiencies separately.

Case 2:
If the algorithm is depending not only on the input size ,bust also some factors then find we have to fine worst,best and average case efficiencies separately.
5

• Differentiate OOP, OOA & OOD.

6

Object Oriented Programming
• A language is object oriented if and only if it satisfies the following requirements:
1.Supports objects 2.Objects have a class 3.Class may inherit attributes from super class.

7

Object Oriented Analysis
• It is a method of analysis that examines requirements from the users.

….contd

8

Object Oriented Design
• It leads to an object –oriented decomposition. • Uses different notations to express different models.

9

Introduction
• System development refers to all activities that
produces the solution.

• System development activities consists of

analysis, modeling, design, implementation, testing & maintenance.

• A software development methodology is a

series of processes that, if followed , can lead to the development of an application.
10

Object Model
• The main principles of object model are a) abstraction b) encapsulation c) modularity d) hierarchy e) typing f) concurrency g) persistence
11

Major Elements of Object Model
a) abstraction b) encapsulation c) modularity d) hierarchy

12

Minor Elements of Object Model
a) typing b) concurrency c) persistence

13

a) What is Abstraction?
• It focuses upon the essential characteristics of objects. • (e.g.) Project Abstract

14

b) What is Encapsulation?
• Hides the details of the implementation (data & procedure) of an object (e.g.) Hides the details of the implementation from clients. - Provides the interface.

15

c) What is Modularity?
• The breaking up of something complex into manageable pieces Effective Modular design 1.Cohesion 2.Coupling

16

d-1) What is Hierarchy?
• Ranking or Ordering of abstraction
Increasing abstraction

Vehicle Car Ford Mustang Taurus Thunderbird

Decreasing abstraction

Elements at the same level of the hierarchy should be at the same level of abstraction
17

d-2) What is Hierarchy?
• At the top of the hierarchy are the most general classes. • At the bottom are the most specific. • A subclass inherits all of the properties & methods from the superclass.

18

e) Typing
• It is the enforcement of the class of an object, such that objects different types may not be interchanged, or at the most , they may be interchange only in very restricted ways. • Strong typing prevents mixing abstractions.
19

f) Concurrency
• It allows different objects to act at the same time. • It’s the property that distinguishes an active object from one that is not active.

20

g) Persistence
• It is the property of an object through which the object continues exists after its creator ceases to exists and / or the objects location moves from the address phase in which it was created.

21

Basic Concepts of Object Orientation
• • • • • • • Object Class Attribute (Property) Method (Procedure) Inheritance Interface (Polymorphism) Relationships
22

1a) What is an Object?
• It is a combination of data & logic that represents some real world entity, either physical, conceptual, or software
– Physical entity (e.g.) car – Conceptual entity (e.g.) chemical process Software entity (e.g.) linked list

23

1b) Representing Objects
• An object is represented as rectangles with underlined names
: Professor
ProfessorNandhini

Class Name Only

ProfessorNandhini: Professor
Class and Object Name

Professor Nandhini

Object Name Only

24

2a) What is a Class?
• A class is a set of objects with common properties (attributes), behavior (operations), and relationships
- An object is an instance of a class

25

2b) Representing Classes
• A class is represented using a compartmented rectangle

Professor

a + b = 10

Professor Rani

26

2c) Class Compartments
• A class is comprised of three sections
– The first section contains the class name – The second section shows the structure (attributes) – The third section shows the behavior (operations)
Class Name Attributes Operations Professor name empID create( ) save( ) delete( ) change( )

27

2d)The Relationship Between Classes and Objects
• Objects are grouped into classes Objects
Class

Professor
Professor Smith Professor Mellon

Professor Jones

28

3 What is an Attribute?
• Another name – properties • It describe the state (data) of an object. • Example
Class Car Attributes Cost Color Manufacturer Model

29

4) What is method (or) procedure?
• Define its behavior (what an object is capable of doing).
CourseOffering
Class
addStudent deleteStudent getStartTime getEndTime

Operation

30

5a) Inheritance
• It allows objects to be built from other objects. • It is a relational ship between classes. (one class is the parent of other (derived) class. • The parent class is also known as the base class (or) super class.

31

5b) Example: Single Inheritance
• One class inherits from another
Ancestor Superclass (parent)
Account balance name number Withdraw() CreateStatement()

Generalization Relationship

Checking

Savings GetInterest() Withdraw()
32

Subclasses

Withdraw()

Descendents

5c) Multiple Inheritance
• Some OO systems permit a class to inherit its state (attributes) and behaviors from more than one super class.
Vehicle Truck Utility Vehicle Car Bus

33

5d) Example: Multiple Inheritance
• A class can inherit from several other classes
FlyingThing
multiple inheritance

Animal

Airplane

Helicopter

Bird

Wolf

Horse

Use multiple inheritance only when needed, and always with caution !
34

6) What is Polymorphism ?
• Poly means “many” • Morph means “form” • Polymorphism  the same operation may behave differently on different classes. • Booch defines Polymorphism as the relationship of objects of many different classes by some common super class.

35

7a) Relationships
• Association – Aggregation • Dependency • Generalization • Realization

36

7b)Relationships: Association
• It represents the relationships between objects & classes.
Association Name

Professor

Works for

University

Association Class

Role Names

Professor
Employee Employer

University

37

7c)Relationships: Association
• It is rendered as a solid line. • It has a name & a role.
ASSOCIATION NAMES Name
Works for Person Association Association Company

Name Direction

ROLES

Role Name

Person

Company

Employee

Employer
38

7d)Relationships: Aggregation
• A special form of association that models a whole-part relationship between an aggregate (the whole) and its parts

39

7e) Relationships: Aggregation
• (e.g.)
Whole Part

College

Department

Aggregation
40

7f) Relationships: Aggregation
• (e.g.) a car object of other objects such as engine, seat and wheel objects.
Car

Engine

Seat

wheel

41

7g) Relationships: Dependency
• A relationship between two model elements where a change in one may cause a change in the other • Non-structural, “using” relationship

Class

Client

Supplier

Dependency relationship

42

7h) Relationships: Generalization
• It is a relationship between a general thing (called the super class or parent) & a more specific kind of that thing (called the subclass or child) • Generalization is an “is-a-kind of” relationship

43

7j) Relationships: Generalization
Shape origin move( ) resize( ) Generalization display( ) Base class

Rectangle Corner : Point

Circle Corner : Point

Polygon Points : List Display

Square

Leaf class
44

7k) Relationships: Realization

b) It is used for tracebility
Canonical form

Use Case

Use-Case Realization

45

8) Review: Introduction to Object Orientation
• What are the four basic principles of object orientation? Provide a brief description of each. • What is an Object and what is a Class? What is the difference between them? • What is an Attribute? • What is an Operation? • What is an Interface? What is Polymorphism? • Name the 4 basic UML relationships and describe each. • Describe the strengths of object orientation.
(continued)
46

Software Development Life Cycle
• System development refers to all activities that
produces the solution.

• System development activities consists of

analysis, modeling, design, implementation, testing & maintenance.

• A software development methodology is a

series of processes that, if followed , can lead to the development of an application.
47

2e) Software Development Process
– – – Linear Sequential Model (Or) Waterfall model Prototyping model Evolutionary Model
• • • Incremental model Spiral model WIN - WIN model

Object oriented model

48

Linear Sequential Model

System/information engineering analysis design code test

49

(e.g.) The waterfall software development process
What

How

Do It

Test

Use

50

Prototyping Model

Customer Communication

Quick Design

Customer evaluation of Prototype

Build Prototype

51

Incremental Model
increment 1
analysis design code test

delivery of 1st increment

increment 2

analysis

design

code

test

delivery of 2nd increment

increment 3 analysis

design

code

test

delivery of 3rd increment

increment 4

analysis

design

code

test

delivery of 4th increment

calendar time

52

Spiral Model
Planning

Risk Analysis

Customer Communication

Engineering

Customer Evaluation

Construction & Release

53

3a) OO System Development : A Usecase Driven Approach
Build a Use-Cases model

Object analysis Validate test

Using CASE Tools and/or OO programming languages

User satisfaction & Quality test

Design classes, define attributes and methods User satisfaction & Quality test

Build object model

Build User Interface & Prototype
54

3b) OO System Development : A Usecase Driven Approach
• OO System Development includes the following activities:
– OO Analysis – OO Design – Prototyping – Component based development – Testing
55

4c) OO Analysis
• OO analysis includes the following activities:
– Determining the system requirements. – Identifying classes and their relationship to other class in the problem domain.

56

4d) OO Design
• OO Design includes the following activities:
– Design the classes. – Design the user interface

57

4e) OO Design - Guidelines
– Reuse rather than build a new class. – Design a large no. of simple classes rather than a small no. of complex classes. – Design methods. – Critique what you have proposed. If possible, go back & refine the classes.

58

4f) Prototyping
• A version of a software product developed in the early stage of the products life cycle for specific, experimental purposes. • Easy to understand • Types of Prototyping 1.Close ended (or) Throwaway 2.Open ended (or) Evolutionary

59

4g) Testing 1.White box testing 2.Black box Testing

60

THANK YOU!

61

Sign up to vote on this title
UsefulNot useful