Software Engineering Fundamentals
Navigate the quality, reusability and effectiveness of the software engineering lifecycle. Design, refine and assess complex systems. Be objective and develop solutions for actual problems. Use top-down and bottom-up design methods to find best fit.
Enrolments for this year have closed. Keep exploring subjects.
Subjects may require attendance
- 31 Aug 2020
QS RANKING 2020
Times Higher Education Ranking 2020
Upon successful completion of this subject you should be able to:
- explain and apply the main aspects of software engineering;
- evaluate requirements for a software system;
- apply the process of analysis and design using the object-oriented approach;
- work effectively in a team to analyse the requirements of a complex software system, and solve problems by creating appropriate designs that satisfies these requirements;
- communicate effectively with others, especially regarding the progress of the system development and the content of the design;
- recognise and describe current trends in the area of software engineering.
- Introduction to Software Engineering
- Process and Tools, Introduction to TDD
- Team work, Project Management and Java
- UML use case diagrams,user stories
- UML class and object diagrams
- UML communication and sequence Diagrams
- Design Principles and Patterns
- State Diagrams
- Activity Diagrams
You are recommended to have completed the following subjects(s) or have equivalent knowledge before starting this subject:
Or have equivalent programming experience before starting this subject.
- OtherDetails -
Stable broadband connection required to access online learning materials and live chat sessions/recordings. (note: mobile broadband users may have difficulties participating in live chat sessions)
This subject is designed to provide you opportunity to gain knowledge and skills necessary to analyse, design and implement complex software engineering projects.
You should learn to analyse and design fairly complex real-life systems, working as teams. You are also made aware of current software engineering standards and processes. You are also taught to consider qualitative aspects including maintainability, extensibility, reusability and robustness in every stage of the software-engineering life-cycle.
At the end of the subject you should be able to combine top-down and bottom-up approaches to software design and choose the most appropriate process considering the underlying technology, project duration, the level of risks and the customer expectations.
- Assignment 1 (15%)
- Assignment 2 (15%)
- Assignment 3 (20%)
- Invigilated Exam (50%)
Check the learning management system (LMS) of your university for textbook details.