0% found this document useful (0 votes)
16 views43 pages

Chapter 5 HLD

Chapter Five covers the high-level and low-level design phases of the software development life cycle (SDLC), detailing their purposes and outputs. High-Level Design (HLD) provides an overall architecture and component overview, while Low-Level Design (LLD) focuses on detailed specifications of each module. Additionally, it introduces UML interaction diagrams, including sequence and communication diagrams, to illustrate object interactions and message flows within a system.

Uploaded by

firaolfro
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)
16 views43 pages

Chapter 5 HLD

Chapter Five covers the high-level and low-level design phases of the software development life cycle (SDLC), detailing their purposes and outputs. High-Level Design (HLD) provides an overall architecture and component overview, while Low-Level Design (LLD) focuses on detailed specifications of each module. Additionally, it introduces UML interaction diagrams, including sequence and communication diagrams, to illustrate object interactions and message flows within a system.

Uploaded by

firaolfro
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/ 43

CHAPTER FIVE

HIGH-LEVEL DESIGN
After completing this chapter students will be able
to……..
❑Explain High Level Design
❑Describe Detailed/Low Level Design
❑Describe UML Interaction Diagrams
➢Communication Diagrams
➢Sequences Diagrams
SDLC
❑The stages of developing a software application are:
➢ Requirement Analysis
➢System Design
✓High-level Design
✓Low-level Design
➢Implementation
➢Unit Testing
➢Integration Testing
➢System Testing
➢Deployment
➢Maintenances
System design
❑The process of designing any software application in SDLC
is called system design.
❑Software design process tries to specify how to fulfill the
requirements mentioned in SRS.
❑Software design is a process to transform user
requirements into some suitable form(SDD),
• Which helps programmer in software coding or
implementation.
❑The output(SDD) of this process can directly be used into
implementation in programming languages.
Software Design Levels
❑There are two kinds of designs included while designing any system.
1. High-Level Design (HLD)
2. Low-Level Design (LLD)
1. High-Level Design
❑It is a general system design means ,it refers to the overall system design.
❑HLD describes overall description/architecture of application, that would be used
for developing a software product.
❑The architecture (provides an overview of an entire system), identify the main
components that would be developed for the product and their interfaces.
❑ Generally, it includes description of system architecture(3-tier…), data base
design, brief description on systems, services, what platforms to use (PC,
phone…), classes, interfaces and relationship among modules.
Contt…
❑It shows major components of system or info about different components
of software or sub system (software is made up of different component we
called them sub system).
❑But in HLD did not focus how the components work , instead focus
what are the different components involve in system.
❑Or HLD provides a brief description of how various sub-systems and
components of system fit together.
❑Data flows, flowcharts, data structures are included in HLD documents so
that developers/implementers can understand how the system is expected to
work with regards to the features and the database design.
Contt….
❑It is also known as macro level/system design.

❑The Solution Designer, also known as Solution Architect, is usually the


owner of the high-level design document.

❑It converts the business/client requirement into High Level Solution.

❑It is created first means before Low Level Design.


❑HLD uses possibly nontechnical to mildly technical terms that should be
understandable to administrators of the system.
Example…
Cont…
Purpose
❑Preliminary design - HLD is created initially during the design
journey of a solution.
❑Design overview – It provide an overview of how the various sub-
systems , parts, and components of the system fit together.
❑Include/show top-level design : Like how much scalability, cost,
request application can handle at a time and give complete view of
the entire system, breaking it down into smaller parts that are more
easily understood.
Cont…
High-level design document
❑A high-level design document or HLDD adds the necessary details to
the current project description to represent a suitable model for
coding.
❑This document is designed to help in operational requirement or can be
used as a reference manual for how modules interact.
❑Also, the document presents a high-level architectural diagram, depicting
the structure of the system, such as the database architecture, application
architecture (layers), application flow (navigation), security architecture
and technology architecture.
❑High-Level Design documentation may use some non-technical terms
unlike Low Level design .
2.Low Level Design(LLD)
❑LLD is like detailing HLD or it describes detailed description of each
and every module/component of system including actual logic
,internal structure of system such as data type, data structure,
algorithm and soon.
❑So, in this design we can specifies how the system will work or
specifies component functionality including internal details.
❑It goes deeply into every system specification, because of this known
as micro level/detailed design.
❑In LLD process, convert a high level solution to a very detailed
solution.
❑It is more detailed towards modules and their implementations.
❑It defines logical structure of each module and their interfaces to
communicate with other modules.
Cont…
❑LLD comes into play only after design and implementation of
HLD.
❑The designers and developers basically create and implement the
low level design.
❑For example, class diagrams with all the methods, attributes and
relation between classes comes under LLD as you see in figure
below.
Example …
HLD vs LLD
HIGH LEVEL DESIGN LOW LEVEL DESIGN

