SlideShare a Scribd company logo
1 of 32
Review of Object Orientation
What is Object Orientation?
Procedural paradigm:
• Software is organized around the notion of procedures
• Procedural abstraction
• Works as long as the data is simple
• Adding data abstractions
• Groups together the pieces of data that describe some entity
• Helps reduce the system’s complexity.
• Such as Records and structures
Object oriented paradigm:
• Organizing procedural abstractions in the context of data abstractions
© Gurbakash Phonsa Object Oriented concept review 2
Object Oriented paradigm
An approach to the solution of problems in which all computations are
performed in the context of objects.
• The objects are instances of classes, which:
• are data abstractions
• contain procedural abstractions that operation on the objects
• A running program can be seen as a collection of objects collaborating to
perform a given task
© Gurbakash Phonsa Object Oriented concept review 3
A View of the Two paradigms
main
perform transaction
compute fees
if checking
then xxx
if savings
then xxx
etc.
compute interest
if checking
then xxx
if savings
then xxx
etc.
debitcredit
Account
credit
debit
SavingsAccount
compute interest
compute fees
CheckingAccount
compute interest
compute fees
© Gurbakash Phonsa Object Oriented concept review 4
Classes and Objects
• Object
• A chunk of structured data in a running software system
• Has properties
• Represent its state
• Has behaviour
• How it acts and reacts
• May simulate the behaviour of an object in the real world
© Gurbakash Phonsa Object Oriented concept review 5
Objects
© Gurbakash Phonsa Object Oriented concept review 6
Manit:
date of birth: 1990/03/03
position: Teller
Transaction 0487:
amount: 2200.00
time: 2011/09/01 14:30
MrGarg:
date of birth: 1980/01/01
address: 75 Object Dr.
Mortgage Account 209865:
balance: 198760.00
opened: 2015/08/15
property: 75 Object Dr.
Instant Teller 9876:
location: Java Valley Cafe
Savings Account 0012876:
balance: 19076.32
opened: 1997/03/03
Sandeep:
date of birth: 1985/02/02
position: Manager
address: 99 UML St.
address: 150 C++ Rd.
Classes
• A class:
• Is a unit of abstraction in an object oriented (OO) program
• Represents similar objects
• Its instances
• Is a kind of software module
• Describes its instances’ structure (properties)
• Contains methods to implement their behaviour
© Gurbakash Phonsa Object Oriented concept review 7
Naming classes
• Use capital letters
• e.g. BankAccount not bankAccount
• Use singular nouns
• Use the right level of generality
• e.g. Municipality, not City
• Make sure the name has only one meaning
• e.g. ‘bus’ has several meanings
© Gurbakash Phonsa Object Oriented concept review 8
Instance Variables
• Variables defined inside a class corresponding to data present in each
instance
i. Attributes
• Simple data
• e.g. name, dateOfBirth
ii. Associations
• Relationships to other important classes
• e.g. supervisor, coursesTaken
© Gurbakash Phonsa Object Oriented concept review 9
Variables vs. Objects
A variable
• Refers to an object
• May refer to different objects at different points in time
An object can be referred to by several different variables at the same
time
Type of a variable
• Determines what classes of objects it may contain
© Gurbakash Phonsa Object Oriented concept review 10
Class variables
• A class variable’s value is shared by all instances of a class.
• Also called a static variable
• If one instance sets the value of a class variable, then all the other
instances see the same changed value.
• Class variables are useful for:
• Default or ‘constant’ values (e.g. PI)
• Lookup tables and similar structures
Caution: do not over-use class variables
© Gurbakash Phonsa Object Oriented concept review 11
Methods, Operations and Polymorphism
Operation
• A higher-level procedural abstraction that specifies a type of behaviour
• Independent of any code which implements that behaviour
• E.g., calculating area (in general)
© Gurbakash Phonsa Object Oriented concept review 12
Methods, Operations and Polymorphism
• Method
• A procedural abstraction used to implement the behaviour of a class.
• Several different classes can have methods with the same name
• They implement the same abstract operation in ways suitable to each class
• E.g, calculating area in a rectangle is done differently from in a circle
© Gurbakash Phonsa Object Oriented concept review 13
Polymorphism
A property of object oriented software by which an abstract operation
may be performed in different ways in different classes.
• Requires that there be multiple methods of the same name
• The choice of which one to execute depends on the object that is in a variable
• Reduces the need for programmers to code many if-else or switch
statements
© Gurbakash Phonsa Object Oriented concept review 14
Organizing Classes into Inheritance Hierarchies
Superclasses
• Contain features common to a set of subclasses
Inheritance hierarchies
• Show the relationships among superclasses and subclasses
• A triangle shows a generalization
Inheritance
• The implicit possession by all subclasses of features defined in its
superclasses
© Gurbakash Phonsa Object Oriented concept review 15
Superclass
Subclass
Example Inheritance Hierarchy
Inheritance
• The implicit possession by all subclasses of features
defined in its superclasses
© Gurbakash Phonsa Object Oriented concept review 16
Account
MortgageAccountSavingsAccount ChequingAccount
The Isa Rule
Always check generalizations to ensure they obey the isa rule
• “A checking account is an account”
• “A village is a municipality”
Should ‘Province’ be a subclass of ‘Country’?
• No, it violates the isa rule
• “A province is a country” is invalid!
© Gurbakash Phonsa Object Oriented concept review 17
A possible inheritance hierarchy of mathematical objects
© Gurbakash Phonsa Object Oriented concept review 18
Rectangle
Quadrilate ralCircle
Ellipse Polygon PlaneLine
Shape3DShape2D
MatrixShape Point
MathematicalObject
Make Sure all Inherited Features Make Sense in Subclasses
© Gurbakash Phonsa Object Oriented concept review 19
Account
balance
opened
creditOrOverdraftLimit
credit
debit
calculateInterest
MortgageAccount
collateralProperty
collateralValue
setCollateralValue
ChequingAccount
highestChequeNumber
withdrawUsingCheque
calculateServiceCharge
SavingsAccount
Inheritance,
Polymorphism and
Variables
© Gurbakash Phonsa Object Oriented concept review 20
RegularPolygon
numPoints
radius
changeNumPoints
changeScale
getArea
getPerimeterLength
getVertices
Rectangle
height
width
setHeight
setWidth
changeScale
getArea
getPerimeterLength
getVertices
getBoundingRect
ArbitraryPolygon
points
addPoint
removePoint
rotate
changeScale
getArea
getPerimeterLength
getVertices
SimplePolygon
orientation
rotate
Shape2D
rotate
translate
changeScale
getArea
getPerimeterLength
getCenter
getBoundingRect
Ellipse
getSemiMajorAxis
getSemiMinorAxis
rotate
getArea
getPerimeterLength
getOrientation
getBoundingRect
Circle
rotate
getArea
getPerimeterLength
getBoundingRect
Polygon
getVertices
getBoundingRect
EllipticalShape
semiMajorAxis
semiMinorAxis
changeScale
changeScale
getRadius
getFocus1
getFocus2
orientation
getOrientation
center
UML Basics
Design Model
Process Model
Deployment Model
What Is the UML?
• The UML is a language for
• Visualizing
• Specifying
• Constructing
• Documenting
The artifacts of a software-intensive system.
• The Unified Modelling Language (UML) is an industry standard
for object oriented design notation, supported by the Object
Management Group (OMG).
The UML Is a Language for Visualizing
• Communicating conceptual models to others is prone
to error unless everyone involved speaks the same
language.
• There are things about a software system you can’t
understand unless you build models.
• An explicit model facilitates communication.
The UML Is a Language for Specifying
• The UML builds models that are precise, unambiguous,
and complete.
The UML Is a Language for
Constructing
• UML models can be directly connected to a variety of
programming languages.
• Maps to Java, C++, Visual Basic, and so on
• Tables in a RDBMS or persistent store in an OODBMS
• Permits forward engineering
• Permits reverse engineering
The UML Is a Language for Documenting
Use Case Diagram
Actor A
Use Case 1
Use Case 2
Use Case 3
Actor B
Class Diagram
GrpFile
read( )
open( )
create( )
fillFile( )
rep
Repository
name : char * = 0
readDoc( )
readFile( )
(from Persistence)
FileMgr
fetchDoc( )
sortByName( )
DocumentList
add( )
delete( )
Document
name : int
docid : int
numField : int
get( )
open( )
close( )
read( )
sortFileList( )
create( )
fillDocument( )
fList
1
FileList
add( )
delete( )
1
File
read( )
read() fill the
code..
Sequence Diagram
user
mainWnd fileMgr :
FileMgr
repositorydocument :
Document
gFile
1: Doc view request ( )
2: fetchDoc( )
3: create ( )
4: create ( )
5: readDoc ( )
6: fillDocument ( )
7: readFile ( )
8: fillFile ( )
9: sortByName ( )
ƯÁ¤¹®¼¿¡ ´ëÇÑ º¸±â¸¦
»ç¿ëÀÚ°¡ ¿äûÇÑ´Ù.
ÈÀÏ°ü¸®ÀÚ´Â Àоî¿Â
¹®¼ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼
°´Ã¼¿¡ ¼³Á¤À» ¿äûÇÑ´Ù.
È¸é °´Ã¼´Â ÀоîµéÀÎ
°´Ã¼µé¿¡ ´ëÇØ À̸§º°·Î
Á¤·ÄÀ» ½ÃÄÑ È¸é¿¡
º¸¿©ÁØ´Ù.
The UML addresses documentation of:
 System architecture
 Requirements
 System Testing
 Project planning and
 Release management
