Skip to content
SE eBook
Menu

Design Fundamentals

Public section
Preferences are saved on this device.

Software design is the activity of transforming customer requirements (as specified in the SRS) into a form that can be implemented in a programming language. A good design is rarely obtained in a single step; instead, it is refined iteratively through a series of design activities.

In practice, software design is usually divided into two broad levels:

4.1 Levels of Software Design

4.1.1 High-Level Design (HLD)

High-Level Design (HLD), also called preliminary design, architectural design or conceptual design, focuses on the overall structure of the software system.

  • Identifies major modules and subsystems.
  • Defines control and data relationships among modules.
  • Specifies interfaces between subsystems and with external systems.
  • Produces the software architecture or program structure.

A common notation at this level is the structure chart, which represents the system as a tree-like hierarchy of modules.

4.1.2 Low-Level Design (LLD)

Low-Level Design (LLD), also called detailed design or technical design, focuses on the internal design of individual modules.

  • Designs data structures and internal representations used by each module.
  • Specifies algorithms and control logic within modules.
  • Defines module-level interfaces (inputs, outputs, preconditions, postconditions).
  • Produces detailed module specification documents that guide coding.
Software Design Process: HLD vs. LLD A flowchart illustrating the transition from SRS (Software Requirements Specification) to High-Level Design (Architecture), then to Low-Level Design (Module Specification), and finally to Coding. Software Design Workflow SRS Requirements Spec High-Level Design (HLD) Architectural Design • System Architecture • Major Modules & Interfaces • Database Design (Schema) Refined into Low-Level Design (LLD) Detailed Design • Module Logic & Algorithms • Data Structures • Interface Specifications CODE HLD focuses on the "What" and "Where" (Structure), while LLD focuses on the "How" (Implementation Logic).
Figure 28: The design progression from architectural definition (HLD) to detailed logic specification (LLD) required for coding.

4.2 Difference Between Analysis and Design

Although closely related, analysis and design serve different purposes in the software life cycle.

Analysis Phase

  • Aim: Understand what the problem is.
  • Focus: Remove inconsistencies, incompleteness, and ambiguity in the requirements.
  • Output: A clear and validated statement of the problem, typically documented as the SRS.

Design Phase

  • Aim: Provide a model that offers a smooth transition to coding (i.e. how the system will meet the requirements).
  • Focus: Structure the system into components, define data and control flows, and specify algorithms and interfaces.
  • Output: A design model (architecture and detailed design) that can be implemented directly.

4.3 Conceptual Design Questions

During conceptual (high-level) design, the designer refines the problem view from the SRS into an implementable solution view by answering questions such as:

  • Where will the data come from (inputs, external systems, sensors, users)?
  • What will happen to data inside the system (processing, validation, storage)?
  • How will the system look to users (screens, reports, interfaces)?
  • What choices or options will be offered to users during interaction?
  • What are the timing constraints and event sequences (e.g. response time, schedules)?
  • How will reports and screens be structured and formatted?
Figure 29: Design Framework and Conceptual View A diagram contrasting Analysis (What) vs Design (How), followed by a radial map of conceptual design questions regarding Data, UI, Workflows, and Timing. ANALYSIS The Problem: "What to build?" DESIGN The Solution: "How to build it?" Conceptual Design: The Key Questions System Blueprint Data Sources Where from? Appearance (UI) Screens & Nav? User Workflows Roles & Choices? Timing Triggers/Sequence? Reports/Outputs Formats? Storage & Process How stored?
Login to add personal notes and bookmarks.