Cs 691z 791z topics on software engineering
Download
1 / 12

CS 691z / 791z Topics on Software Engineering - PowerPoint PPT Presentation


  • 142 Views
  • Uploaded on

CS 691z / 791z Topics on Software Engineering. Software Requirements Based on Chapter 3: The Requirements Workflow [Arlow & Neustadt, 2002] February 6, 2007. Outline. Requirements: The requirements workflow Metamodel for software requirements Requirements workflow details

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'CS 691z / 791z Topics on Software Engineering' - rian


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Cs 691z 791z topics on software engineering l.jpg
CS 691z / 791zTopics on Software Engineering

Software Requirements

Based on Chapter 3: The Requirements Workflow

[Arlow & Neustadt, 2002]

February 6, 2007


Outline l.jpg
Outline

  • Requirements:

    • The requirements workflow

    • Metamodel for software requirements

    • Requirements workflow details

    • The importance of requirements

    • Defining requirements


The requirements workflow l.jpg
The Requirements Workflow.

Fig. 3.2 [Arlow & Neustadt, 2002] shows that most of the work

in requirements workflow occurs in Inception and Elaboration phases


The requirements workflow4 l.jpg
.The Requirements Workflow

  • The purpose of the requirements workflow is to reach an agreement on what the system should do, expressed in a way accessible to the users of the system

  • Requirements engineering involves elicitation, negotiation, conflict resolution, prioritization, documentation, and maintenance of requirements

  • Various stakeholders are involved in establishing the set of requirements for the system

  • UML uses cases describe functional requirements, but non-functional requirements need different description


Metamodel for software requirements l.jpg
Metamodel for Software Requirements

Arlow & Neustadt’s approach for requirements engineering is shown in

Fig. 3.3 [Arlow 2002]. Details can be found in Section 3.3


Requirements workflow detail l.jpg
Requirements Workflow Detail.

Specific tasks for UP (Unified Process) requirements workflow

Fig. 3.4 [Arlow & Neustadt 2002]


Requirements workflow detail7 l.jpg
.Requirements Workflow Detail

Arlow and Neustadt extend slightly the UP requirements workflow with

the addition of new tasks: find functional requirements, find non-

functional requirements, prioritize requirements, & trace requirements

to use cases. As such, non-functional requirements can be addressed

as well, along with the traditional UP/UML treatment of functional

requirements via use cases. Fig. 3.5 [Arlow & Neustadt 2002]


The importance of requirements l.jpg
The Importance of Requirements

  • Requirements engineering is about establishing whatthe stakeholders need from the system

  • Requirements engineering encompasses elicitation, negotiation, conflict resolution, prioritization, documentation, and maintenance of requirements

  • Poor requirements engineering is the major cause of software project failure

  • The second major cause of software project failure is lack of user participation


Defining requirements l.jpg
Defining Requirements…

  • Requirement: “a specification of what should be implemented”

  • There are two types of requirements:

    • Functional requirements: describe the desired behaviour of the system

    • Non-functional requirements: specify particular properties of or constraints on the system

  • In theory, the set of requirements should be only about “what” the system should do, but in practice it is not possible to avoid “how” aspects of the system


Defining requirements10 l.jpg
.Defining Requirements..

  • The SRS (Systems Requirements Specification) is the document that contains the set of requirements expected to be satisfied by the system, both functional and non-functional

  • There are many ways to write a SRS (“company dependent” ways)

  • The SRS provides the input for the analysis and design phases of the development process

  • The bottom line regarding the SRS is: “does it help me to understand what the system should do or not?”


Defining requirements11 l.jpg
..Defining Requirements.

  • Simple format recommended for well-formed requirements:

    <id> The <system> shall <function>

  • Examples of functional requirements (what the system should do):

    1 The ATM shall check the validity of the ATM card inserted.

    2 The ATM shall validate the PIN number entered by the client.

  • Examples of non-functional requirements (constraints on or properties of the system):

    1 The ATM shall be written in C++.

    2 The ATM shall validate the PIN in three seconds or less.


Defining requirements12 l.jpg
…Defining Requirements

  • “The map is not the territory” (that is, a model is not the real thing). When modeling, we apply three cognitive filters that simplify our effort [Chomsky, 1975]:

    • Deletion

    • Distortion

    • Generalization

  • In requirements specification we need to identify the application of the above filters and find “challenges” for them to recover information

  • In particular, universal quantifiers such as all, everyone, always, never, nobody, none should be inspected closely for accuracy


ad