Scenario (computing)
   HOME

TheInfoList



OR:

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 An actor or actress is a person who portrays a character in a performance. The actor performs "in the flesh" in the traditional medium of the theatre or in modern media such as film, radio, and television. The analogous Greek term is (), lite ...
') 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 A goal 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 a purpose or ai ...
, 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 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 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 requirements. 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 MaidenAlexander and Maiden, 2004. Chapter 1. list the following types: *
Story Story or stories may refer to: Common uses * Story, a narrative (an account of imaginary or real people and events) ** Short story, a piece of prose fiction that typically can be read in one sitting * Story (American English), or storey (British ...
: "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 end user In product development, an end user (sometimes e ...
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 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 Human–computer interaction (HCI) is research in the design and the use of computer technology, which focuses on the interfaces between people (users) and computers. HCI researchers observe the ways humans interact with computers and design tec ...
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 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 ...
/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 Reliability, reliable, or unreliable may refer to: Science, technology, and mathematics Computing * Data reliability (disambiguation), a property of some disk arrays in computer storage * High availability * Reliability (computer networking), a ...
. 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 func ...
.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 ...
: 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 ...
: 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 Implementation is the realization of an application, or execution of a plan, idea, model, design, specification, standard, algorithm, or policy. Industry-specific definitions Computer science In computer science, an implementation is a realiza ...
: 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 Training is teaching, or developing in oneself or others, any skills and knowledge or Physical fitness, fitness that relate to specific practicality, useful Competence (human resources), competencies. Training has specific goals of improving on ...
: "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 in its main sense is a conceptual process wherein general rules and concepts are derived from the usage and classification of specific examples, literal ("real" or "concrete") signifiers, first principles, or other methods. "An abstr ...
: 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 combine of business ...
: "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