It is increasingly important for software engineers to understand how to develop secure software. Because software systems are increasingly under attack, methods for developing secure systems need to be considered at each stage of development. This course focuses on methods and practices for the development of secure software systems, including lifecycle process models; risk management; requirements engineering;architecture and design; coding and testing; and governance and management.
As time permits, acquisition of newly developed and COTS software will also be discussed. Students will acquire an understanding of the fundamental concepts for developing secure systems and access to resources for more detailed follow-up studies.
Prerequisite: Prior software engineering or computer security course, or instructor permission.
This course was taught by Dr. Nancy Mead at Carnegie Mellon University. Lectures, case studies, and homework assignments are packaged in a zip file.