Deployment Diagram
Window95
¹®¼°ü¸®
Ŭ¶óÀ̾ðÆ®.EXE
Windows
NT
¹®¼°ü¸® ¿£Áø.EXE
Windows
NT
Windows95
Solaris
ÀÀ¿ë¼¹ö.EXE
Alpha
UNIX
IBM
Mainframe
µ¥ÀÌŸº£À̽º¼¹ö
Windows95
¹®¼°ü¸® ¾ÖÇø´
ºÐ»ê ȯ°æÀÇ Çϵå¿þ¾î¹× ³×Æ®¿÷À¸·ÎÀÇ Á¤º¸ ½Ã½ºÅÛ ¿¬°á ¸ðµ¨
- À©µµ¿ì 95 : Ŭ¶óÀ̾ðÆ®
- À©µµ¿ì NT: ÀÀ¿ë¼¹ö
- À¯´Ð½º ¸Ó½Å: ÀÀ¿ë ¼¹ö ¹× µ¥ÀÌŸ ¼¹ö, Åë½Å ¼¹ö
- IBM ¸ÞÀÎÇÁ·¹ÀÓ: µ¥ÀÌŸ ¼¹ö, Åë½Å ¼¹ö
History of the UML
UML 1.0
(Jan. ‘97)
UML 1.1
(Sept. ‘97)
UML 1.5
(March, ‘03)
UML 2.0
(2004)
Other
Methods
Booch ‘91 OMT - 1OOSE
Booch ’93 OMT - 2
Public
FeedbackUnified Method 0.8
(OOPSLA ’95)
UML 0.9
(June ‘96)
UML 0.91
(Oct. ‘96)
and
Diagrams
• Diagrams graphically depict a view of a part of your model.
• Different diagrams represent different views of the system
that you are developing.
• A model element will appear on one or more diagrams.
UML Diagrams in Software Architecture
Behavioral
Diagrams
Structural
DiagramsActivity
Diagrams
Sequence
Diagrams
Communication
Diagrams
State Machine
Diagrams
Deployment
Diagrams
Component
Diagrams
Composite
Structure
Diagrams
Class
Diagrams
Use-Case
Diagrams
Model
Key Diagrams in UML
Requirements
System Structure
System Behaviour
Use Case Diagrams
Interaction Diagrams
Activity Diagrams
State Charts
Class Diagrams
Collaboration Diagrams
Different diagrams of system for different people
Process View Deployment View
Logical View
Use-Case View
Implementation View
End-user
Functionality
Programmers
Software management
Performance, scalability, throughput
System integrators System topology, delivery,
installation, communication
System engineering
Analysts/Designers
Structure
UML Building Blocks
UML Building Blocks
© Gurbakash Phonsa Object Oriented concept review 32

