Skip to navigation | Skip to main content | Skip to footer
Menu Share this content
Menu Search the University of Manchester siteSearch
Search type

Alternatively, use our A–Z index

MRes Advanced Computer Science MRes / Course details

Year of entry: 2018

Course unit details:
Software Engineering Concepts in Practice

Unit code COMP61511
Credit rating 15
Unit level FHEQ level 7 – master's degree or fourth year of an integrated master's degree
Teaching period(s) Semester 1
Offered by School of Computer Science
Available as a free choice unit? Yes

Overview

This is a course which gives students who didn't do a substantial amount of software engineering in their first degree an overview of the subject, with strong enphasis on sofware design and on teamwork.

Pre/co-requisites

Pre-requisites

A reasonable level of programmng skill (as expected of most ACS students)

Aims

At the conceptual level, students will get a systematic grasp of key topics including quality assurance and testing, software design and construction, and distinctive aspects of software development project management. By the end of the course, students will be able both to grasp the big picture of each topic and also have detailed understanding of select subtopics.  Additionally, students will become acquainted with the relevant research literature.

At the experiential level, students will apply their conceptual understanding to working with a large, established, open source software project.

Overall, students will acquire an informed, practical knowledge of what it is to be a professional software engineer.

 

Topics

          • Software engineering as a discipline

          • Software design and architecture

          • Software construction

          • Quality assurance

          • Software development project management

          • Development methodologies

Learning outcomes

Learning outcomes are detailed on the COMP61511 course unit syllabus page on the School of Computer Science's website for current students.

Syllabus

Introduce Software Engineering, comparing and contrasting it with other Engineering disciplines. Explain the fundamental problem of requirements change, and the problems this causes for traditional software development processes. Introduce the Agile approach to software development, and some of the main characteristics of agile methods, e.g. continuous stakeholder involvement, iterative and incremental development and Physicality. The Agile UP will be used as an example of a traditonal process applied in an Agile way.

Explain (and advocate!) the Object Oriented approach to software development, particularly Responsibility Driven Design. Introduce a minimal subset of UML notation that covers most practical cases, and illustrate its use in requirements capture and software design.
The GRASP (General Responsibility Assignment Software Patterns) principles will be used as the basis for discussing software design. These are also the underlying principles on which design patterns are based.

Explain the basics of software testing, in particular unit testing with JUnit. In this course a traditional approach to testing will be taken, where tests are typically written after the code to be tested, but by a different person. The alternative, Test-driven development, will be explored in the Agile course.

Discuss some of the wider context of software engineering, for example user and stakeholder considerations, standards, and the role of software, and software engineers, in large organisations.

Employability skills

Analytical skills
Group/team working
Innovation/creativity
Leadership
Project management
Oral communication
Problem solving
Written communication

Assessment methods

Method Weight
Written exam 50%
Written assignment (inc essay) 50%

Feedback methods

Weekly coursework will be collected via Blackboard, and feedback is provided through the same mechanism or directly in labs.

Recommended reading

COMP61511 reading list can be found on the School of Computer Science website for current students.

Study hours

Scheduled activity hours
Lectures 20
Practical classes & workshops 15
Independent study hours
Independent study 115

Teaching staff

Staff member Role
John Sargeant Unit coordinator
Bijan Parsia Unit coordinator

Additional notes

Course unit materials

Links to course unit teaching materials can be found on the School of Computer Science website for current students.

Return to course details