SlideShare a Scribd company logo
1 of 39
Download to read offline
1
Class & Object Diagrams
Class Diagrams
OOM PPTs by Vijaykumar Mantri,
Asso. Prof. in IT Dept, BVRIT, Narsapur.
For downloading PPTs visit
https://sites.google.com/a/bvrit.ac.in/vijaymantri
2
• Class diagrams are the most commonly used diagrams in UML.
• A class diagram shows a set of classes, interfaces and
collaborations and their relationships.
• Graphically a class diagram is collections of vertices and arcs.
• Class diagrams are important not only for visualizing,
specifying, and documenting structural models, but also for
constructing executable systems through forward and reverse
engineering.
• Class diagrams indicate which classes know about other classes
and, if they do, what type of relationship exists.
• Class diagrams will have different levels of detail (abstraction)
depending on where we are in the software development
process.
• Class diagrams help in showing the functional requirements of
the system - the services the system should provide to its end
users.
3
A Class
Diagram
Contents
– Classes
– Interfaces
– Collaborations.
– Dependency, Generalization and Association
relationships.
• It may contain notes & constraints.
• Class diagram may also contain packages or
subsystems.
4
Common Uses
• We use class diagram to model the static design view of
a system.
• We use class diagrams in one of three ways.
1. To model the vocabulary of a system.
– Modeling the vocabulary of a system involves making a
decision about which abstractions are a part of the system
under consideration & which fall outside its boundaries.
2. To model simple collaborations.
– A collaboration is a society of classes, interfaces & other
elements that work together to provide some cooperative
behavior that’s bigger than the sum of all the elements.
3. To model a logical database schema.
– We can model schemas for databases using class diagrams.
5
6
Common Modeling Techniques
Modeling Simple Collaborations: To model a collaboration
- A group of classes working toward a common purpose.
• No class stand alone. Each works in collaboration with others to
carry out some semantics greater than each individual.
• Use scenarios to see which classes are actually involved in carrying
out a particular operation.
– Scenarios will also aide in establishing relationships between
classes.
• Fill in the ‘responsibilities’ section of each class icon.
– The responsibilities of each class will eventually evolve into actual
attributes and behaviors.
• A complex system typically requires multiple class diagrams.
– Each diagram is devoted to a particular functionality of the
system.
7
Common Modeling Techniques
Modeling Simple Collaborations:
 No class stands alone.
 Rather, each works in collaboration with others to carry
out some semantics greater than each individual.
 Therefore, in addition to capturing the vocabulary of your
system, you'll also need to turn your attention to
visualizing, specifying, constructing, and documenting
the various ways these things in your vocabulary work
together.
 You use class diagrams to represent such collaborations.