More Related Content

What's hot

Developing an ASP.NET Web Application
Developing an ASP.NET Web ApplicationDeveloping an ASP.NET Web Application
Developing an ASP.NET Web ApplicationRishi Kothari
 
Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9koolkampus
 
Quality and productivity factors
Quality and productivity factorsQuality and productivity factors
Quality and productivity factorsNancyBeaulah_R
 
Architectural modeling chapter 5 of omd
Architectural modeling chapter 5 of omdArchitectural modeling chapter 5 of omd
Architectural modeling chapter 5 of omdjayashri kolekar
 
Software Requirements in Software Engineering SE5
Software Requirements in Software Engineering SE5Software Requirements in Software Engineering SE5
Software Requirements in Software Engineering SE5koolkampus
 
software cost factor
software cost factorsoftware cost factor
software cost factorAbinaya B
 
Real time and distributed design
Real time and distributed designReal time and distributed design
Real time and distributed designpriyapavi96
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specificationAman Adhikari
 
Software project planning
Software project planningSoftware project planning
Software project planningrajvir_kaur
 
Function oriented design
Function oriented designFunction oriented design
Function oriented designVidhun T
 
Software Engineering Unit 1
Software Engineering Unit 1Software Engineering Unit 1
Software Engineering Unit 1Abhimanyu Mishra
 
Pressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelsPressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelssaurabhshertukde
 

What's hot (20)

Asp net
Asp netAsp net
Asp net
 
Developing an ASP.NET Web Application
Developing an ASP.NET Web ApplicationDeveloping an ASP.NET Web Application
Developing an ASP.NET Web Application
 
Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9
 
