0% found this document useful (0 votes)
23 views

Software Engineering - Lecture 5 - Class Object Diagrams

The document discusses key concepts in system modeling using object-oriented class diagrams. It explains that a class diagram shows the classes, attributes, operations, and relationships that make up a system. Classes are represented as rectangles divided into name, attributes, and operations sections. Relationships like associations, generalizations, and aggregations are shown between classes. The document also covers concepts like stereotypes, visibility, and data types used in class diagrams.

Uploaded by

Nevein Abdo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views

Software Engineering - Lecture 5 - Class Object Diagrams

The document discusses key concepts in system modeling using object-oriented class diagrams. It explains that a class diagram shows the classes, attributes, operations, and relationships that make up a system. Classes are represented as rectangles divided into name, attributes, and operations sections. Relationships like associations, generalizations, and aggregations are shown between classes. The document also covers concepts like stereotypes, visibility, and data types used in class diagrams.

Uploaded by

Nevein Abdo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 20

Software Engineering Lecture 4: System Models

Software Engineering

Dr. Sayed AbdelGaber


Professor
Faculty of Computers and Information
Helwan University

Dr. Sayed AbdelGaber


Software Engineering Lecture 4: System Models

➢ Objects are entities in a software system which


represent instances of real-world and system
entities.

➢ Object classes are templates for objects. They may


be used to create objects.

➢ Object classes may inherit attributes and services


from other object classes.

Dr. Sayed AbdelGaber


Software Engineering Lecture 4: System Models

➢ Conceptually, objects communicate by message passing.

➢ Messages
✓ The name of the service requested by the calling object;
✓ Copies of the information required to execute the service and the name
of a holder for the result of the service.

➢ In practice, messages are often implemented by procedure


calls
✓ Name = procedure name;
✓ Information = parameter list.

Dr. Sayed AbdelGaber


Software Engineering Lecture 4: System Models

➢ A diagramming technique that documents the static,


structural aspects of an object-oriented system:
✓ Types of object classes to be stored in the system and the properties
associated with each object class.
✓ Relationships (associations) among these object classes.
✓ Behavior associated with each class.

➢ Core diagram as they represent ‘building blocks of any object-


oriented system’.
[Source: Bennet et al., 2001]

➢ Describes the ‘abstract not the concrete’:


✓ Object instances modeled in Object Diagram.

Dr. Sayed AbdelGaber


Software Engineering Lecture 4: System Models

➢ Document classes that constitute a system or subsystem.


➢ Show individual features of each class.
➢ Used throughout development process:
From: specification classes (requirements) in problem domain.
To: implementation model of proposed system.

➢ Describe associations, generalization, aggregation relationships


between classes.
[Source: Bennet et al., 2001]

Dr. Sayed AbdelGaber


Software Engineering Lecture 4: System Models

➢ Entity:
✓ Model information requirements and associated relationships.
✓ Could be a person role, tangible object, event, etc.
✓ Will form database structure → persistent.
➢ Boundary:
✓ Model interactions between a system and it’s actors.
✓ Represents classes for user interface.
➢ Control:
✓ Controls other objects.
✓ Represents classes for processing.
➢ Can package and identify class types:
✓ Package diagrams
✓ Stereotypes

Dr. Sayed AbdelGaber


Software Engineering Lecture 4: System Models

➢ Classes are denoted by rectangles divided into 3 parts:


✓ Name → unique text description
✓ Attributes → name + data type
✓ Behavior → operation signatures

➢ Can add further meaning using stereotypes, visibility, and by


grouping related operations.

➢ Notice no relationship properties:


✓ Represented as associations.
✓ Associations are a separate element of a class.

Dr. Sayed AbdelGaber


Software Engineering Lecture 4: System Models

<<stereotype>>
Name
Name of class

+Attribute1 : type1
Attributes #Attribute2 : type1
-Attribute3 : type2

+operation1()
Behaviour +operation2(arg1:type1)
+operation3(): type 2

Dr. Sayed AbdelGaber


Software Engineering Lecture 4: System Models

➢ Phrase surrounded by guillemets: <<name>>.

➢ Used to convey additional semantics or classify diagram


elements:
✓ Extension mechanism.
✓ Reduce ambiguity.
✓ Describe purpose.

