Feasibility and Requirements Elicitation

50
Software Engineering Feasibility and Requirements Elicitation Prof. Agostino Poggi

Transcript of Feasibility and Requirements Elicitation

Page 1: Feasibility and Requirements Elicitation

Software Engineering

Feasibility and Requirements Elicitation

Prof. Agostino Poggi

Page 2: Feasibility and Requirements Elicitation

University of Parma - 2Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Feasibility Study

♦ A feasibility study decides whether or not the proposed system is worthwhile

♦ A short focused study that checks

� If the system contributes to organisational objectives

� If the system can be engineered using current technology and within budget

� If the system can be integrated with other systems that are used

♦ Is based on information assessment (what is required), information assessment and report writing

Mc128k
Studiare se soddisfa le esigenze della azienda, se è fattibile, se ci sono le tecnologie e il budget
Page 3: Feasibility and Requirements Elicitation

University of Parma - 3Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Feasibility Study Questions

♦What if the system was not 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 proposedsystem?

Page 4: Feasibility and Requirements Elicitation

University of Parma - 4Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Requirements Elicitation

♦ Identifies relevant sources of requirements (usually customer)

♦Determines what information is needed

♦Analyzes the gathered information, looking for implications, inconsistencies, or unresolved issues

♦Confirms your understanding of the requirements with the source (customer)

♦Synthesizes appropriate statements of the requirements

Mc128k
Raccolta requisiti
Mc128k
Interagire con il cliente e chiedere se le soluzioni possono essere corrette per quello che hanno richiesto…
Page 5: Feasibility and Requirements Elicitation

University of Parma - 5Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

System Stakeholders

♦Are all the persons who are affected by the system in some way and so who have a legitimate interest

♦ Include end-users who interact with the system andeveryone else in an organization that may be affectedby its installation

♦May be engineers who are developing or maintainingrelated systems, business managers, domain experts,and trade union representatives

Page 6: Feasibility and Requirements Elicitation

University of Parma - 6Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Outcome of Good Elicitation (1/2)

♦Customers fully explore and fully understand their requirements

♦Customers are able to separate their wants from their needs

♦Customers are able to understand the capabilities and limitations of computer technology

♦Customers understand the alternative solutions and impact of each alternative

♦Customers understand the impact of the requirements on the developers and on themselves

Page 7: Feasibility and Requirements Elicitation

University of Parma - 7Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Outcome of Good Elicitation (2/2)

♦Developers are solving the right problem

♦Developers have confidence that the system to be delivered is feasible to build

♦Developers have the trust and confidence of the customer

♦Developers gain knowledge on the domain of the system

Page 8: Feasibility and Requirements Elicitation

University of Parma - 8Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Outcome of Poor Elicitation

♦Customers probably are dissatisfied

♦Customers and developers have to cope with constantly changing requirements

♦Developers are solving the wrong problem

♦Developers have a difficult time building the system

Page 9: Feasibility and Requirements Elicitation

University of Parma - 9Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Elicitation Techniques

♦Document analysis

♦Observation of the work environment

♦Questionnaire

♦ Interviews

♦Scenarios and stories

Page 10: Feasibility and Requirements Elicitation

University of Parma - 10Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Document Analysis Sources

♦Organization chart and related documents

♦Memos and other documents that describe the problem

♦Documentation and standard operating procedures for current system

♦Manual and computerized screens and reports

♦Samples of databases

♦…

Page 11: Feasibility and Requirements Elicitation

University of Parma - 11Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Document Analysis Step

♦Prepare stage: identification of documents are suitableand relevant for analysis

♦Review stage: study the documents, taking note of relevant information and listing follow-up questions for the stakeholders

♦Wrap up stage: review of notes with stakeholders, organizing requirements and seeking answers to follow-up questions

Page 12: Feasibility and Requirements Elicitation

University of Parma - 12Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Document Analysis Tradeoff

- Can come in useful where stakeholders are unavailable or no longer with the organization

- Ensures that the work does not start from a blank page

-Acts as a means of cross-checking requirements with other sources

/Amount of data may make costs and time unsustainable

/ Can only be carried out if the complete list of informationis available

/May determine wrong priority of requirements

Page 13: Feasibility and Requirements Elicitation

University of Parma - 13Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Observation Guidelines (1/2)

♦Determine the who, what, where, when, why, and howof the observation

♦Obtain permission from appropriate supervisors or managers

♦ Inform those who will be observed of the purpose of the observation

♦Keep a low profile

mc128k
Sticky Note
Partire anche dalla osservazione del vecchio sistema
Page 14: Feasibility and Requirements Elicitation