Chapter 2 software process models
Chapter 2   software process modelsChapter 2   software process models
Chapter 2 software process models
 
Vb.net (loop structure)
Vb.net (loop structure)Vb.net (loop structure)
Vb.net (loop structure)
 
software design
software designsoftware design
software design
 
Php variables (english)
Php variables (english)Php variables (english)
Php variables (english)
 
Quality and productivity factors
Quality and productivity factorsQuality and productivity factors
Quality and productivity factors
 
Architectural modeling chapter 5 of omd
Architectural modeling chapter 5 of omdArchitectural modeling chapter 5 of omd
Architectural modeling chapter 5 of omd
 
5 architecture
5 architecture5 architecture
5 architecture
 
Debugging
DebuggingDebugging
Debugging
 
Software Requirements in Software Engineering SE5
Software Requirements in Software Engineering SE5Software Requirements in Software Engineering SE5
Software Requirements in Software Engineering SE5
 
software cost factor
software cost factorsoftware cost factor
software cost factor
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Real time and distributed design
Real time and distributed designReal time and distributed design
Real time and distributed design
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specification
 
Software project planning
Software project planningSoftware project planning
Software project planning
 
Function oriented design
Function oriented designFunction oriented design
Function oriented design
 
Software Engineering Unit 1
Software Engineering Unit 1Software Engineering Unit 1
Software Engineering Unit 1
 
Pressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelsPressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-models
 

Viewers also liked

01 concepts of_object-orientation (1)
01 concepts of_object-orientation (1)01 concepts of_object-orientation (1)
01 concepts of_object-orientation (1)AaDi RA
 
Basic object oriented approach
Basic object oriented approachBasic object oriented approach
Basic object oriented approachJigarthacker
 
Object Oriented Approach for Software Development
Object Oriented Approach for Software DevelopmentObject Oriented Approach for Software Development
Object Oriented Approach for Software DevelopmentRishabh Soni
 
Object oriented methodology & unified modeling language
Object oriented methodology & unified modeling languageObject oriented methodology & unified modeling language
Object oriented methodology & unified modeling languageIsmail El Gayar
 
Object oriented analysis
Object oriented analysisObject oriented analysis
Object oriented analysisMahesh Bhalerao
 
Object oriented methodologies
Object oriented methodologiesObject oriented methodologies
Object oriented methodologiesnaina-rani
 
Structured Vs, Object Oriented Analysis and Design
Structured Vs, Object Oriented Analysis and DesignStructured Vs, Object Oriented Analysis and Design
Structured Vs, Object Oriented Analysis and DesignMotaz Saad
 
Object oriented software engineering concepts
Object oriented software engineering conceptsObject oriented software engineering concepts
Object oriented software engineering conceptsKomal Singh
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and DesignHaitham El-Ghareeb
 

Viewers also liked (9)

01 concepts of_object-orientation (1)
01 concepts of_object-orientation (1)01 concepts of_object-orientation (1)
01 concepts of_object-orientation (1)
 
Basic object oriented approach
Basic object oriented approachBasic object oriented approach
Basic object oriented approach
 
Object Oriented Approach for Software Development
Object Oriented Approach for Software DevelopmentObject Oriented Approach for Software Development
Object Oriented Approach for Software Development
 
Object oriented methodology & unified modeling language
Object oriented methodology & unified modeling languageObject oriented methodology & unified modeling language
Object oriented methodology & unified modeling language
 
Object oriented analysis
Object oriented analysisObject oriented analysis
Object oriented analysis
 
Object oriented methodologies
Object oriented methodologiesObject oriented methodologies
Object oriented methodologies
 
Structured Vs, Object Oriented Analysis and Design
Structured Vs, Object Oriented Analysis and DesignStructured Vs, Object Oriented Analysis and Design
Structured Vs, Object Oriented Analysis and Design
 
Object oriented software engineering concepts
Object oriented software engineering conceptsObject oriented software engineering concepts
Object oriented software engineering concepts
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and Design
 

Similar to Review of Object Oriented Programming Concepts

Marco Mancuso - Data Context Interaction
Marco Mancuso - Data Context InteractionMarco Mancuso - Data Context Interaction
Marco Mancuso - Data Context InteractioncosenzaLab
 
Data and functional modeling
Data and functional modelingData and functional modeling
Data and functional modelingSlideshare
 
SE-IT JAVA LAB OOP CONCEPT
SE-IT JAVA LAB OOP CONCEPTSE-IT JAVA LAB OOP CONCEPT
SE-IT JAVA LAB OOP CONCEPTnikshaikh786
 
Data Structure and Algorithms
Data Structure and AlgorithmsData Structure and Algorithms
Data Structure and Algorithmsiqbalphy1
 
