Software Engineering II
Software Engineering II covers a range of advanced topics in software engineering. The first part of the module focuses on software quality. It covers several key quality related issues, including software reliability, dependability, safety and security. The module also builds on the topic of risk management and mitigation previously introduced in Software Engineering I. The second part of the module focuses on several key topics in modern software engineering, including software reuse, distributed systems engineering, service-oriented software engineering, and software engineering for large complex systems. At the end of the module, students will be able to understand the broader landscape of the discipline of software engineering, and be able to apply advanced techniques and theory to their software development activity.
Software Engineering II is designed to:
- Introduce and explore mechanisms for building safe, reliable, resilient, secure and dependable software systems.
- Explore in detail the concept of risk, risk management and risk mitigation.
- Provide a detailed understanding of key concepts in the areas of software procurement and implementation.
- Introduce and explore several advanced topics in contemporary software engineering: notably, distributed systems engineering, service-oriented software engineering, and software engineering for large complex systems.
- Provide students with the opportunity to participate in practical software engineering tasks.
- Empower students to be able to develop software in a systematic, structured rigorous, safe and secure manner.
- Understand how software engineering fits within the wider discipline of systems engineering. Understand the socio-technical and business context of information systems.
- Understand the key concepts of dependability and reliability in software engineering, and explain industry standard approaches for ensuring software dependability and reliability.
- Explain the concept of software safety, and understand the software engineering activities that ensure software safety.
- Understand the key concepts of cybersecurity and be able to undertake a cybersecurity risk assessment.
- Understand the software engineering processes and techniques that ensure software security and resilience. Explain how these processes and techniques are applied in industry.
- Understand risk and software engineering approaches for mitigating risk. Analyse risk and draw up risk management measures.
- Understand different approaches towards software procurement and implementation, including software reuse, COTS and bespoke software development. Explain the affordances and constraints associated with different procurement and implementation methods.
- Explain what a distributed system is. Understand the key challenges involved in creating distributed systems.
- Understand the concept of ‘software as a service’. Understand different approaches to implementing software as a service and the challenges of implementing software as a service.
- Explain the concept of ‘system of systems’. Understand the particular challenges faced in the design and implementation of system of systems software.
- Understand the concepts of embedded software and real-time systems software, and the challenges faced building embedded, real-time systems.
- Systems Engineering
- Software Safety, Dependability and Reliability
- Software Security and Resilience
- Risk Analysis and Management
- Software Reuse
- Distributed Software Engineering
- Service Oriented Software Engineering
- System of Systems Engineering
- Real-time Software Engineering
Software Engineering I
All dates and timetables are listed in the programme handbooks of individual programmes.
Students will performed a detailed risk assessment on a case study organisation.
Sommerville, I (2016) Software Engineering. Peason.