Unit-1(OOAD)

61
1 Unit – 1 (Introduction to OOAD) • An overview of object oriented systems development. • Object basics • object oriented systems development life cycle

Transcript of Unit-1(OOAD)

Page 1: Unit-1(OOAD)

1

Unit – 1 (Introduction to OOAD)

• An overview of object oriented systems development.

• Object basics

• object oriented systems development life cycle

Page 2: Unit-1(OOAD)

2

Important Programming Models

• Procedure Oriented Algorithms

• Object Oriented Classes & Objects

Page 3: Unit-1(OOAD)

3

1.Space efficiency

2.Time efficiency

2.1 Worst case efficiency

2.2 Best case efficiency

2.3 Average case efficiency

Algorithm Analysis

Page 4: Unit-1(OOAD)

4

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

Page 5: Unit-1(OOAD)

5

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.

Page 6: Unit-1(OOAD)

6

• Differentiate OOP, OOA & OOD.

Page 7: Unit-1(OOAD)

7

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.

Page 8: Unit-1(OOAD)

8

Object Oriented Analysis

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

….contd

Page 9: Unit-1(OOAD)

9

Object Oriented Design

• It leads to an object –oriented decomposition.

• Uses different notations to express different models.

Page 10: Unit-1(OOAD)

10

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.

Page 11: Unit-1(OOAD)

11

Object Model

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

Page 12: Unit-1(OOAD)

12

Major Elements of Object Model

a) abstraction

b) encapsulation

c) modularity

d) hierarchy

Page 13: Unit-1(OOAD)

13

Minor Elements of Object Model

a) typing

b) concurrency

c) persistence

Page 14: Unit-1(OOAD)

14

• It focuses upon the essential characteristics of objects.

• (e.g.) Project Abstract

a) What is Abstraction?

Page 15: Unit-1(OOAD)

15

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.

Page 16: Unit-1(OOAD)

16

c) What is Modularity?

• The breaking up of something complex into manageable pieces

Effective Modular design

1.Cohesion

2.Coupling

Page 17: Unit-1(OOAD)

17

• Ranking or Ordering of abstraction

d-1) What is Hierarchy?

Decreasing abstraction

Increasing abstraction Vehicle

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

Car

Ford

Mustang Taurus Thunderbird

Page 18: Unit-1(OOAD)

18

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.

Page 19: Unit-1(OOAD)

19

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.

Page 20: Unit-1(OOAD)

20

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.

Page 21: Unit-1(OOAD)

21

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.

Page 22: Unit-1(OOAD)

22

Basic Concepts of Object Orientation

• Object

• Class

• Attribute (Property)

• Method (Procedure)

• Inheritance

• Interface (Polymorphism)

• Relationships

Page 23: Unit-1(OOAD)

23

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

Page 24: Unit-1(OOAD)

24

• An object is represented as rectangles with underlined names

1b) Representing Objects

: Professor

Professor Nandhini

ProfessorNandhini: Professor

ProfessorNandhini

Object Name Only

Class and Object Name

Class Name Only

Page 25: Unit-1(OOAD)

25

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

Page 26: Unit-1(OOAD)

26

• A class is represented using a compartmented rectangle

2b) Representing Classes

Professor

Professor Rani

a + b = 10

Page 27: Unit-1(OOAD)

27

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)ProfessornameempID

create( )save( )delete( )change( )

Class Name

Attributes

Operations

Page 28: Unit-1(OOAD)

28

• Objects are grouped into classes

2d)The Relationship Between Classes and Objects

Objects

Professor Smith

Professor Jones

Professor Mellon

Class

Professor

Page 29: Unit-1(OOAD)

29

3 What is an Attribute?

Class

• Example

Attributes

Car

Cost

Color

Manufacturer

Model

• Another name – properties

• It describe the state (data) of an object.

Page 30: Unit-1(OOAD)

30

• Define its behavior (what an object is capable of doing).

CourseOffering

addStudent deleteStudentgetStartTimegetEndTime

Class

Operation

4) What is method (or) procedure?

Page 31: Unit-1(OOAD)

31

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.

Page 32: Unit-1(OOAD)

32

Accountbalancenamenumber

Withdraw()CreateStatement()

Checking

Withdraw()

Savings

GetInterest()Withdraw()

Superclass (parent)

Subclasses

Generalization Relationship

Ancestor

Descendents