➢ Standard stereotypes:
✓ <<include>>, <<extend>>, <<interface>>, <<abstract>>, ...

➢ Often used stereotypes:


✓ <<entity>>,<<subsystem>>, <<persistent>>, <<constructor>>, ...

➢ New stereotypes can be defined by analyst/designer.


Dr. Sayed AbdelGaber
Software Engineering Lecture 4: System Models

➢ Primitive types:
✓ Atomic.
✓ Enumerated.
✓ Examples: String, int, character, Boolean ...

➢ Class types:
✓ From implementation environment:
✓ JAVA classes for Date, Integer, ...
✓ From class model itself:
✓ Address, Name, ...

➢ Power Designer supports generic primitive types with


Design language.
Dr. Sayed AbdelGaber
Software Engineering Lecture 4: System Models

➢ Constructor:
✓ Creates new instance of a class.
✓ Can have multiple constructors → different arguments.
➢ Query:
✓ Accesses the state of an object (can not modify).
✓ Example: GET operation.
➢ Update:
✓ Modifies state of object.
✓ Example: SET operation.
➢ Scope:
✓ Applies to a class (extent), not an instance.
✓ Example: Aggregation of some attribute value:
▪ Average commission rate for all sales people.

Dr. Sayed AbdelGaber


Software Engineering Lecture 4: System Models

➢ Defines the availability or accessibility of an attribute or


operation to other classes.

➢ Close relationship with data hiding and encapsulation.

➢ Typically:
✓ attributes have private visibility.
✓ operations have public visibility.

➢ Public operations thought of as interface for class.

See next
slide
Dr. Sayed AbdelGaber
Software Engineering Lecture 4: System Models

➢ Public:
✓ Denoted by +
✓ Other classes may directly examine or change the feature.

➢ Protected:
✓ Denoted by #
✓ Only classes of a public or protected subclass (descendants) can
directly examine or change the feature.

➢ Private:
✓ Denoted by –
✓ Only class itself (but not of inheriting classes) can directly examine
or change the feature.

Dr. Sayed AbdelGaber


Software Engineering Lecture 4: System Models

<<entity>> Stereotype to identify


Person class type

- name: String
Attributes with
- birthDate: Date
private visibility → Primitive types
- gender: String
hidden
Stereotype to group <<constructor>>
operations. + Person(...)
+ getName() : String Return type
Operations with public
+ setName(...)
visibility →
...
encapsulated
+calculateAge(): int Behavior specific to
each object

Dr. Sayed AbdelGaber


Software Engineering Lecture 4: System Models

➢ Represents relationship between object classes.


✓ Relationship properties not modeled in class diagram.

➢ Denoted by solid line.

➢ Can be annotated with additional components:


✓ Multiplicity, name, role names, navigability, qualifiers.

➢ Different types:
✓ Composition vs. aggregation.
✓ Associative classes.
✓ Note not generalization.

➢ Associations discussed in detail


Dr. Sayed AbdelGaber
Software Engineering Lecture 4: System Models

<<entity>> <<entity>>
Person Address
1..* works at 1..*
- name: String - streetNumber: String
employee organization
- birthDate: Date - street: String
- gender: String - suburb: String
- city: String
<<constructor>>
- region: String
+ Person(...)
0..* lives at 1
+ getName() : String
+ setName(...) resident dwelling <<constructor>>

... + Address(...)

+ findCohabitants():... + setStreetNumber(...)
...

Dr. Sayed AbdelGaber


Software Engineering Lecture 4: System Models

➢ Follow these iterative activities to produce initial,


high-level class diagrams:

[Source: Bennet et al., 2001]


1. Find classes and associations
2. Identify attributes and operations
✓ allocate to classes

3. Identify generalization structures

➢ Very similar to recommended approach to ERD


construction.

Dr. Sayed AbdelGaber


Software Engineering Lecture 4: System Models

Staff

Customer

Itinerary

Sector

Dr. Sayed AbdelGaber


Software Engineering Lecture 4: System Models

Abstract

Role names

Navigability Association
Aggregation name

Dr. Sayed AbdelGaber


Software Engineering Lecture 4: System Models

Dr. Sayed AbdelGaber

You might also like