54
Types of requirement User requirements System requirements Domain requirements Functional requirements Non-functional requirements

Se lect9 btech

  • Upload
    iiita

  • View
    299

  • Download
    1

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Se lect9 btech

Types of requirement

• User requirements

• System requirements

• Domain requirements

• Functional requirements

• Non-functional requirements

Page 2: Se lect9 btech

Types of requirement

• User requirements– Statements in natural language plus diagrams of the

services the system provides and its operational constraints. Written for customers

• System requirements– A structured document setting out detailed descriptions of

the system services. Written as a contract between client and contractor

• Software specification– A detailed software description which can serve as a basis

for a design or implementation. Written for developers

Page 3: Se lect9 btech

Functional and non-functional requirements

• Domain requirements– Requirements that come from the application domain of

the system and that reflect characteristics of that domain

• 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.

• Non-functional requirements– constraints on the services or functions offered by the

system such as timing constraints, constraints on the development process, standards, etc.

Page 4: Se lect9 btech

What are User requirements

Page 5: Se lect9 btech

User requirements

• Should describe functional and non-functional requirements so that they are understandable by system users who don’t have detailed technical knowledge

• User requirements are defined using natural language, tables and diagrams

Page 6: Se lect9 btech

What are System requirements

Page 7: Se lect9 btech

System requirements

– More detailed specifications of user requirements

• Serve as a basis for designing the system

• May be used as part of the system contract

• System requirements may be expressed using system models

Page 8: Se lect9 btech

What are Domain requirements

Page 9: Se lect9 btech

Domain requirements

• Derived from the application domain and describe system characteristics and features that reflect the domain

• May be new functional requirements, constraints on existing requirements or define specific computations

• If domain requirements are not satisfied, the system may be unworkable

Page 10: Se lect9 btech

What is Functional Requirement

Page 11: Se lect9 btech

Functional Requirements

Describe functionality or system services• Depend on the type of software, expected users

and the type of system where the software is used• 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

Page 12: Se lect9 btech

Types of Non-functional requirement

Page 13: Se lect9 btech

Non-functional requirement types

Performancerequirements

Spacerequirements

Usabilityrequirements

Efficiencyrequirements

Reliabilityrequirements

Portabilityrequirements

Interoperabilityrequirements

Ethicalrequirements

Legislativerequirements

Implementationrequirements

Standardsrequirements

Deliveryrequirements

Safetyrequirements

Privacyrequirements

Productrequirements

Organizationalrequirements

Externalrequirements

Non-functionalrequirements

Page 14: Se lect9 btech

Non-functional classifications

• Product requirements– Requirements which specify that the delivered product must

behave in a particular way e.g. execution speed, reliability, etc.

• Organisational requirements– Requirements which are a consequence of organisational

policies and procedures e.g. process standards used, implementation requirements, etc.

• External requirements– Requirements which arise from factors which are external to

the system and its development process e.g. interoperability requirements, legislative requirements, etc.

Page 15: Se lect9 btech

Features of Non-Functional Requirements

1. Non-Functional requirements mostly define the overall attributes of the “resulting” system.

Page 16: Se lect9 btech

IEEE Standard 830 – 1993

• List of 13 non-functional requirements:

1. Performance 2. Interface3. Operational4. Resource5. Verification6. Acceptance7. Documentation8. Security9. Portability10. Quality11. Reliability12. Maintainability13. Safety

Examples?

Some of these also overlap - - - - - -

Page 17: Se lect9 btech

IEEE Standard 830 – 1993

• List of 13 non-functional requirements Examples:

1. Performance: 100 transactions per minute2. Interface: capable of importing data with EDI format3. Operational: must not require more than 1 megabyte of main memory4. Resource: will use wireless encryption algorithm that is “better” than WEP 5. Verification: all data updates must be traceable6. Acceptance: must pass a user defined system test bucket 7. Documentation: user manual is needed for novice users only8. Security: user request to access any data must be authorized first 9. Portability: the system must operate with “any” relational db systems10. Quality: the system must install with zero defect11. Reliability: the system must be accessible 99.9 % of the time12. Maintainability: the system must be modifiable (e.g. designed with exits) 13. Safety: the system must not perform “chemical material discard” functions

without “explicit” user authorization.

There may be others that are important such as meeting legal standards thatIs not mentioned in this list

Page 18: Se lect9 btech

Difficulties in Specifying Non-functional Requirements

Page 19: Se lect9 btech

Difficulties in Specifying Non-functional Requirements

• The difficulties in gathering Non-Functional Requirements may be attributed to many reasons - - - - - mostly because people tend to focus on the functions and services that they need:

