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:

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:

Objectives

Upon completion of this course, the student will:

Topics

The following topics will be covered:

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



Malcolm Newey 2005-05-13