This course is part of the Cairo University Software Engineering Professional Master's Degree program. Focuses on Agile principles, methodologies, and practices.
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) |