Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++

Similar presentations


Presentation on theme: "1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++"— Presentation transcript:

1 1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++

2 2 Requirements engineering l Requirements engineering (or requirements analysis) is the process of establishing: the services that the customer requires from a system the constraints under which it operates and is developed l A requirement may range from a high-level abstract statement of a service or constraint to a detailed mathematical expression l Failure here is a major cause of software development failures.

3 3 Types of requirements l User requirements statements in natural language plus diagrams written for customers l System requirements detailed, structured descriptions of system services written as a contract between client and contractor l Software design specification even more detail – can serve as a basis for a design written for developers

4 4 Requirement classification l Functional requirements statements of services the system should provide they describe how the system should react to particular inputs and how it should behave in particular situations might include user interface issues l Constraints constraints on the services offered by the system timing constraints, standards, development processes

5 5 Functional requirements examples l The user shall be able to search either all of the initial set of databases or select a subset from that set to search. l The system shall provide the viewers listed in Appendix B: Supported Viewer Software, for the user to read documents in the document store. l Every order shall be allocated a unique identifier which the user shall be able to copy to the account’s permanent storage area.

6 6 Process activities l Domain understanding l Requirements discovery or elicitation l Analysis and conflict resolution l Classification, Prioritization l Specification l Verification

7 7 Requirements Discovery l Involves technical staff working with customers to find out about the application domain, the services that the system should provide and the system’s operational constraints l May involve various stakeholders: end-users, managers, engineers involved in maintenance, domain experts, trade unions, etc.

8 8 Why is it difficult? l Client doesn’t know what they really want l Client underestimates importance l Client makes assumptions l Producer not familiar with application area l Different stakeholders may have conflicting requirements l Difficult client/producer chemistry l The requirements change during the analysis process

9 9 Be wary of runaway requirements l Do not allow scope creep l Be aware of “kitchen sink” user approach l Elicit justification of requirements l Reject if not plausible or cost/benefit high

10 10 Methods of Discovery Should use a well-defined methodical approach: l Introspection l Elicitation Interviews Observation (Ethnography) Protocol Analysis l Viewpoint Oriented l Prototypes

11 11 The requirements document l The requirements document is the official statement of what is required of the system developers l It is read by a variety of stakeholders (people interested in the system and its development) l It is not a design document l As much as possible, it should specify what the system should do rather than how it should do it

12 12 IEEE requirements standard l Defines a generic structure for a requirements specification: Introduction Purpose, Scope, Definitions, References, Overview General description Perspective, Functions, User, Constraints Specific requirements Appendices Index

13 13 Specific Requirements (IEEE) l Include functional, interface, performance, design constraints, quality attributes, etc. l Each functional should include overview inputs processing outputs exceptions

14 14 Alternatives to natural language l Structured natural language standard templates l Program design language (PDL) like a programming language, but more abstract l Graphical notation diagrams with text annotations l Mathematical specification formal and precise (ex: finite state machine)

15 15 Form-based specification

16 16 Structured presentation

17 17 The VORD process model l Viewpoint identification l Viewpoint structuring l Viewpoint documentation l Viewpoint-system mapping

18 18 Scenarios l Scenarios are descriptions of how a system is used in practice l They are helpful in requirements elicitation as people can relate to these more readily than abstract statement of what they require from a system l Scenarios can be included in a user oriented requirements document.

19 19 Scenario descriptions l The description of a scenario includes: System state at the beginning of the scenario Normal flow of events in the scenario What can go wrong and how this is handled Other concurrent activities System state on completion of the scenario

20 20 Use cases l Use cases are a scenario-based technique in 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

21 21 Catalog management

22 22 Desirable Properties of the SRS and of requirements themselves l Usable l Complete and Consistent l Well structured l Traceable and Verifiable l Annotated in appropriate ways l Good technical writing used

23 23 Usable l Correct! l Understandable l Achievable l Design Independent l At Right Level of Detail

24 24 Complete and Consistent l In principle requirements should be both complete and consistent l Complete – they should include descriptions of all facilities required l Consistent – there should be no conflicts or contradictions in the descriptions l In practice, for large systems, it is almost impossible to produce a complete and consistent requirements document

25 25 Well Structured l Standard organization l Modifiable Layout Limit Redundancy l Indexed (automated?)

26 26 Traceable l Traceability is concerned with the relationships between requirements, their sources and the design l Source traceability Links from requirements to stakeholders who proposed these requirements l Requirements traceability Links between dependent requirements l Design traceability Design Document can reference the requirements separately

27 27 Verifiable l Goals can be fuzzy. Requirements should not be. There should exist a finite, cost-effective way to check each one. l A system goal The system should be easy to use by experienced controllers and should be organized in such a way that user errors are minimized. l A verifiable non-functional requirement Experienced controllers shall be able to use all the system functions after a total of two hours training. After this training, the average number of errors made shall not exceed two per day. l Defining verifiable requirements can be difficult.

28 28 Requirements measures

29 29 Annotated Appropriately l by relative importance must, should, could l by relative stability l by version

30 30 Use Good Technical Writing l Unambiguous l Concise l and so on …..


Download ppt "1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++"

Similar presentations


Ads by Google