SDLC for Deep Learning Software
— Digit Recognition App
A Real-World AI Project Lifecycle
Presented by: [Your Name]
Date: [Insert Date]
Introduction to SDLC
• SDLC (Software Development Life Cycle):
Structured approach to software creation.
• Phases Covered:
• 1. Requirement Analysis
• 2. Design
• 3. Development
• 4. Testing
• 5. Deployment
Project Overview
• Project: Handwritten Digit Recognition
• Goal: Recognize digits (0–9) from images using
a CNN.
• Dataset: MNIST (70,000 grayscale images)
• Tech Stack:
• - Python
• - TensorFlow/Keras
Requirement Analysis
• Functional Requirements:
• - Upload image
• - Predict digit
• - Display result
• Non-functional Requirements:
• - Accuracy > 95%
• - Response time < 2 seconds
Design Phase
• Model Architecture: CNN with 2 Conv layers,
ReLU, MaxPooling, Flatten, Dense layers
• System Design:
• Frontend → Flask API → Deep Learning Model
• Flow: User → Image Upload → API → CNN
Model → Prediction Output
Development Phase
• Model Code (Keras):
• model = Sequential([
• Conv2D(32, (3,3), activation='relu',
input_shape=(28,28,1)),
• MaxPooling2D(2,2),
• Flatten(),
• Dense(128, activation='relu'),
• Dense(10, activation='softmax')
• ])
Testing Phase
• Manual Test Cases:
• | Input | Expected Output | Status |
• |-------|-----------------|--------|
• | Image of '3' | Output: 3 | ✅ |
• | Letter 'A' | Output: Error | ✅ |
• Automated Test:
• assert predict_digit(test_image) == 7
Deployment & Maintenance
• Deployment:
• - Flask app hosted on Heroku/Render
• - Model saved as .h5 file
• Maintenance:
• - Retrain with new data
• - Optimize for mobile
• Future Enhancements: