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, implementation, 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.