SOFTWARE ENGINEERING - 2024/5
Module code: COM1028
This module will introduce the principles of software engineering. This will include an overview of the systems development lifecycle, agile methods and modern approaches employed to develop and maintain software. This will include aspects on requirements engineering, software design, implementation, and testing. Throughout the module, software engineering methods will be put into practice, and Java programming skills will be consolidated. Students will also be exposed to considerations of social, legal and professional issues.
Computer Science and Electronic Eng
CIROVIC Mariam (CS & EE)
Number of Credits: 15
ECTS Credits: 7.5
Framework: FHEQ Level 4
Module cap (Maximum number of students): N/A
Overall student workload
Independent Learning Hours: 85
Lecture Hours: 22
Laboratory Hours: 22
Guided Learning: 10
Captured Content: 11
Prerequisites / Co-requisites
Introduction to Software Engineering
- Software development lifecycle
- Software products and Agile development
- Functional and non-functional requirements
- Requirements/features elicitation
- Requirements documentation
- System design principles and modelling
- Software architectures
Software Development and Deployment
- Use of libraries and frameworks
- Testing objectives and test types
- Code quality and reliability
- DevOps and Code Management (VCS and CI-CD)
Software Security and privacy
- Security policies, vulnerabilities and threats
- Data integrity, privacy and security
- Content Security Policy
Society, Ethics and Professionalism
- Professional standards and ethics
- Intellectual property, IT regulation and compliance
- Sustainability and EDI considerations ¿¿¿¿¿¿¿
|Unit of assessment
|Scheduled Test (2hrs)
The assessment strategy is designed to help students understand characteristics of well designed software as well as implement and test it.
Thus, the summative assessment for this module consists of:
- Part 1 - an in-semester test covering learning outcomes LO1 and LO2.
- Part 2 - a practical individual project that covers design, implementation and testing. Consequently, it addresses LO3, LO4 and LO5. Students will be given an ER diagram for a given database and a set of specifications for a software system which uses the database. The students will be asked to produce design diagrams and will need to implement the specifications, which will be automatically tested against a set of unit tests which will be supplied by the module leader. The students will also submit a short report to document the software. The deadline for Part 2 will be at the end of the semester.
Formative assessment and feedback
Weekly quizzes assess the understanding of key concepts and provide immediate feedback.
A group exercise on sustainability considerations in software engineering will provide the opportunity for peer feedback.
The use of Poll Everywhere offers formative feedback opportunities throughout the module.
Verbal feedback is also given in lab sessions as the students attempt the lab exercises.
The online discussion forum will be another channel to constantly give feedback to students.
Critical feedback will be given for the coursework.
- The aim of this module is to introduce students to software engineering methods and techniques such that students can put software development into a professional context. Software creation skills will be further practiced in this context.
A second aim is to raise awareness in the student of their professional responsibility and societal impact of the software products they create.
|Identify the different stages of the systems development lifecycle
|Compare common software engineering techniques used within the lifecycle
|Apply key approaches to the specification and design of software
|Demonstrate effective implementation and testing of software using Java and industry standard tools and frameworks
|Demonstrate the use of good professional practices in software engineering
C - Cognitive/analytical
K - Subject knowledge
T - Transferable skills
P - Professional/Practical skills
Methods of Teaching / Learning
The learning and teaching methods include:
- In-person Lectures/tutorials (22 hours; 2 hours/week)
- In-person Lab sessions (22 hours; 2 hours/week)
- Captured content (11 hours).
- Discussion forums
The lectures provide an introduction to the core concepts, which are reinforced through examples and activities. Students will apply their knowledge in the practical lab sessions, using open source data modelling software and Java IDE. Students will work individually as well as collaboratively with their peers. The SurreyLearn VLE provides discussion forums to support the module material and coursework project. Individual and general feedback is continuously provided to support the students' learning.
Indicated Lecture Hours (which may also include seminars, tutorials, workshops and other contact time) are approximate and may include in-class tests where one or more of these are an assessment on the module. In-class tests are scheduled/organised separately to taught content and will be published on to student personal timetables, where they apply to taken modules, as soon as they are finalised by central administration. This will usually be after the initial publication of the teaching timetable for the relevant semester.
Upon accessing the reading list, please search for the module using the module code: COM1028
This module teaches students how to professionally architect a software project. If builds on COM1027 (Programming Fundamentals) and uses industry standard technology such as Java and GIT to provide students, the technical skills to manage the full software development life cycle. These skills are used throughout the rest of the degree programme as well as being highly valued by employers.
This module provides foundational software design and development skills that allow students to apply these techniques to solve complex real-life problems. Students are equipped with practical problem-solving skills, theoretical skills, and software design and development skills. Exposure to industry standard development processes and software prepare the student for industry and placement.
Global and Cultural Skills
Computer Science is a global language and the tools and languages used on this module can be used internationally. This module allows students to develop skills that will allow them to develop applications with global reach and collaborate with their peers around the world. Tools such as GIT used in this module allow software developers to collaborate on projects with their peers worldwide.
Resourcefulness and Resilience
This module teaches a range of Software Engineering principles and practices, and through lab-work, provides students with the skills of how to approach and solve a large-scale software project, with a professional approach to software development and software project management at its core.
This module will raise awareness of sustainability considerations in software engineering related to the United Nations sustainable development goals and the British Computer Society’s aims to make “IT good for Society”. Students will look at how sustainability issues can be addressed through computing technologies, which they will consider when working on their software engineering group projects in year 2 and their professional projects in year 3.
Programmes this module appears in
|Computer Science BSc (Hons)(CORE)
|Each unit of assessment must be passed at 40% to pass the module
Please note that the information detailed within this record is accurate at the time of publishing and may be subject to change. This record contains information for the most up to date version of the programme / module for the 2024/5 academic year.