Skip to navigation | Skip to main content | Skip to footer
Menu
Menu

This is an archived syllabus from 2015-2016

COMP23420 Software Engineering syllabus 2015-2016

COMP23420 Software Engineering

Level 2
Credits: 20
Enrolled students: 215

Course leader: Suzanne Embury


Additional staff: view all staff

Requisites

  • Pre-Requisite (Compulsory): COMP16121
  • Pre-Requisite (Compulsory): COMP16212

Additional requirements

  • Students who are not from the School of Computer Science must have permission from both Computer Science and their home School to enrol.

Assessment methods

  • 60% Written exam
  • 5% Coursework
  • 35% Practical skills assessment
Timetable
SemesterEventLocationDayTimeGroup
w0 WELCOME 1.1 Tue 09:00 - 12:00 -
w0 WELCOME Roscoe TH B Wed 09:00 - 11:00 -
w0 WELCOME Roscoe 2.2 Wed 10:00 - 16:00 -
w0 WELCOME Roscoe 2.3 Wed 10:00 - 16:00 -
w0 WELCOME Roscoe 2.4 Wed 10:00 - 16:00 -
w0 WELCOME Roscoe 2.5 Wed 10:00 - 16:00 -
w0 WELCOME Roscoe 2.2 Tue 11:00 - 15:30 -
w0 WELCOME Roscoe 2.3 Tue 11:00 - 15:30 -
w0 WELCOME Roscoe 2.4 Tue 11:00 - 15:30 -
w0 WELCOME Roscoe 2.5 Tue 11:00 - 15:30 -
w0 LUNCH Mercury Wed 12:00 - 15:00 -
w0 LUNCH Mercury Tue 12:00 - 15:00 -
w0 WELCOME Roscoe TH B Wed 14:30 - 16:30 -
w0 WELCOME Roscoe TH B Tue 14:30 - 16:30 -
Sem 1 Lecture 1.1 Mon 10:00 - 11:00 -
Sem 1 A Workshop Collab Fri 09:00 - 11:00 I
Sem 1 A Workshop Collab Wed 09:00 - 11:00 G
Sem 1 A Workshop Collab Fri 11:00 - 13:00 H
Sem 1 B Lab G23 Fri 09:00 - 11:00 I
Sem 1 B Lab G23 Wed 09:00 - 11:00 G
Sem 1 B Lab G23 Fri 11:00 - 13:00 H
Sem 2 w19-20,23,25,29,32 Workshop Collab Fri 11:00 - 13:00 Q
Sem 2 w19-20,23,29,32 Workshop Collab Fri 09:00 - 11:00 T
Sem 2 w19-20,23,29 Workshop Collab Thu 11:00 - 13:00 R
Sem 2 w2+ TEAM STUDY G102 Thu 13:00 - 14:00 -
Sem 2 w2+ TEAM STUDY G36 Thu 13:00 - 14:00 -
Sem 2 w2+ TEAM STUDY G102 Tue 14:00 - 15:00 -
Sem 2 w2+ TEAM STUDY G36 Tue 14:00 - 15:00 -
Sem 2 w20-25,29-30,32-33 TEAM STUDY Collab Thu 13:00 - 14:00 -
Sem 2 w20-25,29-30,32-33 TEAM STUDY Collab Tue 14:00 - 15:00 -
Sem 2 w21-22,24-25,30-31,33 Workshop G23 Fri 09:00 - 11:00 T
Sem 2 w21-22,24-25,30-31,33 Workshop G23 Thu 11:00 - 13:00 R
Sem 2 w21-22,24,30-31,33 Workshop G23 Fri 11:00 - 13:00 Q
Sem 2 w32 Workshop G102 Fri 09:00 - 11:00 T
Sem 2 w32 Workshop 2.25A Thu 11:00 - 13:00 R
Sem 2 w32 Workshop G102 Thu 11:00 - 13:00 R
Sem 2 w32 Workshop G102 Fri 11:00 - 13:00 Q
Themes to which this unit belongs
  • Software Engineering
  • Agile Methods

Overview

The development of software systems is a challenging process. Customers expect reliable and easy to use software to be developed within a set budget and to a tight deadline. As we come to depend upon software in so many aspects of our lives its increasing size and complexity, together with more demanding users, means the consequences of failure are increasingly severe. Experience from nearly 40 years of software engineering has shown that programming ('cutting code') is only one of a range of activities necessary for the creation of software systems that meet customer needs. The rest of the time is spent on: planning and acquiring resources for the project; investigating the business and technical contexts for the system; eliciting and documenting user requirements; creating a design for the system; and integrating, verifying and deploying the completed components.

This course unit builds on the programming skills you have gained in the first year, to provide you with an understanding of the major challenges inherent in real-scale software development, and with some of the tools and techniques that can be used in their attainment.

