Introduces important concepts such as software processes and agile methods, and describe essential software development activities, from initial software specification through to system evolution. It is designed to support a one-semester course in software engineering that introduces:

  • professional software engineering and defines some software engineering concepts, software engineering processes and agile development
  • the critically important topic of requirements engineering where the requirements for what a system should do are defined. 
  • Introduces system modeling using the UML where It focus on the use of use case diagrams, class diagrams, sequence diagrams, and state diagrams for modeling a software system, 
  • introduces object-oriented design and the use of design patterns, focuses on software testing from unit testing during system development to the testing of software releases and 
  • presents an overview of software evolution issues, processes, software maintenance, and legacy system management.