– Certain non-functional requirements are sometimes hard to quantify and therefore hard to express without some “trial and error prototyping”.

• e.g. : usability – Certain non-functional requirements are hard to differentiate between

functional and non-functional• e.g. security

– Certain non-functional requirements are difficult to specify because they can not be well understood or validated until much later

• e.g. reliability or quality

– Certain non-functional requirements may be conflicting• e.g. performance .vs. security .vs. reliability

– Certain non-functional requirements may be difficult to express and validate; may require more refinements.

similar

Page 20: Se lect9 btech

What are“Critical” Systems

Page 21: Se lect9 btech

“Critical” Systems

• Critical systems are systems whose failure causes significant economic, human or organizational damage:

– Business Critical System• e-commerce systems such as stock trading, reservations, etc.

– Mission Critical System• Aircraft control, manufacturing process control, etc.

– Safety (life) Critical system• Medical Device control, hazardous materials management, etc.

Page 22: Se lect9 btech

Requirements for System Criticality

Page 23: Se lect9 btech

Requirements for System Criticality

• Most of the requirements for these “business,” “mission,” and “safety” criticality deals with non-functional requirements of the a) “complete” system, not just software and b) may be expressed in general ways that need to be decomposed further:

– Performance– Reliability– Security– Usability– Safety

Again, these may be “conflicting” - - - - so what do you do?

Must prioritize the requirements, especially when there are conflicts

Page 24: Se lect9 btech

Performance Related Requirements

Page 25: Se lect9 btech

Performance Related Requirements

• These requirements mostly addresses the constraints of speed and sometimes capacity:

– System Response time to end-user such as 1 second response to user requests

– System throughput such as # of transactions per minute (time interval)

– System timing such as collection of data and responding to it within sub-second for real-time system.

– System capacity such as number of simultaneous users that may access an application (instantaneous time)

These should be specified quantitatively.

Page 26: Se lect9 btech

Reliability Related Requirements

Page 27: Se lect9 btech

Reliability Related Requirements

• These requirements addresses constraints on run-time behavior of the system:– System Availability such as the system is up certain

percentage of the time.– System Failure rate such as average mean time

between system failures to deliver the user service.

These should also be specified quantitatively.

Page 28: Se lect9 btech

Security Related Requirements

Page 29: Se lect9 btech

Security Related Requirements

• These requirements addresses the issues related to unauthorized access: to the system, to specific function, to data:– System Access protection such as firewall

requirement– Application Functional Access & Usage protection

such as authorization and authentication requirement– Data Access and Usage protection such as

authorization and encryption requirement

Security is also an important factor for other requirement suchas safety. A little hard to specify these quantitatively.

Page 30: Se lect9 btech

Usability Related Requirements

Page 31: Se lect9 btech

Usability Related Requirements

• These requirements addresses the user interface looks and user inter-actions with the system– Entry and beginners-level knowledge assumption to use the

system – Learning time and experience needed such as hours or number

of lessons to learn the system– Handling and usage such as time to complete certain tasks or

number of errors made before completing certain tasks– Likeness and delight experienced from using the system such

as availability of context sensitive help text or “re-do” capability

Some of these requirements can be and should be specified Quantitatively; delight and likeness are a bit hard to define.

Page 32: Se lect9 btech

Safety Critical System Requirements

Page 33: Se lect9 btech

Safety Critical System Requirements

• These requirements addresses everything with the safety of the system and of the usage of the system.

• These requirements deal mostly with the “shall not” requirements such as:– The system shall not allow - - - -– The system will not operate without - - -

Note that safety may be dependent on many of the other requirements:

- insecure system may be open to malicious danger - unreliable system may fail unpredictably and hurt someone - non-responsive system may miss critical data and damage something - difficult to use system may create a critical human error

Page 34: Se lect9 btech

Requirements measures

Page 35: Se lect9 btech

Requirements measures

Property MeasureSpeed Processed transactions/second

User/Event response timeScreen refresh time

Size K BytesNumber of RAM chips

Ease of use Training timeNumber of help frames

Reliability Mean time to failureProbability of unavailabilityRate of failure occurrenceAvailability

Robustness Time to restart after failurePercentage of events causing failureProbability of data corruption on failure

Portability Percentage of target dependent statementsNumber of target systems

Page 36: Se lect9 btech

Relationship Between Requirement and Design

Page 37: Se lect9 btech

Requirements and design

• In principle, requirements should state what the system should do and the design should describe how it does this

• In practice, requirements and design are inseparable– A system architecture may be designed to structure the

