Requirements: 2011-2012
Lecturer | |
Degrees | Schedule C1 — Computer Science |
Term | Hilary Term 2012 (16 lectures) |
Overview
Many software and hardware development projects go through a phase called 'Requirements Capture and Analysis' which tries to determine the properties a system should have in order to succeed in the environment in which it will be used. This can be a very difficult task, and typical requirements documents contain errors, some of which are very difficult to detect, as well as very expensive to correct later on. Experience shows that many errors arise from social, political and cultural factors and recent research has focused on the problem of reconciling such factors with traditional concerns about the more technical aspects of system development.
This course takes a unique stance to the discussion of requirements in that it acknowledges the involvement of both the social and technical concerns. The course surveys a wide range of different approaches to the problem of determining requirements and aims to provide students with a set of techniques and skills that may be tailored to address a wide range of requirements problems.
The programme of study starts by considering traditional software engineering approaches to requirements engineering, more modern techniques including the use of UML and Use Cases, and progresses through a range of approaches, including ones which consider both technical and social concerns. Practical guidance is also included. Current methods for requirements capture often make implicit assumptions about the nature of social life and conduct and these will be discussed on the course and alternatives presented. The course itself has been designed to challenge many existing conceptions of the design process and there will be plenty of time to discuss the critical issues.
Course presentation combines lectures, classes and student presentations of pre-study exercise. The course is illustrated with a number of case studies, and students are encouraged to select appropriate methods, tools and techniques to address the issues raised by case studies.
The course is designed to enable participants to:
- Appreciate how requirements fit into the overall software development lifecycle.
- Be aware of a variety of methods tools and techniques for requirements capture and analysis.
- Become aware of some of the typical issues and problems facing practical requirements engineering.
- Identify methods tools and techniques for understanding user, work practice and organisational requirements.
The material from the lectures and classes will be assessed by a take-home assignment consisting of a report based on a case study. Individual student class presentation of pre-study material contributes to the assessment.
Learning outcomes
At the end of the course the student will have a breadth of knowledge about the range of requirements methods, tools, and techniques. They will gain an appreciation of at least two methods, and obtain practical guidance on elicitation techniques.Prerequisites
There will be a pre-study exercise.Synopsis
- The Software Design Process: the need for requirements analysis; the software lifecycle.
- Classification of Requirements Methods: an orientation from which to assess existing and novel methods.
- Hard Methods: underlying assumptions; practical exercise in use case scenarios.
- Requirements Elicitation; various techniques; strengths and weaknesses.
- Soft Methods: Soft Systems Methodology; other socio-technical approaches.
- Managing the Requirements Process: methods that provide a structure for co-operation between different stakeholders.
- Specifying Requirements: functional and non-functional requirements; specification exercise.
- Video-based Requirements Capture
- Prototyping: the role of prototyping in requirements techniques for prototyping.
- Requirements for Future Technologies: Computer Supported Co-operative Work (CSCW); networked multi-media systems; eScience
Reading list
There is no set textbook for this course. References that describe some of the aspects of the course are: Alan M. Davis. (1993). Software Requirements: objects, functions and states. Prentice Hall. (This text covers many of the more traditional approaches to requirements engineering).Doug Rosenberg and Kendall Scott, Use Case Driven Object Modelling with UML Addison Wesley 1999. (A short introduction to the application of use cases and modelling within a modern software development situation).
Marina Jirotka and Joseph Goguen (Eds). (1994). Requirements Engineering: Social and Technical Issues. Academic Press. (This is an edited collection which discusses in detail the role of both social and technical issues in requirements engineering).
Sommerville, I. and Sawyer, P. Requirements Engineering. A good practice guide. John Wiley and Sons. 1997. (A set of guidelines for 'best practice' intended for practitioners in the field).
Taking our courses
This form is not to be used by students studying for a degree in the Department of Computer Science, or for Visiting Students who are registered for Computer Science courses
Other matriculated University of Oxford students who are interested in taking this, or other, courses in the Department of Computer Science, must complete this online form by 17.00 on Friday of 0th week of term in which the course is taught. Late requests, and requests sent by email, will not be considered. All requests must be approved by the relevant Computer Science departmental committee and can only be submitted using this form.