Software Development and Professional Practice
Software Development and Professional Practice
L05: Software Specification Models(P2)
Dr. Nora Shoaip
Damanhour University
Faculty of Computers & Information Sciences
Department of Information Systems
2023
1
System Modeling
Class Diagram
2
System Modeling
Class Diagram
gives an overview of a software system by displaying classes,
attributes, operations, and their relationships. This Diagram includes
the class name, attributes, and operation in separate designated
compartments.
gives a high-level view of an application
helps construct the code for the software application
development.
3
Class Diagram
What is Class?
4
Class Diagram
Classes
5
Class Diagram
Class Name
A class name should always start with a capital letter.
A class name should always be in the center of the first compartment.
A class name should always be written in bold format.
An abstract class name should be written in italics format.
6
Class Diagram
Class attributes
An attribute is named property of a class which describes the object being modeled.
The attributes are generally written along with the visibility factor.
Visibility describes the accessibility of an attribute of a class.
Public, private, protected and package are the four visibilities which are denoted by
+, -, #, or ~ signs respectively.
Abstract attributes are indicated by italic.
Static attributes are indicated by underline.
Attribute format: visibility_symbol name : type [multiplicity ordering] = default_value
{constraint}
7
Class Diagram
Class attributes Cont..
8
Class Diagram
Class operations
Operation is a method, function, or query, which can be called by other
objects.
Each operation has its name and it can have any number of parameters (zero
or more).
Each operation should perform only one thing.
Abstract operations are indicated by italic.
Static operations are indicated by underline.
Operation format: visibility_symbol name (p1 ... pN) : return_type
9
Class Diagram
10
Class Diagram
Benefits of Class Diagram
Illustrates data models for even very complex information systems
provides an overview of how the application is structured before
studying the actual code. This can easily reduce the maintenance time
helps for better understanding of general schematics of an application.
Allows drawing detailed charts which highlights code required to be
programmed
Helpful for developers and other stakeholders.
11
Class Diagram
Association relationships
12
Class Diagram
Association relationships
13
Class Diagram
Association relationships
14
Class Diagram
Association relationships
15
Class Diagram
Uml classes and association
16
Class Diagram
Multiplicity
17
Class Diagram
Classes and associations in the MHC-PMS
18
Class Diagram
The Consultation class
19
Class Diagram
Associations relationships (Aggregation)
20
Class Diagram
Associations relationships (Aggregation)
21
Class Diagram
Associations relationships (Aggregation)
22
Class Diagram
Generalization
23
Class Diagram
Generalization
24
Class Diagram
Generalization Hierarchy
25
Class Diagram
Generalization Hierarchy with added detail
26
Class Diagram
Example of identifying class Multiplicities, attributes and
operation
27
Behavioral models
Generalization Hierarchy with added detail
28
Activity diagram
29
Activity diagram
Activities involved in ATM transaction
30
Activity diagram
Decision – Merge node
31
Activity diagram
Synchronization
32
Activity diagram
Swimlanes
33
Behavioral models
State machine models
34
State machine models
State machine models
35
State machine models
State machine models
36
State machine models
Weather station state diagram
37
Architectural model
38
Architectural model
Architectural patterns
39
Architectural model
Model- View- Controller
40
Architectural model
Model- View- Controller
41
Architectural model
Layered Architectural
42
Architectural model
Architectural of the LIBSYS system
43
Architectural model
Repository Architectural
44
Architectural model
Repository Architectural
45
Architectural model
Client-Server Architectural
46
Pipe and filter Architectural
State machine models
47
Pipe and filter Architectural
48
Pipe and filter Architectural
Compiler Architectural
49
References
Textbooks
• Cha, S., Taylor, R. N., & Kang, K. (Eds.).
(2019). Handbook of software engineering. Springer
International Publishing.
• Hodges, J. L. Software Engineering from Scratch.
• Loubser, N. (2021). Software Engineering for
Absolute Beginners. Apress.
50