cs212: object oriented analysis and design lecture 1: introduction
TRANSCRIPT
CS212: Object Oriented Analysis and Design
Lecture 1: Introduction
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
C++
UML
DP
SE
Introduction to OOAD (CS212)
• Repeatable solution to a commonly occurring problem
• Design and development of software
• Modeling Language to visualize design of a system
• Object Oriented Programming
C++
UML
DPSE
Course structureO
OA
D Theory
OO Concepts
Design Patterns
OO Modeling
Laboratory C++
Marks distribution
Theory
• 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 Plan
Mid sem 1
Class and Object Overloading 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 Concepts
Encapsulation 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
Name
Number
CLASS: Furniture
methods: ExampleChangeNumber
Objects:
Desk
123445
ChairA
32143
ChairB
45687
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
Thank youNext Lecture: Quick Programming Recap