| Lesson 2 |
Project context |
| Objective |
Define project context and how it affects the modeling process. |
Define Project Context and Initiation
Before a development team can model a system, design its architecture, or write a single line of code, it must answer a more fundamental question: in what context does this system exist? Project context defines the environment in which a software system operates — the people who interact with it, the systems it connects to, the organizational constraints that bound it, and the business objectives it must serve. Without a clear context, every subsequent decision in the project lifecycle rests on an unstable foundation.
Context is not merely background information. It directly shapes the analysis and design models that a development team produces. A system model created without regard to context will misrepresent relationships, misclassify behaviors, and produce a design that solves the wrong problem precisely. The Rational Unified Process (RUP) provides a structured framework for capturing and refining project context across the full development lifecycle, while modern Agile methodologies distribute that same discipline across iterative cycles. Both approaches recognize that context definition is not a one-time activity — it is an ongoing practice that must be revisited as understanding deepens.
What Is Project Context?
Project context is the environment in which a project is undertaken. It encompasses every external and internal factor that influences what the system must do, how it must behave, and what constraints it must operate within. External factors include the users who will interact with the system, the partner systems and devices that must integrate with it, regulatory requirements, market conditions, and competitive pressures. Internal factors include organizational structure, available technology infrastructure, budget constraints, team expertise, and existing systems that the new solution must coexist with or replace.
Context affects modeling in ways that are easy to underestimate. Consider a model that represents cars and customers. On the surface, this sounds straightforward — but the correct model depends entirely on context. In a car dealership system, a customer is a prospective buyer evaluating vehicles for purchase, and a car is inventory with pricing, options, and availability attributes. In a motor vehicles office system, a customer is a registered owner with licensing obligations, and a car is a legally registered asset with inspection and title records. In a valet parking system, a customer is a patron expecting temporary custody of a vehicle, and a car is a physical object requiring secure storage and retrieval tracking. The words are identical. The models are entirely different.
This is why context definition must precede modeling. Without it, a development team risks building a technically correct system that answers the wrong question.
The Three Context Questions
Defining project context begins with three structured questions. These questions focus the analyst's attention on the boundaries of the system — what lies inside it, what lies outside it, and how the boundary is crossed.
-
Who will interact with the system?
This question identifies human actors — the people who will use the system directly. Actors are not job titles; they are roles. A single person may play multiple roles depending on the transaction they are performing. Identifying actors correctly prevents the common error of designing a system around organizational hierarchy rather than actual system usage patterns.
-
Which other systems or devices will interact with the system?
Modern software systems rarely operate in isolation. They exchange data with payment processors, authentication services, inventory databases, reporting platforms, and external APIs. Each external system represents an integration point with its own protocols, data formats, availability constraints, and failure modes. Identifying these dependencies during context definition prevents integration surprises late in the project when they are most expensive to resolve.
-
How will users and systems communicate with the system?
This question examines the information flows crossing the system boundary — what data users need from the system and what data the system needs from users and external systems. Understanding these flows at the context level prevents over-engineering: teams build what information actually needs to be exchanged, not what might theoretically be useful.
These three questions are the foundation of use case modeling. The answers identify actors and the interactions between actors and the system — the raw material from which use case diagrams and narratives are constructed. Before formalizing those models, however, the analyst must gather the answers through structured inquiry.
Gathering Context Through Structured Inquiry
The primary source of context information is the problem statement — the document produced during project initiation that frames the problem to be solved, defines scope, and identifies constraints. Defining context requires examining the problem statement critically and supplementing it with targeted user interviews and stakeholder discussions.
When reading a problem statement for context clues, look for references to people, organizations, and systems — these are actor candidates. Look for references to data, transactions, and information flows — these define communication patterns. Look for references to rules, regulations, and limitations — these are constraints that bound the system boundary.
User interviews are equally valuable. When interviewing stakeholders, structure the conversation around the three context questions. Listen for answers that reveal who interacts with the system, what they need from it, and what it needs from them. Pay particular attention to vocabulary — users in different departments often use the same terms to mean different things, a problem that the data dictionary resolves by establishing authoritative definitions before modeling begins.
The analyst's job is to sift through the volume of information that emerges from problem statements, interviews, and workshops, and extract the signal that answers the three context questions. This is analytical judgment, not mechanical extraction — it requires understanding what is relevant to system behavior and what is organizational background noise.
Using RUP to Define and Refine Project Context
The Rational Unified Process provides a phased framework for context definition that recognizes context as an evolving understanding rather than a fixed document. Across its four phases — Inception, Elaboration, Construction, and Transition — RUP progressively deepens and validates the project context.
-
Inception Phase: Initial Context Definition
The Inception phase establishes the initial context. The primary deliverable is the vision document, which captures project scope, essential features, primary constraints, and key business drivers. Initial use case models are drafted to represent the system's boundary from the perspective of its actors. Stakeholders are identified and their relationships to the system are mapped. The goal is not completeness — it is sufficient shared understanding to determine whether the project is worth pursuing and to authorize entry into detailed planning.
-
Elaboration Phase: Refinement and Risk Assessment
In the Elaboration phase, the initial context is interrogated and refined. Use case models are expanded into detailed narratives. The Software Architecture Document (SAD) is produced, adding architectural constraints to the project context. A rigorous risk assessment examines technical, market, and operational risks — each risk represents a contextual factor that may force scope adjustment or design compromise. By the end of Elaboration, the project context should be stable enough to support construction planning.
-
Construction Phase: Continuous Context Validation
During Construction, the implementation is continuously validated against the defined context. As features are built, they are measured against the use case models and vision document. Deviations — features that drift from the defined context — are flagged for scope management review. This ongoing validation prevents the gradual accumulation of scope creep that derails projects with an initially well-defined context.
-
Transition Phase: Context Confirmation in Production
The Transition phase validates the delivered system against its operational context through user acceptance testing, beta programs, and deployment monitoring. Post-mortem analysis compares the delivered system to the original context definition, identifying gaps that provide learning inputs for future projects.
-
Continuous Activities: Requirements Management and Stakeholder Communication
Across all four phases, RUP emphasizes requirements management as the mechanism for keeping implementation aligned with context. Regular stakeholder communication provides feedback loops that catch context drift before it becomes costly rework.
Project Context in Modern Development Methodologies
Agile methodologies distribute context definition across the delivery cycle rather than concentrating it in an upfront phase. The product vision and initial product backlog serve the same purpose as RUP's vision document — they establish what the system is for and who it serves. User stories capture context at the feature level through the "as a [role], I want [capability], so that [benefit]" structure, which explicitly encodes actor identity and motivation into each requirement.
In Domain-Driven Design (DDD), context definition is formalized through bounded contexts — explicit boundaries within which a particular domain model applies. The car-and-customer example maps directly to DDD thinking: "car" and "customer" belong to different bounded contexts in a dealership system versus a motor vehicles system, and mixing those contexts produces the same modeling errors that RUP's context definition phase prevents.
Event Storming workshops, increasingly common in Agile organizations, surface context through collaborative discovery. By mapping domain events, commands, and actors across a shared timeline, teams rapidly identify system boundaries, actor roles, and integration points — the same information that structured context definition questions are designed to capture.
Regardless of methodology, the discipline of context definition remains essential. Teams that skip it — in waterfall, Agile, or hybrid environments — encounter the same failure mode: a system that is technically complete but contextually wrong.
Context and the Data Dictionary
Context definition and data dictionary construction are complementary activities. Context definition identifies the vocabulary that matters — the terms that appear in actor descriptions, system boundary definitions, and information flow specifications. The data dictionary assigns precise, agreed-upon definitions to that vocabulary.
The car-and-customer example demonstrates why this matters. Once the project context is established — say, a motor vehicles registration system — the data dictionary can define "customer" as a registered vehicle owner with a valid state-issued identification number, and "car" as a motor vehicle with a valid Vehicle Identification Number (VIN) registered to a legal owner in the state database. These definitions are not generic; they are contextually specific. They prevent the ambiguity that produces requirements conflicts, design errors, and testing failures downstream.
Later in this module, the use case model will formalize the actor and system interaction information gathered during context definition. The data dictionary will formalize the vocabulary. Together, they translate the project context into structured artifacts that guide analysis, design, and implementation.
Project Context - Exercise
Click the Exercise link below to select statements that help you define the context of the course project system.
Project Context - Exercise