requirements

– The system may inter-operate with other systems that generate design requirements

– The use of a specific design may be a domain requirement

Page 38: Se lect9 btech

Relationships between user needs, concerns and NFRs

Page 39: Se lect9 btech

Relationships between user needs, concerns and NFRs

User’s need

User’s concern Non-functional requirement

Function 1. Ease of use 2. Unauthorised access 3. Likelihood of failure

1. Usability 2. Security 3. Reliability

Performance 1. Resource utilisation 2. Performance verification 3. Ease of interfacing

1. Efficiency 2. Verifiability 3. Interoperability

Change 1. Ease of repair 2. Ease of change 3. Ease of transport ? 4. Ease of expanding or upgrading

capacity or performance ?

1. Maintainability 2. Flexibility 3. Portability 4. Expandability

Page 40: Se lect9 btech

Concern decompositionCompatibilitySafety

Collision DerailmentPersonalaccident

Hardware Software Physical

Excess speed for track conditions

Track damage

System must be able todetect and avoid excessspeed

Under what conditions can excess speed cause derailment?

What information about track damage is required by the system? How is this provided?

InterfaceExecutionEnvironment

Timing

Will a requirement affectthe performance of theexisting software?

Does a requirement needdata that isn't availablethrough the HST interface?

System must execute in the trustedAda execution environment

Can this function beprovided on the existngexecution environment?

What does 'excess speed' mean in reality?

Page 41: Se lect9 btech

How to write requirements:

Page 42: Se lect9 btech

Guidelines for writing requirements

• Invent a standard format and use it for all requirements

• Use language in a consistent way. Use shall for mandatory requirements, should for desirable requirements

• Use text highlighting to identify key parts of the requirement

Avoid the use of computer jargon !!!

Page 43: Se lect9 btech

Problems with natural language

Page 44: Se lect9 btech

Problems with natural language

• Lack of clarity – Precision is difficult without making the document difficult

to read

• Requirements confusion– Functional and non-functional requirements tend to be

mixed-up

• Requirements combination– Several different requirements may be expressed together

Page 45: Se lect9 btech

Alternatives to NL specification

Page 46: Se lect9 btech

Alternatives to NL specificationNotation DescriptionStructurednaturallanguage

This approach depends on defining standard forms ortemplates to express the requirements specification.

Designdescriptionlanguages

This approach uses a language like a programminglanguage but with more abstract features to specify therequirements by defining an operational model of thesystem.

Graphicalnotations

A graphical language, supplemented by text annotations isused to define the functional requirements for the system.An early example of such a graphical language was SADT(Ross, 1977; Schoman and Ross, 1977). More recently,use-case descriptions (Jacobsen, Christerson et al., 1993)have been used. I discuss these in the following chapter.

Mathematicalspecifications

These are notations based on mathematical conceptssuch as finite-state machines or sets. These unambiguousspecifications reduce the arguments between customerand contractor about system functionality. However, mostcustomers don’t understand formal specifications and arereluctant to accept it as a system contract. I discuss formalspecification in Chapter 9.

Page 47: Se lect9 btech

What is Requirement Document

Page 48: Se lect9 btech

The requirements document

• The requirements document is the official statement of what is required of the system developers

• Should include both a definition and a specification of requirements

• It is NOT a design document. As far as possible, it should set of WHAT the system should do rather than HOW it should do it

Page 49: Se lect9 btech

Users of a requirements document

Page 50: Se lect9 btech

Users of a requirements

document

Use the requirements todevelop validation tests forthe system

Use the requirementsdocument to plan a bid forthe system and to plan thesystem development process

Use the requirements tounderstand what system is tobe developed

System testengineers

Managers

System engineers

Specify the requirements andread them to check that theymeet their needs. Theyspecify changes to therequirements

System customers

Use the requirements to helpunderstand the system andthe relationships between itsparts

Systemmaintenance

engineers

Page 51: Se lect9 btech

Requirements document requirements

Page 52: Se lect9 btech

Requirements document requirements

• Specify external system behaviour• Specify implementation constraints• Easy to change• Serve as reference tool for maintenance• Record forethought about the life cycle of the

system i.e. predict changes• Characterise responses to unexpected events

Page 53: Se lect9 btech

IEEE requirements standard

• Introduction• General description• Specific requirements• Appendices• Index• This is a generic structure that must be

instantiated for specific systems

Page 54: Se lect9 btech

Requirements document structure• Introduction• Glossary• User requirements definition• System architecture• System requirements specification• System models• System evolution• Appendices• Index