Requirements analysis

advertisement
Requirements analysis
Speaker: Chuang-Hung Shih
Date: 2009.3.24
Understanding what the customer
wants
 Analysis should come early in any project, and
the most important part of that analysis is the
gathering of business requirements.
 Learn about product and process requirements
and how to effectively determine and prioritize
customer needs.
 Business requirements are statements that
describe what the customer and major
stakeholders need and want.
All about requirements
 Product requirements
 Product requirements describe the business needs in
terms of the main deliverables or products that are
created
 Process requirements
 Process requirements describe how people interact
with a product and how a product interacts with other
products.
 Prioritize the requirements
 Fulfilling some requirements requires much more
effort and cost than others.
Beware of false requirements
 If you could ask your customers what their
requirements were and have them respond
with everything they needed. A number of
challenges must be overcome:
 No single customer normally knows all of the
requirements up front.
 Different customers have different visions of what the
business needs are.
 Requirements are vague.
 Many statements are not requirements.
Success criteria
 The table below lists the criteria for software project
success in order of importance.
Requirements analysis process
 Requirements analysis process: Requirements elicitation,
analysis and specification.
 Requirements analysis is the process of understanding
the customer needs and expectations from a proposed
system or application and is a well-defined stage in the
Software Development Life Cycle model.
 Software requirements analysis and documentation
processes are critical to software project success.
Requirements analysis process
 Steps in the requirements analysis process.
 I. Fix system boundaries

This initial step helps in identifying how the new application
integrates with the business processes, how it fits into the larger
picture and what its scope and limitations will be.
 II. Identify the customer

In more recent times there has been a focus on identifying who the
'users' or 'customers' of an application are.
 III. Requirements elicitation
 IV. Requirements Analysis Process

Once all stakeholder requirements have been gathered, a
structured analysis of these can be done after modeling the
requirements.
 V. Requirements Specification
 VI. Requirements Management
Requirements elicitation


Information is gathered from the multiple stakeholders
identified.
Problems faced in Requirements Elicitation.






Ambiguous understanding of processes
Inconsistency within a single process by multiple users
Insufficient input from stakeholders
Conflicting stakeholder interests
Changes in requirements after project has begun
Tools used in Requirements Elicitation. Some of the current
Requirements Elicitation tools in use are:





Prototypes
Use cases
Data flow diagrams
Transition process diagrams
User interfaces
Requirements specification
 Requirements, once elicited, modeled and
analyzed should be documented in clear,
unambiguous terms.
 To overcome this, Requirements Specifications
may be documented separately as
 User Requirements - written in clear, precise
language with and use cases, for the benefit of the
customer and end-user
 System Requirements - expressed as a
programming or mathematical model, addressing the
Application Development Team and QA( Quality
Assurance) and Testing Team.
Your project's analysis phase should
yield three critical documents
 When the analysis phase of an application
development project ends, a manager should
know what the application looks like, how it
functions, and how it is designed.
 The three important deliverables created
during this phase are:
 The business requirements report.
 The conceptual systems design plan.
 The strategy documents.
The business requirements report
 High-level requirements

This section defines the big-picture requirements that are common to the
entire solution.
 Functional requirements

These are the more specific requirements.

This section should describe the client’s criteria for accepting the application,
if it has not already been described elsewhere.
 Acceptance criteria
 Process model

If you created process models of the solution, they should be included here,
along with the appropriate descriptions.
 Data model
 Additional information

Depending on the project and the particulars of the analysis phase, you
may also need to include any assumptions made in the analysis
process and other models, such as context diagrams, process
decompositions, and entity diagrams.
Conceptual systems design plan
 High-level technical architecture

This is a place to start laying out the technical solution. It should be diagram
at a high level that the business customer can understand.
 Screen layouts

However, a better way is to work with the business client to define what the
screens should look like and then design and code to those general
specifications.
 Report layouts

Work with your clients to define the reports that are needed and the general
columns and selection criteria of the reports.
 Interfaces

At this point, you should have a general idea of the internal and external
interfaces needed for the solution.
High-level strategy documents
 Testing strategy

The purpose of the testing strategy is to define the overall context for the
entire testing process. The process depends on the specific characteristics of
your solution.
 Training strategy

