Durham University
Programme and Module Handbook

Undergraduate Programme and Module Handbook 2018-2019 (archived)

Module COMP2252: SOFTWARE ENGINEERING

Department: Computer Science

COMP2252: SOFTWARE ENGINEERING

Type Open Level 2 Credits 40 Availability Available in 2018/19 Module Cap Location Durham

Prerequisites

  • COMP1011 Introduction to Programming OR COMP1051 Computational Thinking OR COMP1091 Computational Development

Corequisites

  • None

Excluded Combination of Modules

  • None

Aims

  • To gain a detailed understanding of the phases of the software development lifecycle; appreciate the problems that are associated with each of the phases, and be able to identify best practice for their solution.
  • To understand the issues surrounding the project management activities required for the development of a significant piece of software within a team environment and gain an appreciation of the complexities and impact of legislation on the professional work environment.

Content

  • Software development practices: development models including Agile: scrum and XP; plan driven; software reuse; configuration management, maintenance and evolution of large software systems
  • Requirements discovery and analysis: discovery techniques and identification of stakeholder; types of requirements, systems modelling; requirements validation
  • Software Design: design representation forms; system architectures; design patterns; OO design
  • Software Testing: unit, integration and systems testing, reviews and inspections
  • Human Computer Interaction: memory and metal models; interaction design; enhancing usability; evaluating HCI
  • Software Quality and Process: software standards, process maturity models; cost estimation techniques; risk
  • Measurement and Evaluation: Understanding the provenance of software engineering knowledge through measurement, metrics and empirical evaluation
  • Project Management: preparing to be a manager; effective teamwork and leadership; team development
  • Legal and Social Issues: English law; data protection; privacy, intellectual property rights; contracts; professionalism
  • Business and Professional Issues: awareness of industrial and commercial applications that are being developed or currently deployed and to highlight problems faced and solutions identified by industry
  • Software development team project

Learning Outcomes

Subject-specific Knowledge:
  • To have knowledge of current software development practices that is relevant and applicable to software development in industry
  • An appreciation of the challenges facing the software development industry in terms of the software development practices and processes
  • Have an appreciation of the challenges facing the software development industry in terms of the software development process and general project management
  • Have an understanding of project management theory and techniques
  • Be able to describe and analyse how each of the issues within software engineering interrelate
  • Have gained additional knowledge of the problems faced in 'real world computing' from representatives of industrial software development companies
  • Have a detailed understanding of the important legal, ethical and moral issues relating to the building and use of computer applications
Subject-specific Skills:
  • An ability to describe and analyse the different core facets of software engineering and how they interrelate
  • An ability to critically analyse systems with regard to the principles of software engineering so that this analysis aids the production and maintenance of software applications
  • An ability to conduct self-study to further their knowledge in the integration of the topic areas
  • Have gained experience in planning, organising, managing and implementing a large scale software application as part of a team
  • Developed appraisal and evaluation skills through the use of peer and self-assessment and critical appraisal of others work
Key Skills:
  • An ability in technical writing, oral presentation and social interaction
  • An ability to apply methods and techniques to general software development
  • An ability to solve problems in a team environment

Modes of Teaching, Learning and Assessment and how these contribute to the learning outcomes of the module

  • Lectures enable students to learn the principles and methodology as regards software engineering, and appreciate how these are applied
  • Seminars given by external speakers enable students to understand the different development approaches and application of software in industry
  • Practical classes and workshop sessions enable students to correctly develop their knowledge and methodological skills in practical scenarios
  • Examinations assess the knowledge acquired and coursework the ability to use this knowledge to solve problems

Teaching Methods and Learning Hours

Activity Number Frequency Duration Total/Hours
Lectures 63 3 per week term 1 & 2 and 2 per week term 3 1 hour 63
Industrial Speakers 12 Term 1 & 2 1 hour 12
Practicals 21 1 per week 2 hours 42
Preparation and reading 283
Total 400

Summative Assessment

Component: Examination Component Weighting: 40%
Element Length / duration Element Weighting Resit Opportunity
Examination 2.5 hours 100% Yes
Component: Coursework Component Weighting: 60%
Element Length / duration Element Weighting Resit Opportunity
Team Work 66% No
Individual Work 34% Yes

Formative Assessment:

Formative feedback will be given during the coursework students undertake


Attendance at all activities marked with this symbol will be monitored. Students who fail to attend these activities, or to complete the summative or formative assessment specified above, will be subject to the procedures defined in the University's General Regulation V, and may be required to leave the University