Solution to Assignment #1

This is one (of many) solutions to the first assignment. This solution is the one that will be used in the second assignment. The grade on your solution is determined by:

  1. General coherence. In other words, how well it fits together.
  2. Adequate justification. In other words, whether you justified your solution using the original requirements.

Requirements

The project is to build the infrastructure for a distributed vehicle traffic control system (IDVTCS).

Unlike existing traffic control systems (such as the Air Traffic Control System) in which the traffic control system is separate from the vehicles that are being controlled, in this system the vehicles (and other entities) control themselves. In other words, each vehicle has sufficient computational resources on-board for coordinating its behavior with other vehicles. Each vehicle can communicate with other vehicles and has sensors for detecting obstacles, including other vehicles. Each vehicle has a GPS unit that can compute the location of the vehicle at each point in time. In addition to sensors that can detect and track "dumb" obstacles, the vehicles have sensors that can identify "intelligent" obstacles such as other vehicles, buildings and residences. In particular, it is possible to compare the location a vehicle claims to be at with the location the vehicle is observed to be at.

The system consists of intelligent entities called nodes that can communicate with one another. The nodes include vehicles as well as shared resources such as streets and intersections. Your system provides for basic data storage at each node of the system as well as a protocol and "middleware" for reliable communication between nodes. Your system does not actually perform the traffic control functions. It is only concerned with establishing an underlying infrastructure of data and communication upon which traffic control software may be built. In addition to simple requests for information, communication may also involve negotiation between nodes for access to shared resources.

Find Candidates for Actors

This task depends on what is viewed as being "inside" the system and what is viewed as being "outside" the system. Possibilities include:

Potential ActorDescriptionTraceDiscussion
TCSThe traffic control application layer Your system does not actually perform the traffic control functions. It is only concerned with establishing an underlying infrastructure of data and communication upon which traffic control software may be built. The TCS is built on and uses the IDVTCS, so it is almost certainly an actor.
NodeIntelligent entity participating in the system The system consists of intelligent entities called nodes that can communicate with one another. This is not a good candidate for an actor since the system consists of the nodes rather than the nodes using the system. On the other hand the first paragraph does speak of vehicles performing actions. To resolve this apparent contradiction, one identifies the actor as being the TCS within the node, and it will be called the Node TCS.
VehicleMobile node The nodes include vehicles as well as shared resources such as streets and intersections. Vehicles are discussed throughout the requirements. They are a special case of a node. However, the actor is the TCS within the vehicle, not the vehicle itself, so it will be called the Vehicle TCS.
ResourceStatic node (such as a building, street, intersection) The nodes include vehicles as well as shared resources such as streets and intersections. Resources are discussed throughout the requirements. They are a special case of a node. However, the actor is the TCS within the resource, not the resource itself, so it will be called the Resource TCS.
SensorDevice for detecting, tracking and identifying obstacles in the environment Each vehicle ... has sensors for detecting obstacles, including other vehicles. Sensors perform three distinct functions. However, detecting and tracking are closely connected with one another, while identification is separate (even possibly being performed by a separate unit altogether).
Detect/Track SensorSensor for detection and tracking ... sensors ... can detect and track "dumb" obstacles ... This is a special kind of sensor (or function of a sensor).
Identifying SensorSensor for identification of another node In addition ... the vehicles have sensors that can identify "intelligent" obstacles such as other vehicles, buildings and residences. This is a special kind of sensor (or function of a sensor).
GPS UnitDevice within a node for determining its location Each vehicle has a GPS unit that can compute the location of the vehicle at each point in time. The textbook gives an example in which the GPS unit is an actor.
CommunicatorDevice for communication between nodes Each vehicle can communicate with other vehicles ... The system consists of intelligent entities called nodes that can communicate with one another... Your system provides ... a protocol and "middleware" for reliable communication between nodes... In addition to simple requests for information, communication may also involve negotiation between nodes for access to shared resources. Communication is mentioned repeatedly. It could be treated as being a separate actor or as being internal to the system.
DatabaseDevice for storing information in a node Your system provides for basic data storage at each node of the system As with communication the database could be a separate actor or an internal component of the system.

The choice of actors has a large impact on the requirements of the project, so they must be chosen carefully in consultation with the stakeholders. The Use Case diagram and scenarios are a powerful tool for achieving a mutual understanding about the requirements of the project with the stakeholders.

Any choices of actors is acceptable, so long as they are justified by tracing back to the original requirements. In this solution, one main actor and two subactors were chosen: Node TCS, Vehicle TCS and Resource TCS.

Find Use Cases

One now looks for sentences that describe patterns of actions performed by (and events that occur with) the chosen actors. Extracting these from the requirements is not that easy.

