Cybersecurity Software Development

Software Engineering and Secure Coding

Overview

This course is an introduction to the basic concepts of software engineering including the software lifecycle. Emphasis is placed on the requirements – design – implementation phases of the lifecycle.  Students will use various software development tools and exposed to software development methodologies including waterfall and agile. Best practices in software design and implementation with a view toward recognizing and avoiding weakness and vulnerabilities in software is a key part of this course.

Who Should Take This Course

Prerequisites

Students should have significant training or experience in a high level language such as C / C++ or Java.

Course Outline

Software Engineering and Secure Coding

  • The Software Engineering Process
  • Requirements Specification
  • Design and Implementation
  • Validation
  • Waterfall Model
  • Agile Software Development
  • Extreme Programming
  • Software Design and Implementation
  • Source code control
  • Libraries and Code reuse
  • Software Testing
  • Tools for automated testing
  • Secure Programming & Information Security Concepts
  • Risks & Threats
  • Information Assurance Pillars
  • Risk Management
  • Security Controls & Vulnerability Mitigation
  • Designing Secure Architecture
  • Security Vulnerabilities
  • Access Control
  • Cryptography
  • Programming Best Practices
  • Safe Library Functions
Search UMBC Training Centers