Syllabuses - UG

CS114 - Software Engineering 1

TIMETABLETEACHING MATERIAL
Credits20
Level1
SemesterTerm 1
AvailabilityAvailable to participants taking UG Graduate and Degree Apprenticeship programmes, e.g. BSc Hons IT: Software Development and BSc Hons Digital and Technology Solutions.
PrerequisitesN/A
Learning Activities Breakdown12 tutorials, online study and coursework assignments.
Assessment100% coursework consisting of a series of reflective blogs, two practical exercises and a class test.
LecturerJames Nightingale

Aims and Objectives

The aim of the class is to provide a high-level overview of the software engineering lifecycle, software development processes, anatomy of software systems, testing principles and practices, maintenance and evolution. 

Learning Outcomes

After completing this class, participants will be able to: 

  • Understand the software development lifecycle and the role that software development plays in their organisation. 
  • Understand the activities involved in and the differences between the major software development paradigms. 
  • Demonstrate an appreciation of the main components of a software system and the tools and techniques used to manage these. 
  • Understand the role and purpose of testing and the basic principles of test design. 
  • Demonstrate practical competence in the application of testing tools. 
  • Understand the concept of software maintenance/evolution and demonstrate an appreciation of how this managed within their organisation. 

Syllabus

  1. High level overview of the software lifecycle from initial product conception through to retiral. 
  2. Software development processes (waterfall to agile to DevOps etc. and including project management). 
  3. Anatomy of a software system. High-level overview of a system (classes, modules, test cases, data files, etc.) and how these relate to each other and are managed (configuration/version control, e.g. Git) and built into a system (build tools such as maven, etc.). 
  4. Testing Principles. Role and purpose of testing. Testing levels (acceptance, system, integration etc.). Principles of designing tests. 
  5. Testing Practices. Running tests, testing tools, and handling test results. Filing bug reports. 
  6. Maintenance and Evolution. Concept of software maintenance. Filing and responding to feature requests. Regression testing. Making and committing changes. Continuous integration. 

Recommended Reading

This list is indicative only – the class lecturer may recommend alternative reading material. Please do not purchase any of the reading material listed below until you have confirmed with the class lecturer that it will be used for this class.

Recommended reading will be published on the University's VLE. 

Transferable skills

During and after completing this class participants will: 

  • Gain experience of applying software engineering practices within their work place. 

Last updated: 2022-12-14 12:00:36