To model a collaboration,
• Identify the mechanism you'd like to model. A mechanism
represents some function or behavior of the part of the system
you are modeling that results from the interaction of a society
of classes, interfaces, and other things.
• For each mechanism, identify the classes, interfaces, and other
collaborations that participate in this collaboration. Identify the
relationships among these things as well.
• Use scenarios to walk through these things. Along the way,
you'll discover parts of your model that were missing and parts
that were just plain semantically wrong.
• Be sure to populate these elements with their contents. For
classes, start with getting a good balance of responsibilities.
Then, over time, turn these into concrete attributes and
operations.
8
9
Modeling Simple Collaborations
• For example, Figure shows a set of classes drawn from the
implementation of an autonomous robot.
• The figure focuses on the classes involved in the mechanism
for moving the robot along a path.
• You'll find one abstract class (Motor) with two concrete
children, SteeringMotor and MainMotor.
• Both of these classes inherit the five operations of their
parent, Motor.
• The two classes are, in turn, shown as parts of another
class, Driver.
• The class PathAgent has a one-to-one association
to Driver and a one-to-many association to CollisionSensor.
• No attributes or operations are shown for PathAgent,
although its responsibilities are given.
10
11
Modeling a Logical Database Schema
• Many of the systems model will have persistent objects
which we need to store in database for later retrieval.
• UML is well suited to modeling logical database
schemas as well as physical databases.
• UML’s class diagrams are superset of ER diagrams.
• To model a logical database schema …
– Identify the persistent objects - objects that are stored on disk
between runs of the program.
– Label persistent objects as such in the class diagrams using
tags or stereotypes.
Common Modeling Techniques
To model a schema,
• Identify those classes in your model whose state must
transcend the lifetime of their applications.
• Create a class diagram that contains these classes. You can
define your own set of stereotypes and tagged values to address
database-specific details.
• Expand the structural details of these classes.
• Watch for common patterns that complicate physical database
design, such as cyclic associations and one-to-one associations.
• Consider also the behavior of these classes by expanding
operations that are important for data access and data integrity.
• Where possible, use tools to help you transform your logical
design into a physical design.
12
13
Modeling a Database Schema
• Figure shows a set of classes drawn from an information
system for a school.
• This figure expands upon an earlier class diagram, and
you'll see the details of these classes revealed to a level
sufficient to construct a physical database. Starting at
the bottom-left of this diagram, you will find the classes
named Student, Course, and Instructor.
• There's an association between Student and Course,
specifying that students attend courses.
• Furthermore, every student may attend any number of
courses, and every course may have any number of
students.
14
15
Forward and Reverse Engineering
• Modeling is important, but you have to remember that the
primary product of a development team is software, not
diagrams.
• Of course, the reason for creating models is to be able to
deliver software that satisfies the evolving goals of its users
and the business at the right time.
• For this reason, it's important that the models you create and
the implementations you deploy map to one another and do
so in a way that minimizes or even eliminates the cost of
keeping your models and your implementation in sync with
one another.
• For some uses of the UML, the models you create will never
map to code. But in most cases though, the models you
create will map to code.
16
Forward and Reverse Engineering
• Forward engineering is the process of transforming a
model into code through a mapping to an
implementation language.
• Forward engineering results in a loss of information,
because models written in the UML are semantically
richer than any current object-oriented programming
language.
• In fact, this is a major reason why you need models in
addition to code.
• Structural features, such as collaborations, and
behavioral features, such as interactions, can be
visualized clearly in the UML, but not so clearly from
raw code.
17
To forward engineer a class diagram,
• Identify the rules for mapping to your implementation language
or languages of choice. This is something you'll want to do for
your project or your organization as a whole.
• Depending on the semantics of the languages you choose, you
may want to constrain your use of certain UML features. For
example, the UML permits you to model multiple inheritance,
but Smalltalk permits only single inheritance. You can choose to
prohibit developers from modeling with multiple inheritance
(which makes your models language-dependent).
• Use tagged values to guide implementation choices in your
target language. You can do this at the level of individual
classes if you need precise control. You can also do so at a
higher level, such as with collaborations or packages.
• Use tools to generate code.
18
19
• Figure illustrates a simple class diagram specifying an
instantiation of the chain of responsibility pattern.
• This particular instantiation involves three classes: Client,
EventHandler, and GUIEventHandler.
• The classes Client andEventHandler are abstract, whereas
GUIEventHandler is concrete.
• EventHandler has the usual operation expected of this
pattern (handleRequest), although two private attributes
have been added for this instantiation.
• All of these classes specify a mapping to Java, as noted in
their stereotype.
• Forward engineering the classes in this diagram to Java is
straightforward, using a tool.
20
• Forward engineering the class EventHandler yields the
following code.
public abstract class EventHandler {
EventHandler successor;
private Integer currentEventID;
private String source;
EventHandler() {}
public void handleRequest() {}
}
Reverse Engineering
• Reverse engineering is the process of transforming code
into a model through a mapping from a specific
implementation language.
• Reverse engineering results in a flood of information,
some of which is at a lower level of detail than you'll
need to build useful models.
• At the same time, reverse engineering is incomplete.
• There is a loss of information when forward
engineering models into code, and so you can't
completely recreate a model from code unless your
tools encode information in the source comments that
goes beyond the semantics of the implementation
language. 21
22
To reverse engineer a class diagram,
• Identify the rules for mapping from your implementation language
or languages of choice.
• Using a tool, point to the code you'd like to reverse engineer. Use
your tool to generate a new model or modify an existing one that
was previously forward engineered.
• It is unreasonable to expect to reverse engineer a single concise
model from a large body of code. You need to select portion of the
code and build the model from the bottom.
• Using your tool, create a class diagram by querying the model. For
example, you might start with one or more classes, then expand the
diagram by following specific relationships or other neighboring
classes. Expose or hide details of the contents of this class diagram
as necessary to communicate your intent.
• Manually add design information to the model to express the intent
of the design that is missing or hidden in the code.
23
Class Diagram
for Banking
application
24
Class
Diagram for
ATM System
25
Class Diagrams
for Hospital
Management
26
Class Diagrams
for Library
Management
System
27
Class Diagram for
Railway Reservation
System
28
Class diagram for customer
order from a retail catalog
29
Object Diagrams
30
• Object diagrams model the instances of things contained
in class diagrams.
• An object diagram shows a set of objects and their
relationships at a point in time.
• You use object diagrams to model the static design view
or static process view of a system.
• This involves modeling a snapshot of the system at a
moment in time and rendering a set of objects, their state,
and their relationships.
• Object diagrams are not only important for visualizing,
specifying, and documenting structural models, but also
for constructing the static aspects of systems through
forward and reverse engineering.
31
An Object Diagram
• An object diagram is a diagram that shows a set of
objects and their relationships at a point in time.
• Graphically, an object diagram is a collection of
vertices and arcs.
• Contents :- Object diagrams commonly contain
– Objects
– Links
• Like all other diagrams, object diagrams may contain
notes and constraints.
• Sometimes you'll want to place classes in your object
diagrams as well, especially when you want to visualize
the classes behind each instance.
32
Common Uses
• You use object diagrams to model the static design view
or static process view of a system just as you do with
class diagrams, but from the perspective of real or
prototypical instances.
• When you model the static design view or static
interaction view of a system, you typically use object
diagrams to model object structures.
• Modeling object structures involves taking a snapshot of
the objects in a system at a given moment in time.
33
34
Common Modeling Techniques
Modeling Object Structures :
 If you freeze a running system or just imagine a moment of time in
