Introduction

Lecture 1 - Course Overview & Introduction

  • Software Engineering = A systematic approach to develop software.
    • Ideation
    • Requirements
    • Design
    • Development
    • Testing
    • Deployment
    • Maintenance

Differences

  • Compared to Civil Engineering, Software Engineering is iterative and agile.
  • Compared to Hardware, Softwares do not ware out.
  • Compared to Program, Softwares are beyond just the executables: documentations, source code, infrastructures,…
  • Software is extremely complex!

Hardware Lifecycle

Software Lifecycle

Security

> Software security is the idea of engineering software so that it

continues to function correctly under malicious attack.

  • Be proactive, address the issues early in the life cycle.

Concepts

  • Vulnerability

    • Caused by Bug during the implementation
    • Caused by Design Flaw — usually in the security features.
  • Exploit = the action of exploiting the vulnerabilities

  • Threat = actor or agent that is a source of danger; or, a class of exploits.

  • CIA Triad = Confidentiality + Integrity + Availability

Goals

  • Identification & Authentification
  • Accountability (Non-repudiation) = who is doing what can be traced
  • Privacy

Databases

“Weakness” is the Class, while “Vulnerability” is the Object.