Attend an Open Evening

Software Engineering  MSc


British Computer Society logo

This full time or part time MSc course is accredited by the British Computer Society for partial fulfilment of the academic requirement for Chartered IT Professional.

This industry-focused Software Engineering MSc course is for Computer Science graduates and experienced professional programmers who want to be acquainted with advanced engineering concepts and methods, as well as design issues and techniques for the development of high-quality, complex software systems.

It will prepare you for a high-quality career in the software industry, e.g. positions in software houses, consultancies and with major software users, such as the financial sector, where there is a significant demand for professionals with a deep knowledge of advanced software development and a rigorous engineering practice.

After the completion of the course candidates may also consider a PhD degree, towards and academic/research career.

The course aims to develop:

  • skills in analysing system requirements and designing appropriate software solutions
  • skills in designing and creating complex software systems to solve real world problems
  • skills in evaluating and using advanced software engineering environments, design methods, and programming languages
  • skills in evaluating different software development artefacts.

Why study Software Engineering at City University London?

  • An area of high demand by employers in many different sectors.
  • Up-to-the-minute curriculum with a strong practical core.
    • Rather than a general Computer Science course, this course focuses on the various stages of the development of software.
    • A focus on key industrial technologies, including object-oriented programming languages such as Java and C++, design patterns, software architectures and service-oriented architecture, cloud computing, as well as de facto industry standard languages such as UML and XML.
  • City University London is a centre of excellence in Systems and Software Engineering research, with one of the largest groups of academics specialising in the area and covering it widely, from requirements to designing reliable systems for the nuclear industry - research that directly informs our teaching, ensuring that you're exposed to cutting-edge technologies taught by experts in their field.
  • In parallel to your degree you will be able to register for a SAP TERP10 Certification course at a substantial discount, thus obtaining an additional, much sought-after qualification.

Scholarships and bursaries

The School offers a range of generous scholarships and bursaries to applicants for this course:

This course is accredited by the British Computer Society (BCS). Graduates from the MSc Software Engineering course are exempt from the BCS Certificate, Diploma and Diploma Project.

Entry Requirements:

Applicants should hold a second class honours degree, the equivalent from an international institution or an equivalent professional qualification.


Course Fees:

  • Full-time EU: £9,000
  • Part-time EU: £4,500 per year
  • Full-time Non EU: £15,000
  • Part-time Non EU: £7,500 per year

Start Date:

Autumn 2016

How to Apply

Entry Requirements

Applicants should hold a second class honours degree, the equivalent from an international institution or an equivalent professional qualification.

