SOFTWARE ENGINEERING PROJECT - 2024/5

Module code: COM2027

Module Overview

Software engineering projects are run in teams that must fulfill a variety of roles including project management, background research, design, implementation, quality control and training, while also providing sufficient evidence of robust processes to demonstrate compliance with the relevant Government and industry standards.

In this module students gain first-hand experience of teamwork applied to the software development lifecycle by designing and delivering a software system in a team. The teams take ownership of a pre-defined high-level specification, and must refine it into a software system they can then implement and test, while demonstrating adherence to best or current software engineering practices. Through this group project and associated reflection, the students gain an understanding of how to successfully design a software system that meets the specification, how to independently research and choose technologies, and how to implement and evaluate their system before finally delivering it to the user. Throughout the project, the team is expected to plan and document their activities, hold regular project meetings, and will be audited on how they approach the different tasks and adhere to industry standards.

 

Module provider

Computer Science and Electronic Eng

Module Leader

CROSSAN Andrew (CS & EE)

Number of Credits: 15

ECTS Credits: 7.5

Framework: FHEQ Level 5

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

Overall student workload

Workshop Hours: 9

Independent Learning Hours: 123

Seminar Hours: 12

Captured Content: 6

Module Availability

Semester 2

Prerequisites / Co-requisites

None

Module content

Following an overview lecture during which project specifications are given, groups will start independent work towards delivering it, with a few supervised group meetings with a member of the teaching team, acting as project sponsor. Lectures and workshops will cover basics of teamwork and project management to further guide the student groups in their independent work. Lectures and workshops will also be used to teach specialist knowledge about relevant regulations, standards and processes. Student groups are expected to quickly take ownership of their project and proactively seek the information necessary to the success of their project, also leveraging knowledge and practice gained from previous and parallel modules (including, for example, COM1028) to make independent progress.

The module team will actively support the development of the following skills:


  1. Project management

    • Development of an accurate Work Breakdown Schedule (WBS) and schedule

    • Identification of risk and development of mitigation strategies

    • Delineation of project scope and effective handling of scope creep

    • Effective tracking and monitoring of progress, risk and change

    • Effective team working with clear responsibility and accountability



  2. Software requirement capture

    • Design Thinking



  3. Intellectual Property Rights

    • Intellectual Property Rights and their recognition within software contracts

    • Intellectual Property Rights as sources of revenue, and associated risks

    • Issues related to Intellectual Property in the use of third-party software and services



  4. Data privacy and security

    • IT Law and compliance with respect to data privacy risk, computer misuse, freedom of information, and mandate to retain data

    • Principles and practices of information security in terms of integrity, authenticity, availability, and privacy in software design





Working on the group project may lead students to reflect and improve upon their practice in the following areas:


  1. Software design and specification

    • Design and delivery of software components

    • Documentation of the software design process



  2. Software implementation

    • Independent work to identify and effectively use appropriate technologies, including third-party software, libraries and services

    • Adherence to agreed procedures and standards in coding, including use of version control, style and documentation

    • Development of low-level software interfaces with hardware components



  3. Quality Assurance

    • Adherence to agreed procedures and standards for quality assurance of code and text deliverables, including pair coding, peer-reviewing and peer evaluation

    • Verification and validation of requirements

    • Effective evaluation of other groups' deliverables according to objective evaluation criteria

    • Issues related to Quality Assurance in the use of third-party software, libraries and services




Assessment pattern

Assessment type Unit of assessment Weighting
Coursework PROJECT PLAN (GROUP) 20
Coursework FINAL AUDIT REPORT (GROUP) 60
Coursework INDIVIDUAL REFLECTION (INDIVIDUAL) 20

Alternative Assessment

Due to the problem-oriented and group-based nature of the project and its duration, the module will be reassessed as follows: An individual summer retrieval work consisting in improving the group project based pm feedback given for each failed component, and documenting the undertaken improvements in a written report.

Assessment Strategy

The assessment strategy is designed to provide students with the opportunity to demonstrate the learning outcomes for this module, also including aspects of student-led self-learning, and group-based peer-learning.

