Basic Class Diagrams in fundamental computing.ppt

SurindraKumar 9 views 43 slides Mar 03, 2025
Slide 1
Slide 1 of 43
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43

About This Presentation

Database management is a collection of software manages data and user.


Slide Content

Generalizable
Element
NamespaceModel
Element
name
visibility
isSpecification
Classifier
isRoot
Constraint
Body
Coming up: Introduction to
Objects
Objects, Classes, and
Basic Class Diagrams
CS/SWE 421
Introduction to Software Engineering
Dan Fleck
(Slides adapted from Dr. Stephen Clyde with permission)

Coming up: Introduction to Objects
Introduction to Objects
Objects are the fundamental building blocks
of object-oriented systems
What is an object?
–It represents any “thing”
–It has a boundary in space and time
–It is an abstraction
–It encapsulates state and/or behavior
–It has identity

Coming up: Exercise - Object Hunt
Introduction to Objects
What aren’t objects?
–Events (sometimes)
–Relationships between objects (most of the
time)
–Behavior (most of the time)
–Constraints (most of the time)

Coming up: Introduction to Classes
Exercise - Object Hunt
Part 1 - List examples of objects in the
Third National Bank Elevator System
Part 2 - List some concepts from this
system that would not typically be modeled
as objects

Coming up: Three Perspectives
Introduction to Classes
Classes are abstractions that allow us to deal with whole collections of objects that share some
commonalties
Examples of classes in a Student Records Management System
Student
Course
Class
Section
Instructor
Class
Grade Major
Department
College
Semester

Coming up: Classes from different Perspectives
Three Perspectives
Objects and classes, as well as all other
modeling components in UML, can be
interpreted from different perspectives:
Three common perspectives:
–Analysis - description of the problem
domain
–Specification - logical description of
software system
–Implementation - description of software
components and their deployment

Coming up: Class Syntax
Classes from different Perspectives
Meaning from three perspectives
–Analysis: sets of objects
–Specifications: interfaces to encapsulated
software representations of objects
–Implementations: abstract data types
Student
Analysis Specification
Student
{Joe, Sue, Mary,
Frank, Tim, …}
Interface Student
{…}
Implementation
class Student
{…}
Student

Coming up: Class Names
Class Syntax
A box divided into
compartments
–Name
–Attributes
–Operations
–Responsibilities
–Used-defined
compartments
Student
major: String
gpa: Real
standing: String
add(Class Section)
drop(Class Section)
-- The set of students
known to the registration
system
-- An exception occurs if
gpa falls below 2.0

Coming up: Class Name Syntax
Class Names
The name should be a noun or noun
phrase
The name should be singular and
description of each object in the class
The name should be meaningful from a
problem-domain perspective
–“Student” is better than “Student Data” or
“S-record” or any other implementation
driven name
Avoid jargon in the names
Try to make the name descriptive of the
class’s common properties

Coming up: Return to Objects – Object Syntax
Exercise – Class Identification
Identify meaningful classes in the Elevator
System

Coming up: Object Name Syntax
Return to Objects – Object Syntax
Object syntax is
similar to class syntax,
except
–the name identifies
specific or generic
object
–the name includes the
class that the object
belongs to
Remember, individual
objects are instances
of classes
joe: Student
major: String = “CS”
gpa: Real = 4.0
standing: String = “”
add(Class Section)
drop(Class Section)

Coming up: Attributes from an Analysis Perspective
Attributes
Attributes represent characteristics or
properties of objects
They are place holders or slots that hold
values
The values they hold are other objects
The name of an attribute communicates its
meaning
An attribute can be defined for individual
objects or classes of objects
–If defined for a class, then every object in
the class has that attribute (place holder)

Coming up: Attributes from a Specification Perspective
Attributes from an Analysis
Perspective
An attribute relates an object to some other
object
It has the same semantics as an association
joe: Student
name: String = “Joe Jones”
joe: Student
Joe Jones : String
Is basically the
same as ...
name
1

