Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Software Engineering Lecture 02: Requirements Elicitation and Specification, Study notes of Software Engineering

A part of the lecture notes for the cs3773 software engineering course at utsa. It covers the topics of requirements elicitation and specification, explaining the importance of gathering functional and non-functional requirements, the role of requirements analysts, and various elicitation techniques such as reviewing existing systems and brainstorming. It also discusses the differences between requirements and specifications.

Typology: Study notes

Pre 2010

Uploaded on 07/30/2009

koofers-user-nlz-1
koofers-user-nlz-1 🇺🇸

10 documents

1 / 9

Toggle sidebar

Related documents


Partial preview of the text

Download Software Engineering Lecture 02: Requirements Elicitation and Specification and more Study notes Software Engineering in PDF only on Docsity!

CS

Software Engineering

Lecture 02 Requirements Elicitation and Specification

Requirements Elicitation

¾^ Elicitation is to gather–^

Functions that the system should perform– Non-functional requirements that the system should exhibit ¾^ Elicitation is critical but difficult–^

Customers are not good at describing what they want– Software engineers are not good at understanding whatcustomers want– Customers and software engineers speak different languages

UTSA CS

Requirements Elicitation

¾^ Requirements analysts have to understand the problemfrom each stakeholder's point of view–^

Stakeholders have different views of the system ¾^ Requirements analysts resolve conflicting views–^

Essential requirements– Desirable requirements– Optional requirements

Elicitation Techniques

Understand problems ¾^ For existing system–^

Review documentation– Observe current system– Questionnaires and Interviews– Apprenticeship ¾^ For new systems - brainstorming

UTSA CS

Analyze Existing System

¾^ What is used, what isn't, what's missing ¾^ What works well, what doesn't ¾^ How the system is used, how it was intended to be used,what new ways we want it to be used ¾^ Risks–^

Users might not be happy with too much change from the oldsystem– Might miss real usage patterns– Might miss obvious possible improvements

6

Analyze Existing System - Review

¾^ Review all available documentation–^

For an automated system, review its requirementsspecifications and user manuals, as well as developmentdocumentation, internal memos, change histories, etc.– For a manual system, review any documented procedures thatthe workers must follow ¾^ Gain knowledge of the system before imposing upon otherpeople's time, before bothering the stakeholders

UTSA CS

Analyze Existing System - Observation

¾^ Identify what aspects to keep and to understand thesystem you are about to change ¾^ System contains a lot of useful functionality that shouldbe included in any future system ¾^ Documentation rarely describes a system completely andnot up to date and ¾^ Current operation of the system may differ significantlyfrom what is described

8

Analyze Existing System - Interview

¾^ Questionnaires are useful when information has to begathered from a large number of people ¾^ The answers to questions need to be compared orcorroborated. ¾^ Ask problem-oriented questions during interview ¾^ Interview groups of people together to get synergy

UTSA CS

9

Analyze Existing System - Apprentice

¾^ The requirements analyst is the apprentice and the user isthe master craftsman. ¾^ The user can–^

Describe the task precisely– Explain why the task is done this way– List the exceptions that can occur

10

Brainstorm

¾^ Brainstorm is used to gather ideas from every stakeholderand prune ideas ¾^ When you have no idea, or too many ideas, sit down andthrash it out, but with some ground rules ¾^ Most useful early on, when terrain is uncertain, or whenyou have little experience, or when novelty is important

UTSA CS

Brainstorm

¾^ Keep the tone informal and non-judgmental ¾^ Encourage creativity ¾^ Keep the number of participants “reasonable”, if too many,consider a “playoff”-type filtering ¾^ Invite back most creative to multiple sessions

12

Brainstorm - the Storm

¾^ Generate as many ideas as possible ¾^ Quantity, not quality, is goal at this stage ¾^ No criticism or debate is permitted ¾^ Write down all ideas where all can see ¾^ Participants should NOT self-censor or spend too muchtime wondering if an idea is practical ¾^ Original list does not get circulated outside of themeeting

UTSA CS

Brainstorm – the Calm

¾^ Go over the list and explain ideas more carefully ¾^ Categorize into “maybe” and “no” by pre-agreed consensusmethod ¾^ Be careful about time

Meetings tend to lose focus after 90 to 120 minutes ¾^ Review, consolidate, combine, clarify, and expand ¾^ Rank the list by priority somehow; choose a winner

14

Brainstorm – Pruning

¾^ Vote with threshold–^

Each person votes up to n times– Keep those ideas with more than m votes– Have multiple rounds thereof with smaller n and m ¾^ Vote with campaign speeches–^

Each person votes up to j < n times– Keep those ideas with at least one vote– Have multiple rounds thereof with smaller j

UTSA CS

Requirements Analysis

¾^ Understand the desired behavior–^

Interpret the stakeholders' descriptions of requirements– Resolve ambiguities, contradictions, loose ends, etc. ¾^ Build models–^

Use standard notations– Help us to understand the requirements

16