5b) Example: Single Inheritance• One class inherits from another

Page 33: Unit-1(OOAD)

33

5c) Multiple Inheritance• Some OO systems permit a class to inherit its

state (attributes) and behaviors from more than one super class.

Vehicle

Car BusTruck

Utility Vehicle

Page 34: Unit-1(OOAD)

34

Airplane Helicopter Wolf Horse

FlyingThing Animal

Bird

multipleinheritance

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

5d) Example: Multiple Inheritance• A class can inherit from several other

classes

Page 35: Unit-1(OOAD)

35

• 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.

6) What is Polymorphism ?

Page 36: Unit-1(OOAD)

36

• Association– Aggregation

• Dependency

• Generalization

• Realization

7a) Relationships

Page 37: Unit-1(OOAD)

37

Professor UniversityWorks for

Class

Association

Association Name

Professor University

EmployerEmployee

Role Names

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

classes.

Page 38: Unit-1(OOAD)

38

EmployerEmployee

7c)Relationships: Association• It is rendered as a solid line.• It has a name & a role.

Person Company

Person Company

Works for

Association

ROLES

ASSOCIATION NAMES Name Direction

Name

Association Role Name

Page 39: Unit-1(OOAD)

39

7d)Relationships: Aggregation

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

Page 40: Unit-1(OOAD)

40

College Department

Whole

Aggregation

Part

7e) Relationships: Aggregation

• (e.g.)

Page 41: Unit-1(OOAD)

41

Engine wheel

7f) Relationships: Aggregation• (e.g.) a car object of other objects such as

engine, seat and wheel objects.

Car

Seat

Page 42: Unit-1(OOAD)

42

Client SupplierClass

Dependency relationship

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

Page 43: Unit-1(OOAD)

43

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

Page 44: Unit-1(OOAD)

44

7j) Relationships: GeneralizationShape

origin

move( )

resize( )

display( )

Rectangle

Corner : Point

Circle

Corner : Point

Polygon

Points : List

Display

Square Leaf class

Generalization

Base class

Page 45: Unit-1(OOAD)

45

Use Case Use-Case Realization

Canonical form

7k) Relationships: Realization

b) It is used for tracebility

Page 46: Unit-1(OOAD)

46

(continued)

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.

Page 47: Unit-1(OOAD)

47

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.

Page 48: Unit-1(OOAD)

48

– Linear Sequential Model (Or) Waterfall model

– Prototyping model

– Evolutionary Model• Incremental model• Spiral model• WIN - WIN model

– Object oriented model

2e) Software Development Process

Page 49: Unit-1(OOAD)

49

analysis design code test

System/informationengineering

Linear Sequential Model

Page 50: Unit-1(OOAD)

50

(e.g.) The waterfall software development process

What

How

Do It

Test

Use

Page 51: Unit-1(OOAD)

51

Prototyping Model

CustomerCommunication Quick Design

Build Prototype

Customer evaluation of

Prototype

Page 52: Unit-1(OOAD)

52

analysis design code test

analysis design code test

analysis design code test

analysis design code test

increment 2

increment 3

increment 4

increment 1

delivery of1st increment

delivery of2nd increment

delivery of3rd increment

delivery of4th increment

calendar time

Incremental Model

Page 53: Unit-1(OOAD)

53

Spiral Model

CustomerCommunication

Planning

Construction & ReleaseCustomerEvaluation

Engineering

Risk Analysis

Page 54: Unit-1(OOAD)

54

3a) OO System Development : A Usecase Driven Approach

Using CASE Tools and/or

OO programming languages

Build a Use-Cases model

Object analysis

Validate test

Design classes, define attributes and methods

Build object model

Build User Interface & Prototype

User satisfaction & Quality test

User satisfaction & Quality test

Page 55: Unit-1(OOAD)

55

3b) OO System Development : A Usecase Driven Approach

• OO System Development includes the following activities:– OO Analysis– OO Design– Prototyping – Component based development– Testing

Page 56: Unit-1(OOAD)

56

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.

Page 57: Unit-1(OOAD)

57

4d) OO Design

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

Page 58: Unit-1(OOAD)

58

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.

Page 59: Unit-1(OOAD)

59

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) Throwaway2.Open ended (or) Evolutionary

Page 60: Unit-1(OOAD)

60

4g) Testing

1.White box testing

2.Black box Testing

Page 61: Unit-1(OOAD)

61

THANK YOU!