Software Development Life Cycle
The aim of this module is to cover the main phases of the software development life cycle including requirements analysis, design, development, testing, and maintenance. It is important for software engineers to control the changes in the software development process and for that software configuration is required. A brief introduction to tools and techniques for managing changes in software, code, and documentation will also be discussed in the module. The module also aims to teach students a full spectrum of agile techniques including the Agile Manifesto, Scrum, XP, Lean, and Kanban. The module examines these techniques in great detail. More importantly, through a number of carefully designed, work-based projects and case studies, the module aims to deliver to students the Agile mindset, which is also critical and allows them to apply to real-world problems.
Principal Learning Outcomes
By the end of module students will be able to
- Demonstrate a sound understanding of a range of software process models and symbolic representations.
- Discriminate scenarios where different design patterns and software testing strategies can be applied, and critically evaluate these patterns and testing solutions.
- Apply the range of software tools used tools for configuration management, version control and software build.
- Discriminate the key concepts and techniques used in the Agile Manifesto and Scrum, carefully design and critically evaluate project plans using these techniques.
- Distinguish current and emerging XP, Lean, and Kanban values, principles, and practices, use these techniques to analyse and optimize process workflow.