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.