SEN 201: Introduction to Software Engineering

Learning Outcomes
At the end of this course, students should be able to:

  1. describe the concept of the software life cycle;
  2. explain the phases of requirements analysis, design, development, testing and
    maintenance in a typical software life cycle;
  3. differentiate amongst the various software development models;
  4. utilise UML for object-oriented analysis and design;
  5. describe different design architectures;
  6. explain the various tasks involved in software project management; and
  7. describe the basic legal issues related to Software Engineering.

    Course Contents
    Software Engineering concepts and principles. Design, development and testing of software
    systems. Software processes: software lifecycle and process models. Process assessment
    models. Software process metrics. Life cycle of software system. Software requirements and
    specifications. Software design. Software architecture. Software metrics. Software quality and
    testing. Software architecture. Software validation. Software evolution: software
    maintenance; characteristics of maintainable software; re-engineering; legacy systems;
    software reuse. Software Engineering and its place as a computing discipline. Software project
    management: team management; project scheduling; software measurement and estimation
    techniques; risk analysis; software quality assurance; software configuration management.
    Software Engineering and law.