SOFTWARE ENGINEERING - 2023/4

Module code: COM1028

Module Overview

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.

Module provider

Computer Science and Electronic Eng

Module Leader

APPLETON Joseph (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

Module Availability

Semester 2

Prerequisites / Co-requisites

None

Module content

Introduction to Software Engineering


  • Software development lifecycle

  • Software products and Agile development



Requirements Engineering


  • Functional and non-functional requirements

  • Requirements/features elicitation

  • Requirements documentation



Software Design


  • 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 ¿¿¿¿¿¿¿


Assessment pattern

Assessment type Unit of assessment Weighting
School-timetabled exam/test Scheduled Test (2hrs) 30
Coursework Individual Coursework 70

Alternative Assessment

N/A

Assessment Strategy

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.


Module aims

  • 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.

Learning outcomes

Attributes Developed
001 Identify the different stages of the systems development lifecycle K
002 Compare common software engineering techniques used within the lifecycle KC
003 Apply key approaches to the specification and design of software CT
004 Demonstrate effective implementation and testing of software using Java and industry standard tools and frameworks CP
005 Demonstrate the use of good professional practices in software engineering PT

Attributes Developed

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.

Reading list

https://readinglists.surrey.ac.uk
Upon accessing the reading list, please search for the module using the module code: COM1028

Other information

Digital Capabilities

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.

Employability

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.

Sustainability

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

Programme Semester Classification Qualifying conditions
Computing and Information Technology BSc (Hons)(CORE) 2 Core Each unit of assessment must be passed at 40% to pass the module
Computer Science BSc (Hons)(CORE) 2 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 2023/4 academic year.