Predictable reactive state management - ngrx
Predictable reactive state management - ngrxPredictable reactive state management - ngrx
Predictable reactive state management - ngrxIlia Idakiev
 
Diksha sda presentation
Diksha sda presentationDiksha sda presentation
Diksha sda presentationdikshagupta111
 
Unit 2_DBMS_10.2.22.pptx
Unit 2_DBMS_10.2.22.pptxUnit 2_DBMS_10.2.22.pptx
Unit 2_DBMS_10.2.22.pptxMaryJoseph79
 
Designing and Implementing Information Systems with Event Modeling, Bobby Cal...
Designing and Implementing Information Systems with Event Modeling, Bobby Cal...Designing and Implementing Information Systems with Event Modeling, Bobby Cal...
Designing and Implementing Information Systems with Event Modeling, Bobby Cal...confluent
 
Revamping FYP using Agile Methodology.pptx
Revamping FYP using Agile Methodology.pptxRevamping FYP using Agile Methodology.pptx
Revamping FYP using Agile Methodology.pptxKASHAFALI23
 
Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...
Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...
Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...confluent
 
1_Object Oriented Programming.pptx
1_Object Oriented Programming.pptx1_Object Oriented Programming.pptx
1_Object Oriented Programming.pptxumarAnjum6
 
Object Oriented Analysis
Object Oriented AnalysisObject Oriented Analysis
Object Oriented AnalysisAMITJain879
 
object oriented programming part inheritance.pptx
object oriented programming part inheritance.pptxobject oriented programming part inheritance.pptx
object oriented programming part inheritance.pptxurvashipundir04
 
Model-based programming and AI-assisted software development
Model-based programming and AI-assisted software developmentModel-based programming and AI-assisted software development
Model-based programming and AI-assisted software developmentEficode
 
Object-Oriented Analysis and Design
Object-Oriented Analysis and DesignObject-Oriented Analysis and Design
Object-Oriented Analysis and DesignRiazAhmad786
 

Similar to Review of Object Oriented Programming Concepts (20)

Marco Mancuso - Data Context Interaction
Marco Mancuso - Data Context InteractionMarco Mancuso - Data Context Interaction
Marco Mancuso - Data Context Interaction
 
Data and functional modeling
Data and functional modelingData and functional modeling
Data and functional modeling
 
Chapter 1
Chapter 1Chapter 1
Chapter 1
 
SE-IT JAVA LAB OOP CONCEPT
SE-IT JAVA LAB OOP CONCEPTSE-IT JAVA LAB OOP CONCEPT
SE-IT JAVA LAB OOP CONCEPT
 
Data Structure and Algorithms
Data Structure and AlgorithmsData Structure and Algorithms
Data Structure and Algorithms
 
CPP19 - Revision
CPP19 - RevisionCPP19 - Revision
CPP19 - Revision
 
Predictable reactive state management - ngrx
Predictable reactive state management - ngrxPredictable reactive state management - ngrx
Predictable reactive state management - ngrx
 
Rad case
Rad caseRad case
Rad case
 
Diksha sda presentation
Diksha sda presentationDiksha sda presentation
Diksha sda presentation
 
SMD.pptx
SMD.pptxSMD.pptx
SMD.pptx
 
Unit 2_DBMS_10.2.22.pptx
Unit 2_DBMS_10.2.22.pptxUnit 2_DBMS_10.2.22.pptx
Unit 2_DBMS_10.2.22.pptx
 
Designing and Implementing Information Systems with Event Modeling, Bobby Cal...
Designing and Implementing Information Systems with Event Modeling, Bobby Cal...Designing and Implementing Information Systems with Event Modeling, Bobby Cal...
Designing and Implementing Information Systems with Event Modeling, Bobby Cal...
 
Presentation c
Presentation cPresentation c
Presentation c
 
Revamping FYP using Agile Methodology.pptx
Revamping FYP using Agile Methodology.pptxRevamping FYP using Agile Methodology.pptx
Revamping FYP using Agile Methodology.pptx
 
Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...
Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...
Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...
 
1_Object Oriented Programming.pptx
1_Object Oriented Programming.pptx1_Object Oriented Programming.pptx
1_Object Oriented Programming.pptx
 
Object Oriented Analysis
Object Oriented AnalysisObject Oriented Analysis
Object Oriented Analysis
 
object oriented programming part inheritance.pptx
object oriented programming part inheritance.pptxobject oriented programming part inheritance.pptx
object oriented programming part inheritance.pptx
 
Model-based programming and AI-assisted software development
Model-based programming and AI-assisted software developmentModel-based programming and AI-assisted software development
Model-based programming and AI-assisted software development
 
