System Analysis and DesignUnit 511 min read
Requirements Gathering & Analysis: Methods, Prototyping, JAD, and Data Modeling
Unit 5 of System Analysis and Design covers techniques to collect, analyze, and validate system requirements—including interviews, observation, document analysis, prototyping (throwaway vs. evolutionary), Joint Application Design (JAD), and conceptual data modeling (ER diagrams). Learn how to avoid pitfalls like bias i
Key Concepts and Methods for Requirements Gathering
1. Definitions and Importance
Requirements Gathering is the process of identifying, documenting, and validating the needs of stakeholders for a new or modified system. It ensures that the final product aligns with user expectations and business goals.
Requirements Analysis involves examining gathered requirements to identify inconsistencies, conflicts, or missing details, then refining them into a clear specification.
Why it matters:
- Prevents costly rework by catching errors early.
- Ensures the system meets user needs (e.g., eSewa’s payment system must handle transactions securely and quickly).
- Forms the foundation for design and development.
2. Traditional Methods for Gathering Requirements
Three primary methods are used, each with strengths and weaknesses:
| Method | How It Works | Advantages | Disadvantages | Example in Nepal |
|---|---|---|---|---|
| Interviews | One-on-one or group discussions with stakeholders to understand needs. | Deep insights, flexible, can clarify doubts. | Time-consuming, biased if interviewer is inexperienced. | Interviewing NTC engineers to design a new billing system for electricity users. |
| Observation | Watching users perform tasks (e.g., how a Daraz seller processes orders). | Unbiased, captures real behavior (not just what users say they do). | Labor-intensive, may miss "why" behind actions. | Observing Pathao drivers to improve ride-matching algorithms. |
| Document Analysis | Reviewing existing documents (e.g., reports, manuals, past project specs). | Quick, low-cost, provides historical context. | Outdated info, may miss unstated needs. | Analyzing NEPSE’s annual reports to design a new stock-trading app. |
3. Radical and Modern Methods
A. Prototyping
Prototyping creates a working model of the system to gather feedback early. Two types:
Throwaway Prototyping:
- Built quickly to explore ideas, then discarded.
- Used when requirements are unclear (e.g., designing a new UI for Khalti).
- Example: A mockup of a bank’s loan application form to test user confusion.
Evolutionary Prototyping:
- Refined iteratively into the final product.
- Used for complex systems (e.g., eSewa’s multi-service platform).
- Example: Starting with a basic version of Daraz’s "Buy Now, Pay Later" feature and adding layers based on user feedback.
stateDiagram-v2
[*] --> Throwaway: Built for feedback
Throwaway --> Discard: Not used in final system
[*] --> Evolutionary: Built incrementally
Evolutionary --> Refine: Add features based on feedback
Refine --> FinalSystem: Complete productB. Joint Application Design (JAD)
- What it is: A structured workshop where stakeholders (users, developers, managers) collaborate intensively to define requirements.
- How it works:
- Pre-session: Define goals, invite participants, prepare materials.
- Session: Facilitated discussion (3–5 days) with tools like whiteboards or digital boards.
- Post-session: Document outcomes and validate with stakeholders.
- Why it’s better than traditional methods:
- Faster than sequential interviews/observations.
- Reduces miscommunication (e.g., all Ncell executives agree on a new billing feature in one session).
- Encourages buy-in from all parties.
Example: A JAD session for designing a Khalti merchant dashboard would include:
- Bank representatives (for payment rules),
- Developers (for technical feasibility),
- Small shop owners (for usability).
4. Conceptual Data Modeling
A conceptual data model represents the "what" (data entities and their relationships) without worrying about "how" (database schema or technology). The most common tool is the Entity-Relationship (ER) Diagram.
Key Components:
- Entities: Things of interest (e.g.,
Customer,Product,Order). - Attributes: Properties of entities (e.g.,
CustomerhascustomerID,name,email). - Relationships: How entities interact (e.g.,
CustomerplacesOrder). - Cardinality: How many instances relate (1:1, 1:many, many:many).
Example: Retail Store in a Mall (ER Diagram)
erDiagram
Customer ||--o{ Order : places
Order ||--|{ Product : contains
Product }|--|| Category : belongs_to
Customer {
int customerID PK
string name
string contact
}
Order {
int orderID PK
date orderDate
decimal totalAmount
}
Product {
int productID PK
string name
decimal price
}
Category {
int categoryID PK
string categoryName
}How to Gather Information for ER Diagrams:
- Interview stakeholders: Ask, "What data do you need to track?" (e.g., a Daraz seller might say, "I need to track order status and delivery dates").
- Analyze documents: Review invoices, receipts, or past system reports.
- Observe processes: Watch how data flows (e.g., how a bank teller records loan applications).
5. Handling Disruptive Technologies
Disruptive technologies (e.g., AI, blockchain, IoT) can reshape requirements. For example:
- AI in eSewa: Requires new data points (e.g., user behavior patterns) for fraud detection.
- Blockchain in NEPSE: Needs immutable ledgers for transparent stock trades.
- IoT in NTC: Smart meters require real-time data collection and analysis.
How to incorporate them:
- Identify where the technology adds value (e.g., "Can AI reduce call wait times at Ncell?").
- Define new requirements (e.g., "The system must log customer call durations for AI training").
- Assess feasibility (e.g., "Does NTC’s infrastructure support IoT sensors?").
6. Pitfalls and Best Practices
Common Pitfalls:
- Bias in Observation: Observing only "good" workers may miss pain points.
- Fix: Observe diverse users (e.g., both experienced and new Daraz sellers).
- Scope Creep: Adding too many features based on feedback.
- Fix: Prioritize requirements using MoSCoW (Must-have, Should-have, Could-have, Won’t-have).
- Ignoring Non-Functional Requirements: Performance, security, and scalability are often overlooked.
- Fix: Explicitly ask, "How fast must the system respond?" (e.g., Pathao’s ride-matching must complete in <2 seconds).
Best Practices:
- Validate requirements: Use prototypes or JAD sessions to confirm understanding.
- Document everything: Keep a traceable record of decisions (e.g., "Why we chose SQL over NoSQL for Khalti’s database").
- Involve end-users early: Even if they’re not technical (e.g., a Kathmandu traffic police officer testing a new fine-collection app).
In the Real World
eSewa’s Payment Flow:
- Method Used: Prototyping (evolutionary) and JAD.
- How: eSewa started with a basic mobile payment prototype, then iterated based on user feedback (e.g., adding QR code payments after testing). A JAD session with banks and telecoms defined security requirements like OTP validation.
Daraz’s Inventory System:
- Method Used: Observation and document analysis.
- How: Daraz observed how sellers manually tracked stock (using Excel) and analyzed their order documents to design an automated inventory system with real-time updates. The ER diagram for this system includes entities like
Warehouse,Supplier, andStockMovement.
Ncell’s Customer Support Chatbot:
- Method Used: Disruptive technology (AI) + interviews.
- How: Ncell interviewed customers to identify common complaints (e.g., "I can’t check my bill online"). They then designed an AI chatbot requirement: "The system must handle 10,000 concurrent queries with <3-second response time."
Worked Example: Feasibility Study for a Bank Loan System
Scenario: A bank wants to automate its loan approval process. Gather requirements using:
- Interviews: Talk to loan officers, borrowers, and IT staff.
- Loan Officer: "We need to check credit scores from multiple agencies."
- Borrower: "I want to upload documents online, not visit the bank."
- Observation: Watch how officers manually process applications (e.g., they spend 20 minutes per loan verifying documents).
- Document Analysis: Review past loan approval/rejection reports to identify patterns (e.g., 60% of rejections are due to incomplete documents).
- Prototyping: Build a mock loan application form and test it with 10 users to see where they struggle (e.g., confusing fields for "income proof").
ER Diagram for Loan System:
erDiagram
Customer ||--o{ LoanApplication : submits
LoanApplication ||--|{ LoanOfficer : reviewed_by
LoanApplication ||--|{ Document : contains
LoanApplication }|--|| LoanType : applies_for
Customer {
int customerID PK
string name
decimal creditScore
}
LoanApplication {
int applicationID PK
date submissionDate
string status "Pending/Approved/Rejected"
}
Document {
int documentID PK
string type "Income Proof/Pan Card/etc."
string status "Uploaded/Verified"
}Key Requirements Identified:
- The system must integrate with 3 credit agencies (e.g., TransUnion, Experian).
- Users must upload documents via a drag-and-drop interface.
- Loan officers need a dashboard to track application statuses.
Exam Tip
For short-answer questions (e.g., "Compare observation and document analysis"):
- Use a 2-column table with "Observation" vs. "Document Analysis," listing 3–4 points each (e.g., "Observation captures real behavior; Document Analysis is faster").
- Mention one pitfall for each (e.g., "Observation may miss 'why' users act a certain way").
For ER diagrams:
- Always include 3 entities, 1 relationship, and cardinality (e.g.,
Customer1:manyOrder). - Label attributes clearly (e.g.,
OrderhasorderID,date,totalAmount). - Real-world tie: If asked about a retail store, use
Customer,Product, andOrderas in the example above.
- Always include 3 entities, 1 relationship, and cardinality (e.g.,
For prototyping/JAD:
- Define throwaway vs. evolutionary in one sentence each.
- For JAD, explain the 3-phase process (pre-session, session, post-session) and why it’s faster than interviews.
For disruptive technologies:
- Name one technology (e.g., blockchain) and one Nepalese example (e.g., NEPSE’s transparent trading).
- Describe one new requirement it introduces (e.g., "immutable audit logs").
For conceptual data modeling:
- Start with: "A conceptual data model represents entities, attributes, and relationships without technical details."
- Link to ER diagrams: "It is visualized using ER diagrams, which show how data interacts (e.g., a
Customerplaces anOrder)."
Based on the TU BSc CSIT syllabus for System Analysis and Design (CSC315), unit 5.
Discussion
Loading…