Software Engineering II
This module will not run in 2019/20.
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 component-based software development, distributed systems engineering, service-oriented software engineering, and software documentation. 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 the concepts of embedded software and real-time systems software, and the challenges faced building embedded, real-time systems.
- Explain what a distributed system is. Understand the key challenges involved in creating distributed systems.
- Understand different approaches towards software procurement and implementation, including software reuse and component-based software engineering. development. Explain the affordances and constraints associated with component-based software engineering.
- 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.
- Understand the importance of software documentation in the development process. Be able to produce appropriate, accurate and well-written documentation.
- Systems Engineering
- Software Safety, Dependability and Reliability
- Software Security and Resilience
- Risk Analysis and Management
- Real-time Software Engineering
- Distributed Software Engineering
- Component-based Software Engineering
- Service-oriented 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.