Syllabuses - UG

CS120 - Introduction to Software Engineering

TIMETABLETEACHING MATERIAL
Credits10
Level1
SemesterTerm 1
AvailabilityAvailable to participants taking UG Graduate and Degree Apprenticeship programmes, e.g. BSc Hons IT: Software Development, BSc Hons IT: Management for Business and BSc Hons Digital and Technology Solutions.
PrerequisitesN/A
Learning Activities Breakdown12 tutorials, online study, weekly blog posts, a project planning exercise and a class test.
AssessmentWeekly blog posts worth 20%, coursework assignment worth 20% and class test worth 60%.
LecturerJames Nightingale

Aims and Objectives

The aim of this 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. 
  • understand the concepts and components of the continuous integration/continuous delivery (CI/CD) pipeline and how these are implemented in their organisation.

Syllabus

  • High level overview of the software lifecycle from initial product conception through to retiral. 
  • Software development processes (waterfall to agile to DevOps etc. and including project management). 
  • 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 like maven etc.). 
  • Testing Principles. Role and purpose of testing. Testing levels (acceptance, system, integration etc.). Principles of designing tests. 
  • Testing Practices. Running tests, testing tools, and handling test results. Filing bug reports. 
  • 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.

  • Stephens. (2015). Beginning software engineering [internet resource]. Indianapolis, IN: Wrox, a Wiley Brand. 
  • Sommerville. (2016). Software engineering [internet resource] (Tenth edition, Global edition.). Boston: Pearson Education Limited. 

Transferable skills

During and after completing this class participants will: 

  1. Gain experience of applying software engineering practices within their work place. 
  2. Gain experience of collaborative working in a software development team.

Last updated: 2022-12-14 12:24:30