Initiating the Process
11.2.1 Initiating the Process
The most commonly used requirements elicitation technique is to conduct a meet- ing or interview. The first meeting between a software engineer (the analyst) and the
"He who asks a customer can be likened to the awkwardness of a first date between two adolescents. question is a fool for
five minutes; he Neither person knows what to say or ask; both are worried that what they do say will who does not ask a
be misinterpreted; both are thinking about where it might lead (both likely have rad- question remains a
ically different expectations here); both want to get the thing over with, but at the fool forever."
same time, both want it to be a success.
Chinese Proverb
Yet, communication must be initiated. Gause and Weinberg [GAU89] suggest that the analyst start by asking context-free questions. That is, a set of questions that will lead to a basic understanding of the problem, the people who want a solution, the nature of the solution that is desired, and the effectiveness of the first encounter itself. The first set of context-free questions focuses on the customer, the overall goals, and the benefits. For example, the analyst might ask:
1 Davis [DAV93] argues that the terms what and how are too vague. For an interesting discussion of this issue, the reader should refer to his book.
• Who is behind the request for this work? • Who will use the solution? • What will be the economic benefit of a successful solution? • Is there another source for the solution that you need?
These questions help to identify all stakeholders who will have interest in the soft- ware to be built. In addition, the questions identify the measurable benefit of a suc- cessful implementation and possible alternatives to custom software development.
The next set of questions enables the analyst to gain a better understanding of the problem and the customer to voice his or her perceptions about a solution:
• How would you characterize "good" output that would be generated by a successful solution?
“Plain question and plain answer make
• What problem(s) will this solution address? the shortest road out
• Can you show me (or describe) the environment in which the solution will be of most
used? perplexities.”
Mark Twain
• Will special performance issues or constraints affect the way the solution is approached?
The final set of questions focuses on the effectiveness of the meeting. Gause and Weinberg [GAU89] call these meta-questions and propose the following (abbreviated) list:
• Are you the right person to answer these questions? Are your answers "offi- cial"?
If a system or product will serve many users,
• Are my questions relevant to the problem that you have?
be absolutely certain • Am I asking too many questions? that requirements are elicited from a
• Can anyone else provide additional information? representative
• Should I be asking you anything else? cross-section of users. If only one user
These questions (and others) will help to "break the ice" and initiate the communi- defines all
cation that is essential to successful analysis. But a question and answer meeting for- requirements,
mat is not an approach that has been overwhelmingly successful. In fact, the Q&A acceptance risk is high.
session should be used for the first encounter only and then replaced by a meeting format that combines elements of problem solving, negotiation, and specification. An approach to meetings of this type is presented in the next section.
Parts
» The Concurrent Development Model
» SUMMARY Software engineering is a discipline that integrates process, methods, and tools for
» PEOPLE In a study published by the IEEE [CUR88], the engineering vice presidents of three
» THE PROCESS The generic phases that characterize the software process—definition, development,
» THE PROJECT In order to manage a successful software project, we must understand what can go
» METRICS IN THE PROCESS AND PROJECT DOMAINS
» Extended Function Point Metrics
» METRICS FOR SOFTWARE QUALITY
» INTEGRATING METRICS WITHIN THE SOFTWARE PROCESS
» METRICS FOR SMALL ORGANIZATIONS
» ESTABLISHING A SOFTWARE METRICS PROGRAM
» Obtaining Information Necessary for Scope
» An Example of LOC-Based Estimation
» QUALITY CONCEPTS 1 It has been said that no two snowflakes are alike. Certainly when we watch snow
» SUMMARY Software quality assurance is an umbrella activity that is applied at each step in the
» R diagram 1.4 <part-of> data model; data model <part-of> design specification;
» SYSTEM MODELING Every computer-based system can be modeled as an information transform using an
» Facilitated Application Specification Techniques
» Data Objects, Attributes, and Relationships
» Entity/Relationship Diagrams
» Hatley and Pirbhai Extensions
» Creating an Entity/Relationship Diagram
» SUMMARY Design is the technical kernel of software engineering. During design, progressive
» Data Modeling, Data Structures, Databases, and the Data Warehouse
» Data Design at the Component Level
» A Brief Taxonomy of Styles and Patterns
» Quantitative Guidance for Architectural Design
» Isolate the transform center by specifying incoming and outgoing
» SUMMARY Software architecture provides a holistic view of the system to be built. It depicts the
» The User Interface Design Process
» Defining Interface Objects and Actions
» D E S I G N E VA L U AT I O N
» Testing for Real-Time Systems
» Organizing for Software Testing
» Criteria for Completion of Testing
» The Transition to a Quantitative View
» The Attributes of Effective Software Metrics
» Architectural Design Metrics
» Component-Level Design Metrics
» SUMMARY Software metrics provide a quantitative way to assess the quality of internal product
» Encapsulation, Inheritance, and Polymorphism
» Identifying Classes and Objects
» The Common Process Framework for OO
» OO Project Metrics and Estimation
» Event Identification with Use-Cases
» SUMMARY Object-oriented analysis methods enable a software engineer to model a problem by
» Partitioning the Analysis Model
» Designing Algorithms and Data Structures
» Program Components and Interfaces
» SUMMARY Object-oriented design translates the OOA model of the real world into an
» Testing Surface Structure and Deep Structure
» Deficiencies of Less Formal Approaches 1
» What Makes Cleanroom Different?
» Design Refinement and Verification
» SUMMARY Cleanroom software engineering is a formal approach to software development that
» Structural Modeling and Structure Points
» Describing Reusable Components
» SUMMARY Component-based software engineering offers inherent benefits in software quality,
» Guidelines for Distributing Application Subsystems
» Middleware and Object Request Broker Architectures
» An Overview of a Design Approach
» Consider expert Web developer will create a complete design, but time and cost can be appropriate
» A Software Reengineering Process Model
» Reverse Engineering to Understand Data
» Forward Engineering for Client/Server Architectures
» SUMMARY Reengineering occurs at two different levels of abstraction. At the business level,
Show more