SE206: Advanced Agile Software Development

This course is part of the Cairo University Software Engineering Professional Master's Degree program. Focuses on Agile principles, methodologies, and practices.

Course Syllabus

Unit Main Topics Key Concepts Methodologies / Tools
Unit 1 - Introduction to Agile
- Agile vs. Traditional
- Agile Manifesto & Principles
- Agile Characteristics & Advantages
- Overview of Methodologies
- Software Development Life Cycle (SDLC)
- Waterfall Model Limitations
- Agile Definition (Iterative, Incremental, Self-organizing)
- Traditional (Fixed) vs. Agile (Flexible) Tradeoffs
- Agile Manifesto (4 Values)
- Key Agile Principles (Customer Satisfaction, Welcome Change, Frequent Delivery, Collaboration, Simplicity, Self-organization)
- Agile Characteristics (Modularity, Iterative, Time-bound, Adaptive, People-oriented, Collaborative)
- Advantages (Early Realization, Visibility, Respond to Change)
- SDLC
- Waterfall Model
- Agile Manifesto
- XP (Intro)
- Scrum (Intro)
- DSDM, FDD, Crystal, ASD, UP (Mentioned)
- Agile Quiz
Unit 2 - Agile Effort Estimation
- Large-Scale Challenges
- COCOMO Models
- Story Points
- Fuzzy Logic Approach
- Definition & Purpose of Estimation (Budgeting, Risk, Planning)
- Challenges in Large Scale Agile (Scaling, Coordination, Dependencies)
- COCOMO I (Constructive Cost Model) Basics
- COCOMO Intermediate (Cost Drivers, EAF)
- COCOMO II (Scaling Factors, Post-Architecture)
- COCOMO Imprecision Problem
- Story Points (Fibonacci, Planning Poker)
- Fuzzy Logic (Inference Engine, Defuzzification)
- Proposed Framework (EEEM, IEEM, ACF, Velocity Calc)
- Evaluation Metrics (MRE, PRED)
- COCOMO / COCOMO II
- Cost Drivers
- Story Points
- Planning Poker
- Fuzzy Logic / MATLAB
- MRE / PRED
- Iteration Story Points (ISP)
Unit 3 - Extreme Programming (XP)
- XP Lifecycle & Values
- XP Roles & Practices
- XP Documents
- Suitability (New/Incomplete projects, Small teams)
- XP Lifecycle Phases (Exploration, Planning, Iterations, Productionizing, Maintenance, Death)
- XP Values (Communication, Simplicity, Feedback, Courage, Respect)
- XP Roles (Manager, Coach, Tracker, Programmer, Tester, Customer)
- XP Practices (Sit Together, Informative Workspace, Pair Programming, Stories, Weekly Cycle, Slack, Test-First, Continuous Integration, Daily Meetings)
- XP Documents (User Stories, Task List, CRC Cards, Acceptance Tests)
- Extreme Programming (XP)
- User Stories
- CRC Cards
- Pair Programming
- Test-First Development (TDD)
- Continuous Integration (CI)
- Wall Graphs
Unit 4 - E-Government Context
- Proposed Agile Framework for E-Gov
- Framework Components (SPM, 4-DAT)
- Implementation & Case Study (BSIC)
- Framework Evaluation
- E-Government Definition & Challenges
- Proposed Framework Structure & Process Flow
- Agile Software Product Management (SPM) for Requirements
- 4-Dimensional Analytical Tool (4-DAT) for Methodology Selection
- Integration of XP/SCRUM within the Framework
- BSIC Case Study Application
- Evaluation Metrics (Effectivity Score, Satisfaction Surveys)
- Comparison with Traditional Methods
- Proposed E-Gov Framework
- Agile SPM
- 4-DAT
- XP / SCRUM (Integrated)
- ITPOSMO Checklist
- DFD / Use Cases
- SPSS / Likert Scale (for Evaluation)
Unit 5 - Agile Development Fundamentals
- Software Quality Definition & Attributes
- Requirement Engineering (RE) Process
- SRS & Requirement Management
- Agile: Iterative, time-boxed, adaptive approach.
- Agile Lifecycle: Plan, Analyze, Design, Code, Test per iteration.
- Software Quality: "Fitness for purpose", satisfying SRS.
- Quality Attributes: Portability, Usability, Reusability, Correctness, Maintainability, etc.
- RE: Defining, documenting, maintaining requirements.
- RE Steps: Feasibility, Elicitation/Analysis, Specification (SRS), Validation, Management.
- SRS: Translates customer needs to technical specs.
- Requirement Categories: Functional, Non-functional.
- Characteristics of Good SRS: Correct, Complete, Consistent, Unambiguous, Verifiable, Traceable, etc.
- Agile Development Cycle Diagram
- SRS Document
- RE Process Flowcharts
- Feasibility Study Types
- Elicitation Techniques
- Validation Techniques (Reviews, Prototyping)
- DFDs, ER Diagrams, Data Dictionaries
Unit 6 - Fundamentals of Software Testing
- Verification vs. Validation
- Validation & Verification Techniques
- Software Testing Methods & Levels
- Functional & Non-Functional Testing
- Definition of Testing (Purpose: find defects, meet requirements).
- ANSI/IEEE 1059 Standard for Testing.
- Roles in Testing (Testers, Developers for Unit Testing).
- Importance of Early Testing in SDLC & Agile (Shift-Left).
- Criteria for Stopping Testing (Deadlines, Coverage, Bug Rate).
- Verification ("Are you building it right?") vs. Validation ("Are you building the right thing?").
- Validation Checks: Range, Length, Type, Format, Limit, Presence, Lookup, Check Digit (ISBN example).
- Verification Checks: Double Entry, Screen/Visual Check.
- Software Testing Methods: Black-Box, White-Box, Grey-Box.
- Testing Levels: Functional Testing (Unit, Integration, System, Regression, Alpha, Beta).
- Non-Functional Testing (Performance, Load, Stress, Usability, Security, Portability).
- Case Study Examples (Test Plan Design for DB fields).
- ANSI/IEEE 1059
- SDLC Testing Phases
- Agile Testing (Continuous)
- Unit Testing
- Test Plan Design
- Validation Rules
- Check Digit Algorithm (e.g., ISBN)
- Black-Box, White-Box, Grey-Box Testing
- Functional Testing Types
- Non-Functional Testing Types
- Testing Tools (e.g., Selenium, HP QTP, IBM RFT, SilkTest, TestComplete, WinRunner, LoadRunner, WATIR, Visual Studio Test Pro)

Course Objectives

Grading

Assignments