In computing, a scenario (UK: //, US: //; borrowed from Italian scenario (pronounced [ʃeˈnaːrjo]), derived from Latin scena, meaning "scene") is a narrative of foreseeable interactions of user roles (known in the Unified Modeling Language as 'actors') and the technical system, which usually includes computer hardware and software.
A scenario has a goal, which is usually functional. A scenario describes one way that a system is 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 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 cases, which document alternative and overlapping ways of reaching a goal.
Many types of scenario are in use in system development. Alexander and Maiden list the following types:
Negative scenarios or misuse cases may be written to indicate likely threats which should be countered to ensure that systems have sufficient security, safety, and reliability. These help to discover non-functional requirements.
Scenarios have numerous possible applications in system development. Carroll (1995) lists 10 different "roles of scenarios in the system development lifecycle":
The choice of scenario representation varies widely with style of development, which is related to the industrial context.
|Project context||Example||Scenario style||Development style|
|Large military project||Fighter aircraft||Operational View, Concept of operations||Staged life-cycles, thorough documentation (see DoDAF)|
|Combined Hardware/Software product||Car||Use case||RUP|
|Business software||Mobile phone application||User story||Agile software development|