Comp 682 MidTerm Exam Review
The Requirements
Problem – Chapter 1
The goal of software development
Develop quality software
Meet schedule
Meet budget
Satisfy customer needs
The relationship between
requirements engineering and project success
Requirements
Management – Chapter 2
Distinguish between
Stakeholder needs
System features
Software requirements
Definition of requirements
management
Requirements and
the Software Lifecycle – Chapter 3
Traditional software process models
Waterfall model
Spiral model
The iterative model (advantages)
The Software Team –
Chapter 4
Skills for effective requirements
management
Analyzing the problem
Understanding user and
stakeholder needs
Defining the system
Managing scope
Refining the system
definition
Building the right
system
Steps in Problem
Analysis – Chapter 5
Gain agreement on the problem
definition – be able to write a problem definition statement
Understand the root causes – be able
to diagram root causes
Identify the stakeholders – be able
to describe how to determine the stakeholders
Define the solution system boundary
– be able to create a system perspective diagram
Identify the constraints to be
imposed on the solution – be able to list constraints for a given problem
Business Modeling –
Chapter 6
What is business modeling?
The purpose of business modeling
When is business modeling important?
System Engineering
– Chapter 7
What is system engineering?
Derived requirements
Subsystem requirements
Interface requirements
Requirements
Elicitation – Chapter 8
The “yes, but” syndrome
The “undiscovered ruins” syndrome
The Features of a
Product/System – Chapter 9
What is a product/system feature?
Attributes of features
Interviewing –
Chapter 10
Context-free questions
Questionnaires
Requirements
Workshops – Chapter 11
Advantages of workshops
Effectively running a workshop
Brainstorming and
Idea Reduction – Chapter 12
What is meant by brainstorming?
Idea reduction
Pruning ideas
Grouping ideas
Defining features
Prioritizing ideas
Web-based brainstorming
Storyboarding –
Chapter 13
What is the purpose of
storyboarding?
Types of storyboards
Passive
Active
Interactive
Advantages of storyboarding
Use Cases – Chapter
14
Benefits of Use Cases
Definition of a use case (be able to
write a use case for a given feature)
Name
Description
Actor(s)
Flow of events
Basic flow
Alternate
flow
Pre-conditions
Post-conditions
Building a use case model
Identify and describe
the actors
Identify the use cases
and write brief descriptions of each
Identify the actor(s)
and use-case relationships
Outline the individual
use cases
Refine the use cases
Use cases and the user interface
design (using storyboarding)
Sample short
answer questions:
1. Explain the difference between stakeholder needs and system features.
2. Identify one important advantage of an iterative lifecycle model.
3. What is system engineering?
4. Explain the “yes, but” syndrome in requirements elicitation.
5.
What
is the difference between an “active” storyboard and an “interactive”
storyboard?
Sample essay
questions:
1. The
major goal in developing a software product is to develop quality software – on time and on budget – that meets
customers’ real needs. Explain why
the task of software requirements analysis, specification, and management plays
such an important role in meeting this goal.
Be sure to describe “the requirements problem” and the reasons why
errors in requirements can cause significant problems.
2. Before
applications development begins for a software project it is important to understand the problem to be solved. A five step process for problem analysis is
outlined below:
a. Gain
agreement on the problem definition.
b. Understand
the root causes of the problem.
c. Identify
the stakeholders and the users whose collective judgment will ultimately
determine the success or failure of the system.
d. Determine
where the boundaries of the solution are likely to be found.
e. Understand
the constraints that will be imposed on the development team and on the
solution.
For each of the steps above briefly
explain why it is important. You can do
this by explaining what can go wrong if the step is not done or not done
well. You may want to give specific
examples to help clarity your explanation.
3. Assume
that your organization has been asked to develop an online course registration
system for students that would allow students to register and pay fees necessary
to attend the University, to add, drop, and change classes, and to display and
print their current programs. You are
requested to duplicate the general functionality of the current telephone-based
registration system using a Web-based approach. For this proposed system complete the table
below, draw a fishbone diagram of root causes, and create a diagram showing the
“System Perspective” showing the key users and stakeholders and indicating the
system boundary. Finally, specify any
constraints imposed on the solution. You
may use your knowledge of the Solar system as a reference, but do not limit
yourself to the things that Solar can do.
You may make any assumptions you like about your organization and that
of the customer that may impose constraints on your solution.
Element |
Description |
The problem is . . . |
Describe the problem |
Affects . . . |
Identify all users and stakeholders
affected by the problem. |
And results in . . . |
Describe the impact of this problem on stakeholders
and activities of the organization. |
Benefits of a solution . . . |
Indicate the proposed solution and list a
few key benefits. |
4. Several
techniques can be used for requirements
elicitation in trying to ensure the development of an effective
requirements specification. These
include the following:
·
Interviewing and questionnaires
·
Requirements workshops
·
Brainstorming and idea reduction
·
Storyboarding
Describe the relative advantages and
disadvantages of each of these techniques and explain under what circumstances
one technique might be more useful than the others. Note that some of these techniques might
overlap with others and that any or all of them might be used for a given project.
5. Brainstorming
involves both idea generation and idea reduction. Describe the activities associated with each
of the following steps associated with brainstorming
and explain how each is typically conducted including approaches to ensure
maximum benefit of the process.
·
Idea Generation (Live Brainstorming)
·
Pruning Ideas
·
Grouping Ideas
·
Defining Features
·
Prioritizing Ideas
6. Using
the Use-Case template below, develop a use case for the dropping of a class by
a student in the Course Registration System described in question 3,
Name of the Use Case Description: Actor(s): Flow of
events: Basic flow: Event 1 Event 2 . . . . . . Alternate flow 1: Event 1 Event 2 . . . . . . Alternate flow 2: Event 1 Event 2 . . . . . . . . . . . . Pre-conditions: Post-conditions: |