Unit-2
Module-4
Introduction to Programming Methodologies
Frameworks that shape:
• Code architecture
• Team collaboration
• Delivery timelines
What is Top-Down
Programming?
Big Problem
Decomposition
Implementation
What is Bottom-Up Programming?
Small Modules Integration OOP Focus
Top-Down vs. Bottom-Up: Key Differences
Aspect Top-Down Programming Bottom-Up Programming
Starts from the overall system and breaks Starts from small modules and builds up to
Approach
into submodules the full system
Low-level components first, then
Development Flow High-level design first, then details
integration
Focus Emphasizes system architecture Emphasizes building reusable components
Integration tested after all modules are Individual units tested before full
Testing
written integration
Design the complete app interface before Create helper functions or modules before
Example
writing code full application
When to Use Top-Down or Bottom-Up?
Top-Down Best For: Bottom-Up Best For:
• Well-defined problems • Complex systems
• Structured processes • Reusable components
• Linear solutions • Object-oriented design
Overview: Waterfall
Methodology
Linear & Sequential Document-Driven
Each phase Extensive
completes before documentation at
next begins each stage
Stable Requirements
Best for unchanging specifications
Waterfall: Detailed Methodology
Requirements
Design
Implementation
Testing
Deployment & Maintenance
Strengths Weaknesses
• Predictable timeline & budget • Inflexible to change
• Clear documentation • Late issue discovery
• Simple to understand • Slow feedback cycle
Example: Developing a Library Management System
Phase Task
The team meets librarians, faculty, and students to gather detailed requirements.
1. Requirement Analysis For example: – Track books and borrowers – Generate fine reports – Search
books by title/author
The architecture is designed. For example: – Database tables: Books, Users,
2. System Design
Loans – UI design: Login screen, Search screen, Issue/Return interface
3. Implementation Developers write code using a language like Python, based strictly on the design.
QA team tests modules like book issue, fine calculation, and search. Bugs are
4. Testing
fixed. No new features are added.
5. Deployment The system is installed in the university library and is ready for use.
6. Maintenance Small fixes are made (e.g., fine not calculated correctly).
Iterative Customer-Focused
Short development cycles Constant user feedback
Collaborative Incremental
Cross-functional teams Small, usable deliveries
Sprint Planning Development
Select features for Build working features
14 week cycle
Retrospective Review & Demo
Improve process Show working product
Strengths Weaknesses
• Adapts to change quickly • Scope creep risk
• Early, frequent deliveries • High stakeholder commitment
• Continuous improvement • Documentation often lacking
Example: Agile in E-commerce
Agile Phase / Sprint Task
Developers build a working version with: – User login – List of
Sprint 1 Basic Ordering
nearby restaurants – Placing an order
Users test the app. Feedback: “Add live order tracking” and
Sprint Review & Feedback
“Need payment gateway.”
Developers add: – Order tracking – Payment via UPI/cards –
Sprint 2 Tracking & Payment
Notifications
Sprint Review & Feedback Feedback: “Add coupon system” and “Search by cuisine.”
Developers implement: – Discount coupons – Filter/search
Sprint 3 Coupons & Search
restaurants
Team continues to refine the app: – Ratings/reviews – Delivery
Ongoing Sprints
partner interface – Admin dashboard
Unified Teams Automation
Dev + Operations collaboration Reduced manual processes
Infrastructure CI/CD
Environment consistency Continuous integration & deployment
DevOps Methodology:
Practices & Tools
Key Practices Popular Tools
• Automated testing • Jenkins CI/CD
• Infrastructure as Code • Docker Containers)
• Continuous deployment • Kubernetes Orchestration)
Strengths & Challenges:
DevOps
Strengths Challenges
• Faster release frequency • Cultural shift required
• Reduced production errors • Complex toolchain
• Efficient scaling • Security integration
Example: DevOps
Stage DevOps Practice in E-Commerce Website
1. Plan Product team defines new features: e.g., “Add Wallet Payment Option”
2. Develop Developers code new features and enhancements using Git for version control
Automated build tools (like Jenkins) compile and test the code each time a
3. Build
developer commits changes
Automated tests are triggered to validate login, payment, cart, and search
4. Test
functions
If tests pass, the code is deployed to a staging server automatically for user
5. Release
acceptance testing (UAT)
With a single click, the update is released to the production server with zero
6. Deploy
downtime using tools like Docker/Kubernetes
Monitoring tools (like Prometheus, Grafana) track uptime, errors, and usage; alerts
7. Operate & Monitor
are raised if failures occur
Choosing a Methodology: Real-World Applications
Waterfall Agile DevOps
• Defence projects • Startups • SaaS platforms
• Government systems • Web applications • Cloud services
• Embedded software • Mobile development • Frequent deployments
1 Match Method to Project 2 Combine Practices 3 Evolve Over Time
Consider requirements Hybrid approaches Methodologies should
stability, team size, often yield best results adapt as projects
industry mature