SentenceUse Case
... sensors ... can detect and track "dumb" obstacles, ... sensors ... can identify "intelligent" obstacles such as other vehicles, buildings and residents. Sense (detect, track and identify)
Each vehicle has a GPS unit that can compute the location of the vehicle at each point in time. Locate (determine location)
... it is possible to compare the location a vehicle claims to be at with the location the vehicle is observed to be at.... [the system] is only concerned with establishing an underlying infrastructure of data and communication up which traffic control software may be built.... simple requests for information [will be supported] Request Information
... communication may also involve negotiation between nodes for access to shared resources. Negotiation

The requirements could be split up in many other ways to obtain Use Cases. The choices made here are dictated to a large extent by the choices of the agents made earlier.

Find Relationships between Use Cases

It is not absolutely necessary to find relationships between Use Cases, but it is useful for reducing the complexity of a large diagram. It can also identify reuse opportunities at an early stage. Early stage reuse results in far greater increases in productivity than later stage reuse (such as code reuse).

In this case, there are no exceptions in the requirements, so the <<extend>> relationship does not occur. One should look for the <<include>> relationship after specifying scenarios. Generalization does occur as shown in the following diagram:

Write Scenarios

This section is not yet complete...

Determine Location
Participating Actor(s)Vehicle TCS
Entry ConditionVehicle TCS requires the location of the vehicle.
Flow of EventsIf the location in the database is current, then return it.
Request location information from the GPS unit.
Store location information in the database and return it.
Exit ConditionThe Vehicle TCS is given the current location of the vehicle.
Special RequirementsInformation must be returned in 500ms.
Position must be accurate to within 3 meters.

Sense (Detect, Track and Identify)
Participating Actor(s)Node TCS
Entry ConditionNode TCS requires the location, velocity and/or identity of obstacles in the local environment.
Flow of EventsReturn list of obstacle records for all known obstacles in the local environment. Each obstacle record gives the location, velocity and (if known) the identity of the obstacle.
Exit ConditionThe Node TCS is given the current environment.
Special RequirementsRequested information must be returned in 100ms.
Relative position must be accurate to within 1 meter 95% of the time, and within 2 meters 100% of the time.

Request Information
Participating Actor(s)Node TCS of one or two nodes
Entry ConditionNode TCS requires information its own or another node's database.
Flow of EventsIf the request is for information available on the same node, then return it.
Request information from the other node.
Store the information in the database and return it.
Exit ConditionThe Node TCS is given the requested information.
Special RequirementsInformation must be returned in 200 ms 95% of the time.

Negotiate
Participating Actor(s)Vehicle TCS, Resource TCS
Entry ConditionVehicle TCS requires use of a shared resource.
Flow of EventsVehicle TCS specifies a desired resource, a range of time periods, and alternative resources.
IDVTCS transmits request to resource node's IDVTCS.
IDVTCS on the resource node transmits the request to the Resource TCS.
Resource TCS either accepts the request or suggests an alternative. Negotiation can continue on the resource node.
Resource node IDVTCS transmits response to the vehicle node's IDVTCS which can continue the negotiation.
Vehicle TCS is given the response. The Vehicle TCS can choose to continue the negotiation.
Exit ConditionA "good faith" negotiation either completes with a an acceptable resource reservation or breaks off with no reservation.
Special RequirementsNegotiation must be complete in 0.5 second. A Resource Node must be able to support 100 concurrent negotiations.

Goals, Objectives, Deliverables, Scopes and Stakeholders

These are not specified in the requirements. Any reasonable choices here will do.

TypeDescriptionComments
GoalTo improve the quality of life for all people These must be self-evident. Saying that the goal is to build a vehicle traffic control system is not correct as it is not self-evident that this is good.
To protect the environment
To make transportation easy, safe and fast
ObjectiveTo design an autonomous vehicle transportation system
How the objectives contribute to the goals The proposed autonomous vehicle transportation system will make transportation faster, easier and safer, improving quality of life. By making transportation autonomous, it makes it more efficient by reducing time in traffic jams and waiting at intersections thus reducing pollution. Each objective should contribute to one or more goals.
ScopeThe system will be limited to the Greater Boston Area.
DeliverablesIDVTCS Use Case diagram
Project task network (Gantt chart)
Requirements for standard components to be used by the IDVTCS
Documentation of the IDVTCS API
Detailed design of the IDVTCS
IDVTCS object design
StakeholdersUS Department of Transportation Note that end users of the system (e.g., car owners) are not stakeholders.
Massachusetts Registry of Motor Vehicles
Boston Municipal Government
Automobile Manufacturers
Investors