Requirements: What vs. How

¾^ Requirements describe purpose and scope of the system–^

What behavior the customer wants– Not how the behavior is realized ¾^ Requirements focus on customer and problems–^

Understand the customer’s needs– Describe the background and overview of the problem ¾^ Requirements represent objects, states, and functions ¾^ Requirements include assumptions of the environment

UTSA CS

Requirements Specification

¾^ Specify requirements–^

Document what is required of the system to be developed– State the requirements from the perspective of thedevelopers– May be a formal document (IEEE-SRS) ¾^ Requirements document and specification document aredifferent–^

Requirements document is a contract– Specification is a detailed guideline for developers

18

Requirements vs. Specification

¾^ Requirements document is–^

A complete list on what customers want– In terms of environment without reference to system– A contract between clients and developers ¾^ Specification represents–^

System’s behavior in terms of the input and output of asystem– Which requirements shall be realized by the system– How environment entities are controlled by the system

UTSA CS

Requirements^ Environment

Data structuresand algorithmsSystem

Specification Interface

Requirements vs. Specification

20

¾^ Requirements are a collection of statements aboutphenomena in the environment that we want the system tohelp make true ¾^ A specification is a collection of statements that describea system’s external behavior as observable through theInterface–^

A specification refers only to shared phenomena in theinterface and what the system shall do– A specification can constrain only shared phenomena that thesystem itself can control

Requirements vs. Specification

UTSA CS

Requirements vs. Specification

¾^ Example: a turnstile to the park–^

Requirements1.^ No one should enter the park without paying an entrance fee2.^ For every entrance fee paid, the system should not prevent acorresponding entry– SpecificationWhen a visitor applies a certain amount of force on anunlocked turnstile, the turnstile will rotate till a lockedposition

22

Requirements Validation

¾^ Validate the requirements against stakeholders–^

Reflect accurately customer’s need– Also create system-level test plans ¾^ Validation can be done with techniques–^

Walkthrough– Review– Prototype– Formal inspection

UTSA CS

Specification Verification

¾^ Verify the specification against requirements–^

Conforms to the requirement definition– Build the system right ¾^ Verification can be done with techniques–^

Simulation– Consistency checking– Completeness checking– Formal verification: model checking or mathematical reasoning

24

Software Requirements Specifications

¾^ Introduction ¾^ Overall description ¾^ Specific requirements ¾^ Requirements table

UTSA CS

Software Requirements Specification

Section 0–^

Table of ContentsEssential for tracing through use cases, classes, statediagrams– Table of FiguresEssential for finding each diagram– List of TablesEssential for finding each table

26

Software Requirements Specification

Section 1

Introduction 1.1 Purpose of the SRSe.g., the intended audience1.2 Scope1.3 Acronyms, abbreviations, notational conventions1.4 Overviewe.g., the structure of the rest of the SRS

document

1.5 ReferencesCan be put at the end of the document

UTSA CS

Software Requirements Specification

Section 2

General description 2.1 Product perspective – the environmentAny hardware and software components that interactwith the systemOverview of the interfaces to other componentA block diagram would be nice

28

Software Requirements Specification

Section 2

General description 2.2 Product functionsOverview of the system’s main functionsNo detail descriptionAt the level of use case names2.3 User characteristicsAssumptions about the user

UTSA CS

Software Requirements Specification

Section 2

General description 2.4 General constraintse.g., laws, hardware limitationsAny sources of constraints on requirements or design2.5 Assumptions and DependenciesAssumptions about the environmentAny environmental conditions that could cause the system tofail

30

Software Requirements Specification

Section 3

Specific requirements 3.1 Functional requirements3.1.1 Use case diagrams and detail description in tabular formatN^ umber each use case for future reference.3.1.2 Class diagrams3.1.3 State diagrams3.1.4 Sequence diagramsIn each above section 3.1.x, give English introduction to each diagramto help the reader understand each diagram.

UTSA CS

Software Requirements Specification

Section 3

Specific requirements (continued) 3.1 Functional requirements (continued)3.1.5 Data dictionary in tabular format^ z^

Classes: purpose z Attributes: purpose, range of values z Operations: purpose, parameters, pre/post conditions z Events: purpose, source, destination, parameters

32

Software Requirements Specification

Section 3

Specific requirements 3.2 User interface requirements^ z^

Screen shots z Purpose of each button, menu options, etc. z List of input/output events z How to navigate among windows

UTSA CS

Software Requirements Specification

Section 3

Specific requirements 3.3 Non-functional requirementsReliabilityPortabilitySecurity…

UTSA CS

34

Software Requirements Specification

Section 4

Requirements table

-^ Requirement number–^ Name–^ Description–^ Related requirements’ numbers and source–^ Related use cases’ numbers

UTSA CS

Reading Assignments

¾^ Sommerville’s Book–^

Chapter 7, “Requirements Engineering Process” ¾^ IEEE Std 830-1998, “IEEE Recommended Practice forSoftware Requirements Specification”