In
computing
Computing is any goal-oriented activity requiring, benefiting from, or creating computer, computing machinery. It includes the study and experimentation of algorithmic processes, and the development of both computer hardware, hardware and softw ...
, a scenario (, ;
loaned (), ) is a narrative of foreseeable
interactions of user roles (known in the
Unified Modeling Language
The Unified Modeling Language (UML) is a general-purpose visual modeling language that is intended to provide a standard way to visualize the design of a system.
UML provides a standard notation for many types of diagrams which can be roughly ...
as '
actors
An actor (masculine/gender-neutral), or actress (feminine), is a person who portrays a character in a production. The actor performs "in the flesh" in the traditional medium of the theatre or in modern media such as film, radio, and television. ...
') and the technical system, which usually includes
computer hardware
Computer hardware includes the physical parts of a computer, such as the central processing unit (CPU), random-access memory (RAM), motherboard, computer data storage, graphics card, sound card, and computer case. It includes external devices ...
and
software
Software consists of computer programs that instruct the Execution (computing), execution of a computer. Software also includes design documents and specifications.
The history of software is closely tied to the development of digital comput ...
.
A scenario has a
goal
A goal or objective is an idea of the future or desired result that a person or a group of people envision, plan, and commit to achieve. People endeavour to reach goals within a finite time by setting deadlines.
A goal is roughly similar to ...
, 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 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 act of acquiring, satisfying and retaining customers. It is one of the primary components of Business administration, business management and commerce.
Marketing is usually conducted by the seller, typically a retailer or ma ...
specialists, often working in concert with end users and developers. Scenarios are written in plain language, with minimal technical details, so that
stakeholders (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 summary (or specification or statement) of behavior between inputs and outputs.
Functiona ...
s. Scenarios are often defined in
use case
In both software and systems engineering, a use case is a structured description of a system’s behavior as it responds to requests from external actors, aiming to achieve a specific goal. It is used to define and validate functional requireme ...
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
In software development and product management, a user story is an informal, natural language description of features of a software system. They are written from the perspective of an User (computing)#End user, end user or User (system), user o ...
are written in the Agile 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 an imitative representation of a process or system that could exist in the real world. In this broad sense, simulation can often be used interchangeably with model. Sometimes a clear distinction between the two terms is made, in ...
: 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 simple illustrations or images displayed in sequence for the purpose of pre-visualizing a motion picture, animation, motion graphic or interactive media sequence. The storyboarding proce ...
: 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
Human–computer interaction (HCI) is the process through which people operate and engage with computer systems. Research in HCI covers the design and the use of computer technology, which focuses on the interfaces between people (users) and comp ...
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 v ...
s, UML/ITU 'Sequence Charts', and especially in software development Use case
In both software and systems engineering, a use case is a structured description of a system’s behavior as it responds to requests from external actors, aiming to achieve a specific goal. It is used to define and validate functional requireme ...
s.[
Negative scenarios or misuse cases 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 coercion). Beneficiaries (technically referents) of security may be persons and social groups, objects and institutions, ecosystems, or any other entity or ...
, safety
Safety is the state of being protected from harm or other danger. Safety can also refer to the control of recognized hazards in order to achieve an acceptable level of risk.
Meanings
The word 'safety' entered the English language in the 1 ...
, and reliability
Reliability, reliable, or unreliable may refer to:
Science, technology, and mathematics Computing
* Data reliability (disambiguation), a property of some disk arrays in computer storage
* Reliability (computer networking), a category used to des ...
. 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 funct ...
.[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
In systems engineering and software engineering, requirements analysis focuses on the tasks that determine the needs or conditions to meet the new or altered product or project, taking account of the possibly conflicting requirements of the v ...
: 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 t ...
: 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 prototype ...
s of the system under design.[
# ]Software design
Software design is the process of conceptualizing how a software system will work before it is implemented or modified.
Software design also refers to the direct result of the design process the concepts of how the software will work which co ...
: "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
Implementation is the realization of an application, execution of a plan, idea, scientific modelling, model, design, specification, Standardization, standard, algorithm, policy, or the Management, administration or management of a process or Goal ...
: 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 managem ...
and Training
Training is teaching, or developing in oneself or others, any skills and knowledge or fitness that relate to specific useful competencies. Training has specific goals of improving one's capability, capacity, productivity and performance. I ...
: "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
Abstraction is a process where general rules and concepts are derived from the use and classifying of specific examples, literal (reality, real or Abstract and concrete, concrete) signifiers, first principles, or other methods.
"An abstraction" ...
: general rules that apply across different tasks (or systems) can be identified by comparing scenarios.[
# ]Team building
Team building is a collective term for various types of activities used to enhance social relations and define roles within teams, often involving collaborative tasks. It is distinct from team training, which is designed by a combination of busin ...
: "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 ...
* Strategic assumptions
* Computer supported brainstorming
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