Coming up: Attributes from an Implementation Perspective
Attributes from a Specification
Perspective
An attribute represents an obligation to
provide or manage a certain (single) piece
of information
Student
major: String
gpa: Real
standing: String
For example, each
Student object must
be able to
encapsulate a
major, a GPA, and
a standing

Coming up: Exercise – Attributes
Attribute Syntax
visibility: public “+”, protected “#”, or private “-”
name: capitalize first letter of each word that
makes up the name, except for the first
multiplicity: number, range, or sequence of
number or ranges.
type: build-in type or any user-defined class
initial-value: any constant and user-defined object
property-string: e.g, changeable, addOnly, frozen
[visibility] name [multiplicity] [:type] [=initial-value]
[{property-string}]

Coming up: Operations
Operations
Meaning from three perspectives
–Analysis: Ways in which objects interaction
–Specification: An obligation to provide a
service
–Implementation: A function member, a
method

Coming up: Operation Syntax
Operations
Student
major: String
GPA: Real
standing: String
add(Class Section)
drop(Class Section)
Class Section
name: String
capacity: Integer
add(Student)
drop(Student)
checkPrerequisites(Students)
Prerequisite
<
h
a
s
takes>
Course

Coming up: Type of Relationships in Class Diagrams
Operation Syntax
visibility: “+”, “#”, “-”
name: verb or verb phase, capitalize first letter
of every word, except first
parameter-list: coma separated list of
parameters
return-type: primitive type or user-defined type
property-string: isQuery, sequential, guarded,
concurrent
[visibility] name [(parameter-list)] [:return-
type] [{property-strong}]

Coming up: Associations
Type of Relationships in Class
Diagrams
Relation
A consolidated snippet of the UML Meta-model
AssociationGeneralization Dependency
Aggregation
Binary AssociationN-ary Association

Coming up: Associations
Associations
An association is a structural relationship
that specifies that objects of class may be
connected to objects of another class
Meaning from three perspectives
–Analysis: Links between objects
–Specification: Obligation to provide a
connection between objects
–Implementation: Object pointers,
references, linking structures, etc.

Coming up: Association Names
Associations
Student
Class
Section
Course
Semester
Instructor
Department
t
a
k
e
s
>
is registered for>
teaches>
sponsors>
<
w
o
r
k
s

f
o
r
i
s

i
n
s
t
a
n
c
e

o
f
>
is
h
e
ld
d
u
r in
g
>

Coming up: Navigation
Association Names
Associations may be named
–The names should communicate the
meaning of the links
–The names are typically verb phases
–The name should include an arrow
indicating the direction in which the name
should be read

Coming up: Navigation
Navigation
The navigation of associations can be
–uni-directional
–bi-directional
–unspecified
Class
Section
Course
Instructor
Department
teaches>
sponsors>
<
w
o
r
k
s

f
o
r
i
s

i
n
s
t
a
n
c
e

o
f
>

Coming up: Generalization
Generalization
Generalization is another kind of
relationship in UML – see Meta Model
From an analysis perspective, it is a pure
generalization/specialization concept, i.e.,
the specialization is a subset of the
generalization
StudentPerson
Graduate
Student

Coming up: Generalization
Generalization
From a specification/implementation
perspective, generalization can represent sub-
typing, inheritance, type capability, and
substitutability (depends on the language)
Student
major: String
GPA: Real
standing: String
add(Class Section)
drop(Class Section)
Person
name: String
address: String
changeAddress(new_address)

Coming up: Class Diagrams
Exercise – Simple Associations
From an analysis perspective:
–Identify meaningful associations and
generalization/specializations among
classes in the Elevator System

Coming up: Class Diagrams
Class Diagrams
Class Diagrams describe
–the types of objects in a system
–their properties (attributes and operations)
–relationships between objects
They can also include
–Grouping concepts like packages
–Constraints
–Various kinds of annotations

