SOFTWARE ENGINEERING - 2024/5
Module code: COM1028
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.
CIROVIC Mariam (CS & EE)
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
Prerequisites / Co-requisites
Systems development lifecycle
- Different methodologies
- Comparative analysis
- Capturing requirements
- Formal software specification
- From textual requirements specification to software design
- Introducing design patterns such as Observer, Decorator, Iterator
- Software and professional standards
- IT regulation and compliance
- Intellectual property rights
- Configuration management
- Testing stages and testing types
- Inheritance, Abstract Classes and Polymorphism
- Exception handling and File Handling
- Database connectivity and Basic threads
- Security policies, vulnerabilities and threats
- Data integrity, privacy and security
- Content Security Policy
|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|
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.
- 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.
|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|
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.
Upon accessing the reading list, please search for the module using the module code: COM1028
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.
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.
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.
Programmes this module appears in
|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 2024/5 academic year.