Student Originated Software 1997-1998
Fall Quarter

A Software Engineering Course at
The Evergreen State College


Program Lecture October 13, 1997

Requirements

  • The Software Problem
  • Software is a formal system; the real world isn't.
  • Where Requirements fit...
  • Requirements happens....
  • The Requirements Document
  • Some Approaches

The Software Problem

  • Most software is late and over-budget, does not meet user needs or expectations, or is socially irresponsible.
  • The "software engineering" problem is not just a matter of technology, but a problem of creativity and invention, organization, psychology, artistic design, group dynamics and culture.
  • In addition considerable knowledge and understanding of the application area is required to design, implement, market, sell, deploy, support or maintain a successful system.
  • ...and (imho) the hardest part of it, is Requirements.....
  • ...but in many ways, it's the most fun!

Software is a Formal System (the real world isn't)

  • where Requirements fit....
  • where Requirements used...throughout!

Requirements happens...

  • Requirements? - anything that drives design...
  • 70% of total time (and $$) on requirements, or req. defects.... [ => requirements used thru-out the process!]
  • The possible approaches -- all model requirements
  • a better understanding thru act of constructing
  • a basis for testing
  • share the understanding
  • make the subject visible
  • #1 enemy -- hidden, false assumptions
  • theory, technique, practis, some help.

Relative Cost to Fix an Error

  • Phase in Which Found
  • Requirements
  • Design
  • Coding
  • Development testing
  • Acceptance testing
  • Operation

The Possible Approaches

  • Get the idea, then build towards the vision.
  • Feature wars.
  • Analysis (DFD, ERM, DDs, OOMs, DTs, use cases, etc.)
  • JAD (participatory design - designers, mgmt, customers, w/ facilitator, visual aids, scribe)
  • Quality Function Deployment - map customer benefits to design criteria, and design criteria to features.
  • Soft Systems (Weinberg et al) - heuristics to develop & gain consensus on customer problems and designer consideratoins.
  • Formal methods - Z, domain specific languages.

SOS Experiences

  • It's obvious, and we all agree. No need to write it down.
  • They don't know what they want, so we'll just develop it.
  • Noone wants to write it down, so we won't.
  • We want to start coding; the difficult part is the technology.
  • We won't know what it is til we start coding.
  • "Requirements" is an ugly word -- limits creativity!
  • They don't have good examples, or good templates....
  • They haven't done it before, so don't know what it is, or how important.

The Requirements Document ...what the system should do, not how it's going to do it....

  • Introduction ("charter"). narrative -- customer, problem, concept, domain.
  • Functional Requirements - what the system should do. "The system will continuously display the temperatures of all the machines." (verbs that perform actions).
  • Data Requirements - input or output, and stored in the system.
  • Constraints. "The system must have a 1 sec. response time."
  • Guidelines. (guidance for implementation where >1 strategy.) "Minimize response times of the system to keyboard requests." vs. "Usage of main memory should be as small as possible."

Some Constraints

  • Cost
  • Delivery date.
  • Hardware or software to be used
  • Memory or backing store available.
  • Response times
  • Programming language to be used
  • Data volumes (store data on 10,000 students for 4 years)
  • Load levels (100 transactions per min. from POS)
  • Reliability requirements (MTBF of 6 months)

Some Common Deficiencies of the document

  • Vagueness. "The interface will be user friendly."
  • Contradictions. "The data will be stored on mag tape." and "The system will respond in less than 1 sec."
  • Omissions or Incompleteness. how to deal with input errors.
  • Guidelines or Constraints confused w/ Functional Req'ts. describe the solution, not the problem.
  • Unclear, or badly written.
  • Insufficient user involvement, market research.
  • Not testable
  • Not traceable back to customer's needs

Use Case - Recycling Machine System

Quality Function Deployment

  • Benefit -- What would benefit the customer? "You'll like this product because it...." (note also what would dissatisfy the customer...."hard to install").. Contextual Inquiry. avoid yes/no questions, process checks, affinity analysis. rate the benefits, relationship matrix to requirements.
  • Requirement (design criteria)
  • testable, states the problem
  • Feature -- describes a specific product, concrete, solution.
  • menus, buttons...
  • Performance is not value.

Soft Systems -- Weinberg's Heuristics

  • Methodologies aren't enough...it's the process that's helpful
  • Attack ambiguity -- take away the doc, and ask each participant to write down the requirements.
  • Give your customers what they want, not what they need.
  • Use decision trees carefully....depend on order of questions, etc.


For more information contact
[ Evergreen Home Page | Academic Programs ]


Created by: SoSwEbGrOuP
E-mail: ringert@evergreen.edu