Object-Oriented Analysis and Design
Object-Oriented Analysis and DesignObject-Oriented Analysis and Design
Object-Oriented Analysis and Design
 

More from Gurbakash Phonsa

More from Gurbakash Phonsa (10)

Black box and White box examples
Black box and White box examplesBlack box and White box examples
Black box and White box examples
 
Software quality iso-cmm-psp
Software quality  iso-cmm-pspSoftware quality  iso-cmm-psp
Software quality iso-cmm-psp
 
Gantt PERT and CPM
Gantt PERT and CPMGantt PERT and CPM
Gantt PERT and CPM
 
CORBA
CORBACORBA
CORBA
 
SRE Tools
SRE ToolsSRE Tools
SRE Tools
 
SRE Tools
SRE ToolsSRE Tools
SRE Tools
 
Malware and security
Malware and securityMalware and security
Malware and security
 
Time series models iv
Time series models ivTime series models iv
Time series models iv
 
Markov structure models iv
Markov structure models ivMarkov structure models iv
Markov structure models iv
 
Software reliability models error seeding model and failure model-iv
Software reliability models error seeding model and failure model-ivSoftware reliability models error seeding model and failure model-iv
Software reliability models error seeding model and failure model-iv
 

Recently uploaded

Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITmanoharjgpsolutions
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024VictoriaMetrics
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?Alexandre Beguel
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...OnePlan Solutions
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsJean Silva
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesVictoriaMetrics
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogueitservices996
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shardsChristopher Curtin
 
Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024Anthony Dahanne
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...OnePlan Solutions
 
SoftTeco - Software Development Company Profile
SoftTeco - Software Development Company ProfileSoftTeco - Software Development Company Profile
SoftTeco - Software Development Company Profileakrivarotava
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 

Recently uploaded (20)

Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh IT
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero results
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 Updates
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogue
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
 
Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
 
SoftTeco - Software Development Company Profile
SoftTeco - Software Development Company ProfileSoftTeco - Software Development Company Profile
SoftTeco - Software Development Company Profile
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 

