SOFTWARE ENGINEERING PROJECT - 2018/9

Module code: COM2027

Module Overview

Software engineering projects are run in teams.  Different members of the team have varying responsibilities and roles that include project management, acquisition of appropriate knowledge about available resources, risk management, quality control, design, programming, testing, documentation and training.

In this module students gain first-hand experience of this process by designing and delivering a software system in a team.  The team take on the responsibility of developing a system to a pre-defined specification, acquire the required level of knowledge of the APIs to be used and by following software engineering standards and procedures.  Through this, the students will gain an understanding of how to successfully create a design to meet the specification, how to independently acquire the required knowledge of the API/framework used and how to implement and test their system before finally delivering this 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 the required standards.

Module provider

Computer Science

Module Leader

DUPRESSOIR FS Dr (Computer Sci)

Number of Credits: 15

ECTS Credits: 7.5

Framework: FHEQ Level 5

JACs code: I300

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

Module Availability

Semester 2

Prerequisites / Co-requisites

None

Module content

Following an overview lecture, groups will start to meet with their project sponsors (one of the module lecturers) in supervised group meetings once a week and without their managers at least once a week in unsupervised group meetings. It is up to the groups to document both supervised and unsupervised group meetings. The supervised group meetings serve to give advice to the group on organisational, managerial and technical questions and empower them to work in an independent manner on their project. Agendas for these meetings need largely to be set by the group itself in a proactive way. Hence the concrete contents of the group meetings will depend on the group's needs to deliver a successful project.

The project will support the development of the following skills:


Project management

Development of an accurate Work Breakdown Schedule (WBS)
Identification of risk and development of mitigation strategies
Delineation of project scope and effective handling of scope creep
Effective tracking of project schedule and change management
Effective team working with clear responsibility and accountability


Software requirement capture

Design and identification of software requirements from customers/end-users


Software design and specification

Design and delivery of software components
Documentation of the design process


Software implementation

Use of development environments and configuration management tools
Independent work to acquire relevant knowledge to use any appropriate API
Adherence to agreed procedures and standards in coding, including documentation
Where relevant, effective use of sensors from a smartphone/tablet, e.g., camera, GPS, gyroscope, and accelerometer
Where relevant, development of low-level software interfaces with hardware components
Where relevant, use of additional services or modules such as web API, QR Code reader, Google Map


Test plans

Identification of criteria that satisfy the end-user’s requirements
Ability to carry out tests as a developer and as an evaluator


Intellectual Property Rights

Intellectual Property Rights and their recognition within software contracts
Intellectual Property Rights as sources of revenue, and threats to those sources (e.g. piracy)


Data privacy and security

IT Law and compliance with respect to data privacy risk, computer misuse, freedom of information, and mandate to retain data for audit trail purposes
Security practices throughout the development process instead of as an afterthought
Principles and practices of information security in terms of integrity, authenticity, availability, and privacy in software design
Threat modelling: Threat Analysis; Safety and Security Requirements



Assessment pattern

Assessment type Unit of assessment Weighting
Project (Group/Individual/Dissertation) FINAL AUDIT (GROUP REPORT) 40
Project (Group/Individual/Dissertation) USER ACCEPTANCE (GROUP-BASED) 40
Coursework INDIVIDUAL CONTRIBUTION REPORT (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 on the three weakest points raised 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


their practical understanding of the importance of project documentation, internal procedures and source code standards including planning, design, documentation and coding standards, risk management, quality and team organisation.
Their ability to produce a working piece of software of good standard within a given length of time and subject to a number of given requirements and other constraints.


The formative assessment of this module consists of the interim project audit in which feedback will be given to students around week 5 to the same criteria as for the following summative Final Audit.

The summative assessment for this module consists of:


Individual Contribution report. The aim of this component is for the students to keep a record of their input and contribution to the project and reinforce industry best practice to keep a log book of the daily and weekly work performed. Addresses LOs 2,4,5
Final audit of the project. The aim is to demonstrate that the group follows good practice in design, documentation, coding and project management. This is continuous mode assessment with a cut-off in Week 11 respectively. This addresses LOs 1,2,3,4,6,7,8.9 The group's project documentation, its internal procedures and the produced source code will be audited to ensure that they adhere to the required project standards, including planning, design, documentation and coding standards, risk management, quality and team organisation. The aim is to demonstrate that the group follows good practice in documentation, coding and project management. Peer assessment will be used to derive individual marks for the module, based upon the combined group assessment.  Individual vivas may be used to assess the contribution of a team member to the project and address LOs 4, 5
User Acceptance Test in which the final developed system will be peer reviewed for user acceptance testing both to determine if the group has successfully met the user and system requirements and delivered a product of good quality. This will be carried through in Week 12. This addresses LO 1. Peer assessment will be used to derive individual marks for the module, based upon the combined group assessment. Individual vivas may be used to assess the contribution of a team member to the project and address LOs 4, 5.


 

Formative assessment and feedback:

Formative assessment is provided as part of the feedback of the Interim Audit in Week 5 or Week 6 which will have a similar scope as the Final Audit, however taking the early state of the project into account. There is also feedback from the Final Audit and the User Acceptance test at the end of the module.  Significant formative feedback on project progress will also be obtained during the supervised group sessions. Elements of peer assessment provide a further source of feedback.

Module aims

  • One of the main aims of this module is to allow students to experience the development of a larger software system in a team.  At the end of this module, students should have practical experience of the software development life cycle and should appreciate the need for appropriate task division and documentation, communication and adherence to standards and procedures. This module also seeks to provide students with an introduction to the role of management in software development projects.

Learning outcomes

Attributes Developed
1 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
2 Recognise the need to adhere to appropriate project procedures and standards KCT
3 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
4 Demonstrate the knowledge and understanding of managerial roles and skills KPT
5 Critically appraise one's own performance with respect to the team work, identify areas for improvement, and demonstrate efforts in self-improvement CPT
6 Demonstrate an understanding of legal standing and requirements of an organisation. KP
7 Be familiar with the issues related to intellectual property and how these can be used to protect software and the reasons for such protection KPT
8 Demonstrate an understanding of IT Regulation and compliance in practice KPT
9 Evaluate the importance of information security and why it matters KT

Attributes Developed

C - Cognitive/analytical

K - Subject knowledge

T - Transferable skills

P - Professional/Practical skills

Overall student workload

Workshop Hours: 4

Independent Study Hours: 132

Lecture Hours: 12

Tutorial Hours: 5

Methods of Teaching / Learning

The learning and teaching methods include:

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


3 hours of lecture in week 1
3 supervised group meetings
Unsupervised group meetings
1 hour x 5 sessions of general support and feedback


2. Project reviews in weeks 11-12.

3. 3 x 3 hours of project management lectures in weeks 1-5 with contributions from industry

4. 1 x 2 hours of session on team working

5. 1 x 2 hour of session on technical/scientific writing

6. 1 x 3 hours of lecture on Intellectual Property Rights and Software contracts; information security; and, IT Regulation and compliance

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

Reading list for SOFTWARE ENGINEERING PROJECT : http://aspire.surrey.ac.uk/modules/com2027

Programmes this module appears in

Programme Semester Classification Qualifying conditions
Software Development for Business BSc (Hons) 2 Compulsory A weighted aggregate mark of 40% is required to pass the module
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 2018/9 academic year.