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 fulfllment of the academic requirement for Chartered IT Professional.

This industry-focused Software Engineering MSc course will extend your computing education, experience and skills through a deep understanding of leading edge techniques for the analysis, design, and development of complex software systems.

The MSc course is delivered by acknowledged experts in the field and draws on City University London's world-class research in Software Engineering.

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 user 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?

  • 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, as well as de facto industry standard languages such as UML and XML.
  • An area of high demand by employers.
  • City University London is a European centre of excellence for software engineering research, directly informing our teaching, ensuring that you're exposed to cutting-edge technologies taught by experts in their field.
  • You will be able to access lecture materials and engage in discussions with student colleagues, teaching staff and the course team.
  • You will be taught by leading academic staff from the Department of Computer Science.

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

Course Fees:

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

Start Date:

Autumn 2015

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 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 user 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 software engineering.      

    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

    Object oriented programming in C++ (taken in Term one).

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

    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.

    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 1 YEAR 1, Semester 1
    Software Systems Design Monday morning Requirements Engineering Friday morning
    Requirements Engineering Friday morning Option module B - see below
    Research methods and professional Issues Friday afternoon YEAR 1, Semester 2
    Option module B - see below Advanced Databases Thursday morning
    Option module A- see below  
    Semester 2 YEAR 2, Semester 1
    Advanced Programming: Concurrency Thursday afternoon Software Systems Design Monday morning
    Service Oriented Architectures Tuesday morning Research Methods and Professional Issues Friday afternoon
    Advanced Databases Thursday morning
    Option module A - see below   YEAR 2, Semester 2
        Advanced Programming: Concurrency Thursday afternoon
        Service Oriented Architectures Tuesday morning

    Option module A
    Semester 2 (full-time), Year 1 Semester 2 (part-time)
    Data Visualization Friday 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: £14,500
    • Part-time Non EU: £7,250 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 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.

    Alumni jobs

    Job title Company name
    Chief Information Officer Jolly Board
    Developer Consultant Symbian
    International Elected Chairman NATO Data Management Services
    IT Project Manager Evered Consultancy Services Ltd
    IT Systems Analyst Procter & Gamble Hellas Ltd
    IT Trainer Manchester College Of Arts And Technology
    Project Manager IBM International Business Machines
    Software Consultant Tripos Uk Ltd
    Software Developer IDBS
    Systems Management Consultant Logica
    Technical Consultant Rule Financial

    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

    Apply online for an MSc (full-time, part-time)

    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