Undergraduate Programme and Module Handbook 2019-2020 (archived)
Module COMP2252: SOFTWARE ENGINEERING
Department: Computer Science
COMP2252: SOFTWARE ENGINEERING
Type | Open | Level | 2 | Credits | 40 | Availability | Available in 2019/20 | Module Cap | Location | Durham |
---|
Prerequisites
- COMP1051 Computational Thinking AND COMP1071 Computer Systems
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