Previous academic and commercial experience is also considered. Applicants should have significant previous exposure to computing, especially programming (preferably in Java or C#) and relational databases.

Other Suitable Qualifications

INTO Postgraduate preparation Programmes

If you do not qualify for direct entry, our partner INTO City University London offers academic preparation programmes which focus on the skills you need. Successful completion of the Graduate Diploma in Science and Engineering at INTO City University London means guaranteed progression to this degree.

English Requirements

For those students whose first language is not English, one of the following qualifications is also required:

  • IELTS: 6.5 (minimum of 6.0 in all four components)

Please note that due to changes in the UKVI's list of SELTs we are no longer able to accept TOEFL as evidence of English language for students who require a CAS as of April 2014.

INTO English Language Programmes

If you need to improve your English language skills before you enter this course, our partner, INTO City University London offers a range of English language courses. These intensive and flexible courses are designed to improve your English ability for entry to this degree. Please click the links below for more information.

English for Postgraduate Study

Pre-sessional English

Visa Requirements

If you are not from the European Economic Area / Switzerland and you are coming to study in the UK you may need to apply for a visa or entry clearance to come to the UK to study.  

The way that you apply may vary depending on the length of your course; there are different rules for:

  • Students on courses of more than 6 months
  • Students on courses of less than 6 months
  • Students on a pre-sessional English Language course

Please note: If you require a Tier 4 student visa to study in the UK, you cannot undertake any City University London courses on a part-time basis.

For more information see our main Visa page.

Course Content

Students develop skills in analysing requirements and designing appropriate software solutions; designing and creating complex software systems to solve real-world problems, evaluating and using advanced software engineering environments, design methods and programming languages and evaluating and responding to recent trends in interoperability and software development.

The focus of the course is on advanced engineering concepts and methods, as well as design issues for the systematic development of high-quality complex software systems. These are explored using industrial strength technologies, such as the C++ and Java object-oriented programming languages and the UML modelling language.

The course covers significant trends in systems development, including service-oriented architecture, mobile and pervasive computing, cloud computing, and XML-enabled interoperable services. The course is delivered by acknowledged experts and draws on City's world-class research in Systems and Software Engineering (City has one of the largest groups of academics working in the area in London, working on almost all aspects of the area - from requirements, to designing reliable systems for the nuclear industry).

Course Structure

6 Core Module(s):

Advanced database technologies

  • Describe the different ways of representing and accessing data
  • Discuss the importance and characteristics of distributed databases
  • Describe the issues associated with interoperability of database systems
  • Represent and manipulate data expressed in XML.

Requirements engineering

  • Demonstrate an in-depth understanding of the range of problems which arise in requirement engineering
  • Demonstrate an in-depth understanding of the state-of-the-art practices and leading academic research that are aimed at addressing the range of problems which arise in requirements engineering
  • Demonstrate a systematic understanding of the differences between alternative requirements modelling techniques
  • Apply start-of-the-art requirements methods and techniques to acquire, model and analyse requirements for complex systems.

Research, methods and professional issues

  • Research activity in terms of the effectiveness of its approach and implementation
  • Understand and apply a range of research methodologies such as inductive and deductive reasoning, explanation and prediction in the evaluation of published research
  • Recognise and use a range of secondary data sources when performing a research task
  • Communicate effectively with individuals and groups using a range of media
  • Evaluate the legal, ethical and professional dimensions of typical information professions and information industry practices.

Service oriented architectures

  • Demonstrate deep understanding of the service orientation in business and software systems
  • Demonstrate ability to device and deploy service oriented architectures
  • Demonstrate deep understanding of enabling technologies and standards for service oriented systems
  • Demonstrate deep understanding of service level agreements and their specification, negotiation and management.

Software systems design

  • Demonstrate a systematic understanding of software system design and its connections with requirements engineering, system analysis, system implementation and system verification
  • Use UML as a software system design language
  • Demonstrate a systematic understanding of software architectural styles and use them to create or transform software architecture models
  • Use design patterns, object frameworks and formal specifications techniques in developing detailed system design model with provable properties.

Advanced programming: concurrency

  • Learn the theoretical foundations of concurrency
  • Learn about its main pitfalls (synchronization, deadlocks, resource starvation, etc.), the solutions to these, and how to automatically verify your designs
  • Develop correct multi-threaded systems.

Elective modules

Term one

Programming in C++

  • Analyse substantial well-written C++ programs and adapt them to new requirements.
  • Design and create classes and programs in C++ that are correct, robust, and capable of being understood, reused, and modified by others.
  • Apply various object oriented features, including inheritance, multiple inheritance, and genericity, to enhance software quality.
  • Demonstrate a systematic understanding of the core features of C++ and their application to programming problems.

Programming with Java

  • Create object oriented models of some aspect of the real world with a spatial context.
  • Break down a problem into logical steps (an algorithm).
  • Interpret an existing Java program of moderate complexity by identifying its structure, state and behaviour.
  • Convert algorithms and object-oriented models into clear, well documented Java; develop and share Java code as part of a team.

Term two

Business Engineering with ERP Solutions

  • Explain the fundamental principles of ERP technology and second generation ERP systems, and evaluate their business and technical benefits in context
  • Analyse the critical success factors for ERP system implementation in context
  • Use Accelerated SAP (ASAP) methodology in solving complex problems
  • Perform complex business process modelling using the EPC notation.

Mobile and Pervasive Computing

  • Definitions and motivations: mobile, pervasive and ubiquitous computing; physicality and physical interaction.
  • Theoretical foundations of pervasive computing: context-aware interaction, resource and device constraints.
  • Implementing pervasive systems: sensor, actuators, embedded systems, apps, programming languages and approaches, device types and choices.
  • Capturing needs and requirements for pervasive systems: techniques and challenges.
  • Multi-sensory communication using pervasive computing.

The module is project based - you will implement a hardware/software system (however no prior knowledge of electronics is assumed).

Data Visualization

  • Create graphics and applications that reveal the structure in data sets
  • Apply the seven stages of visualization to analyse and present data graphically
  • Use 'Processing'; the open source programming language and environment to develop interactive applications for visualization.

Cloud Computing

  • Models of computing on-demand: Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS), and Software-as-a-Service (SaaS).
  • Cloud computing technologies: virtualization, resource management, dataflow-computation frameworks (e.g., MapReduce), etc.
  • A practical approach to building and running a test-bed cloud (Amazon's EC2, OpenStack/OpenNebula, etc.)

Read the full programme specification

Teaching and Assessment

Software Engineering MSc is available full-time (12 months) as well as part-time (up to 28 months).

Students successfully completing eight taught modules and the dissertation for their individual project will be awarded 180 credits and a Master's level qualification. Alternatively, students who do not complete the dissertation but have successfully completed eight taught modules will be awarded 120 credits and a postgraduate diploma. Successful completion of four taught modules (60 credits) will lead to the award of a postgraduate certificate.

Each module is assessed through a combination of coursework and examination.

The timetable below is for guidance only and timetables can change at short notice. Teaching is Monday to Friday, between 9am-6pm

FULL-TIME study timetable:PART-TIME study timetable:
Semester 1YEAR 1, Semester 1
Software Systems DesignMonday morningRequirements EngineeringFriday morning
Requirements EngineeringFriday morningOption module B - see below 
Research methods and professional IssuesFriday afternoonYEAR 1, Semester 2
Option module B - see below Advanced DatabasesThursday morning
  Option module A- see below 
Semester 2YEAR 2, Semester 1
Advanced Programming: ConcurrencyThursday afternoonSoftware Systems DesignMonday morning
Service Oriented ArchitecturesTuesday morningResearch Methods and Professional IssuesFriday afternoon
Advanced DatabasesThursday morning  
Option module A - see below YEAR 2, Semester 2
  Advanced Programming: ConcurrencyThursday afternoon
  Service Oriented ArchitecturesTuesday morning
Option module A
Semester 2 (full-time), Year 1 Semester 2 (part-time)
Data VisualizationFriday morning

Business Engineering with ERP Solutions

Wednesday morning

Cloud Computing

Mobile and Pervasive Computing

Wednesday afternoon

* Option module B: students elect to take either Programming in C++ (Wednesday afternoon) or Programming with Java (Tuesday afternoon).

Note: The University reserves the right to make changes to syllabuses, course options and modules as necessary.

Read the full programme specification

Recommended Reading

In order to have a more or less common starting point, brush up your Java using a book such as:

  • Eckel, B. (2002) Thinking in Java - 3rd edition (Prentice Hall PTR) (the link is to a free electronic version)
  • Horstmann, C. (2003) Computing concepts with Java 2 essentials - 3rd edition (Wiley)

If you already know Java, then read the Java IAQ (Infrequently Asked Questions), written by Peter Norvig (of NASA and now Google fame).

You may also wish to undertake some preparatory reading on UML and Object-Oriented Engineering, though it is not necessary since they will be covered in detail during the course.

  • Arlow, J. and Neustadt, I. (2005) UML 2 and the unified process: Practical object-oriented analysis and design - 2nd edition (Addison Wesley)
  • Bruegge, B. and Dutoit, A. (2004) Object-oriented software engineering using UML: Patterns and Java - 2nd edition (Prentice Hall)

Note: module leaders may choose to use different or additional texts to the ones listed above.


  • Full-time EU: £9,000
  • Part-time EU: £4,500 per year
  • Full-time Non EU: £15,000
  • Part-time Non EU: £7,500 per year


For up-to-date information about tuition fees, living costs and financial support, visit Postgraduate Fees and Finance.

Scholarships and bursaries

The School offers generous scholarships to applicants for this course:


Internships offer an exceptional opportunity to make you stand out in a competitive job market place. We have extensive experience in helping students to secure placement employment in the IT industry.

More information on Internships in Industry.

Career Prospects

The MSc in Software Engineering aims to meet the significant demand for graduates with a good knowledge of computing. This demand arises from consultancies, software houses, major software users such as banks, large manufacturers, retailers, and the public services, defence, aerospace and telecommunications companies.

Typical entrants to the course have a degree in an engineering or scientific discipline, and wish to either move into the software engineering field or to the development of software for their current field. Entrants must have previous exposure to computing, especially to programming (particularly in Java or C#) and relational databases (from either academic or professional experience).

From this base, the course provides solid technical coverage of advanced software development, including such widely used languages as C++, Java, UML and XML for which demand is particularly high. The course is therefore quite demanding; its success in providing advanced academic education along these lines is evident from the fact that recent graduates of the course are currently employed in a wide spectrum of organisations.

Of course, the employment value of a master's degree is not just short term. Although on-the-job training and experience as well as technology specific skills are valuable, they can be rather narrow and difficult to validate, and to transfer. The structure of this course ensures that there is a proper balance between the development of particular skills and a solid education in the enduring principles and concepts that underlie complex software system development.

Recent alumni jobs

In 2015 LinkedIn ranked City #5 in the UK for "Best Graduate universities for Software Developers". The table below shows some of the job titles and companies of our recent alumni.

Job title Company name
Senior Engineer Atlassian
Senior Software Engineer Ceridian
Associate Galatea Associates
Mobile App Developer GForces
Consultant Glue Reply
Client Solutions Consultant Tryzens
Developer Oracle
iOS Senior Mobile Software Engineer Thomson Reuters
Software Developer Yoodoo Media Ltd
Web Developer Eduserv

MSc Software Engineering

You should submit your application by one of the following two methods:

1. Completing the online form; or

2. Completing a hard copy of the application form and sending this to the address below.

Please ensure you include your supporting documentation with your application. If you are applying online you should note that confidential references are only acceptable as originals sent in signed and sealed envelopes by post to the address below. References attached as supporting documentation to an online application cannot be considered.

International students: it is important you submit your application to us in sufficient time for you to arrange your visa before the start of the course.

Online applications

You will be able to attach electronic copies of your supporting documents. However, you will be required to submit your confidential references in hard copy (in signed and sealed envelopes) to the address below, together with any supporting documents you do not attach when applying online.

Postal applications and supporting documents

Alternatively, to receive an application pack in the post please contact the Programmes Office:

Tel: +44 (0) 20 7040 0248