🧩 Preliminary and Detailed Design Activities in Software Engineering
✨ With deeper explanation, real-life examples, diagrams, and a student-friendly tone — especially useful for BCA students.
🔷 What is Software Design?
Software Design is the process of planning the solution before actual programming starts. It is like an architect making a plan before constructing a building.
Design is divided into two key phases:
- Preliminary Design (High-Level Design)
- Detailed Design (Low-Level Design)
🔹 1. Preliminary Design (High-Level Design)
🧠 Definition:
Preliminary design is where the overall system architecture is defined. The goal is to decide what modules are needed and how they will interact.
📌 Key Points:
- Gives blueprint of the entire system
- Modules and components are identified
- Relationships between modules are established
- Technologies to be used are chosen
- No actual logic is written, only structure is designed
🔧 Activities in Preliminary Design
Activity | Description | Example |
---|---|---|
System Decomposition | Breaking the system into major modules | In a banking app: Login, Balance Check, Funds Transfer, History |
Architecture Design | Choosing system structure (layered, client-server) | A 3-tier architecture with frontend, middleware, backend |
Interface Design | Designing how modules talk to each other | API calls between the frontend and backend |
Data Flow Design | Using DFDs to show data movement | Login → Verify → Access Account Info |
Tech Selection | Choosing languages, frameworks, DBMS | Java + MySQL + Spring Framework |
Security Planning | Identifying where to apply validation, encryption | Encrypting passwords during login |
🖼️ Example Diagram:
Online Library System – Preliminary Design
+------------------------+
| User Authentication |
+------------------------+
|
v
+------------------------+
| Book Search |
+------------------------+
|
v
+------------------------+
| Borrow/Return Book |
+------------------------+
|
v
+------------------------+
| Admin Module |
+------------------------+
🔹 2. Detailed Design (Low-Level Design)
🧠 Definition:
Detailed Design focuses on how each module will work internally. Algorithms, logic, functions, database tables are all created in this phase.
📌 Key Points:
- Defines internal working of every module
- Logic is created using flowcharts, pseudocode, UML diagrams
- Developer understands exactly what to write in code
🔧 Activities in Detailed Design
Activity | Description | Example |
---|---|---|
Component Design | Defining methods/functions of each module | getUserData() , validateLogin() |
Algorithm Design | Creating step-by-step logic using pseudocode | Sort books by title/author |
Data Structure Design | Choosing how to store and organize data | Use array, linked list, tree, stack |
UI Design | Designing screens and user interaction | Login screen, book list view |
Database Design | Creating table schema, ER diagrams | Tables: Users, Books, Transactions |
Error Handling | Defining how system handles invalid inputs | Show message on incorrect password |
🖼️ Example Flowchart:
Borrow Book Module – Detailed Design
Start
|
[Input: User ID, Book ID]
|
[Check if Book is Available]
|
|--- No ---> [Display "Not Available"] --> End
|
Yes
|
[Update Book Status to 'Borrowed']
|
[Record Transaction]
|
[Display "Borrow Successful"]
|
End
📊 Comparison Table
Feature | Preliminary Design | Detailed Design |
---|---|---|
Focus | System Structure | Internal Logic |
Output | Architecture, Modules, Interfaces | Algorithms, DB schema, Functions |
Tool Examples | DFD, Use Case Diagrams | Pseudocode, Flowcharts, ER Diagrams |
Users | Architects, Analysts | Developers, Programmers |
🧠 Real-Life Example – Online Food Delivery App
Phase | Example Activities |
---|---|
Preliminary Design | Identify modules: Login, Browse Menu, Cart, Payment, Delivery Status |
Detailed Design | Design how addToCart() function works, which data structures to use, layout of checkout screen, database schema for Orders |
✅ Summary
- Preliminary Design = What the system does (structure)
- Detailed Design = How each part works (logic)
- Both are necessary for writing error-free and maintainable code.
- Tools: Use DFDs, UML, Flowcharts, ER Diagrams.
🧠 Viva Questions
- What is the purpose of Preliminary Design?
- Give two differences between High-Level and Low-Level Design.
- What are the tools used in Detailed Design?
- What is an ER diagram, and where is it used?