Since software engineering is a subject best learned hands-on, this is a project-based module that involves less traditional lecturing than usual. Instead, relevant skills will be acquired during fortnightly two-hour workshops, supported by a weekly one hour lecture. The understanding gained will be practiced through individual and team project assessments.

Aims

This unit aims to give students an introduction to the principles and practice of analysis, design and implementation in object orientated software engineering. Through experience of building a significant software system in a team, students will further their? experience and understanding of the problems that arise in building such a system. They will develop the analytical, critical and modelling skills that are required by a successful software engineer.

Assessment

The COMP23420 course unit as a whole is assessed through a range of components:

  1. Three exercises in the semester one practical coursework sessions. This is assessed individually and will amount to 15% of the marks for the course.
  2. three exercises in the semester two project. You will work in teams in this project and assessment is done for the team as a whole. This will amount to 20% of the marks for the course.
  3. An examination at the end of each semester, covering all the material from each semester; you can expect to have to use material from semester one?s course in examinations in semester two. These exams will be taken on paper and will amount to 60% of the whole course ? 33% in semester one and 28% in semester two.
  4. The careers session in Week 0 and second year tutorials are also counted towards your mark for COMP23420. There are various assessed parts of the second year tutorials over the two semesters. In total, this contributes 5% to your COMP23420 mark.

Syllabus

The following is an outline of the topics covered in COMP23420.

  • Team working
  • Software project planning
  • Software Methods
  • Software Requirements Gathering
  • Functional Modelling: Use Cases and Activity Diagrams
  • Structural Modelling: domain modelling
  • Structural Modelling: system classes
  • Behavioural modelling
  • Introduction to User Interface Design
  • System Design: Software design based on GRASP principles
  • System Design: Software System Architecture
  • System Implementation: Verification and validation of software systems
  • System Implementation: tools

For more detail please see COMP23420's syllabus in detail.

Teaching methods

Lectures

In semester one, week A will have one hour of lecture and one two hour workshop. In week B there will be one hour of lecture and one two hour coursework session held in laboratory space. In semester two, each week will have one hour of lecture. In this semester there is a team based project where you will apply the techniques you have learnt to a significant software engineering task.

Laboratories

The coursework in semester one is an individual project where the requirements gathering, functional modelling, static modelling and behavioural modelling are undertaken for a software system. In semester two there is a team based project where these phases are applied to a new case study and then extended to include the implementation phase. This project will include three iterations of the process that you have learnt.

Feedback methods

This course unit has workshops in the first semester and a team project in the second. Feedback is given mostly face-to-face by members of staff and postgraduate assistants. In particular, in the second semester each of the teams is assigned a postgraduate "team demonstrator" who mentors them though a pase of the project and gives extensive feeback at each of three assessment points.

Study hours

  • Assessment written exam (4 hours)
  • Lectures (50 hours)
  • Practical classes & workshops (34 hours)

Employability skills

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

Learning outcomes

Programme outcomeUnit learning outcomesAssessment
A2 A4 B1 B2 B3 C2 C4 C5 C6 D2 D3 D4 D5Work effectively as part of a team in a software project to build a significant software application.
A2 A4 B1 B2 B3Plan software development activities, deal with problems and risks within a team.
A2 A4 B1 B2 B3 C2 C4 C5 C6 D2 D3 D4 D5Articulate reasons for design/modelling decisions made within a software project.
A2 A4 B1 B2 B3 C2 C4 C5 C6 D2 D3 D4 D5Gather, analyse and critically evaluate software requirements and resulting models that progressively refine a system specification.
A2 A4 B1 B2 B3 C2 C4 C5 C6Design UML models to represent structural and behavioural aspects of a software system.
A2 A4 B1 B2 B3 C2 C4 C5 C6Design system architectures that meet the system specification.
A2 A4 B1 B2 B3 C2 C4 C5 C6Take a set of UML models and implement a system.
A2 A4 B1 B2 B3 C2 C4 C5 C6Apply testing techniques to check that a software system correctly works, i.e. meets its specification.
A2 A4 B1 B2 B3 C2 C4 C5 C6Use tools to aid in the design, construction and testing of a software system.
A2 A4 B1 B2 B3 C2 C4 C5 C6Design user interfaces that support the system's functionality.

Reading list

TitleAuthorISBNPublisherYearCore
Human-computer interaction (3rd edition)Dix, Alan et al.0130461091Prentice Hall2004
Applying UML and patterns: an introduction to Object-Oriented analysis and design and iterative development (3rd edition)Larman, Craig0131489062Prentice Hall2004
Systems analysis and design with UML (3rd edition)Dennis, Alan and Barbara Haley Wixom and David Tegarden9780470400302Wiley2009

Additional notes

Course unit materials

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