Lesson 2 | Project context |
Objective | Define project context and how it affects the modeling process. |
Define Project Context and Initiation
The Rational Unified Process (RUP) is a software development framework that serves as a disciplined approach to assigning tasks and responsibilities within an organization. Its primary goal is to ensure the production of high-quality software that meets the needs of its end-users within a specified timeline and budget. RUP can play an invaluable role in defining a project's context, an essential step that establishes the scope, objectives, constraints, and stakeholders for a project. This article will delineate how RUP aids in shaping the project context through its various elements, which are strategically divided into four phases: Inception, Elaboration, Construction, and Transition.
- Inception Phase: Initial Context Definition:
The Inception phase is critical for defining the initial project context. During this phase, you articulate the problem statement and identify primary stakeholders. It is also the phase where you create initial use-case models to encapsulate the system's functionality from the user's perspective. RUP recommends drafting a vision document that outlines the project scope, essential features, constraints, and primary business drivers. The vision document serves as a foundational reference for all stakeholders, ensuring that there is a shared understanding of what the project seeks to accomplish.
- Elaboration Phase: Refinement and Risk Assessment:
In the Elaboration phase, the preliminary context definitions are refined. More detailed use-case models are developed, and the architecture of the solution is crafted. Here, project managers and technical leads perform a rigorous risk assessment, which could include technical risks, market risks, and operational risks. This assessment provides an additional layer of context by identifying factors that could impede the project's success. The Elaboration phase culminates in the creation of a Software Architecture Document (SAD), which supplements the project context by providing a high-level view of the solution's architecture and design constraints.
- Construction Phase: Alignment and Implementation:
Although the bulk of coding happens in the Construction phase, it is crucial to continuously validate that the implementation aligns with the defined project context. As functionalities are developed, they are continuously matched against the use-case models and the objectives outlined in the vision document. This ongoing validation ensures that the project remains within its intended scope and is aligned with stakeholder expectations.
- Transition Phase: Validation and User Acceptance:
The Transition phase serves to validate the entire project in the context of its end-user environment. User acceptance tests, beta testing, and other validation methods are executed to ensure that the delivered system meets the defined requirements and constraints. This phase often includes a post-mortem analysis, where any deviations from the initial project context are studied to provide learnings for future projects.
- Continuous Activities: Requirement Management and Stakeholder Communication:
Throughout all four phases, RUP emphasizes the importance of requirements management and stakeholder communication. Effective requirements management ensures that the project context remains aligned with stakeholder needs and expectations. Regular communication with stakeholders provides the necessary feedback loops to adjust project context as required, thereby minimizing scope creep and other risks.
In summary, the Rational Unified Process provides a structured methodology for defining and refining a project’s context through its iterative lifecycle, which consists of the Inception, Elaboration, Construction, and Transition phases. Utilizing RUP’s established guidelines for document creation, risk assessment, requirement management, and stakeholder communication ensures a comprehensive and aligned understanding of the project context, thereby setting the foundation for successful project execution.
Defining your Project's Context
Defining your project's context requires that you closely examine the problem statement and then ask yourself and others the right questions.
A good place to begin is to ask why the system is needed. Who will potentially benefit from the system? How does this system fit together with other systems? The answers to these questions will allow you to establish a context for your system in relation to the people and systems that need to interact with it. Project context can radically affect the analysis and design models that you create. For example, creating a model that represents cars and customers sounds simple, right? But a model of a car dealership would be much different than a model of a motor vehicles office or a valet parking company. In each of these contexts, "car" and "customer" refer to a very different set of relationships and behaviors. The project context is the environment in which the project is undertaken and includes many influences and are generally grouped under external and internal headings.
Car and Customer
The car and customer example illustrates how radically context can affect vocabulary. Later in this module, you will learn how to use the data dictionary to define the meaning of the problem domain vocabulary.
To define project context, ask these three questions:
- Who will interact with the system?
- Which other systems or devices will interact with the system?
- How will the users communicate with the system? That is, what information do they need from the system and what information does the system need from them?
Your job is to sift through the volumes of information that usually come in the problem statement and any discussions you have with the users.
Doing so will help you find the answers you need to establish the system context. Listen for user answers to the three questions listed above.
Better yet, if you have the option, structure your user interviews to focus on these questions.
Later in this module, you will use the use case model to record the responses to your queries in detail, but for now, you simply need to understand where your system fits in relation to the people and systems that need to interact with it.
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