COMP8100: Requirements Elicitation and Analysis Techniques
(6 units)
First Semester
35 hours of lectures and tutorial sessions
Lecturer: Clive Boughton
Prerequisites
Enrolment in the MSE program is required.
It will be assumed that the student has at least the mathematical
maturity that is normally expected of any engineering graduate. It
will be assumed that student has the sort of exposure to software
projects that would come from two years of industrial experience as
a graduate.
Co-requisites
There are no corequisites.
Syllabus
Several alternatives for eliciting, describing and managing
requirements during the early period of software development will
be presented and discussed. Several analysis techniques will be
described and demonstrated including process, state and
object-oriented techniques. Requirements Models will be discussed
in detail together with the benefits and differences among the
various modeling methods.
Assessment
There will be an approximately even split of marks between a final
exam and two individual and/or team assignments.
Description
There are many views on what requirements are in the field of
software development, ranging from a customer's wish list to a
fully specified requirements model. On the one hand, the former
usually begins a continuous bevy of misunderstandings, arbitrary
changes, poor quality products, ongoing schedule slip and ever
increasing frustration between customer and contractor. On the
other hand, the latter provides a basis for reasonable estimation,
far less arbitrariness, greater quality, greater chance of meeting
schedule and significantly less frustration between all
stakeholders.
There are also various techniques for eliciting and constructing
requirements. Any currently known technique only forms a part of
the overall goal of achieving better understood and stated
requirements. Practitioners need to learn how and when to apply
any technique. However, there's often an expectation that whilst
the concepts associated with any technique may be simple, they are
usually difficult to apply without a full understanding of their
intent.
There are many requirements elicitation, analysis documentation
and management techniques available today. In this course only
those techniques offering the greatest efficacy will be described
and applied. Some of the topics to be covered in the course
include:
- What are requirements?
- Approaches to elicitation
- Requirements levels
- Operational concepts
- Use cases, event-response tables (or event-action lists
- Data, state and process
- Analysis approaches (stuctured, real time, object-oriented and more)
- Requirements management throughout a project
Rationale
Poor statements of requirements, whether formed at the
beginning of a project or whether developed as the project
progresses, are one of the main sources of project failure. More
so as projects become larger (Standish Report 1998). Over the
past thirty years many requirements elicitation, construction, and
both formal and semi-formal analysis techniques have appeared.
Many have also been supported with CASE tools.
Despite the plethora of techniques and CASE tools, projects
continue to fail because requirements processes are not performed
well enough. Many reasons can be identified for the lack of
performance, but the major one seems to be that there is a low
understanding of the need to state requirements precisely and then
to manage the connection of agreed requirements with the final
product.
This course is intended to help educate and equip serious software
developers and engineers with some approaches that will help them and their
future development teams to identify what needs to be done to
determine an appropriate approach to forming requirements that are
oriented to supporting lower risk of failure and higher quality.
Ideas
This course will carry the main responsibility for:
- presenting the main ideas of software requirements elicitation
and analysis, from a semi-formal viewpoint,
- developing experience in eliciting, analysing, documenting and managing requirements,
- providing experience with various techniques that support the forming of well-stated requirements.
Objectives
Upon completion of this course, the student will:
- know specific approaches to constructing requirements documents and models,
- understand that there are differing levels of requirements statements,
- how to analyse requirements statements to help form a requirements specification,
- understand the relationship between a software requirements
specification and the remainder of the development process,
including the product.
Topics
The following topics will be covered:
- Elicitation
- Use Cases
- Event-Action Lists (Event-Response Tables)
- Data Flow
- Control/Event Flow
- States
- Processes
- Data Dictionary
- Software Requirements Specification (SRS)
- Effort Estimation
- Change Management
- Acceptance Testing
Technical Skills
A student will be able to undertake the processes concerning the
formation of an SRS. He/she will understand how to use the SRS to
help estimate effort and to manage requirements throughout a
project.
Recommended Reading
- Gerald Kotonya and Ian Sommerville.
Requirements Engineering: Processes and Techniques.
John Wiley and Sons, Inc, 1998.
- Karl E. Wiegers.
Software Requirements.
Microsoft Press, 2 edition, 2003.
Malcolm Newey
2005-05-13