
requirement is a condition or capability needed by a user to solve a problem or achieve an objective.
Examples: User Authentication (login with username & password); Search functionality (search
products by name/category); Report generation (generate sales reports for a date range); System
sends email notifications when order is placed; CRUD operations on account information; Shopping
cart management (add/remove items).
Non-Functional Requirements:
Non-functional requirements describe HOW the software performs its functions. They define quality
attributes, performance criteria, and constraints. They are also called non-behavioral requirements
and deal with quality standards the system must satisfy.
Types: Interface constraints; Performance constraints (response time, storage); Operating
constraints; Life cycle constraints (maintainability, portability); Economic constraints.
Examples: Performance — system processes 1,000 transactions/second; Usability — user-friendly
interface; Reliability — 99.9% uptime; Security — data encrypted during transmission; Portability —
runs on multiple platforms; Scalability — handles increased load.
Key Differences:
Aspect Functional Requirements Non-Functional Requirements
Definition What the system does How well the system does it
Visibility Directly visible in final product Quality attributes (not directly visible)
Focus System features/functions System performance/quality
Example User login with password Login response in under 2 seconds
Also called Functional Specification Non-behavioral requirements
Q3. Explain the Software Design Process. Describe the role of Architectural Design.
Software Design Process:
The software design process transforms requirements into a blueprint for constructing the software. It
bridges the gap between requirements and implementation by defining system structure, components,
interfaces, and data.
Steps in Software Design Process:
1. Architectural Design: Defines the overall structure and major components of the system.
2. Interface Design: Describes how software elements, hardware, and people interact.
3. Component-Level Design: Detailed design of individual software components/modules.
4. Data/Class Design: Transforms analysis class models into design class realizations and data
structures.
Role of Architectural Design:
Architectural design is the FIRST and most important level of the design process. It identifies the main
structural components of a system and the relationships between them.
Key Roles: Provides the blueprint for the entire system; enables communication among stakeholders;
defines constraints on implementation; promotes reuse of components; dictates development
priorities; helps achieve quality attributes like performance, reliability, and security; establishes how
components interact and communicate.
Architectural Styles:
1. Data-Centered Architecture: A central data store (database) is accessed by client components.
Example: Client-server systems. Advantage: Data is easily shared; components are independent.