In
computing
Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes, and development of both hardware and software. Computing has scientific, e ...
, a scenario (, ;
loaned (), ) is a narrative of foreseeable
interactions
Interaction is action that occurs between two or more objects, with broad use in philosophy and the sciences. It may refer to:
Science
* Interaction hypothesis, a theory of second language acquisition
* Interaction (statistics)
* Interactions o ...
of user roles (known in the
Unified Modeling Language
The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system.
The creation of UML was originally m ...
as '
actors') and the technical system, which usually includes
computer hardware
Computer hardware includes the physical parts of a computer, such as the computer case, case, central processing unit (CPU), Random-access memory, random access memory (RAM), Computer monitor, monitor, Computer mouse, mouse, Computer keyboard, ...
and
software
Software is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work.
At the lowest programming level, executable code consists ...
.
A scenario has a
goal, which is usually functional. A scenario describes one way that a system is used, or is envisaged to be used, in the context of an activity in a defined time-frame. The time-frame for a scenario could be (for example) a single transaction; a business operation; a day or other period; or the whole
operational life
A product's service life is its period of use in service. Several related terms describe more precisely a product's life, from the point of manufacture, storage, and distribution, and eventual use.
Service life has been defined as "a product's ...
of a system. Similarly the scope of a scenario could be (for example) a single system or a piece of equipment; an equipped team or a department; or an entire organization.
Scenarios are frequently used as part of the system development process. They are typically produced by usability or
marketing
Marketing is the process of exploring, creating, and delivering value to meet the needs of a target market in terms of goods and services; potentially including selection of a target audience; selection of certain attributes or themes to emph ...
specialists, often working in concert with end users and developers. Scenarios are written in plain language, with minimal technical details, so that
stakeholder
Stakeholder may refer to:
*Stakeholder (corporate), a group, corporate, organization, member, or system that affects or can be affected by an organization's actions
*Project stakeholder, a person, group, or organization with an interest in a proje ...
s (designers, usability specialists, programmers, engineers, managers, marketing specialists, etc.) can have a common ground to focus their discussions.
Increasingly, scenarios are used directly to define the wanted behaviour of software: replacing or supplementing traditional
functional requirement
In software engineering and systems engineering, a functional requirement defines a function of a system or its component, where a function is described as a specification of behavior between inputs and outputs.
Functional requirements may involve ...
s. Scenarios are often defined in
use case
In software and systems engineering, the phrase use case is a polyseme with two senses:
# A usage scenario for a piece of software; often used in the plural to suggest situations where a piece of software may be useful.
# A potential scenario ...
s, which document alternative and overlapping ways of reaching a goal.
[Alexander and Beus-Dukic, 2009. Page 120]
Types of scenario in system development
Many types of scenario are in use in system development. Alexander and Maiden
[Alexander and Maiden, 2004. Chapter 1.] list the following types:
*
Story: "a narrated description of a causally connected sequence of events, or of actions taken".
[ Brief User stories are written in the ]Agile
Agile may refer to:
* Agile, an entity that possesses agility
Project management
* Agile software development, a development method
* Agile construction, iterative and incremental construction method
* Agile learning, the application of incremen ...
style of software development.[Cohn, 2004.]
* Situation, Alternative World: "a projected future situation or snapshot". This meaning is common in planning, but less usual in software development.[
* ]Simulation
A simulation is the imitation of the operation of a real-world process or system over time. Simulations require the use of Conceptual model, models; the model represents the key characteristics or behaviors of the selected system or proc ...
: use of models to explore and animate 'Stories' or 'Situations', to "give precise answers about whether such a scenario could be realized with any plausible design" or "to evaluate the implications of alternative possible worlds or situations".[
* ]Storyboard
A storyboard is a graphic organizer that consists of illustrations or images displayed in sequence for the purpose of pre-visualizing a motion picture, animation, motion graphic or interactive media sequence. The storyboarding process, i ...
: a drawing, or a sequence of drawings, used to describe a user interface or to tell a story. This meaning is common in Human–computer interaction to define what a user will see on a screen.[
* Sequence: a list of interactive steps taken by human or machine agents playing system roles. The many forms of scenario written as sequences of steps include Operational Scenarios, Concepts of Operations, and Test Cases.][
* Structure: any more elaborately-structured representation of a scenario, including ]Flowchart
A flowchart is a type of diagram that represents a workflow or process. A flowchart can also be defined as a diagrammatic representation of an algorithm, a step-by-step approach to solving a task.
The flowchart shows the steps as boxes of va ...
s, UML/ITU 'Sequence Charts', and especially in software development Use case
In software and systems engineering, the phrase use case is a polyseme with two senses:
# A usage scenario for a piece of software; often used in the plural to suggest situations where a piece of software may be useful.
# A potential scenario ...
s.[
Negative scenarios or ]misuse case
Misuse case is a business process modeling tool used in the software development industry. The term ''Misuse Case'' or ''mis-use case'' is derived from and is the inverse of use case.Sindre and Opdahl (2001).Capturing Security Requirements throug ...
s may be written to indicate likely threats which should be countered to ensure that systems have sufficient security
Security is protection from, or resilience against, potential harm (or other unwanted coercive change) caused by others, by restraining the freedom of others to act. Beneficiaries (technically referents) of security may be of persons and social ...
, safety
Safety is the state of being "safe", the condition of being protected from harm or other danger. Safety can also refer to risk management, the control of recognized hazards in order to achieve an acceptable level of risk.
Meanings
There are ...
, and reliability. These help to discover non-functional requirements
In systems engineering and requirements engineering, a non-functional requirement (NFR) is a requirement that specifies criteria that can be used to judge the operation of a system, rather than specific behaviours. They are contrasted with functi ...
.[Alexander and Maiden, 2004. Chapter 7.]
Uses in system development
Scenarios have numerous possible applications in system development. Carroll (1995) lists 10 different "roles of scenarios in the system development lifecycle":[Carroll, 1995. Pages 7-8]
# Requirements analysis: scenarios describe the "state-of-the-art" (often called "as-is"); acted scenarios help to discover requirements as analysts "stage a simulated work situation".
# User-designer communication: users contribute scenarios important to them, or situations they want to experience or avoid.[
# ]Design rationale
A design rationale is an explicit documentation of the reasons behind decisions made when designing a system or artifact. As initially developed by W.R. Kunz and Horst Rittel, design rationale seeks to provide argumentation-based structure to th ...
: rationale can explain design "with respect to particular scenarios of user interaction".[
# Envisionment: scenarios "can be a medium for working out what a system being designed should look like and do." In this role, scenarios can be "graphical mockups such as storyboards or video-based simulations", and may form early ]prototype
A prototype is an early sample, model, or release of a product built to test a concept or process. It is a term used in a variety of contexts, including semantics, design, electronics, and Software prototyping, software programming. A prototyp ...
s of the system under design.[
# ]Software design
Software design is the process by which an agent creates a specification of a software artifact intended to accomplish goals, using a set of primitive components and subject to constraints. Software design may refer to either "all the activity ...
: "scenarios can be analyzed to identify the central problem domain objects" needed; the same scenarios can be developed to describe the objects' state, behavior and interactions.[
# Implementation: software can be built one scenario at a time, helping "to keep developers focused" and "producing code that is more generally useful".][
# ]Documentation
Documentation is any communicable material that is used to describe, explain or instruct regarding some attributes of an object, system or procedure, such as its parts, assembly, installation, maintenance and use. As a form of knowledge manageme ...
and Training: "scenarios of interaction that are meaningful to the users" can bridge the gap between the system as built "and the tasks that users want to accomplish using it".[
# Evaluation and testing: since "a system must be evaluated against the specific user tasks it is intended to support", scenarios are ideal for evaluation.][
# Abstraction: general rules that apply across different tasks (or systems) can be identified by comparing scenarios.][
# Team building: "a set of touchstone stories is an important cohesive element in any social system".][
]
In differing styles of system development
The choice of scenario representation varies widely with style of development, which is related to the industrial context.
See also
* Happy path
In the context of software or information modeling, a happy path (sometimes called happy flow) is a default scenario featuring no exceptional or error conditions. For example, the happy path for a function validating credit card numbers would be ...
* Scenario testing
Scenario testing is a software testing activity that uses scenarios: hypothetical stories to help the tester work through a complex problem or test system. The ideal scenario test is a credible, complex, compelling or motivating story; the outcome ...
References
Bibliography
* Alexander, Ian and Beus-Dukic, Ljerka. ''Discovering Requirements: How to Specify Products and Services''. Wiley, 2009.
* Alexander, Ian F. and Maiden, Neil. ''Scenarios, Stories, Use Cases''. Wiley, 2004.
* Carroll, John M. (ed) ''Making Use: Scenario-based Design of Human-Computer Interactions''. MIT Press, 2000.
* Carroll, John M. (ed) ''Scenario-Based Design: Envisioning Work and Technology in System Development''. Wiley, 1995.
* Cockburn, Alistair. ''Writing Effective Use Cases''. Addison-Wesley, 2001.
* Cohn, Mike. ''User Stories Applied: for Agile Software Development''. Addison-Wesley, 2004.
* Fowler, Martin. ''UML Distilled''. 3rd Edition. Addison-Wesley, 2004.
External links
Notes on Design Practice: Stories and Prototypes as Catalysts for Communication.
by Thomas Erickson, in Carroll, 1995.
{{DEFAULTSORT:Scenario (Computing)
Software requirements
Software design
Usability