High Level Design is the general system design Low Level Design is like detailing HLD means it
means it refers to the overall system design. refers to component-level design process.

HLD specifies the complete report and planning of low-level design specifies the in-detail report of all
the particular software product or application the modules.

It is also known as macro level/system design. It is also known as micro level/detailed design.

It describes the overall description/architecture of It describes detailed description of each and every
the application. module.

LLD focuses on technical and implementation


HLD focuses on the big picture details.
Contt…
High Level Design expresses the brief Low Level Design expresses details functional
functionality of each module. logic of the module.

It is created by solution architect. It is created by designers and developers.

It is created first means before Low Level It is created second means after High Level
Design. Design.

In HLD the input criteria is Software In LLD the input criteria is reviewed High Level
Requirement Specification (SRS). Design (HLD).

High Level Solution converts the Business/client Low Level Design converts the High Level
requirement into High Level Solution. Solution into Detailed solution.

In HLD the output criteria is data base design, In LLD the output criteria is program
functional design and review record. specification and unit test plan.
UML Diagram
Before discussing types of UML diagram we have to know an overview of
UML
❑UML stands for Unified Modeling Language.
❑ UML is different from the other common OO languages such as C++,
Java, COBOL, etc.
❑ UML is a pictorial language used to make software blueprints.
❑ UML can be described as a general purpose visual modeling language
to visualize, specify, construct, and document software system.
❑It is a standard which is mainly used for creating object-oriented,
meaningful documentation models for any software system.
❑UML is not a programming language but tools can be used to generate
code in various languages using UML diagrams.
Cont…
❑UML has a direct relation with object oriented analysis and
design(OOAD).
❑Or UML diagrams are representation of object-oriented concepts
only.
❑UML is powerful enough to represent all concepts that exist in
OOAD such as Objects, Class, Abstraction, Encapsulation,
Inheritance, and Polymorphism all can be represented using
UML. How???
❑Although UML is generally used to model software systems, it is
not limited within this boundary, this means also used to model
non-software systems as well. For example, process flow in a
manufacturing unit, etc.
Goals of UML
Object-oriented concepts were introduced much earlier than UML. At
that point of time, there were no standard methodologies to organize
and consolidate the object-oriented development. It was then that
UML came into picture.
There are a number of goals for developing UML but the most
important is…
• To define some general purpose modeling language, which all modelers can
use and it also needs to be made simple to understand and use.
• To simplify modelling mechanism to model all possible practical systems in
today’s complex environment.
UML building blocks
The building blocks of UML can be defined as:
• Things
• Relationships
• Diagrams
1. Things - Things are the most important building blocks of UML.
Things can be:
- Structural - Grouping
- Behavioural - Annotational
Cont…
A. Structural Things - define the static part of the model. They
represent the physical and conceptual elements.
Following are the brief descriptions of the structural things.
• Class: Class represents a set of objects having similar responsibilities.
➢ Class is the blueprint of an object.
Cont…
• Interface: Interface defines a set of operations, which specify the
responsibility of a class.

• Collaboration: Collaboration defines an interaction between


elements.
Cont…
• Use case: Use case represents a set of actions performed by a system
for a specific goal.

• Component: Component describes the physical part of a system.

• Node: A node can be defined as a physical element that exists at run


time.
Cont…
B. Behavioral Things – consists of the dynamic parts of UML models.
Following are the behavioral things:
• Interaction: Interaction is defined as a behavior that consists of a
group of messages exchanged among elements to accomplish a
specific task.

• State machine: It defines the sequence of states an object goes


through in response to events. Events are external factors responsible
for state change.
Cont…
C. Grouping Things – mechanism used to group elements of a UML
model together.
There is only one grouping thing available:
• Package: Package is the only one grouping thing available for
gathering structural and behavioral things.
Cont…
D. Annotational things – used to capture remarks, descriptions, and
comments of UML model elements.
• Note: It is the only one Annotational thing available. A note is used to
render comments, constraints, etc. of an UML element.
Contt..
2. Relationships –It shows how the elements are associated with each
other and this association describes the functionality of an
application.
There are four kinds of relationships available.
• Dependency - is a relationship between two things in which change in
one element also affects the other.
Cont…
• Association - is basically a set of links that connects elements of a
UML model. It also describes how many objects are taking part in that
relationship.

