SOFTWARE ENGINEERING PROJECT - 2021/2

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

Module Leader

CROSSAN Andrew (Elec Elec En)

Number of Credits: 15

ECTS Credits: 7.5

Framework: FHEQ Level 5

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

Overall student workload

Independent Learning Hours: 122

Seminar Hours: 12

Tutorial Hours: 3

Captured Content: 13

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 REPORT) 20
Coursework COURSEWORK 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 formative assessment 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.)

The summative assessment for this module consists of:


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

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

  • User Acceptance Test (Group). 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.


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

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
Computing and Information Technology BSc (Hons) 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 2021/2 academic year.