Course overview
This course will introduce the theoretical concepts and practical approaches and tools that support the security concerns in the whole systems development lifecycle resulting in software that is secure by default. The course will cover a wide range of software security topics ranging from as security as a cross-cutting concern, methodological approaches to improving software security during different phases of software development lifecycle, integrating secure software development principles and patterns into software development processes, contemporary paradigm of secure continuous software engineering, DevSecOps. The course will be offered in a workshop style mode with small and large parts of software development projects being the major types of assessment tasks.
Course learning outcomes
- Argue the importance of security during the development of software systems
- Describe the significance of security in various stages of the software development process
- Recognize the importance of security requirements as one of the key quality attributes for a software system
- Design and motivate software design that incorporates security measures at multiple layers of abstraction
- Develop skills to write code that is secure in the face of sophisticated attack vectors
- Motivate the application of tools and approaches for identifying security defects and vulnerabilities in software systems
- Understand the security by design paradigm for engineering software for emerging technologies