
Learning Outcomes
After completing this module, students will be expected to be able to:
1. Demonstrate an understanding of the principles of software engineering
2. Demonstrate an ability to carry out software requirements specification, object-oriented analysis and design, and software testing
3. Demonstrate an understanding of object orientation and relate object-oriented models to corresponding object-oriented programming constructs
4. Represent the outcome of each stage in the software lifecycle using standard modeling notations
5. Demonstrate a basic understanding of architectural styles and design patterns
6. Demonstrate an understanding of software reliability issues
Outline Syllabus
- Introduction to software engineering
- Lifecycle models
- Software modeling notations
- Requirements analysis and specification
- Principles of software design
- Functional and non-functional requirements and the need to verify and validate them through a variety of techniques
- Principles of object-oriented design
- Introduction to design patterns and architectural styles
- Validation and testing, including unit testing, and testing against requirements
- Software reliability and quality
- Evolution and maintenance
- Configuration management processes and tools
- Module Supervisor: Cunjin Luo



