You are on page 1of 2

Unified Modeling Language (UML) Diagrams Overview:

Unified Modeling Language (UML) is a standardized modeling language used in software


engineering for visualizing, specifying, constructing, and documenting the artifacts of a software
system.

Types of UML Diagrams:


1. User View (Use Case Diagram):
- Illustrates the interactions between actors and the system to describe the system's functionality.

2. Structural View:
- Class Diagram: Represents the static structure of a system by showing classes, attributes, and
their relationships.
- Object Diagram: Displays instances of classes at a specific point in time, showcasing their
relationships.

3. Behavioral View:
- Sequence Diagram: Visualizes the interactions between objects in a time sequence.
- Collaboration Diagram: Shows how objects interact to realize a collaboration.
- State Diagram: Represents the dynamic behavior of a system in response to external stimuli.
- Activity Diagram: Illustrates the flow of control within a system to model business processes.

4. Environmental Diagram:
- Deployment Diagram: Depicts the hardware components, software components, and their
interconnections in the system environment.

5. Implementation View:
- Component Diagram: Describes the physical structure of the system and the relationships
between system components.

Notations of UML Diagrams:


- Class Diagram Notation: Rectangles for classes, lines for relationships, symbols for visibility.
- Object Diagram Notation: Rectangles for objects, lines for relationships.
- Sequence Diagram Notation: Lifelines for objects, messages between lifelines.
- Collaboration Diagram Notation: Objects with links representing messages.
- State Diagram Notation: States, transitions, events, actions.
- Activity Diagram Notation: Activities, transitions, decision points.
- Deployment Diagram Notation: Nodes for hardware, artifacts for software components.
- Component Diagram Notation: Components, interfaces, dependencies.
Formal System Specification:
Formal system specification involves using mathematical notation and rigorous language to
precisely describe the requirements and behavior of a system, ensuring unambiguous and detailed
specifications.

Functional Modeling:
Functional modeling represents the processes, activities, functions, or operations within a system to
validate, specify, and understand requirements for software systems.

Design Pattern:
Design patterns are general, reusable solutions to common problems encountered in software
design, offering a template for solving design issues in a particular context.

Software Design:
Software design encompasses the process of defining software components, their interfaces,
interactions, and behaviors to satisfy specified requirements.

Design Process:
The design process comprises the systematic sequence of steps followed to conceptualize, plan, and
construct software or system architecture.

Publish-Subscribe:
In publish-subscribe, the senders (publishers) of messages do not program the receivers
(subscribers) directly. Instead, they categorize published messages without knowledge of possible
subscribers, and subscribers express interest in one or more categories.

Proxy and Facade Pattern:


-Proxy Pattern : The proxy pattern provides a surrogate or placeholder for an object to control
access to it.
-Facade Pattern : The facade pattern provides a unified interface to a set of interfaces in a
subsystem, making the subsystem easier to use.

Cohesion vs. Coupling:

Aspect Cohesion Coupling


Refers to the
Describes how strongly
degree of
Description the internal elements of a
interconnectedness
module are related
between modules
Aim for low
Objective Aim for high cohesion
coupling
Improves
Enhances maintainability
Impact reusability and
and understandability
maintainability

You might also like