Software Engineering 2023-24
School Of Computer Science And Electronic Engineering
Module - Semester 2
David Edward Perkins
Indicative content includes:
- Complementary views of the Software Development Lifecycle, such as Waterfall, Double-Diamond, Agile, SCRUM.
- Methods of generating and managing the, often complex, list of requirements for any sizable software engineering project.
- ‘Full-stack’ developers, specialist developers, DevOps, Operations, and their roles in developing and maintaining software systems.
- Source Code Management (SCM) concepts, objects, and processes. Comparing and contrasting the centralised and de-centralised models of SCM tools.
- Continuous Integration (CI) and Continuous Delivery (CD) forms of the development process and how these are supported by other parts of the lifecycle, other tools and processes.
- Traditional and semantic versions practices, demonstrating the strengths and weaknesses of each.
- Strong quality control in software engineering, the practice of managing quality records and the surrounding issues.
- Traditional application environments, enterprise environments, cloud environments and their impact on software engineering.
- Release strategies and processes and their consequences on quality, customers, and the product.
- Appreciate the core concepts of the Software Engineering discipline.
- Associate elements of the Software Development Lifecycle with the appropriate project management and software engineering theory.
- Describe different methods to create, categorise, and store software requirements.
- Evaluate and select appropriate release and delivery strategies according to project requirements.
- Understand the various objects, processes, and strategies involved in Source Control Management and their implementation in contemporary software products.