Advanced Software Engineering

Course Code: MCA512

Course Title: Advanced Software Engineering  (4 Credits)



Course Contents


Unit 1: Software Engineering Basics – Introduction, Software Engineering Terminologies, Product Life Cycle, Project Life Cycle Models- Spiral model, Waterfall model, Evolutionary prototyping model, Reusable software model.


Unit 2: Software Engineering Methodologies- Introduction, Components of Software Engineering, Software Development Models- Capability Maturity Model, Rapid Application Development model, Incremental model.


Unit 3: Predictive Versus Adaptive Approaches to SDLC- Introduction, Traditional Predictive Approaches to SDLC, Adaptive Approaches to SDLC, Separation of Design and Construction, Unpredictability of Requirements.


Unit 4: Agile Programming- Introduction, Flavors of Agile Development, Agile Manifesto, Refactoring Techniques, Limitations of The Agile Process.


Unit 5: Extreme Programming (XP)- Introduction, XP Equation, XP Values, Assuming Sufficiency- Sufficient time and resources, Constant change of cost, Developer effectiveness, Freedom to experiment.


Unit 6: Extreme Programming Practices- Introduction, Coding Practices, Developer Practices, Business Practices.


Unit 7: XP Events- Introduction, Iteration Planning- Stories and tasks, Estimates and schedules, First iteration, Iteration, Releasing.


Unit 8: Extreme Programming Practices- Introduction, Story Cards, Task Cards, Bullpens.


Unit 9: Roles in Extreme Programming- Introduction, Customer’s Roles, Developer’s Roles, Supplementary Roles.


Unit 10: Coding XP Style- Introduction, Balance Functionality with Simplicity, Implement Only the Needed Features, Eliminate Repetition.


Unit 11: Adopting XP- Introduction, Before Commencing XP, Eliminating Fear and Working Together, Starting Feedback, Including Managers and Customers.


Unit 12: Agile Modeling with XP- Introduction, Agile Modeling – Principles, Comparing XP and Agile Modeling,  Scrum Methodology- The roles of Scrum, Advantages of Scrum.


Unit 13: Dynamic Systems Development Methodology- Introduction, Overview of DSDM, the Principles of DSDM, Phases of DSDM, Core Techniques Used in DSDM.


Unit 14: XP Tools- Introduction, JAVA and XP, Tools and Philosophies, Open source Toolkit.