Skip to menu | Skip to content |

School of Informatics

MSc in Software Engineering
Course content for 2010 entry

The course comprises eight core taught modules. These modules have been chosen to provide solid coverage of advanced software development, concepts and methods. These concepts and methods are explored using industrial-strength technologies such as the C++ object-oriented programming language and the UML modelling language.

Students also take a substantial independent research project to put these concepts into practice.

Students can choose between "Open Source Systems" and "Business engineering with ERP solutions" modules. You will be asked to make a choice at the start of your studies, after consultation with the course director and module leaders.

6 core module(s):

Click on a module title to display key features.
Advanced Databases
  • 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
Systems Specification
  • Demonstrate a comprehensive understanding of the changing nature of software intensive systems and the range of new methods, tools and techniques available to develop these systems
  • Demonstrate a systematic understanding of the challenges of requirements elicitation
  • Demonstrate a systematic understanding of the fundamentals of software quality assurance techniques
  • Apply the principles and concepts involved in object-oriented analysis and design and build object-oriented analysis and design models using the constructs of the Unified Modelling Language (UML)

then one from ..

Business Enginering 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
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 graphical applications for visualization.
Open Source Systems
  • Evaluate the usefulness of open source systems to solve real world problems, by drawing upon known case studies
  • Critically analyse the open source software development process, its opportunities and problems in developing IT systems, with a particular focus on the individuals and organisations involved; compare and contrast open and closed source software development, by referring to established opportunites and difficulties in developing IT systems
  • Assess open source systems from the legal, ethical and ideological perspectives

and one from ..

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