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, big data, as well as de facto industry standard languages such as UML and XML.
  • City University London has one of the largest groups of academics specialising in the area of Systems and Software Engineering 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, bursaries and prizes

The School offers a range of generous scholarships, bursaries and prizes 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, big data, 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

5 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.

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

Advanced algorithms and data structures

  • Revisit basic data structures and algorithms with more in-depth analysis
  • Introduce advanced algorithms and data structures for diverse applications, such as logic programming, machine learning, simulation, signal processing, and information retrieval
  • Develop new algorithms or variants for a given purpose.

Big data

  • Understand the theory and techniques for data acquisition, cleansing, and aggregation.
  • Identify and understand the principles and functionalities of Big Data programming models and tools
  • Acquire, process, and manage large heterogeneous data collections
  • Develop algorithms and systems for information and knowledge extraction from large data collections.

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.

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 arising in requirements engineering
  • Demonstrate a systematic understanding of the differences between alternative requirements modelling techniques
  • Apply state-of-the-art requirements methods and techniques to acquire, model and analyse requirements for complex systems.

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 2015/16 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 (showing the schedule for 2015-16) is for guidance only and timetables can change at short notice. Teaching is Monday to Friday, between 9am-6pm (daytime delivery - there is no evening delivery!).

FULL-TIME study timetable: PART-TIME study timetable:
Term 1 YEAR 1, Term 1
Software Systems Design Monday morning Software Systems Design Monday morning
Research methods and professional Issues Friday afternoon Term 1 elective - choice A  
Term 1 elective - choice A  YEAR 1, Term 2
Term 1 elective - choice B   Advanced Databases Thursday morning
  Term 2 elective  
Term 2 YEAR 2, Term 1
Advanced Programming: Concurrency Thursday afternoon Research Methods and Professional Issues Friday afternoon
Service Oriented Architectures Tuesday morning Term 1 elective - choice B  
Advanced Databases Thursday morning   
Term 2 elective  YEAR 2, Term 2
   Advanced Programming: Concurrency Thursday afternoon
   Service Oriented Architectures Tuesday morning
Term 1 elective modules
(students choose two overall)
Term 1 (full-time), Year 1/2 Term 1 (part-time)
Advanced Algorithms and Data Structures Wednesday afternoon
Big Data Wednesday afternoon
Programming in C++ Wednesday afternoon
Requirements Engineering Friday morning
Term 2 elective modules
(students choose one overall)
Term 2 (full-time), Year 1 Term 2 (part-time)
Data Visualization Friday morning
Business Engineering with ERP Solutions Wednesday morning
Cloud Computing Wednesday afternoon
Mobile and Pervasive Computing Wednesday afternoon

Note: The University reserves the right to make changes to syllabuses, course options and modules as necessary. Also note that some electives may not be offered some years.

Read the full 2015/16 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)

A short course on Java, like the short course on Java offered by City University London, can help prepare you for this MSc (we assume that entrants know how to program in Java and this language is used in a number of modules).

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.

Future Finance Loans

Future Finance offers students loans of between £2,500 and £40,000 to help cover tuition fees and living expenses. All students and courses are considered. All loans are subject to credit checks and approval for further details please visit the City Finance website.

Scholarships, bursaries and prizes

The School offers generous scholarships, bursaries and prizes to applicants for this course:


Postgraduate students on a Computing and Information Systems course are offered the opportunity to complete up to six months of professional experience as part of their degree.

Our longstanding internship scheme gives students the chance to apply the knowledge and skills gained from their taught modules within a real business environment. An internship also provides students with professional development opportunities that enhance their technical skills and business knowledge.

Internships delivered by City University London offer an exceptional opportunity to help students stand out in the competitive IT industry job market. The structure of the course extends the period for dissertation submission to January, allowing students to work full-time for up to six months. Students will be supported by our outstanding Professional Liaison Unit (PLU) should they wish to consider undertaking this route.

Benefits of completing an internship at City are:

  • Develop new skills - Internships offer on-the-job learning that will help enhance your skill set and add to your CV.
  • Exclusive opportunities - The PLU is a dedicated team of internship and professional development specialists. We hold longstanding relationships with a large range of employers and proactively seek out exclusive internship opportunities to suit your needs and interests.
  • Central point of contact - You will be assigned a Work-Based Learning Advisor who will provide help and support throughout the internship process, from applying to roles through to completion of your Masters.
  • Enhance your employability - Organisations are very keen to employ graduates with existing professional experience. It is common for internship providers to offer interns full-time positions on completion of their Masters.
  • Gain an insight into an organisation and industry - This will help you with future career planning.
  • Give you a head start in your chosen field - With the experience you gain, you may be able to enter an organisation at a higher level on completion of your studies.
  • Develop your network of professional contacts - This will be useful when you come to apply for positions and roles within your preferred area.
  • Earn while you learn - The majority of internships provide a competitive salary.

More information on postgraduate internships.

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

Apply for MSc Software Engineering

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