University of Parma - 14Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Observation Guidelines (2/2)

♦Take notes during or immediately following the observation

♦Review observation notes with appropriate individuals

♦Do not interrupt the individuals at work

♦Do not focus heavily on trivial activities

♦Do not make assumptions

Page 15: Feasibility and Requirements Elicitation

University of Parma - 15Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Observation Tradeoff

-Data gathered can be very reliable - Can see exactly what is being done in complex tasks - Relatively inexpensive compared with other techniques - Can do work measurements/ People may perform differently when being observed/Work observed may not be representative of normal

conditions / Timing can be inconvenient / Interruptions/ Some tasks not always performed in the same way /May observe wrong way of doing things

mc128k
Highlight
mc128k
Sticky Note
Nota aggiuntiva: gli utenti cambiano modo di utilizzare le applicazioni man mano che le usano. Abusare di queste osservazioni porta ad avere un workflow inconsistente perchè si osservano le abitudini degli utenti senza tenere una struttura logica...
Page 16: Feasibility and Requirements Elicitation

University of Parma - 16Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Questionnaire Types

♦Free-format questionnaire

� A questionnaire designed to offer the respondent greater latitude in the answer

� A question is asked, and the respondent records the answer in the space provided after the question

♦Fixed-format questionnaire

� A questionnaire containing questions that require selecting an answer from predefined available responses

Page 17: Feasibility and Requirements Elicitation

University of Parma - 17Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Developing a Questionnaire

♦Determine what facts and opinions must be collectedand from whom you should get them

♦Based on the facts and opinions sought, determinewhether free- or fixed-format questions will produce the best answers

♦Write the questions

♦Test the questions on a small sample of respondents

♦Update the questionnaire if necessary

♦Duplicate and distribute the questionnaire

Page 18: Feasibility and Requirements Elicitation

University of Parma - 18Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Questionnaire Tradeoff

- Collects information from a large number of individualsrelatively inexpensively� The savings result from the reduced need for staff and, possibly,

travel expenses� The savings are most important where a large sample is needed

- Contributes to reliability by promoting greater consistency/Does not provide an opportunity for the auditor to

� Clarify questions� Verify that answers are understood� Seek clarification or elaboration of answers

/Does not ensure that the respondent answers all the questions on the form

Page 19: Feasibility and Requirements Elicitation

University of Parma - 19Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Interview Types

♦Unstructured interview

� An interview that is conducted with only a general goal or subject in mind and with few, if any, specific questions

� The interviewer counts on the interviewee to provide a framework and direct the conversation

♦Structured interview

� An interview in which the interviewer has a specificset of questions to ask to the interviewee

Page 20: Feasibility and Requirements Elicitation

University of Parma - 20Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Question Types

♦Open-ended question

� A question that allows the interviewee to respond in any way that seems appropriate

♦Closed-ended question

� A question that restricts answers to either specificchoices or short and direct responses

♦Often the open-ended and closed-ended are mixed

Page 21: Feasibility and Requirements Elicitation

University of Parma - 21Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Interview Conduction

♦Select interviewees� Learn about individuals prior to the interview

♦Prepare for the interview � Interview guide is a checklist of questions

♦Conduct the interview � Establish rapport � Summarize the problem � Offer an incentive for participation / ask the interviewee for

assistance� Thank interviewees

♦Follow up on the interview � Memo that summarizes the interview

Page 22: Feasibility and Requirements Elicitation

University of Parma - 22Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Interview Guidelines

♦Be courteous and patient♦Use clear and concise language♦ Listen carefully ♦Do not include your opinion as part of the question♦Avoid long or complex questions♦Avoid threatening questions♦Observe mannerisms and nonverbal communication

♦Maintain self-control

mc128k
Sticky Note
Non fargli capire che per te è un idiota
Page 23: Feasibility and Requirements Elicitation

University of Parma - 23Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Interview Tradeoff

- Find, verify, clarify facts� About what users do� About how users might interact with the system

-Generate enthusiasm -Get the end-user involved - Solicit ideas and opinions/ Interviews are not good for understanding domain

requirements� Requirements engineers cannot understand specific domain

terminology� Some domain knowledge is so familiar that people find it

hard to articulate or think that it is not worth articulating

Page 24: Feasibility and Requirements Elicitation

University of Parma - 24Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

User Stories & Scenarios

♦Are real-life examples of how a system can be used

♦Are a description of how a system may be used for a particular task

♦Because they are based on a practical situation, stakeholders can relate to them and can comment on their situation with respect to the story

♦Scenarios are structured forms of user stories

