A Taxonomy for Scenario Use in Requirements Elicitation and Analysis of Software Systems
Total Page:16
File Type:pdf, Size:1020Kb
A Taxonomy for Scenario Use in Requirements Elicitation and Analysis of Software Systems Brian D. Chance Bonnie E. Melhart Motorola Cellular Division TCU Fort Worth, TX 76137 Fort Worth, TX 76129 [email protected] [email protected] Abstract above. It is very difficult to see what is missing from a document by simply reading the document. Scenarios This work introduces a taxonomy of scenario use help one read and review with a different viewpoint with the objective to improve completeness of the because they encourage consideration of the details of requirements specification. Indications are given for each requirement instead of a general review. In future work to enable scenario development for some particular they enable discussion and review of dynamic weak categories of the taxonomy. behavior of the system under development. We are investigating scenarios as a means to improve completeness in a requirements specification document. Introduction Scenario Usage In systems development the first step in providing a solution that meets the customer’s needs is to define Scenario usage in development of software systems what problem must be solved. Requirements elicitation varies greatly and even the definition of a scenario is not and analysis is perhaps more iterative than any other consistent. Some use scenario to imply a particular phase of systems and software development. Rarely is customer use case, others refer to any sequence of system this process complete in one pass. Each iteration usually events as a scenario, and still others apply scenarios to includes these main activities: documenting the business goals or software inspections. We take the very requirements a system must provide; refining these general definition that a scenario refers to an ordered requirements; analysis for omissions, contradictions, and collection of inputs or internal states that produce a ambiguities; and review with consideration for a balance specific result. Ordered inputs might reflect a particular between customer concerns and desires, and profit and use case. Internal states implies, but does not timeliness of a solution. Requirements analysis often necessitate, state based analysis. An internal state could feeds the next iteration of requirements elicitation. illustrate an interface between two subsystems in which Completeness is one of the most difficult aspects to both subsystems can either communicate reliably or not assess in a requirements specification. Davis gives four communicate reliably. qualities of completeness in a requirements specification Basili and others have studied the use of scenarios in document: requirements inspections [PVB95]. However, careful 1 - All functionality required is included in the analysis of their use of scenarios shows their meaning document. differs from ours in this work. They define scenarios as 2 - Responses to all possible valid inputs and all “collections of procedures for detecting particular classes realizable invalid inputs are documented. of faults.” Their use of the term scenarios could perhaps 3 - All word processing is complete. This would also be interpreted as checklists; for example “Are all data include complete figures, tables of content, objects mentioned in the overview listed in the external required sections, and others. interface section?” is a scenario in their context. 4 - Nothing should be left to be determined. [Dav90] Several object-oriented methodologies, including the Scenarios aid in the detection of missing Unified Modeling Language (UML) methodology, requirements, addressing qualities one and two mentioned incorporate scenarios in the inception phase. In this phase, the scope and business case for the software is to create and use the scenarios during requirements analyzed. Use cases, as they are called in UML, help analysis. capture the requirements, stimulate discussion with the Ad hoc processes for generating scenarios and customer and users, and drive the tasks in design [UML]. analyzing requirements via these scenarios are the most A comprehensive study of the current use of prevalent. As ad hoc implies, there is no structured scenarios in software engineering and information approach to scenario definition, and use is inconsistent systems development was performed by Klausen and between practitioners. Generally the ad hoc process Aboulafia [KA94] . Their work focuses on the usage of consists of one or more developers recreating certain use scenarios in systems design and provides key insight into cases (i.e., human system interactions with an intended the engineers’ understanding and use of scenarios. They result) that have caused errors in operation in previous conducted interviews with several highly experienced systems or releases. These use cases or scenarios are engineers and categorized the responses. To give an idea then used to analyze new requirements or architectures. of the responses they encountered, one engineer indicated There is little or no recognition or documentation of that his company did not use scenarios or formal methods these scenarios. Klausen and Aboulafia determined the during design; however, they did use instances of user- process of creating and using scenarios is often ad hoc system interaction to spawn ideas and further design and unnamed. analysis. In addition, the end quality of the product was Holbrook has introduced Scenario Based strongly related to the personnel involved and the creation Requirements Elicitation (SBRE) [Hol90]. The stated of appropriate user-system interactions. Another purpose of the SBRE methodology is to “provide an respondent’s opinion was that performing scenario effective method for eliciting a user’s initial requirements analysis during design would take too much time. His based on the use of scenarios as a means of company’s typical product cycle is six months. communicating a design from designer to the user.” The Furthermore, he believes the scenarios generated are main goals of SBRE are to: typically unrealistic; however, his company employs 1 - Facilitate parallel development of the situations of use when evaluating early prototypes of the requirements and the high level design; product. 2 - Use scenarios to communicate the behavior of Analysis of the interviews gives some intuition into the design to the user; the current state of awareness of scenario usage for 3 - Use scenarios to assess the suitability of the software system development. Their results show: design; 1 - Awareness of the term “scenarios” is low; 4 - Create a collection of user’s issues which refine 2 - Scenarios are being used by different the scenarios and the design. organizations, though some organizations use The SBRE process creates scenarios in an iterative scenarios without calling them that; process where refinement is accomplished from feedback 3 - Any methodology formulated to create and given by the user. By considering the scenarios integrate scenarios must be easy to use and generated, the user can provide feedback each time the cannot be time intensive; functionality of the system is reviewed. Holbrook 4 - The quality and suitability of scenario selection stresses the importance of this scenario review; it can have a great impact on the quality of the end identifies unstated requirements and helps improve the product. requirements’ completeness. Finally, scenarios are used by software testers in Hsia and others have developed a methodology for integration and acceptance testing of functionally scenario generation to aid requirements elicitation structured or object-oriented based software [KGH95, [HSG94]. In this methodology, the scenario creation and TS93]. Often scenarios are directly translated into use process is combined with a prototype generation to system test cases. In addition, scenarios can be used for refine the scenarios and more closely match customer module testing by developers. Since the module desires with product functionality. To create scenarios, interfaces are known, it is relatively straightforward to they complete the following three steps: create scenarios that vary these inputs for testing each 1 - Identify and classify user groups. In this step, module. one logically groups all users of the software into one or more groups. Current Scenario Methodology 2 - Classify user views. User groups are identified as either active or dependent user views. In addition to reviewing current scenario usage, it is 3 - Construct scenario trees for each user view. For important to understand what methodologies are available each user view identified, a scenario tree is created which identifies system states and events. Each • Description: This describes how this category of node of the tree is a system state, and each event scenarios differs from all other categories. is identified as a transition from one system state • Creators/Users: This lists the architects and to another. developers most likely to create or use the scenario The scenarios are created by tracing events from the category. node at the top of the tree through a unique path to a • Information Needed: This lists the information terminal node on the bottom of the tree. Once all paths that is useful to create scenarios of this category. through the tree have been represented, scenario creation • Uses: This lists the most common uses of is complete. All the scenarios are logically associated scenarios of this category. with the user views, and a formal scenario grammar is In the taxonomy depicted in figure 1, scenarios can created