interviews
prototypes
scenarios
mock-ups
political & social factors
consensus building
functional (capabilities) vs. non-functional (constraints)
high-level or derived
emergent
priority: manditory, highly desirable, desirable, optional
scope: global, subsystem, component
volatility/stability
Impedence mismatch with existing workflows
UI conventions
online help
documentation
mean-time between failures
fault tolerance/robustness
safety
Response time
Throughput
Availability
Accuracy
Algorithm complexity?
How easy will it be to add new features? fix bugs?
We can represent the functional requirements of a system using a UML use case diagram. In this diagram requirements are represented as use cases (ellipses) and the users or external systems that the use case must interact with are represented as actors (stick figures).
An actor association is a line or arrow connecting an actor to a use case and represents a conversation between the use case and the actor. The direction of the arrow indicates who begins the conversation.
A use case diagram isn't much more than a list of requirements. Each use case needs a subsequent use case elaboration:
Name: Open
Document
Description: Locates a
document previously saved by the word processor, and makes it the current
document being edited.
Priority: high
The behavior of a system is simply the various interactions between the system and its environment. Therefore, in order to understand system behavior, we must understand the system's environment.
There are two environments: the deployment environment and the business environment. The deployment environment includes the users and remote system that the system must interact with. It also includes the communication protocols that the system uses to communicate with remote systems as well as the interfaces the system uses to communicate with users. The deployment environment is captured by use case diagrams and UML deployment diagrams.
The business environment includes business concepts, rules, and processes. This information is captured in the domain model, which includes UML class diagrams, object diagrams, and activity diagrams.
The domain model includes business activities, processes, events, roles, entities, rules, and descriptions.
A process can be seen as a kind of finite state machine. The states are activities. The transition from on activity to the next is caused by an event. Usually the event is the completion of the current activity. Activities are associated with roles. A role is the person, persons, or device responsible for completing the activity.
Business processes can be modeled using UML activity diagrams.
Several states can be simultaneously active in a concurrent FSM. We use forks and joins, also called synchronization bars to show simultaneous activations or deactivations, and swim lanes to identify which processor or actor a given state is assigned to.