| CODE | CPS2002 | ||||||||
| TITLE | Software Engineering | ||||||||
| UM LEVEL | 02 - Years 2, 3 in Modular Undergraduate Course | ||||||||
| EQF/MQF LEVEL | 5 | ||||||||
| ECTS CREDITS | 5 | ||||||||
| DEPARTMENT | Computer Science | ||||||||
| DESCRIPTION | This study-unit introduces students to the mindset and engineering practices required to build high quality software systems in a professional context. This unit marks the beginning of the students transition from foundational programming skills into professional engineering and sets the tone for the remaining units in the course. The unit is framed around three core pillars: 1. Understanding Software Quality – exploring what software quality means today, why it is difficult to achieve in modern development environments, and how quality drives engineering decisions. 2. Constructing a Delivery Pipeline – setting up a professional pipeline that supports test-driven development, collaborative workflows using source control, and industry standard continuous integration and continuous delivery practices. 3. Following a Software Lifecycle – progressing through requirements engineering, fundamental design patterns, implementation, basic unit testing, infrastructure as code, and their implication on the delivery pipeline. Students will experience software engineering as an interconnected lifecycle rather than a set of isolated topics. Throughout the course, they will examine how each stage, from requirements to deployment, affects software quality and delivery effectiveness. Where possible, students will have the opportunity to apply these techniques to an ongoing real world project in order to witness their practical applicability. While the unit explores academic perspectives on alternative design and process choices, its primary goal is to equip students with the practical skills and judgement needed to operate within a modern, dynamic, team based software engineering environment. Study-unit Aims: This unit aims to familiarise students with the concepts, practices and skills required to begin their transition into professional engineering. It prepares them to function effectively within modern software teams responsible for constructing complex software systems by emphasising software quality, collaborative workflows and the construction of a professional delivery pipeline. The dynamic and challenging nature of software quality makes this knowledge essential for any aspiring software engineer in todays development landscape. Learning Outcomes: 1. Knowledge & Understanding By the end of the study-unit the student will be able to understand the notion of software quality and how it can be built into software systems throughout the development lifecycle rather than being added at the end. Students will understand the major activities in software engineering including requirements, design, implementation, testing, deployment and maintenance, and will be able to discuss how different life cycles and processes impact the delivery pipeline. Students will also gain a working understanding of fundamental design patterns and system modelling. 2. Skills By the end of the study-unit the student will be able to: - Elicit and critically analyse requirements from users; - Select and justify an appropriate development process based on project context; - Design and implement a delivery pipeline guided by automated tests; - Develop a nontrivial system using basic unit testing and test driven development practices; - Design, implement and deploy infrastructure using infrastructure-as-code-principles; - Design and implement measurement programmes in the context of software development; - Apply core engineering techniques to a real world project where possible to observe their practical applicability Main Text/s and any supplementary readings: Main Texts: - Beck, K. (2022). Test driven development: By example. Addison-Wesley Professional. - Farley, D. (2021) Continuous Delivery Pipelines: How To Build Better Software, Independently Published. |
||||||||
| ADDITIONAL NOTES | Students taking this study-unit are assumed to have knowledge of the material covered in the following study-units: - CPS1000 or CPS1011; - CPS2004. |
||||||||
| STUDY-UNIT TYPE | Lecture and Independent Study | ||||||||
| METHOD OF ASSESSMENT |
|
||||||||
| LECTURER/S | Mark Micallef |
||||||||
|
The University makes every effort to ensure that the published Courses Plans, Programmes of Study and Study-Unit information are complete and up-to-date at the time of publication. The University reserves the right to make changes in case errors are detected after publication.
The availability of optional units may be subject to timetabling constraints. Units not attracting a sufficient number of registrations may be withdrawn without notice. It should be noted that all the information in the description above applies to study-units available during the academic year 2026/7. It may be subject to change in subsequent years. |
|||||||||