Surrey University Stag

SOFTWARE ENGINEERING - 2023/4

Module code: COM1028

Module Overview

This module will provide an introduction to the principles of software engineering.  This will include an overview of the systems development lifecycle, agile methods and common approaches employed to develop software.  This will include aspects on requirements specification, design, implementation and testing.  Throughout the module, software engineering methods will be put into practice, and Java programming skills will be consolidated.

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.  

Module provider

Computer Science

Module Leader

CIROVIC Mariam (Computer Sci)

Number of Credits: 15

ECTS Credits: 7.5

Framework: FHEQ Level 4

JACs code: I300

Module cap (Maximum number of students): N/A

Overall student workload

Independent Learning Hours: 95

Lecture Hours: 22

Laboratory Hours: 22

Captured Content: 11

Module Availability

Semester 2

Prerequisites / Co-requisites

None

Module content

Systems development lifecycle


  • Different methodologies

  • Comparative analysis



Requirements


  • Capturing requirements

  • Formal software specification



Design


  • From textual requirements specification to software design

  • Introducing design patterns such as Observer, Decorator, Iterator



Implementation


  • Software and professional standards

  • IT regulation and compliance

  • Intellectual property rights

  • Documentation

  • Configuration management



Testing


  • Objectives

  • Testing stages and testing types



Programming:


  • Inheritance, Abstract Classes and Polymorphism

  • Exception handling and File Handling

  • Database connectivity and Basic threads



Software Security


  • Security policies, vulnerabilities and threats

  • Data integrity, privacy and security

  • Content Security Policy 


Assessment pattern

Assessment type Unit of assessment Weighting
Online Scheduled Summative Class Test ONLINE (OPEN BOOK) TEST ON REQUIREMENTS ENGINEERING AND MODELING WITHIN A 4HR WINDOW 30
Coursework DESIGN, DEVELOPMENT, TESTING AND REPORT 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 and the systems development lifecycle.  Common approaches to software engineering will be experienced so that students can put development into a professional context. Software creation skills will be further practiced in this context.

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 C
003 Apply key approaches to the specification, design, implementation and testing of software CT
004 Apply basic design patterns in object-oriented design and implement key aspects of object-oriented design using Java CP
005 Demonstrate application 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. 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

Programmes this module appears in

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