EECS4312 Fall 2015: Software Engineering Requirements

Fall 2015: CSE4312 – Software Engineering Requirements

Please login at the bottom of this page before proceeding.

← Please read the forum regularly for course updates.

Project submissions instructions are here

Lecture Times

Learning outcomes

Software requirement engineers are experts at eliciting the needs of their customers, translating customer needs into a precise requirements documents (that describes what – not how – customer needs shall be satisfied), and providing systematic evidence-based methods to validate the requirements and verify that the final software product satisfies the requirements. Precise software requirements documents are especially needed in safety critical cyber-physical systems (e.g. nuclear reactors, medical devices and transportation systems) and mission critical business systems (e.g. banking systems, health provision and cloud systems). At the end of the course, students will be able to

A work-intensive project will allow students to apply their knowledge to a small but non-trivial example.

Self-paced learning

Attendance at all lectures is obligatory as material not available elsewhere will be covered. If you Login at (see bottom of this page), you can access additional information such as notes and some slides (on the SVN).

You are required to develop facility in the following, on your own, in order to elicit requirements and write precise requirements documents:

In class we will only cover some (but not all) of the above. So you will need to master the above material at your own pace. There will be some informal labs to help with PVS.

Place the following in the .cshrc file in your home directory of your Prism account:

setenv PVS_LIBRARY_PATH "/cse/local/pkg/pvs/nasalib"
source /cs/local/packages/texlive/cshrc.texlive 

Virtual Machine with PVS/Latex

PVS and Latex are available on the Prism/Linux workstations. There is also an SEL Linux-based Virtual Box Image. For instructions, see here (use your Prism login)

The SEL-VM is also available on red:

red:/vbox/eecs-vbox-sel.ova

The VM has PVS, Latex, Eclipse, EiffeStudio, ETF, Rodin, etc. so that you can run all the software on your Laptop or home computer.

Required Textbook

The following textbook is required reading: Requirements Engineering Management Handbook (2009) (146 pages including appendices). This text is made available without cost as a PDF by the U.S. Department of Transportation, Federal Aviation Administration.

This Handbook describes the following 11 main-level recommended practices that allow developers to progress from an initial, high-level overview of a system to be developed to a detailed description of its behavioral and performance requirements.

1. Develop the System Overview

2. Identify the System Boundary

3. Develop the Operational Concepts

4. Identify the Environmental Assumptions

5. Develop the Functional Architecture

6. Revise the Architecture to Meet Implementation Constraints

7. Identify System Modes

8. Develop the Detailed Behavior and Performance Requirements

9. Define the Software Requirements

10. Allocate System Requirements to Subsystems

11. Provide Rationale

All the material in the text is required reading and may appear on the Final Exam. Read Chapter 1 in the first week of the course. Thereafter, each week, master the material in Section 2.1, Section 2.2 .. etc. The ideas are illustrated in the appendix using the Isolelete Thermostat example, the flight control and guidance system, and the autopilot system. You are required to understand these examples.

Suggested Text

This course cannot treat all the important topics in RE. If you want find out more about Requirements Engineering, the text Requirements Engineering: from system goals to UML models to software specifications, Axel van Lamsweerde Wiley, 2009 ISBN 0470012706 (paper, 682 pages), is available in Steacie. (Reviews of books on requirements engineering). Topics in the book include: