SOFTWARE ENGINEERING PROJECT - 2020/1
Module code: COM2027
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.
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
Prerequisites / Co-requisites
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:
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
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
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 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|
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.
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.
- 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.
|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|
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 for SOFTWARE ENGINEERING PROJECT : http://aspire.surrey.ac.uk/modules/com2027
Programmes this module appears in
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 2020/1 academic year.