Page 25: Feasibility and Requirements Elicitation

University of Parma - 25Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Scenarios

♦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

Page 26: Feasibility and Requirements Elicitation

University of Parma - 26Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Use Cases (1/2)

♦Are a kind of scenario that takes advantage of UML Diagrams

♦Allow the description of sequences of events that, taken together, lead to a system doing something useful

♦Are simply descriptions (a story) of users and systemsinteracting in a typical fashion to go through the various paths or parts of a business process or automated process

♦Describe the interaction between a primary actor, the initiator of the interaction, and the system itself, through a sequence of simple steps

Page 27: Feasibility and Requirements Elicitation

University of Parma - 27Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Use Cases (2/2)

♦Should describe all the possible interactions within and with the system

♦Are not mapped one-to-one to requirements� Each requirement must be covered by at least one use case� However, use cases may contain many requirements

♦Are described by combining� Use case diagrams� Textual descriptions� Interaction diagrams (optional)

♦Are realized by identifying the actors and the interaction between the actors and the system

Page 28: Feasibility and Requirements Elicitation

University of Parma - 28Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Actor Identification

♦Define system boundary to identify actors correctly

♦ Identify users and systems that depend on the systemprimary and secondary functionalities

♦ Identify hardware and software platforms with which the system interacts

♦Select entities that play distinctly different roles in the system

♦ Identify as actors the external entities with common goals and direct interaction with the system

♦Denote actors as nouns

Page 29: Feasibility and Requirements Elicitation

University of Parma - 29Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Use Case Identification

♦Business / Domain Use Cases

� Interactions between users and the business (or domain)

♦System Use Cases

� Interactions between users and the system

� One business use case contains a set of system use cases

♦To name the use cases, give it a verb name to show the action that must be performed� Describe a transaction completely

� No description of user interface whatsoever

Page 30: Feasibility and Requirements Elicitation

University of Parma - 30Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Scenarios Identification

♦Tasks to be performed by the user and the system

♦Starting situation and final states

♦Flow of information to the user and to the system

♦Events that are conveyed to the user and to the system

♦Normal flow of events

♦What can go wrong

♦Other concurrent activities

Page 31: Feasibility and Requirements Elicitation

University of Parma - 31Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Use Case Features

♦ Is described by few steps (up to 5), but most important, provides a meaningful result to the end users

♦Describes interactions and mechanisms not policies

♦Excludes user or system interfaces implementation choices

♦ Is described by few (5 - 10) pages

♦Has a single initiator actor

♦ Includes the major business exceptions and their handling

Page 32: Feasibility and Requirements Elicitation

University of Parma - 32Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Ranking Use Cases

♦Use cases can be ordered on the basis of their importancefor the realization of the system

♦Ordering depends on� Significant impact on the architectural design� Include risk, time-critical or complex function� Involve significant research and/or new and risky technology� Represent primary line-of-business processes� ...

♦Ranking is usually expressed with qualitative values� E.g., high, medium, low� E.g., must have, essential, nice to have

mc128k
Highlight
Page 33: Feasibility and Requirements Elicitation

University of Parma - 33Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Use Case Main Components

♦Define the start state and the preconditions♦Define when the use case starts♦Define the order of activities in the main flow of events♦Define any alternative flows of events♦Define any exceptional flows of events♦Define any post conditions and the end state♦Mention the actors involved with this use case, and any

use cases used or extended by this use case♦Mention the related interaction diagrams♦Mention any design issues as an appendix

Page 34: Feasibility and Requirements Elicitation

University of Parma - 34Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Use Case Template (1/2)

Use Case ID:Use Case Name:

Created By: Last Updated By:Date Created: Date Last Updated:

Actors:Description:

Trigger:Preconditions:

Postconditions:Normal Flow:

Alternative Flows:Exceptions:

Includes:Priority:

Frequency of Use:Business Rules:

Special Requirements:Assumptions:

Notes and Issues:

Page 35: Feasibility and Requirements Elicitation

University of Parma - 35Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Use Case Template (2/2)

Page 36: Feasibility and Requirements Elicitation

University of Parma - 36Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Use Case Development Guidelines (1/2)

♦Try to describe use cases without thinking about in what way they will be implemented

♦Be as narrative as possible

♦State success scenarios

♦ Introduce all the possible scenarios of a use case

♦Agree on a “format style” for use case description

Page 37: Feasibility and Requirements Elicitation

University of Parma - 37Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Use Case Development Guidelines (2/2)

♦Name a use case starting with an appropriate verb in order to emphasize that it is a process

� E.g., Buy Items, Enter an order, Reduce inventory, etc.