a modeled system, you'll find a set of objects, each in a specific
state and each in a particular relationship to other objects.
 You can use object diagrams to visualize, specify, construct, and
document the structure of these snapshots. Object diagrams are
especially useful for modeling complex data structures.
 When you model your system's design view, a set of class diagrams
can be used to completely specify the semantics of your
abstractions and their relationships.
 With object diagrams, however, you cannot completely specify the
object structure of your system.
 Therefore, when you use object diagrams, you can only
meaningfully expose interesting sets of concrete or prototypical
objects.
To model an object structure,
• Identify the mechanism you'd like to model. A mechanism
represents some function or behavior of the part of the system you
are modeling that results from the interaction of a society of
classes, interfaces, and other things.
• Create a collaboration to describe a mechanism.
• For each mechanism, identify the classes, interfaces, and other
elements that participate in this collaboration; identify the
relationships among these things as well.
• Consider one scenario that walks through this mechanism. Freeze
that scenario at a moment in time, and render each object that
participates in the mechanism.
• Expose the state and attribute values of each such object, as
necessary, to understand the scenario.
• Similarly, expose the links among these objects, representing
instances of associations among them.
35
36
Modeling Object Structures
• As this figure indicates, one object represents the robot
itself (r, an instance of Robot), and r is currently in the
state marked moving.
• This object has a link to w, an instance of World, which
represents an abstraction of the robot's world model.
• At this moment in time, w is linked to two instances
of Area.
• One of them (a2) is shown with its own links to
three Wall objects and one Door object.
• Each of these walls is marked with its current width,
and each is shown linked to its neighboring walls.
• As this object diagram suggests, the robot has
recognized this enclosed area, which has walls on three
sides and a door on the fourth. 37
Reverse Engineering
• Reverse engineering (the creation of a model from
code) an object diagram can be useful.
• In fact, while you are debugging your system, this is
something that you or your tools will do all the time.
• For example, if you are chasing down a dangling link,
you'll want to literally or mentally draw an object
diagram of the affected objects to see where, at a given
moment in time, an object's state or its relationship to
other objects is broken.
38
39
To reverse engineer an object diagram,
• Chose the target you want to reverse engineer. Set your context inside
an operation or relative to an instance of one particular class.
• Using a tool or simply walking through a scenario, stop execution at a
certain moment in time.
• Identify the set of interesting objects that collaborate in that context and
render them in an object diagram.
• As necessary to understand their semantics, expose these object's states.
• As necessary to understand their semantics, identify the links that exist
among these objects.
• If your diagram ends up overly complicated, prune it by eliminating
objects that are not germane to the questions about the scenario you
need answered. If your diagram is too simplistic, expand the neighbors
of certain interesting objects and expose each object's state more
deeply.
• You will usually have to manually add or label structure that is not
explicit in the target code. The missing information supplies the design
intent that is only implicit in the final code.

