Learning Outcomes
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.
Course Contents
Software Engineering concepts and principles. Design, development and testing of software
systems. Software processes: software lifecycle and process models. Process assessment
models. Software process metrics. Life cycle of software system. Software requirements and
specifications. Software design. Software architecture. Software metrics. Software quality and
testing. Software architecture. Software validation. Software evolution: software
maintenance; characteristics of maintainable software; re-engineering; legacy systems;
software reuse. Software Engineering and its place as a computing discipline. Software project
management: team management; project scheduling; software measurement and estimation
techniques; risk analysis; software quality assurance; software configuration management.
Software Engineering and law.