Requirements Engineering: Organizing Software Requirements in a Document - Prof. Simon Rea, Study notes of Software Engineering

An overview of requirements engineering, a systematic process for developing software requirements. It covers the tasks of analysis and modeling, the classes of requirements (functional and non-functional), and the importance of precise and complete requirements. It also discusses the challenges of requirements imprecision and the importance of requirements validation.

Typology: Study notes

Pre 2010

Uploaded on 07/30/2009

koofers-user-rqj
koofers-user-rqj 🇺🇸

10 documents

1 / 36

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
cmsc435 - 1
Software Requirements
cmsc435 - 2
Objectives
To introduce the concepts of user and system
requirements
To describe functional and non-functional
requirements
To explain how software requirements may be
organized in a requirements document
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24

Partial preview of the text

Download Requirements Engineering: Organizing Software Requirements in a Document - Prof. Simon Rea and more Study notes Software Engineering in PDF only on Docsity!

cmsc435 - 1

Software Requirements

Objectives

l To introduce the concepts of user and system

requirements

l To describe functional and non-functional

requirements

l To explain how software requirements may be

organized in a requirements document

cmsc435 - 3

Requirements engineering

l Requirements engineering is a systematic way

of developing requirements through an

iterative process of analyzing a problem,

documenting the resulting observations, and

checking the accuracy of the understanding

gained.

l Requirements engineering is comprised of two

major tasks: analysis and modeling

l The requirements themselves are the

descriptions of the system services and

constraints that are generated during the

requirements engineering process.

What is a requirement?

l A software requirement is a condition or

capability needed by a user to solve a problem

or achieve an objective and that must be met

or possessed by a system or system

component to satisfy a contract, standard,

specification, or other formally imposed

document.

l Two classes of requirements:

 Functional requirements – What the program does  Non-functional requirements – Attributes about the program

cmsc435 - 7

Capturing the requirements

l Requirement: a feature of the system or a

description of something the system is

capable of doing in order to fulfill the

system’s purpose

l Three kinds of requirements:

 those that absolutely must be met  those that are highly desirable but not necessary  those that are possible but could be eliminated

Characteristics of requirements

l Are they correct?

l Are they consistent?

l Are they complete?

l Are they realistic?

l Does each describe something the customer

needs?

l Are they verifiable?

l Are they traceable?

cmsc435 - 9

Functional and non-functional requirements

l Functional requirements

 Statements of services the system should provide, how the system should react to particular inputs and how the system should behave in particular situations.

l Non-functional requirements

 constraints on the services or functions offered by the system such as timing constraints, constraints on the development process, standards, security requirements, performance, etc.

l Domain requirements

 Requirements that come from the application domain of the system and that reflect characteristics of that domain.

Functional requirements

l Describe functionality or system services.

l Depend on the type of software, expected

users and the type of system where the

software is used.

l Functional user requirements may be high-

level statements of what the system should do

but functional system requirements should

describe the system services in detail.

cmsc435 - 13

Requirements completeness and

consistency

l In principle, requirements should be both complete and consistent.

l Complete

 They include descriptions of all facilities required.

  • What is assumed as domain knowledge as a requirement?
  • For example, does a requirement to list names in alphabetical order require a definition of “alphabetical order”?

l Consistent

 There is no conflicts or contradictions in the descriptions of the system facilities.

l In practice, it is impossible to produce a complete and consistent requirements document.

Non-functional requirements

l These define system properties and

constraints e.g. reliability, safety, security,

performance, and storage requirements.

Constraints are I/O device capability, system

representations, etc.

l Process requirements may also be specified

mandating a particular CASE system,

programming language or development method.

l Non-functional requirements may be more

critical than functional requirements. If these

are not met, the system may be useless.

cmsc435 - 15

Functional vs. non-functional

requirements

l Functional: describes an interaction between the system and its environment

l Examples:

 System shall communicate with external system X.  What conditions must be met for a message to be sent

l Non-functional: describes a restriction or constraint that limits our choices for constructing a solution l Examples:  Paychecks distributed no more than 4 hours after initial data are read.  System limits access to senior managers.

Non-functional classifications

l Product requirements

 Requirements which specify that the delivered product must behave in a particular way e.g. execution speed, reliability, safety, security, etc.

l Organizational requirements

 Requirements which are a consequence of organizational policies and procedures e.g. process standards used, implementation requirements, etc.

l External requirements

 Requirements which arise from factors which are external to the system and its development process e.g. interoperability requirements, legislative requirements, etc.

cmsc435 - 19

Examples

l A system goal

 The system shall be responsive to any user

input.

l A verifiable non-functional requirement

 The system shall respond to any user input

within 0.01 seconds.

This is now a measurable and testable requirement

Requirements measures

Property Measure Speed Processed transactions/second User/Event response time Screen refresh time Size M Bytes Number of ROM chips Ease of use Training time Number of help frames Reliability Mean time to failure Probability of unavailability Rate of failure occurrence Availability Robustness Time to restart after failure Percentage of events causing failure Probability of data corruption on failure Portability Percentage of target dependent statements Number of target systems

