UMBC Training Centers logo

Software Engineering and Programming Best Practices

 

Course Description | Outline | Software Development Training | IT Training

Course Outline

Module 1 - The Software Engineering Process

  • Requirements Specification
  • Design and Implementation
  • Validation
  • Evolution
  • Waterfall Model
  • Incremental Development

Module 2 - Agile Software Development

  • Principles of Agile Methods
  • Problems with Agile Methods
  • Extreme Programming

Module 3 - Software Design and Implementation

  • Software Design Methods
  • Software Tools
  • Source code control
  • Libraries and Code reuse

Module 4 - Software Testing

  • Test Plans
  • While Box Testing
  • Black Box Testing
  • Tools for automated testing

Module 5 - Secure Programming & Information Security Concepts

  • Risks & Threats
  • Information Assurance Pillars
  • Risk Management
  • Security Controls & Vulnerability Mitigation
  • Designing Secure Architecture

Module 6 - Security Vulnerabilities

  • Buffer Overflows
  • Unvalidated input
  • Integer Issues (Overflow & Underflow)
  • Access Control
  • Cryptography
  • Logic errors

Module 7 - Programming Best Practices

  • Safe Library Functions
  • Assume All Input is Malicious / Validate Input
  • Robust Integer Operations
  • Fail-Safe Defaults
  • Rigorous Testing
  • Cryptography
  • Exception Handling
  • Minimize Data Collection via Error Messages
  • Avoid Deprecated Functions