Coming up: Multiplicity Constraints
Multiplicity Constraints
Student
Class
Section
Course
Semester
Instructor
Department
t
a
k
e
s
>
is registered for>
teaches>
sponsors>
<
w
o
r
k
s

f
o
r
i
s

i
n
s
t
a
n
c
e

o
f
>
is
h
e
ld
d
u
r in
g
>
1..*
1
1..*
1..*1
1
1..*
0..8
0..*
0..61..3

Questions
From the previous diagram
–How many classes can a student take?
–Do you have to be registered in any classes
to be a student?
–Do I need to teach this class to be an
Instructor? Do I need to teach ANY
classes?

Coming up: Dependencies
Multiplicity Constraints
A multiplicity constraint can be
–a single number
–a “*”, meaning an arbitrarily large number or
simply “many”
–a range, denoted by “min..max”
–a sequence of single numbers and ranges

Coming up: Dependencies
Dependencies
Relation
A consolidated snippet of the UML Meta-model
AssociationGeneralization Dependency
Aggregation
Binary AssociationN-ary Association

Coming up: Dependencies
Dependencies
A dependency is a type of relationship
It says that one modeling component “uses”
another.
If the later changes then, the former may
have to change as well
Student
add(Course)
drop(Course)
Prerequisite

Coming up: Dependencies
Dependencies
Meaning from three perspectives
–Analysis: physical or logical dependency
between the connected classes
–Specification: a “uses” relationship at an
interface level
–Implementation: a “uses” relationship at an
implementation level.
Just think: uses!

Coming up: Aggregations (is part of)
Dependencies
Syntax:
–a dashed link with an straight-line
arrowhead point to a component on which
there is a dependency
Dependencies can be defined among:
classes, notes, packages, and other types
of components
Can dependencies go both ways?
Any problems with having lots of
dependencies?

Coming up: Aggregation
Aggregations (is part of)
Relation
A consolidated snippet of the UML Meta-model
AssociationGeneralization Dependency
Aggregation
Binary AssociationN-ary Association

Coming up: Composition (very similar to aggregation)
Aggregation
Aggregation: is a special kind of association
that means “part of”
Aggregations should focus on single type of
composition (physical, organization, etc.)
11
*
4..*
1
1
11
1..31
0..91
Pizza Order
Slice
Crust
Sauce Serving
Cheese Serving
Topping Serving

Coming up: Using a class diagram
Composition (very similar to aggregation)
Think of composition as a stronger form of
aggregation. Composition means
something is a part of the whole, but cannot
survive on it’s own.
BuildingRoom

Lets look at
BookstoreExample4.jpg
Does John McCain (who has 7 houses) have
a problem using this system?
If Barack Obama decides to create a Federal
sales tax, how would we change the system?
Why is there a display method in Item, Book,
MusicCD and Software?
An ItemOrder is part of how many Orders?
Can you explain how a search works using
this diagram?

Class Exercise
Lets create the WeGrow class diagram

Coming up: Questions
Validating a class diagram
One of the most important, and often
overlooked issues is how to validate a class
diagram. (Usually best for an diagram at the
implementation perspective)
Given a specification or a use-case, can you
look at the class diagram and use attributes
and methods to “execute” a use case?
Lets try it for the WeGrow class diagram

Coming up: More Questions
Questions
What’s the difference between an attribute and an
association with another class? For example, should
“grade” be an attribute or a link to another class called
“Grade”?
When during the software engineering life cycle should
you build classes diagrams?

Coming up: More Questions
More Questions
How do you know when a class diagram is
complete?
How can you manage change control on all
the class diagrams for project?
What do you do with class diagrams after a
system has been built and delivered?

Bonus Slide!
If you’re interested in Auto-generating UML,
Netbeans has an option to do it.
–Install the UML plugin
–Right-click on a project
–Choose “Reverse Engineer”
–Go to the new UML project
–Select a package and choose to generate a
new UML diagram
Tags