Software Engineering fundamentals SWEN 2302

Course description:

This course is an introduction to software engineering. The course presents an overall introduction to the techniques and principles that are important to develop quality software products. By the end of the course, students will understand that fundamental software engineering topics such as software processes, requirements engineering, software design, software testing, software project management, and software quality assurance

Course Aims:

Upon completion of the course, students will be able to: 
  • Describe software development life-cycle and need for associated processes: the life-cycle phases, engineering and management processes, and relationships between the phases and processes.
  • Describe and compare alternative software process standards and processes (e.g. waterfall, incremental, spiral, prototyping, empirical and agile methods)
  • Explain roles and responsibilities in a software team, and management issues of teams
  • Deferential between software processes and know their advantages/disadvantages in certain context.

Course outcomes:

  • Analyze and create a requirements specifications using scenarios, use cases and use case diagrams from a set of customer needs
  • Brainstorm alternative solutions, select from alternatives, and create designs and appropriate documentation using UML class and sequence diagrams and other appropriate methods for the problem domain.
  • construct working code
  • schedule tasks to achieve goals manage time and physical resources