More Related Content

Similar to OOM Unit I - III.pdf

Modeling software with UML
Modeling software with UMLModeling software with UML
Modeling software with UML6020 peaks
 
Chapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.pptChapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.pptRushikeshChikane1
 
Chapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.pptChapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.pptRushikeshChikane2
 
Unit No 6 Design Patterns.pptx
Unit No 6 Design Patterns.pptxUnit No 6 Design Patterns.pptx
Unit No 6 Design Patterns.pptxDrYogeshDeshmukh1
 
SADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfSADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfB.T.L.I.T
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and DesignDr. C.V. Suresh Babu
 
Data Structure and Algorithms
Data Structure and AlgorithmsData Structure and Algorithms
Data Structure and Algorithmsiqbalphy1
 
[RPL2] Pertemuan 3 - UML dan USECASE VIEW
[RPL2] Pertemuan 3 - UML dan USECASE VIEW[RPL2] Pertemuan 3 - UML dan USECASE VIEW
[RPL2] Pertemuan 3 - UML dan USECASE VIEWrizki adam kurniawan
 
Ooad lab manual
Ooad  lab manualOoad  lab manual
Ooad lab manualPraseela R
 
CPP16 - Object Design
CPP16 - Object DesignCPP16 - Object Design
CPP16 - Object DesignMichael Heron
 
Design Patterns - General Introduction
Design Patterns - General IntroductionDesign Patterns - General Introduction
Design Patterns - General IntroductionAsma CHERIF
 

Similar to OOM Unit I - III.pdf (20)

OOP_Module 2.pptx
OOP_Module 2.pptxOOP_Module 2.pptx
OOP_Module 2.pptx
 
Modeling software with UML
Modeling software with UMLModeling software with UML
Modeling software with UML
 
Chapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.pptChapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.ppt
 
Chapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.pptChapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.ppt
 
Unit No 6 Design Patterns.pptx
Unit No 6 Design Patterns.pptxUnit No 6 Design Patterns.pptx
Unit No 6 Design Patterns.pptx
 
SADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfSADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdf
 
Design UML diagrams
Design UML diagramsDesign UML diagrams
Design UML diagrams
 
Design UML diagrams
Design UML diagramsDesign UML diagrams
Design UML diagrams
 
Software Design Patterns
Software Design PatternsSoftware Design Patterns
Software Design Patterns
 
Software Design Patterns
Software Design PatternsSoftware Design Patterns
Software Design Patterns
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and Design
 
Data Structure and Algorithms
Data Structure and AlgorithmsData Structure and Algorithms
Data Structure and Algorithms
 
Patterns
PatternsPatterns
Patterns
 
2 uml
2 uml2 uml
2 uml
 
Software Design principales
Software Design principalesSoftware Design principales
Software Design principales
 
[RPL2] Pertemuan 3 - UML dan USECASE VIEW
[RPL2] Pertemuan 3 - UML dan USECASE VIEW[RPL2] Pertemuan 3 - UML dan USECASE VIEW
[RPL2] Pertemuan 3 - UML dan USECASE VIEW
 
Ooad lab manual
Ooad  lab manualOoad  lab manual
Ooad lab manual
 
CPP16 - Object Design
CPP16 - Object DesignCPP16 - Object Design
CPP16 - Object Design
 
classdiagram.pptx
classdiagram.pptxclassdiagram.pptx
classdiagram.pptx
 
Design Patterns - General Introduction
Design Patterns - General IntroductionDesign Patterns - General Introduction
Design Patterns - General Introduction
 

Recently uploaded

EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxEPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxRaymartEstabillo3
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...Marc Dusseiller Dusjagr
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Celine George
 
Pharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfPharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfMahmoud M. Sallam
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdfssuser54595a
 
Science 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsScience 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsKarinaGenton
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
internship ppt on smartinternz platform as salesforce developer
internship ppt on smartinternz platform as salesforce developerinternship ppt on smartinternz platform as salesforce developer
internship ppt on smartinternz platform as salesforce developerunnathinaik
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
Science lesson Moon for 4th quarter lesson
Science lesson Moon for 4th quarter lessonScience lesson Moon for 4th quarter lesson
Science lesson Moon for 4th quarter lessonJericReyAuditor
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTiammrhaywood
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 