The information includes a training overview, the training needs of the
stakeholders, the types of training to be offered, and how the training will be
built and delivered.
 Data conversion strategy

In this document, you describe at a high level how data will be converted
from the current applications to the new application.
 Implementation strategy

When your application is completed, it may need a formal deployment
strategy. This document provides a general overview of deployment, when it
will occur, the complexities and risks, any assistance at the deployed sites,
and other relevant details.
User Participation in Software
Development Projects

It Is commonly acknowledged that success In IT projects is
difficult to achieve. A recent industry survey observed that only
34% of IT projects were considered successful.

Of the several potential factors contributing to this hard-toachieve success, user involvement was noted as the most
important one.

Researchers and practitioners have viewed user participation
as an important way of improving software quality and
increasing user satisfaction and acceptance.

On the other hand, empirical evidence shows that user
participation in the development process can negatively
influence project performance since it could make the process
more difficult, lengthy, and less effective.
User Participation in Software
Development Projects

This article addresses the question of the relative effectiveness
of user participation by empirically examining the perceived
software project performance (for example, satisfaction) from
both user and developer perspectives simultaneously.

We used survey data from 117 software development projects
and 746 respondents at a large Fortune 100 manufacturing
firm during a four-year time period to investigate the impact of
user participation on the satisfaction of both developers and
users.

In addition, we also study the role of software complexity (for
example, whether projects involve new software development
as opposed to maintenance of existing software) in user
participation and its effect on satisfaction.
User Participation in Software
Development Projects
 Questionnaire data was collected from 453 software
developers and 293 users/customers working on 117
software projects.
 Of the 117 software development projects, 45 (39% of
our sample) were maintenance projects and 72 (61%)
were new development projects. The average software
development time of the 117 software projects was 126
days.
The Level of User Participation
 Projects with nonzero participation greater than the
median (> 0.462) were categorized as high participation.
Of the 72 new development projects, 19 (26%) had low
(very minimal), 26 (36%) had moderate, and 27 (38%)
had high user participation.
 On the other hand, of the 45 maintenance projects, 15
(33%) had low, 16 (36%) had moderate, and 14 (31%)
had high user participation in the development process.
New Development Project Satisfaction
 Low user-participation


An X-shaped effect suggests that users were most satisfied while developers
were significantly less satisfied in the low (minimal) user-participation
situation.
Developers, under such circumstances, were likely to find greater difficulty
in resolving requirements and product feature ambiguities.
New Development Project Satisfaction
 Moderate user-participation



Users participated for an average of 3.88 workdays for a 100 function point
project, implying 28 workdays of customer effort for an average new
development project (711 function points, corresponding to 127 calendar
days).
In other words, users invested approximately 22% as much as the overall
project development time.
Even though the satisfaction levels were not at their highest, developers and
users seemed to reach a common ground when users engage only
moderately in the development process.
 High user-participation


In our sample, a project in this group (high participation), exhibited an
average of 105 workdays of customer participation, in comparison to 28workday effort for a moderate participation project, for an average of 127workday project.
Users participate to such extreme levels, their expectations of project
outcomes could also be exceptionally high. These users are then very
unlikely to be satisfied if actual project outcomes do not perform to their
high expectations
Maintenance Project Satisfaction
 Low user-participation


Both software developers and users were unlikely to be fully satisfied with
low user-participation in maintenance projects.
This effect may be due to the fact that software maintenance is a task that
is fairly difficult to execute and manage effectively due to added complexity
of understanding prior written code and prior corrective repairs on the
baseline software code.
Maintenance Project Satisfaction
 Moderate user-participation


That is, users participated approximately 15% as much as the overall
project development time.
When users are involved in such maintenance projects (moderate
participation), they might be able to lower developers' frustration and
enhance developers' overall software comprehension since users tend to
know more about the features in the original software.
 High user-participation


In our data, users and developers were relatively less satisfied when users
participated for approximately 75 workdays (60% of the overall project
development time).
Even if the original software is well-developed, the maintenance task is
relatively less complicated, and the overall maintenance project is completed
with fairly minimal changes in scope, the high expectations of users might
remain unsatisfied. At the same time, software developers are likely to be
unhappy with over demanding customers/users.
Download