♦Document exception handling or branching

� E.g., when a “buy item” fails, then …

� E.g., when a “credit card approval” fails, then …

♦Do not represent individual steps as use cases

� E.g., define a use case for the operation: printing a receipt

Page 38: Feasibility and Requirements Elicitation

University of Parma - 38Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Mentcare: a Health Case System

♦ Is an information system that is intended for use in clinics ♦Makes use of a centralized database of patient information♦Supports patient records so that clinicians can create, view

and edit the information about patients history♦Supports data summaries so that doctors can quickly learn

about the key problems and treatments that have been prescribed

♦Monitors the records of patients that are involved in treatment and issues warnings if possible problems are detected

♦Generates monthly management reports about patients and the amount of drugs prescribed and their costs

♦Transfers data to a general patient record database that is maintained by a health authority

Page 39: Feasibility and Requirements Elicitation

University of Parma - 39Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Mentcare system Use Cases

Transfer data

View record

Edit record

Register patient

View personal info

Medical receptionist

Nurse

Patient recordsystem

Setup consultation

Doctor

Manager

Export statistics

Generate report

Page 40: Feasibility and Requirements Elicitation

University of Parma - 40Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Transfer Data Use Case

Patient record system

Transfer data

Medical receptionist

Page 41: Feasibility and Requirements Elicitation

University of Parma - 41Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Transfer Data Textual Description

MHC-PMS: Transfer dataActors Medical receptionist, patient records system (PRS)Description Receptionist may transfer data from the Mentcase

system to a general patient record database that ismaintained by a health authorityTransferred data may either be updated personalinformation (address, phone number, etc.) or asummary of the patient’s diagnosis and treatment

Data Patient’s personal information, treatment summaryStimulus User command issued by medical receptionistResponse Confirmation that PRS has been updatedComments Receptionist must have security permissions to

access the patient information and PRS

Page 42: Feasibility and Requirements Elicitation

University of Parma - 42Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Transfer Data Sequence Diagram

Page 43: Feasibility and Requirements Elicitation

University of Parma - 43Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

A Jukebox System

♦Should support the management of playlists

� Download prebuilt playlists, create playlists, add songs to a playlist, reorder playlists, delete song from a playlists, calculate costs, check song availability

♦Should support payment

� Display payment options, payment by cash, payment by cell phone, payment by credit card

♦Should support playback

� Load song, play song, display song information

Page 44: Feasibility and Requirements Elicitation

University of Parma - 44Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Create Playlist Use Case Diagram

Song List Database

Create playlistPlaylist

Customer

Jukebox

Page 45: Feasibility and Requirements Elicitation

University of Parma - 45Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Create Playlist Use Case Description

Property Description Use CaseTitle Create Playlist Goal Allow the customer to create a playlist Scope Playlist Support Level Primary Task Precondition(s) Access to a song list database must be available Postcondition(s) Playlist has been created Primary Actor Customer Actor 2 Playlist Actor 3 Song List Database Trigger Event Customer Chooses to Create a Playlist Step 1 Customer browses through song list databaseException 1.1 Timeout (Customer waited to long) Step 2 Customer selects songs to add to play list Add Songs to Playlist Step 3 List of songs in playlist is displayedVariation 3.1 Customer chooses to reorder playlist Reorder Playlist Variation 3.2 Customer chooses to delete songs from playlist Delete Song from Playlist

Page 46: Feasibility and Requirements Elicitation

University of Parma - 46Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Create Playlist Refined Use Case Diagram

Song List Database

Create playlist

Playlist

Customer

Jukebox

Add song to playlist

Reorder playlist

Delete song from playlist

«include»

«include»

«include»

Page 47: Feasibility and Requirements Elicitation

University of Parma - 47Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

ATM System

Page 48: Feasibility and Requirements Elicitation

University of Parma - 48Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Validate PIN (1/2)

Page 49: Feasibility and Requirements Elicitation

University of Parma - 49Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Validate PIN (2/2)

Page 50: Feasibility and Requirements Elicitation

University of Parma - 50Software Engineering - Feasibility and Requirements Elicitation Prof. Agostino Poggi

Scenarios & Use Cases Tradeoff

-Help to identify the correct system by capturing the requirements from the user's point of view

-Are easy to understand and provide an excellent way for communicating with customers and users

-Help to manage the complexity of large systems by decomposing the problem into major functions

-Help in drawing system boundary, and scoping the requirements

/ Is difficult to find when to stop: even a non-trivial application can produce an essentially infinite number of usage scenarios

/Do not capture the non-functional requirements easily