Recently uploaded (20)

EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxEPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
 
Pharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfPharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdf
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
 
Science 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsScience 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its Characteristics
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
internship ppt on smartinternz platform as salesforce developer
internship ppt on smartinternz platform as salesforce developerinternship ppt on smartinternz platform as salesforce developer
internship ppt on smartinternz platform as salesforce developer
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
Science lesson Moon for 4th quarter lesson
Science lesson Moon for 4th quarter lessonScience lesson Moon for 4th quarter lesson
Science lesson Moon for 4th quarter lesson
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 

OOM Unit I - III.pdf

  • 1. 1 Class & Object Diagrams Class Diagrams OOM PPTs by Vijaykumar Mantri, Asso. Prof. in IT Dept, BVRIT, Narsapur. For downloading PPTs visit https://sites.google.com/a/bvrit.ac.in/vijaymantri
  • 2. 2 • Class diagrams are the most commonly used diagrams in UML. • A class diagram shows a set of classes, interfaces and collaborations and their relationships. • Graphically a class diagram is collections of vertices and arcs. • Class diagrams are important not only for visualizing, specifying, and documenting structural models, but also for constructing executable systems through forward and reverse engineering. • Class diagrams indicate which classes know about other classes and, if they do, what type of relationship exists. • Class diagrams will have different levels of detail (abstraction) depending on where we are in the software development process. • Class diagrams help in showing the functional requirements of the system - the services the system should provide to its end users.
  • 4. Contents – Classes – Interfaces – Collaborations. – Dependency, Generalization and Association relationships. • It may contain notes & constraints. • Class diagram may also contain packages or subsystems. 4
  • 5. Common Uses • We use class diagram to model the static design view of a system. • We use class diagrams in one of three ways. 1. To model the vocabulary of a system. – Modeling the vocabulary of a system involves making a decision about which abstractions are a part of the system under consideration & which fall outside its boundaries. 2. To model simple collaborations. – A collaboration is a society of classes, interfaces & other elements that work together to provide some cooperative behavior that’s bigger than the sum of all the elements. 3. To model a logical database schema. – We can model schemas for databases using class diagrams. 5
  • 6. 6 Common Modeling Techniques Modeling Simple Collaborations: To model a collaboration - A group of classes working toward a common purpose. • No class stand alone. Each works in collaboration with others to carry out some semantics greater than each individual. • Use scenarios to see which classes are actually involved in carrying out a particular operation. – Scenarios will also aide in establishing relationships between classes. • Fill in the ‘responsibilities’ section of each class icon. – The responsibilities of each class will eventually evolve into actual attributes and behaviors. • A complex system typically requires multiple class diagrams. – Each diagram is devoted to a particular functionality of the system.
  • 7. 7 Common Modeling Techniques Modeling Simple Collaborations:  No class stands alone.  Rather, each works in collaboration with others to carry out some semantics greater than each individual.  Therefore, in addition to capturing the vocabulary of your system, you'll also need to turn your attention to visualizing, specifying, constructing, and documenting the various ways these things in your vocabulary work together.  You use class diagrams to represent such collaborations.
  • 8. To model a collaboration, • Identify the mechanism you'd like to model. A mechanism represents some function or behavior of the part of the system you are modeling that results from the interaction of a society of classes, interfaces, and other things. • For each mechanism, identify the classes, interfaces, and other collaborations that participate in this collaboration. Identify the relationships among these things as well. • Use scenarios to walk through these things. Along the way, you'll discover parts of your model that were missing and parts that were just plain semantically wrong. • Be sure to populate these elements with their contents. For classes, start with getting a good balance of responsibilities. Then, over time, turn these into concrete attributes and operations. 8
  • 10. • For example, Figure shows a set of classes drawn from the implementation of an autonomous robot. • The figure focuses on the classes involved in the mechanism for moving the robot along a path. • You'll find one abstract class (Motor) with two concrete children, SteeringMotor and MainMotor. • Both of these classes inherit the five operations of their parent, Motor. • The two classes are, in turn, shown as parts of another class, Driver. • The class PathAgent has a one-to-one association to Driver and a one-to-many association to CollisionSensor. • No attributes or operations are shown for PathAgent, although its responsibilities are given. 10
  • 11. 11 Modeling a Logical Database Schema • Many of the systems model will have persistent objects which we need to store in database for later retrieval. • UML is well suited to modeling logical database schemas as well as physical databases. • UML’s class diagrams are superset of ER diagrams. • To model a logical database schema … – Identify the persistent objects - objects that are stored on disk between runs of the program. – Label persistent objects as such in the class diagrams using tags or stereotypes. Common Modeling Techniques
  • 12. To model a schema, • Identify those classes in your model whose state must transcend the lifetime of their applications. • Create a class diagram that contains these classes. You can define your own set of stereotypes and tagged values to address database-specific details. • Expand the structural details of these classes. • Watch for common patterns that complicate physical database design, such as cyclic associations and one-to-one associations. • Consider also the behavior of these classes by expanding operations that are important for data access and data integrity. • Where possible, use tools to help you transform your logical design into a physical design. 12
  • 14. • Figure shows a set of classes drawn from an information system for a school. • This figure expands upon an earlier class diagram, and you'll see the details of these classes revealed to a level sufficient to construct a physical database. Starting at the bottom-left of this diagram, you will find the classes named Student, Course, and Instructor. • There's an association between Student and Course, specifying that students attend courses. • Furthermore, every student may attend any number of courses, and every course may have any number of students. 14
  • 15. 15 Forward and Reverse Engineering • Modeling is important, but you have to remember that the primary product of a development team is software, not diagrams. • Of course, the reason for creating models is to be able to deliver software that satisfies the evolving goals of its users and the business at the right time. • For this reason, it's important that the models you create and the implementations you deploy map to one another and do so in a way that minimizes or even eliminates the cost of keeping your models and your implementation in sync with one another. • For some uses of the UML, the models you create will never map to code. But in most cases though, the models you create will map to code.
  • 16. 16 Forward and Reverse Engineering • Forward engineering is the process of transforming a model into code through a mapping to an implementation language. • Forward engineering results in a loss of information, because models written in the UML are semantically richer than any current object-oriented programming language. • In fact, this is a major reason why you need models in addition to code. • Structural features, such as collaborations, and behavioral features, such as interactions, can be visualized clearly in the UML, but not so clearly from raw code.
  • 17. 17 To forward engineer a class diagram, • Identify the rules for mapping to your implementation language or languages of choice. This is something you'll want to do for your project or your organization as a whole. • Depending on the semantics of the languages you choose, you may want to constrain your use of certain UML features. For example, the UML permits you to model multiple inheritance, but Smalltalk permits only single inheritance. You can choose to prohibit developers from modeling with multiple inheritance (which makes your models language-dependent). • Use tagged values to guide implementation choices in your target language. You can do this at the level of individual classes if you need precise control. You can also do so at a higher level, such as with collaborations or packages. • Use tools to generate code.
  • 18. 18
  • 19. 19 • Figure illustrates a simple class diagram specifying an instantiation of the chain of responsibility pattern. • This particular instantiation involves three classes: Client, EventHandler, and GUIEventHandler. • The classes Client andEventHandler are abstract, whereas GUIEventHandler is concrete. • EventHandler has the usual operation expected of this pattern (handleRequest), although two private attributes have been added for this instantiation. • All of these classes specify a mapping to Java, as noted in their stereotype. • Forward engineering the classes in this diagram to Java is straightforward, using a tool.
  • 20. 20 • Forward engineering the class EventHandler yields the following code. public abstract class EventHandler { EventHandler successor; private Integer currentEventID; private String source; EventHandler() {} public void handleRequest() {} }
  • 21. Reverse Engineering • Reverse engineering is the process of transforming code into a model through a mapping from a specific implementation language. • Reverse engineering results in a flood of information, some of which is at a lower level of detail than you'll need to build useful models. • At the same time, reverse engineering is incomplete. • There is a loss of information when forward engineering models into code, and so you can't completely recreate a model from code unless your tools encode information in the source comments that goes beyond the semantics of the implementation language. 21
  • 22. 22 To reverse engineer a class diagram, • Identify the rules for mapping from your implementation language or languages of choice. • Using a tool, point to the code you'd like to reverse engineer. Use your tool to generate a new model or modify an existing one that was previously forward engineered. • It is unreasonable to expect to reverse engineer a single concise model from a large body of code. You need to select portion of the code and build the model from the bottom. • Using your tool, create a class diagram by querying the model. For example, you might start with one or more classes, then expand the diagram by following specific relationships or other neighboring classes. Expose or hide details of the contents of this class diagram as necessary to communicate your intent. • Manually add design information to the model to express the intent of the design that is missing or hidden in the code.
  • 27. 27 Class Diagram for Railway Reservation System
  • 28. 28 Class diagram for customer order from a retail catalog
  • 30. 30 • Object diagrams model the instances of things contained in class diagrams. • An object diagram shows a set of objects and their relationships at a point in time. • You use object diagrams to model the static design view or static process view of a system. • This involves modeling a snapshot of the system at a moment in time and rendering a set of objects, their state, and their relationships. • Object diagrams are not only important for visualizing, specifying, and documenting structural models, but also for constructing the static aspects of systems through forward and reverse engineering.
  • 32. • An object diagram is a diagram that shows a set of objects and their relationships at a point in time. • Graphically, an object diagram is a collection of vertices and arcs. • Contents :- Object diagrams commonly contain – Objects – Links • Like all other diagrams, object diagrams may contain notes and constraints. • Sometimes you'll want to place classes in your object diagrams as well, especially when you want to visualize the classes behind each instance. 32
  • 33. Common Uses • You use object diagrams to model the static design view or static process view of a system just as you do with class diagrams, but from the perspective of real or prototypical instances. • When you model the static design view or static interaction view of a system, you typically use object diagrams to model object structures. • Modeling object structures involves taking a snapshot of the objects in a system at a given moment in time. 33
  • 34. 34 Common Modeling Techniques Modeling Object Structures :  If you freeze a running system or just imagine a moment of time in a modeled system, you'll find a set of objects, each in a specific state and each in a particular relationship to other objects.  You can use object diagrams to visualize, specify, construct, and document the structure of these snapshots. Object diagrams are especially useful for modeling complex data structures.  When you model your system's design view, a set of class diagrams can be used to completely specify the semantics of your abstractions and their relationships.  With object diagrams, however, you cannot completely specify the object structure of your system.  Therefore, when you use object diagrams, you can only meaningfully expose interesting sets of concrete or prototypical objects.
  • 35. To model an object structure, • Identify the mechanism you'd like to model. A mechanism represents some function or behavior of the part of the system you are modeling that results from the interaction of a society of classes, interfaces, and other things. • Create a collaboration to describe a mechanism. • For each mechanism, identify the classes, interfaces, and other elements that participate in this collaboration; identify the relationships among these things as well. • Consider one scenario that walks through this mechanism. Freeze that scenario at a moment in time, and render each object that participates in the mechanism. • Expose the state and attribute values of each such object, as necessary, to understand the scenario. • Similarly, expose the links among these objects, representing instances of associations among them. 35
  • 37. • As this figure indicates, one object represents the robot itself (r, an instance of Robot), and r is currently in the state marked moving. • This object has a link to w, an instance of World, which represents an abstraction of the robot's world model. • At this moment in time, w is linked to two instances of Area. • One of them (a2) is shown with its own links to three Wall objects and one Door object. • Each of these walls is marked with its current width, and each is shown linked to its neighboring walls. • As this object diagram suggests, the robot has recognized this enclosed area, which has walls on three sides and a door on the fourth. 37
  • 38. Reverse Engineering • Reverse engineering (the creation of a model from code) an object diagram can be useful. • In fact, while you are debugging your system, this is something that you or your tools will do all the time. • For example, if you are chasing down a dangling link, you'll want to literally or mentally draw an object diagram of the affected objects to see where, at a given moment in time, an object's state or its relationship to other objects is broken. 38
  • 39. 39 To reverse engineer an object diagram, • Chose the target you want to reverse engineer. Set your context inside an operation or relative to an instance of one particular class. • Using a tool or simply walking through a scenario, stop execution at a certain moment in time. • Identify the set of interesting objects that collaborate in that context and render them in an object diagram. • As necessary to understand their semantics, expose these object's states. • As necessary to understand their semantics, identify the links that exist among these objects. • If your diagram ends up overly complicated, prune it by eliminating objects that are not germane to the questions about the scenario you need answered. If your diagram is too simplistic, expand the neighbors of certain interesting objects and expose each object's state more deeply. • You will usually have to manually add or label structure that is not explicit in the target code. The missing information supplies the design intent that is only implicit in the final code.