cmsc435 - 21

Requirements interaction

l Constraints are a type of non-functional requirement that is imposed by the client that restricts the implementation of the system or the development process.

l Conflicts between different non-functional requirements are common in complex systems.  E.g.,Spacecraft system

  • To minimize weight, the number of separate chips in the system should be minimized.
  • To minimize power consumption, lower power (i.e., slower) chips should be used.
  • However, using low power chips may mean that more chips have to be used. Which is the most critical requirement?

Domain requirements

l Derived from the application domain and

describe system characteristics and features

that reflect the domain.

l Domain requirements be new functional

requirements, constraints on existing

requirements or define specific computations.

l If domain requirements are not satisfied, the

system may be unworkable.

cmsc435 - 25

Problems with natural language

l Lack of clarity - Precision is difficult without making the document difficult to read. l Requirements confusion - Functional and non- functional requirements tend to be mixed-up. l Requirements amalgamation - Several different requirements may be expressed together. l Ambiguity - The readers and writers of the requirement must interpret the same words in the same way. NL is naturally ambiguous so this is very difficult. l Over-flexibility - The same thing may be said in a number of different ways in the specification. l Lack of modularization - NL structures are inadequate to structure system requirements.

How developers see users How users see developers Users don’t know what they want. Developers don’t understand operational needs. Users can’t articulate what they want. Developers place too much emphasis on technicalities. Users have too many needs that are politically motivated.

Developers try to tell us how to do our jobs.

Users want everything right now. Developers can’t translate clearly-stated needs into a successful system. Users can’t prioritize needs. Developers say no all the time. Users refuse to take responsibility for the system.

Developers are always over budget.

Users are unable to provide a usable statement of needs.

Developers are always late.

Users are not committed to system development projects.

Developers ask users for time and effort, even to the detriment of the users’ important primary duties. Users are unwilling to compromise. Developers set unrealistic standards for requirements definition. Users can’t remain on schedule. Developers are unable to respond quickly to legitimately changing needs.

Major problem with requirements process

cmsc435 - 27

Guidelines for writing requirements

l Use a standard format and use it for all

requirements. (Better, choose an existing

format)

l Use language in a consistent way. Use shall for

mandatory requirements, should for desirable

requirements.

l Use text highlighting to identify key parts of

the requirement.

l Avoid the use of computer jargon.

System requirements

l More detailed specifications of system

functions, services and constraints than user

requirements.

l They are intended to be a basis for designing

the system.

l They may be incorporated into the system

contract.

l System requirements may be defined or

illustrated using system models

cmsc435 - 31

Feasibility study implementation

l Based on information assessment (what is required), information collection and report writing.

l Questions for people in the organization

 What if the system wasn’t implemented?  What are current process problems?  How will the proposed system help?  What will be the integration problems?  Is new technology needed? What skills?  What facilities must be supported by the proposed system?

l All involved in the outcome of the system are called Stakeholders (e.g., users, developers, management, contracting organization, funding source).

Methods for requirements elicitation

1. Interviews

2. Observation

3. Examine artifacts (e.g., prior system

documents)

4. Joint Application Design sessions

5. Software tools (e.g., groupware)

6. Questionnaires

7. Prototypes (On paper, automated mockups)

8. Customer focus groups

9. Customer part of development team

cmsc435 - 33

Interviewing

l Processes:

 Interviewing: In formal or informal interviewing, the RE team puts questions to stakeholders about the system that they use and the system to be developed.  Scenarios are real-life examples of how a system can be used. They should include:

  • A description of the starting situation;
  • A description of the normal flow of events;
  • A description of what can go wrong;
  • Information about other concurrent activities;
  • A description of the state when the scenario finishes.

Use cases

l Use-cases are a scenario based technique in

the UML which identify the actors in an

interaction and which describe the interaction

itself.

l A set of use cases should describe all possible

interactions with the system.

l Sequence diagrams may be used to add detail

to use-cases by showing the sequence of event

processing in the system.

cmsc435 - 37

Print article sequence

Use cases covered more fully later

Ethnography (Observation)

l A social scientists spends a considerable time

observing and analyzing how people actually

work.

l People do not have to explain or articulate

their work.

l Social and organizational factors of

importance may be observed.

l Ethnographic studies have shown that work is

usually richer and more complex than

suggested by simple system models.

cmsc435 - 39

Focused ethnography

l Combine ethnography with prototyping l Prototype development results in unanswered questions which focus the ethnographic analysis. l The problem with ethnography is that it studies existing practices which may have some historical basis which is no longer relevant. l Requirements that are derived from the way that people actually work rather than the way in which process definitions suggest that they ought to work. l Requirements that are derived from cooperation and awareness of other people’s activities.

Social and organizational factors

l Software systems are used in a social and

organizational context. This can influence or

even dominate the system requirements.

l Social and organizational factors are not a

single viewpoint but are influences on all

viewpoints.

l Good analysts must be sensitive to these

factors but currently no systematic way to

tackle their analysis.