• Generalization - can be defined as a relationship which connects a


specialized element with a generalized element. It basically describes
the inheritance relationship in the world of objects.
Cont…
• Realization - can be defined as a relationship in which two elements
are connected. One element describes some responsibility, which is
not implemented and the other one implements them. This relationship
exists in case of interfaces.
Contt…
3. UML Diagrams
❑All the elements, relationships are used to make a complete UML
diagram and this diagram represents the a system.
❑It is very important to distinguish UML model.
❑Because, different diagrams are used to represent different types of
UML modeling as you see below ….
Interaction Diagram
❑It is type of behavioural diagram, used to describe some type of
interaction among different elements in the model (most of time between
objects).
❑This interaction shows dynamic behavior of the system during run
time/execution of use case.
❑Interactive behaviour /interaction diagram is represented by two known
diagrams known as Sequence and Collaboration/communication
diagram.
❑Interaction diagrams are used when you want to model the behavior of
several object in usecase.
Purpose of Interaction Diagrams
❑To capture the dynamic behaviour of a system.
❑To describe the message flow in the system.
❑To describe the structural organization of the objects.
❑To describe the interaction among objects.
Contt…..
❑The following things are to be identified clearly before drawing the
interaction diagram:
➢To know expanded level use case description (two way interaction steps
between actor & system that show how particular use case will executed).
➢Objects taking part in the interaction/finding Doman classes objects
➢Message flows among the objects.
➢The sequence in which the messages are flowing.
➢Object organization.
Sequence Diagram
❑It is also known as Event diagram.
❑The UML diagram which shows an interaction between objects
arranged in time sequence is sequence diagram.
❑So, it captures time sequence of message flow from one object to
another.
❑Also, sequence diagram shows details on how operations are carried
out like what messages are sent and when( not duration else
ordering).
❑Objects of the classes communicate by sending and receiving
messages in coding, this concept also similar in sequence diagram.
Cont…
❑Elements of sequence diagram are…..
A. Dimension( Object, time..).
B. Actor
C. Lifeline
D. Activation bar
E. Messages
F. Focus of Control
G. Type of object (boundary, control, entity)
H. Guards/Condition and optional
I. Alternative
J. Parallel
K. Loops
L. Sequence diagram/boundary
As LAB practices identify the function of each element!!!
Example1 Sequence diagram for Search Use case
EX 2 Sequences for Withdraw Money use case
Communication/Collaboration Diagram
❑A kind of interaction diagram, that shows how objects, parts or sub-system
interacts in the system.
❑It describes structural organization of objects that send and receive messages
travel from one to another in a system(use case).
❑It provides similar detail as sequence diagram without time information. So,
both are semantically equivalent/isomorphic that means both present the same
information, and you can turn a communication to a sequence diagram and
vice versa.
❑But, communication diagram is very useful for visualizing relationship
between objects, collaborating to perform a particular task than a sequence
diagram.
❑In addition to associations among objects, communication diagram also
shows the messages the objects sends to itself using loops.
Basics of Communication Diagram
❑ The symbols and notations used in communication diagrams are the same
as sequence diagrams.
➢ Rectangles represent objects(Supplier receive the message and Client
objects send messages) .
➢ Link represents a relationship between objects and symbolizes the ability
of objects to send messages to each other. If an object sends messages to
itself, the link carrying these messages is represented as a loop icon.
➢ Arrows represent messages that are sent between objects or pointing
from Client object to Supplier object.
➢ Numbering represent order of messages or how many messages are
required to finish the process.
Example ….
Contt…
❑In above communication diagram, the objects are represented by
rectangles.
1. The objects are Object1, Object2, Object..., ObjectN-1 ..., and ObjectN.
2. Messages passed between objects are represented by labeled arrows that
start with the sending object (actor) and end with the receiving object.
3. The sample messages passed between objects are labeled 1: message1, 2:
message2, 3: message3, etc., where the numerical prefix to the message
name indicates order of message in sequence.
4. Object1 first sends Object2 the message message1, Object2 in turn sends
ObjectN-1 the message message2, and so on.
5. Messages that objects send to themselves are indicated as loops (e.g.,
message message5).
Example1 ….for Withdraw Money use case
▪HOME WORK!!!
▪Sequence vs Communication Diagram
▪State chart Diagram
▪Activity Diagramming

You might also like