Review of Object Oriented Programming Concepts

  • 1. Review of Object Orientation
  • 2. What is Object Orientation? Procedural paradigm: • Software is organized around the notion of procedures • Procedural abstraction • Works as long as the data is simple • Adding data abstractions • Groups together the pieces of data that describe some entity • Helps reduce the system’s complexity. • Such as Records and structures Object oriented paradigm: • Organizing procedural abstractions in the context of data abstractions © Gurbakash Phonsa Object Oriented concept review 2
  • 3. Object Oriented paradigm An approach to the solution of problems in which all computations are performed in the context of objects. • The objects are instances of classes, which: • are data abstractions • contain procedural abstractions that operation on the objects • A running program can be seen as a collection of objects collaborating to perform a given task © Gurbakash Phonsa Object Oriented concept review 3
  • 4. A View of the Two paradigms main perform transaction compute fees if checking then xxx if savings then xxx etc. compute interest if checking then xxx if savings then xxx etc. debitcredit Account credit debit SavingsAccount compute interest compute fees CheckingAccount compute interest compute fees © Gurbakash Phonsa Object Oriented concept review 4
  • 5. Classes and Objects • Object • A chunk of structured data in a running software system • Has properties • Represent its state • Has behaviour • How it acts and reacts • May simulate the behaviour of an object in the real world © Gurbakash Phonsa Object Oriented concept review 5
  • 6. Objects © Gurbakash Phonsa Object Oriented concept review 6 Manit: date of birth: 1990/03/03 position: Teller Transaction 0487: amount: 2200.00 time: 2011/09/01 14:30 MrGarg: date of birth: 1980/01/01 address: 75 Object Dr. Mortgage Account 209865: balance: 198760.00 opened: 2015/08/15 property: 75 Object Dr. Instant Teller 9876: location: Java Valley Cafe Savings Account 0012876: balance: 19076.32 opened: 1997/03/03 Sandeep: date of birth: 1985/02/02 position: Manager address: 99 UML St. address: 150 C++ Rd.
  • 7. Classes • A class: • Is a unit of abstraction in an object oriented (OO) program • Represents similar objects • Its instances • Is a kind of software module • Describes its instances’ structure (properties) • Contains methods to implement their behaviour © Gurbakash Phonsa Object Oriented concept review 7
  • 8. Naming classes • Use capital letters • e.g. BankAccount not bankAccount • Use singular nouns • Use the right level of generality • e.g. Municipality, not City • Make sure the name has only one meaning • e.g. ‘bus’ has several meanings © Gurbakash Phonsa Object Oriented concept review 8
  • 9. Instance Variables • Variables defined inside a class corresponding to data present in each instance i. Attributes • Simple data • e.g. name, dateOfBirth ii. Associations • Relationships to other important classes • e.g. supervisor, coursesTaken © Gurbakash Phonsa Object Oriented concept review 9
  • 10. Variables vs. Objects A variable • Refers to an object • May refer to different objects at different points in time An object can be referred to by several different variables at the same time Type of a variable • Determines what classes of objects it may contain © Gurbakash Phonsa Object Oriented concept review 10
  • 11. Class variables • A class variable’s value is shared by all instances of a class. • Also called a static variable • If one instance sets the value of a class variable, then all the other instances see the same changed value. • Class variables are useful for: • Default or ‘constant’ values (e.g. PI) • Lookup tables and similar structures Caution: do not over-use class variables © Gurbakash Phonsa Object Oriented concept review 11
  • 12. Methods, Operations and Polymorphism Operation • A higher-level procedural abstraction that specifies a type of behaviour • Independent of any code which implements that behaviour • E.g., calculating area (in general) © Gurbakash Phonsa Object Oriented concept review 12
  • 13. Methods, Operations and Polymorphism • Method • A procedural abstraction used to implement the behaviour of a class. • Several different classes can have methods with the same name • They implement the same abstract operation in ways suitable to each class • E.g, calculating area in a rectangle is done differently from in a circle © Gurbakash Phonsa Object Oriented concept review 13
  • 14. Polymorphism A property of object oriented software by which an abstract operation may be performed in different ways in different classes. • Requires that there be multiple methods of the same name • The choice of which one to execute depends on the object that is in a variable • Reduces the need for programmers to code many if-else or switch statements © Gurbakash Phonsa Object Oriented concept review 14
  • 15. Organizing Classes into Inheritance Hierarchies Superclasses • Contain features common to a set of subclasses Inheritance hierarchies • Show the relationships among superclasses and subclasses • A triangle shows a generalization Inheritance • The implicit possession by all subclasses of features defined in its superclasses © Gurbakash Phonsa Object Oriented concept review 15 Superclass Subclass
  • 16. Example Inheritance Hierarchy Inheritance • The implicit possession by all subclasses of features defined in its superclasses © Gurbakash Phonsa Object Oriented concept review 16 Account MortgageAccountSavingsAccount ChequingAccount
  • 17. The Isa Rule Always check generalizations to ensure they obey the isa rule • “A checking account is an account” • “A village is a municipality” Should ‘Province’ be a subclass of ‘Country’? • No, it violates the isa rule • “A province is a country” is invalid! © Gurbakash Phonsa Object Oriented concept review 17
  • 18. A possible inheritance hierarchy of mathematical objects © Gurbakash Phonsa Object Oriented concept review 18 Rectangle Quadrilate ralCircle Ellipse Polygon PlaneLine Shape3DShape2D MatrixShape Point MathematicalObject
  • 19. Make Sure all Inherited Features Make Sense in Subclasses © Gurbakash Phonsa Object Oriented concept review 19 Account balance opened creditOrOverdraftLimit credit debit calculateInterest MortgageAccount collateralProperty collateralValue setCollateralValue ChequingAccount highestChequeNumber withdrawUsingCheque calculateServiceCharge SavingsAccount
  • 20. Inheritance, Polymorphism and Variables © Gurbakash Phonsa Object Oriented concept review 20 RegularPolygon numPoints radius changeNumPoints changeScale getArea getPerimeterLength getVertices Rectangle height width setHeight setWidth changeScale getArea getPerimeterLength getVertices getBoundingRect ArbitraryPolygon points addPoint removePoint rotate changeScale getArea getPerimeterLength getVertices SimplePolygon orientation rotate Shape2D rotate translate changeScale getArea getPerimeterLength getCenter getBoundingRect Ellipse getSemiMajorAxis getSemiMinorAxis rotate getArea getPerimeterLength getOrientation getBoundingRect Circle rotate getArea getPerimeterLength getBoundingRect Polygon getVertices getBoundingRect EllipticalShape semiMajorAxis semiMinorAxis changeScale changeScale getRadius getFocus1 getFocus2 orientation getOrientation center
  • 21. UML Basics Design Model Process Model Deployment Model
  • 22. What Is the UML? • The UML is a language for • Visualizing • Specifying • Constructing • Documenting The artifacts of a software-intensive system. • The Unified Modelling Language (UML) is an industry standard for object oriented design notation, supported by the Object Management Group (OMG).
  • 23. The UML Is a Language for Visualizing • Communicating conceptual models to others is prone to error unless everyone involved speaks the same language. • There are things about a software system you can’t understand unless you build models. • An explicit model facilitates communication.
  • 24. The UML Is a Language for Specifying • The UML builds models that are precise, unambiguous, and complete.
  • 25. The UML Is a Language for Constructing • UML models can be directly connected to a variety of programming languages. • Maps to Java, C++, Visual Basic, and so on • Tables in a RDBMS or persistent store in an OODBMS • Permits forward engineering • Permits reverse engineering
  • 26. The UML Is a Language for Documenting Use Case Diagram Actor A Use Case 1 Use Case 2 Use Case 3 Actor B Class Diagram GrpFile read( ) open( ) create( ) fillFile( ) rep Repository name : char * = 0 readDoc( ) readFile( ) (from Persistence) FileMgr fetchDoc( ) sortByName( ) DocumentList add( ) delete( ) Document name : int docid : int numField : int get( ) open( ) close( ) read( ) sortFileList( ) create( ) fillDocument( ) fList 1 FileList add( ) delete( ) 1 File read( ) read() fill the code.. Sequence Diagram user mainWnd fileMgr : FileMgr repositorydocument : Document gFile 1: Doc view request ( ) 2: fetchDoc( ) 3: create ( ) 4: create ( ) 5: readDoc ( ) 6: fillDocument ( ) 7: readFile ( ) 8: fillFile ( ) 9: sortByName ( ) ƯÁ¤¹®¼¿¡ ´ëÇÑ º¸±â¸¦ »ç¿ëÀÚ°¡ ¿äûÇÑ´Ù. ÈÀÏ°ü¸®ÀÚ´Â Àоî¿Â ¹®¼ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼ °´Ã¼¿¡ ¼³Á¤À» ¿äûÇÑ´Ù. È¸é °´Ã¼´Â ÀоîµéÀÎ °´Ã¼µé¿¡ ´ëÇØ À̸§º°·Î Á¤·ÄÀ» ½ÃÄÑ È¸é¿¡ º¸¿©ÁØ´Ù. The UML addresses documentation of:  System architecture  Requirements  System Testing  Project planning and  Release management Deployment Diagram Window95 ¹®¼°ü¸® Ŭ¶óÀ̾ðÆ®.EXE Windows NT ¹®¼°ü¸® ¿£Áø.EXE Windows NT Windows95 Solaris ÀÀ¿ë¼¹ö.EXE Alpha UNIX IBM Mainframe µ¥ÀÌŸº£À̽º¼¹ö Windows95 ¹®¼°ü¸® ¾ÖÇø´ ºÐ»ê ȯ°æÀÇ Çϵå¿þ¾î¹× ³×Æ®¿÷À¸·ÎÀÇ Á¤º¸ ½Ã½ºÅÛ ¿¬°á ¸ðµ¨ - À©µµ¿ì 95 : Ŭ¶óÀ̾ðÆ® - À©µµ¿ì NT: ÀÀ¿ë¼¹ö - À¯´Ð½º ¸Ó½Å: ÀÀ¿ë ¼¹ö ¹× µ¥ÀÌŸ ¼¹ö, Åë½Å ¼¹ö - IBM ¸ÞÀÎÇÁ·¹ÀÓ: µ¥ÀÌŸ ¼¹ö, Åë½Å ¼¹ö
  • 27. History of the UML UML 1.0 (Jan. ‘97) UML 1.1 (Sept. ‘97) UML 1.5 (March, ‘03) UML 2.0 (2004) Other Methods Booch ‘91 OMT - 1OOSE Booch ’93 OMT - 2 Public FeedbackUnified Method 0.8 (OOPSLA ’95) UML 0.9 (June ‘96) UML 0.91 (Oct. ‘96) and
  • 28. Diagrams • Diagrams graphically depict a view of a part of your model. • Different diagrams represent different views of the system that you are developing. • A model element will appear on one or more diagrams.
  • 29. UML Diagrams in Software Architecture Behavioral Diagrams Structural DiagramsActivity Diagrams Sequence Diagrams Communication Diagrams State Machine Diagrams Deployment Diagrams Component Diagrams Composite Structure Diagrams Class Diagrams Use-Case Diagrams Model
  • 30. Key Diagrams in UML Requirements System Structure System Behaviour Use Case Diagrams Interaction Diagrams Activity Diagrams State Charts Class Diagrams Collaboration Diagrams
  • 31. Different diagrams of system for different people Process View Deployment View Logical View Use-Case View Implementation View End-user Functionality Programmers Software management Performance, scalability, throughput System integrators System topology, delivery, installation, communication System engineering Analysts/Designers Structure
  • 32. UML Building Blocks UML Building Blocks © Gurbakash Phonsa Object Oriented concept review 32

Editor's Notes

  1. 21
  2. 22
  3. 23
  4. 24
  5. 25
  6. 26
  7. 27
  8. 28
  9. 29
  10. 30