Course image COE4264 Software Engineering
Trimester 2

The goal of this unit is to introduce to the students concepts which will achieve the following objectives: 

-          Provide the students necessary conceptual background for undertaking advanced studies in software engineering, through courses or on their own.

-          Define what is meant by software engineering and describe the differences between computer science and software engineering.

-          Identify the characteristics of “good software”.

-          To introduce ethical and professional issues that are useful to software engineers

-          Define what is meant by the term “process” and how it applies to software development.

-          Describe several different models of the software development process and understand their drawbacks and when they are applicable.

-          To know what software engineering is and its importance as well as having answers to key questions related to software engineering

-          To introduce architectural design and to discuss its importance

-          To explain the architectural design decisions.

-          Differentiate between the system life cycle and a system development methodology

-          To introduce the concepts of software requirements (user, system and specification requirements)

-          To explain how software requirements may be organised in   a requirements document

-          To understand the concepts of software design 

-          Introduce the notations of the Unified Modeling Language (UML)

-          To discuss coding and unit testing

-          To understand testing techniques that are geared to discover program faults

-          To understand specific approaches to object-oriented testing