Object oriented analysis

Preview:

Citation preview

AnalysisObject-oriented

and

Design

Analysis emphasizes an investigation of the problem and requirements, rather than a solution.

Design emphasizes a conceptual solution that fulfils the requirements, rather than its implementation.

Do the right thing

Do the thing right

What is OOAD?Object-oriented analysis emphasises on finding and describing the objects—or concepts—in the problem domain.

Object-oriented design emphasises on defining software objects and how they collaborate to fulfil the requirements.

Example: Library management system

Domain Concepts

Book

title

Visualization of

Domain Concepts

Public class Book{private String title;public Chapter getChapter (int){…}

}

Representation in an object oriented programming

language

Course Layout

OOAD

Introduction to OOAD (CS212)

• Object Oriented Programming

• Modeling Language to visualize design of a system

• Repeatable solution to a commonly occurring problem

• Design and development of software

C++ UML

DPSE

Course structureOOAD

Theory

OO Concepts

Design Patterns

OO Modeling

Laboratory

C++

Marks distributionTheory

• Class participation: 5

• Mid semester 1: 15

• Mid semester 2: 20

• End semester: 60

Lab

•Each lab: 15

•Mid semester Practical: 20

•End semester Practical: 30

Lecture PlanMid sem

1Class and

ObjectOverloadin

g Inheritance

Mid sem 2

Virtual Function and

Polymorphism

Exception handling Template

End sem STL UML Design Patterns

About Lab sessions• C++ programming assignments

• Thursday – 1 PM to 3 PM - B14CS001 to B14SS017

• Friday – 1 PM to 3 PM - UG201213002 to UG201313039

• Venue: Computer centre

• 10 programming assignments, 1 mid-semester practical, 1

end-semester practical

Evaluation criteria for the lab

•Format - 2

•Documentation - 2

•Response - 4

•Design - 3

•Execution - 4

Procedural vs. Object-Oriented

Line of codeLine of codeLine of code

Data is stored independent of application

Each object is independent of the others

OO-applicationProcedural application

DATA

Main OO ConceptsEncapsulation

Abstraction

Inheritance

Polimorphism

OO Concepts

Encapsulation• Each objects methods manage it’s own attributes. • This is also known as information hiding.

• An object A can learn about the values of attributes of another object B, only by invoking the corresponding method associated to the object B.

• Example: • Class: Student• Attributes: Name, roll number• Methods: getName(), setRollNumber()

Abstraction

• A problem solving tool that allows one to think of a problem at a higher level without worrying about the details.

• Provides only essential information to the outside world and hides their background details,

• To represent the needed information in program without presenting the details.

• For example, a clock shows the time to the user, without telling how it is internally stored. 

Abstraction vs. Encapsulation

Every entity that performs abstraction is encapsulated internally but every thing that shows encapsulation need not be abstraction always.

Classes• Classes are templates that have methods and attribute

names and type information packaged in a single unit

• Objects are generated by these classes and they actually contain values.

• We design an application at the class level.

• During execution objects are created by classes as they are needed to contain state information.

• Objects are removed when not needed.

Class & Objects

NameNumber

CLASS: Furniture

methods: ExampleChangeNumber

Objects:

Desk123445

ChairA32143

ChairB45687

Class Hierarchies & Inheritance• Classes can be arranged in hierarchies so that more classes

inherit attributes and methods from more abstract clases

• Class hierarchy diagrams

Class: Chair

subclasses

Chair Type A Chair Type B

Polimorphism

• One method will behave differently when it is applied to the

objects of different classes

• Different methods associated with different classes can

interpret the same message in different ways.

• Example: an object can send a message PRINT to several

objects, and each one will use it’s own PRINT method to

execute the message.

• E.g. Overloading

Unified Process

• Inception— approximate vision, business case, scope, vague

estimates.

• Elaboration— refined vision, iterative implementation of the

core architecture, resolution of high risks, identification of most

requirements and scope, more realistic estimates.

• Construction— iterative implementation of the remaining

lower risk and easier elements, and preparation for deployment.

• Transition— beta tests, deployment.

Schedule-oriented terms in the Unified Process

Inception Elaboration Construction Transition

Iteration Phase

Milestone ReleaseFinal Product

Recommended