Systems Analysis and DesignUnit 59 min read
Implementation & Maintenance: Coding, Testing, Deployment & Upkeep
Unit 5 of Systems Analysis and Design covers the final stages of SDLC—coding, testing, deployment, and post-implementation maintenance—with real-world examples from Nepalese apps (eSewa, Daraz) and global tech (Google, WhatsApp), plus exam-focused comparisons of testing types and maintenance strategies.
Key Concepts & Workflow
1. Implementation Phase: Turning Design into Code
Implementation converts the system design into executable code. It involves:
- Programming: Writing code in languages like Java, Python, or C++ based on design specifications.
- Database Creation: Building the database schema (tables, relationships) as per the logical design.
- Integration: Combining modules (e.g., frontend, backend, APIs) into a unified system.
- Configuration: Setting up servers, environments (dev/staging/production), and third-party tools (e.g., payment gateways like Khalti).
How It Works (Step-by-Step)
flowchart TD
A["Design Documents\n(ERD, DFD, UI Mockups)"] --> B["Code Development\n(Modules, APIs, DB Scripts)"]
B --> C["Unit Testing\n(Individual Components)"]
C --> D["Integration Testing\n(System Modules Together)"]
D --> E["System Testing\n(Full System Validation)"]
E --> F["Deployment\n(Staging → Production)"]Real-World Example: eSewa’s Payment Gateway
- Idea Used: Modular Integration
eSewa’s backend integrates with:
- Nepal Rastra Bank’s API (for transaction validation).
- Khalti’s SDK (for mobile payments).
- Database triggers (to log transactions in real-time).
- How It Works:
- User selects "Pay Bill" → eSewa’s frontend sends a request to the backend.
- Backend validates the request via Khalti’s API and checks the DB for user balance.
- If approved, the transaction is recorded in eSewa’s PostgreSQL DB and synchronized with NRA’s ledger.
2. Testing: Ensuring Quality Before Deployment
Testing identifies defects and validates the system against requirements. Types of testing:
| Testing Type | Purpose | Example in Nepal | Tools Used |
|---|---|---|---|
| Unit Testing | Tests individual functions/modules. | Daraz’s "Add to Cart" button logic. | JUnit, Pytest |
| Integration Testing | Tests interactions between modules. | NTC’s billing system + customer portal. | Postman, SoapUI |
| System Testing | Tests the entire system. | Pathao’s ride-matching algorithm. | Selenium, LoadRunner |
| User Acceptance Testing (UAT) | Validates with end-users. | Ncell’s new app beta test by 1000 users. | UserTesting.com |
| Performance Testing | Checks speed/scalability. | NEPSE’s trading platform during Diwali. | JMeter, LoadRunner |
| Security Testing | Identifies vulnerabilities. | Khalti’s two-factor authentication (2FA). | OWASP ZAP, Burp Suite |
Worked Example: Daraz’s Order Queue System
Problem: During sales (e.g., "Daraz Days"), the order queue crashes due to high traffic. Testing Approach:
- Load Testing:
- Simulate 10,000 concurrent users using JMeter.
- Goal: Ensure the queue system (Redis + Kafka) handles 5000 orders/sec.
- Stress Testing:
- Push 20,000 users to find the breaking point.
- Result: System fails at 15,000 users → Scaled up to 3 AWS servers.
- UAT:
- 500 real users test the queue during a beta sale.
- Feedback: "Order confirmation emails delayed by 2 mins" → Fixed by optimizing SMTP server.
3. Deployment: Releasing the System
Deployment moves the system from development to production. Strategies:
| Deployment Strategy | Use Case | Example in Nepal | Risk |
|---|---|---|---|
| Big Bang | Simple systems, low risk. | Local bank’s new ATM software. | High failure rate. |
| Phased (Rollout) | Gradual release. | NTC’s new billing portal (rolled to 3 districts first). | User confusion if not managed. |
| Pilot | Test in a controlled environment. | Pathao’s new "Auto-Rickshaw" feature (tested in Kathmandu first). | Limited feedback. |
| Parallel | Run old and new systems together. | NEPSE’s new trading platform (old system kept for 1 month). | High cost. |
Real-World Example: WhatsApp’s End-to-End Encryption Rollout
- Strategy: Phased Deployment
- Phase 1: Tested with 1000 beta users in Brazil (2014).
- Phase 2: Rolled out to all users in 2016.
- Why? To ensure no data leaks during transition.
4. Maintenance: Keeping the System Running
Maintenance ensures the system remains functional, efficient, and secure. Types:
| Maintenance Type | Activities | Example in Nepal | Tools Used |
|---|---|---|---|
| Corrective | Fixes bugs reported by users. | Daraz fixes "Checkout fails on Chrome" bug. | GitHub Issues, JIRA |
| Adaptive | Updates for new tech/regulations. | NTC updates billing system for new tax laws. | SQL Server Management Studio |
| Perfective | Improves performance/usability. | eSewa adds "Quick Pay" button. | Figma, UserTesting |
| Preventive | Proactively avoids future issues. | Ncell’s DB backups every 6 hours. | AWS Backup, MySQL Dump |
Worked Example: Ncell’s App Crash During Loadshedding
Issue: Ncell’s app crashes when users try to check balance during power cuts (due to high server load). Maintenance Actions:
- Corrective:
- Patched the app to handle offline mode (cached data).
- Adaptive:
- Integrated with NTC’s SMS fallback system.
- Preventive:
- Set up auto-scaling in AWS for sudden traffic spikes.
In the Real World
eSewa’s Transaction Logging
- Idea: Database Triggers + Audit Logs
- How: Every transaction (e.g., electricity bill payment) triggers a DB log entry. If a user disputes a charge, eSewa’s support team retrieves the exact timestamp, amount, and recipient from the log.
- Why It Matters: Prevents fraud and provides proof for disputes.
Daraz’s "Buy Now, Pay Later" (BNPL) System
- Idea: Integration Testing + Load Balancing
- How:
- BNPL module integrates with Daraz’s inventory, user accounts, and payment gateways (Khalti, eSewa).
- Load testing ensures the system handles 10,000 BNPL requests during sales.
- Real Scenario: During "Daraz Days," 50,000 users enabled BNPL → System held up due to untested API limits → Fixed by adding a queue system.
Pathao’s Driver App Updates
- Idea: Phased Deployment + User Feedback
- How:
- New features (e.g., "Tips" button) are rolled out to 10% of drivers first.
- If 90% of them report no issues, it’s deployed globally.
- Why It Matters: Reduces crashes for all 50,000+ drivers at once.
Exam Tip
Testing Questions:
- Expect comparison tables (e.g., "Differentiate between unit and integration testing").
- Worked examples: Be ready to explain how you’d test a real system (e.g., "How would you test NTC’s new billing portal?").
- Tools matter: Mention tools like JMeter, Selenium, or Postman in answers.
Deployment Strategies:
- Match the scenario: Big Bang for low-risk systems, phased for critical ones (e.g., banks).
- Diagrams: Draw a simple deployment timeline if asked about rollout phases.
Maintenance:
- Link to real systems: "Ncell’s app crashes during loadshedding" is a classic exam scenario.
- Types: Always classify maintenance into corrective/adaptive/perfective/preventive.
Common Pitfalls:
- Don’t confuse integration testing (modules together) with system testing (whole system).
- Deployment ≠ Maintenance: Deployment is one-time; maintenance is ongoing.
Visual Summary:
mindmap
root((Implementation & Maintenance))
Coding
Languages: Java, Python
Databases: SQL, NoSQL
APIs: REST, GraphQL
Testing
Types: Unit, Integration, System, UAT
Tools: JMeter, Selenium
Deployment
Strategies: Big Bang, Phased, Pilot
Example: WhatsApp Encryption
Maintenance
Types: Corrective, Adaptive, Perfective, Preventive
Example: Ncell App CrashesBased on the TU BIT syllabus for Systems Analysis and Design (BIT253), unit 5.
Discussion
Loading…