The summative assessment for this module consists of:


  • Project Plan (Group). An initial project plan identifying or defining the methodology and processes to be followed by the group in executing the project, also demonstrating understanding and adherence with external constraints such as legal and ethical aspects. This unit assesses LOs 2, 4, 6 and 7, and may also be used as a basis for assessment of LO5.

  • Final Audit Report (Group). A final report documenting the process of executing the project, including changes made to the Project Plan, as well as the project's final output, following standard industry practice. In particular, the report should provide sufficient evidence to demonstrate that the Project Plan, including all the procedures it defines, was followed, or justifying nd documenting deviations. This also gives an opportunity for groups to improve their Project Plan based on feedback given. This assesses LOs 1, 2, 3, 4, 6 and 7, and may be used as partial assessment of LO5. The Final Audit Report also include a User Acceptance Test Manual. This is an evaluation of the delivered system against objective evaluation criteria, also including an element of meta-evaluation where each student's understanding of quality processes is assessed based on the quality of their feedback on other projects. This addresses LOs 1, 3 and, partially, 6 and 7.

  • Individual Reflection (Individual). A short reflective essay in which the students reflect on their experience of the group project, and on their self-development as part of that project and in their chosen roles, perhaps within a well-defined personal development framework. The unit mainly assesses LO5, but may also be used to assess LO2.



The formative assessment and feedback for this module consists in continuous monitoring and feedback on the progress and practices within the group project. This will usually take the form of project sponsorship by the teaching team, with opportunities to provide more directed guidance as needed. Students will be further encouraged to engage in peer evaluation throughout, both within and without project groups. (Within groups, for example, code reviews or pair coding could be used, whereas other groups could be used to refine requirements, beta test early versions or provide feedback on cohort-wide demonstrations.)

Module aims

  • Introduce students to concepts and practice of project management in general, and as it applies to software.
  • Allow students to apply new and prior learning (notably in programming and software engineering) to deliver, as a group, a large software system.
  • Allow students to appreciate the need to follow and critically reflect on best practices, regulations, standards and procedures in context of particular software projects.
  • Expose students to the limits of their own knowledge, and foster their growth towards independence through self-learning within a controlled-environment.

Learning outcomes

Attributes Developed
001 Translate knowledge gained on the systems development life cycle into practical experience of performing the appropriate background research, design, implementation and testing of the software CPT
002 Recognise the need to adhere to appropriate project procedures and standards KCT
003 Execute a software project development successfully in a team and produce high-quality documents and code that are maintainable by other members of the team KCP
004 Demonstrate the knowledge and understanding of managerial roles and skills KPT
005 Critically appraise one's own performance with respect to the team work, identify areas for improvement, and demonstrate efforts in self-improvement CPT
006 Demonstrate an understanding of legal standing and requirements of an organisation, including those related to intellectual property, information security and data privacy KPT
007 Demonstrate an understanding of compliance processes in practice KPT

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:


  1. Practical experience of the project during weeks 1 to 10, consisting of:

    • Whole cohort sessions providing general support and feedback

    • Student-led sessions presenting progress to the cohort and, potentially, external stakeholders

    • At least 3 supervised group meetings for progress monitoring

    • Unsupervised group meetings

    • Roughly 120 hours of self-directed work towards delivery of the project and associated self-learning



  2. Evaluation of peer projects against objective evaluation criteria

  3. Lectures and Workshops covering basics of project management, with industry partners, in weeks 1-5

  4. General support sessions developing transferrable skills

    • Lectures and workshops on team work and technical writing

    • Workshop on design thinking

    • Lectures and workshops on legal and ethical aspects of software engineering




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: COM2027

Other information

Digital Capabilities

The software development skills taught in this module provide students digital skills, including digital communication, collaboration, and participation, that are highly valued in industry. Students work in a group to develop a technical solution for a real-world problem. This module builds on the development skills learned in COM1028 (Software Engineering) and the web development skills learned in COM2025 (Web App Development).

Employability

This module provides technical software developments skills alongside project management and teamworking skills that allow students to work together to solve a complex real-world problem. Students are equipped with practical problem-solving skills, project management skills, and software design and development skills and teamworking skills. All of these are highly valuable to employers.

Global and Cultural Skills

Computer Science is a global language and the tools and languages used on this module can be used internationally. Students learn about the BCS code of conduct and the importance of respect in teamwork. Students learn work together in groups with other students from different backgrounds to solve a problem. 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.

Resourcefulness and Resilience

This module involves practical problem-solving skills in a group setting. Students are taught how to reason about and solve new unseen problems starting with a complex problem scenario and work within a group to develop a practical solution to the problem. Students learn to work with other peoples’ ideas and code and learn to integrate their own solutions into a larger project.

Sustainability

This module asks students to work in groups to develop a project that will be of benefit to society. One category of project that is explored regularly is sustainability, with groups looking to develop web applications to encourage sustainable living.

Programmes this module appears in

Programme Semester Classification Qualifying conditions
Computer Science BSc (Hons) 2 Compulsory A weighted aggregate mark of 40% is required to pass the module
Computer Science MEng 2 Compulsory A weighted aggregate mark of 40% is required 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.