3.3.6.1 Override Relationships ž Dependency link to class OverrideType ž Association link to class IntersectionController ž Generalization link from class RemoteOverride 3.3.6.2 Override
Trang 13.3.5 VehicleDetector This class represents the proximity detection loop located near the stop line associated with an approach The class is based on the OnOff- Sensor class.
The Vehicle Presence Detector object is responsible for managing the ing functions:
follow-1 Filtering of vehicle service requests (ACTUATED mode).
2 Generation of vehicle service request event (ACTUATED mode).
3 Maintenance of the vehicle count statistic (FIXED, ACTUATED, and TIVE modes).
ADAP-Figure 21 illustrates the attributes, methods, and events of the tor class.
VehicleDetec-OnOffSensor
− m_State: boolean
− m_IgnoreState: boolean + OnOffSensor()
+* ~OnOffSensor() + setState() : void + resetState() : void + ignoreState() : void + watchState() : void
ž Association link from class Approach
ž Generalization link to class OnOffSensor
3.3.5.2 VehicleDetector Attributes Inherited from superclass.
Trang 23.3.5.3 VehicleDetector Methods Inherited from superclass Overridden methods are described in Table 18.
Table 18 VehicleDetector class-attributes
Trang 4Vehicle Has Passed Loop + Do Action / resetState(void) + Do Action / m_Approach[i].onEntryStateCleared(void)
m_Approach[i]
Updating Count + Do Action / m_Count++
Blocked
Triggering Approach + Do Action / m_IntersectionController.onVehicleEntry(int)
Clearing Count + Do Action / m_Count = 0
Name: IntersectionController- Vehicle Detector
clearCount()
Figure 23 VehicleDetector class statechart.
3.3.6 Override This is class represents the set of pushbuttons on the manual override console.
Trang 5− m_IntersectionController: IntersectionController*
+ Override()
−* ~Override() + onActivate(OverrideType) : int + onDeactivate(OverrideType) : int + onSetPhase() : int
Figure 24 Override class.
3.3.6.1 Override Relationships
ž Dependency link to class OverrideType
ž Association link to class IntersectionController
ž Generalization link from class RemoteOverride
3.3.6.2 Override Attributes
Table 19 Override class-attributes
m IntersectionController private:
IntersectionController
Pointer to the
m IntersectionController object.
3.3.6.3 Override Methods
Table 20 Override class-methods
onActivate
(OverrideType)
Event triggered by receipt of an activation command from the local override console onDeactivate
(OverrideType)
Event triggered by receipt of an deactivation command from the local override console.
phase command from the local override console.
Trang 63.3.6.4 Override Behavioral Details
m_ManualOverride :Override
«singleton»
m_IntersectionController :IntersectionController
*[While Override Active]: m_Status: = 0 (OK)
{t2 = 0} dispatchCommand(command= Deactivate Manual Override)
m_Status:= 0 (OK)
*[While Override Active]:onSetPhase()
Figure 25 Override class sequence diagram.
Trang 73.3.7 RemoteOverride This class represents the commands available on the Remote Software console Additionally, the class provides an interface for remote access to and update of intersection traffic data and cycle parameters for coordinated intersection control (option).
The RemoteOverride class is responsible for managing the following functions:
1 Triggering the appropriate mode change.
2 Generation and handling of events required to control intersection phase.
3 Acting as a substitute for the Calculate Cycle Parameters method of the section Control object (in coordinated mode, not covered by this specification).
Inter-Figure 26 illustrates the attributes, methods, and events of the Remote ride class.
Over-Override
− m_IntersectionController: IntersectionController*
+ Override()
−* ~Override() + onActivate(OverrideType) : int + onDeactivate(OverrideType) : int + onSetPhase() : int
Figure 26 Remote override class.
3.3.7.1 Remote Override Relationships
ž Dependency link to class Status
ž Generalization link to class Override
Trang 8ž Association link from class IntersectionController
ž Association link to class Network
3.3.7.2 RemoteOverride Attributes In addition to those inherited from the class Override, RemoteOverride attributes are as listed in Table 21.
super-Table 21 RemoteOverride class-attributes
3.3.7.3 RemoteOverride Methods In addition to those inherited from the class Override, RemoteOverride methods are as listed in Table 22.
super-Table 22 RemoteOverride class-methods
∼ RemoteOverride () private abstract: Destructor.
onSetParameters
(Parameters∗
public: int param: parameters [Parameters∗- in]
Event triggered under coordinated control; used
to set the intersection timing parameters under remote control.
Completes within 100 ms.
to get the intersection timing parameters under remote control.
Completes within 100 ms.
3.3.7.4 RemoteOverride Behavioral Details Behavior of the RemoteOverride class
is identical to that of the Override class for methods inherited from the superclass.
3.3.8 PreEmpt This class manages the wireless transponder interface to rized emergency vehicles and accesses the m IntersectionControl object in order to display the correct traffic signals, allowing the emergency vehicle priority access to the intersection.
autho-The PreEmpt class is responsible for managing the following functions:
1 Triggering the appropriate mode change.
2 Reception of emergency vehicle preemption requests.
3 Decryption and validation of emergency vehicle preemption requests.
4 Generation and handling of events required to control intersection phase.
Trang 9Figure 27 illustrates the attributes, methods, and events of the PreEmpt class.
Figure 27 PreEmpt class.
3.3.8.1 PreEmpt Relationships
ž Association link from class IntersectionController
ž Association link to class IntersectionController
3.3.8.2 PreEmpt Attributes
Table 23 PreEmpt class-attributes
Table 24 PreEmpt class-methods
onActivate () public: int Event triggered by receipt of an activate signal from the
emergency vehicle transponder.
onDeactivate () public: int Event triggered by receipt of an deactivate signal from
the emergency vehicle transponder.
onTimeout () public: void Event triggered if a deactivate signal is not received
after the timeout interval has elapsed.
Trang 103.3.8.4 PreEmpt Behavioral Details
m_PreEmpt :PreEmpt
«singleton»
m_IntersectionController :IntersectionController
Name: IntersectionController- Emergency Preempt
{t2 = 0}
m_Mode = m_PreviousMode setPhase(phase = Default) {t2 <= 100 ms}
onPreemptRequest()
m_Status: = 0 onPreemptCleared()
m_Status: = 0
Figure 28 PreEmpt sequence diagram.
3.3.9 Network This class manages communication via the Ethernet port Figure 29 below illustrates the attributes, methods, and events of the Network Interface class.
« singleton»
Network
+ Network()
−* ~Network() + receivePacket() : void + sendPacket(void*) : int + dispatchCommand(int) : void
Figure 29 Network class.
3.3.9.1 Network Relationships
ž Association link from class IntersectionController
ž Association link from class Maintenance
ž Association link from class RemoteOverride
Trang 113.3.9.2 Network Methods
Table 25 Network class-methods
packets.
Method responsible for sending network SNMP packets.
Interprets the received SNMP packet and invokes the appropriate method in response.
3.3.10 Maintenance This class provides a maintenance interface to the tion controller, accessible either from the local maintenance Ethernet port or the DOT WAN.
intersec-The Maintenance class is responsible for managing the following functions:
1 Retrieval of database information.
2 Retrieval of current intersection controller status.
ž Association link to class IntersectionController
ž Association link to class Network
Trang 123.3.10.2 Maintenance Attributes
Table 26 Maintenance class-attributes
Table 27 Maintenance class-methods
∼ Maintenance () private abstract: Destructor.
readDatabase (int ) public: void param: database [int - in]
Method to read the contents of the database specified
by the parameter database.
3.3.11 Database (Traffic History; Incident Log) Instances of this class are used
to store the Traffic History and the Incident Log for the intersection being controlled The Traffic History object is responsible for managing the following functions:
1 Storage and retrieval of traffic history database records.
2 Clearing of traffic history in response to a command from a remote host.
Figure 31 illustrates the attributes, methods, and events of the Traffic History class.
Trang 13−* ~Database() + goFirst() : int + goLast() : int + goNext() : int + go(int) : int + isFull() : boolean + isEOF() : boolean + read() : Record + read(int) : Record + write(Record*) : int + write(int, Record*) : int + flush() : int
Figure 31 Database class.
3.3.11.1 Database Relationships
ž Association link to class Record
ž Association link from class IntersectionController
ž Association link from class IntersectionController
3.3.11.2 Database Attributes
Table 28 Database class-attributes
permitted.
Record.
database structure.
Trang 14Table 28 (continued )
database structure.
3.3.11.3 Database Methods
Table 29 Database class-methods
in 40 ms.
in 40 ms.
Move cursor to the specified record Completes in
40 ms.
overwrite oldest data (FIFO).
Read record at specified position; update current record to specified position Completes in 50 ms.
Add new record to end of database If isFull() is True, data will be overwritten Completes in
50 ms.
write (int, Record∗ public: int param: position [int - in]
param: record [Record∗- inout]
(continued)
Trang 15Table 29 (continued )
Overwrite record at specified position; update current record to specified position Completes in 50 ms.
record positions to zero; move cursor to first physical record position Completes in 200 ms.
3.3.12 Record This class defines the attributes and methods used by records contained in object instances of the Database class.
Trang 17Date and time of the incident or traffic history entry
private: datetime timestamp
Notes Type
Attribute
Figure 33 Record class-attributes.
3.3.12.3 Record Methods
public: string public: int public: datetime
public: void public: void
public: void private abstract:
public:
Accessor for m_Data attribute
Accessor for m_Source attribute
Accessor for m_Timestamp attribute
param: data [ string - inout]
Mutator for m_Data attribute
param: source [ int - in ]
param: timestamp [ datetime - inout]
Mutator for m_Timestamp attribute
Method
Figure 34 Record class-methods.
3.3.13 ErrorHandler This class handles all errors generated by the application All errors are generated by the IntersectionController class, in response either to internal errors or error returns from method calls.
3.3.13.1 ErrorHandler Relationships
ž Association link from class IntersectionController
Trang 183.3.13.2 ErrorHandler Methods
param: error [ int - in ] Attempts to set the intersection to the default phase If unsuccessful, attempts a reset If this fails or the error occurs again immediately after reset, the watchdog timer will override software error handling.
Logs the error and sends a network message to the DOT central office via the DOT WAN.
public: void onCriticalError (int)
param: error [ int - in ] Logs the error incident and resumes normal operation.
public: void onNonCriticalError (int)
Method
Figure 35 ErrorHandler class-methods.
3.3.13.3 ErrorHandler Behavioral Details
« singleton»
m_ErrorHandler :ErrorHandler
« singleton»
m_IntersectionController :IntersectionController
m_IncidentLog :Database
Name: IntersectionController- Non-Critical Error Handling
Trang 19« singleton»
m_IntersectionController :IntersectionController
« singleton»
m_ErrorHandler :ErrorHandler
m_IncidentLog :Database
m_Network :Network
Name: IntersectionController- Critical Error Handling
Figure 37 Critical error sequence diagram.
3.3.14 Support Classes These comprise the structures and enumerated classes used to define attributes in the classes detailed above.
Figure 38 Split class.
Percentage of cycle time per phase Comprises the nominal phase time plus the calculated extension due to traffic volume.
The values are determined as follows:
1 In FIXED mode, the nominal times are used (i.e., the extensions are set to zero).
2 In ACTUATED mode, the extensions contain fixed values at the start of each cycle These values are modified in response to Vehicle Entry and Pedestrian Request events.
3 In ADAPTIVE mode, the extensions are updated prior to the start of each cycle as determined by the calculateParameters() method of the
m IntersectionController object.
Trang 20Figure 39 Parameters class.
3.3.14.2.1 PARAMETERS RELATIONSHIPS
ž Association link from class Status
ž Association link to class Split
ž Association link from class IntersectionController
3.3.14.3 Status
«struct»
Status
+ mode: Mode + count: int* [4 ordered]
+ parameters: Parameters*
+ phase: Phase
Figure 40 Status class.
3.3.14.3.1 STATUS RELATIONSHIPS
ž Association link to class Parameters
ž Association link to class IntersectionController
ž Dependency link from class RemoteOverride
ž Association link to class Mode
ž Association link to class Phase
Trang 213.3.14.4 Phase
«enumeration»
Phase
+ Default: int + GG_GG_RR_RR: int + GY_GY_RR_RR: int + YR_YR_RR_RR: int + RR_RR_RR_RR_4: int + RR_RR_GG_GG: int + RR_RR_GY_GY: int + RR_RR_YR_YR: int + RR_RR_RR_RR_8: int
Figure 41 Phase class.
3.3.14.4.1 PHASE RELATIONSHIPS
ž Association link from class IntersectionController
ž Association link from class Status
3.3.14.5 Aspect
«enumeration»
Aspect
+ RR: int + GG: int + GY: int + YR: int
Figure 42 Aspect class.
Figure 43 Indication class.
Trang 22Figure 44 Mode class.
3.3.14.7.1 MODE RELATIONSHIPS
ž Association link from class Status
ž Association link from class IntersectionController
3.3.14.8 OverrideType
«enumeration»
OverrideType
+ Manual: int + Remote: int
Figure 45 OverrideType class.
Trang 23Table 30 Architectural requirements
Section Reference
for SRS
Requirement
SDD Section Demonstrating Compliance
Comments
class
class
Trang 24Table 32 Timing requirements
Section Reference
for SRS
Requirement
SDD Section Demonstrating Compliance
Comments
3.3.1.1, Table 14 (9) 3.3.13.3, Figure 37 Critical Error – Display Defaults
3.3.1.1, Table 14 (12) 3.3.13.3, Figure 37,
Figure 36
Write Error Log
(continued)
Trang 25Specifi-5.3 Who should you write the design specification?
5.4 What are the differences between object-oriented modeling and using data flow diagrams?
5.5 Using a data flow diagram, capture the data and functional requirements for ing the entry, exit, and traversal of planes in an airspace Planes entering the space
monitor-are sensed by the Radar input; the Comm input identifies planes that leave the space The current contents of the space are maintained in the data area AirspaceStatus.
A log or history of the space is kept in the AirspaceLog storage An air traffic
controller can request the display of the status of a particular plane through the
Controller} input.
Trang 265.6 Why is it that the code, even though it is a model of behavior, is insufficient in serving as either a software requirements document or a software design document
5.7 Why is it important that the code be traceable to the Software Design Specification and in turn, to the Software Requirements Specification? What happens, or should happen, if it is not?
5.8 Redraw the inertial measurement system context diagram in Figure 4.14 to take into account calibration and diagnostic modes.
5.9 For each of the following systems
(a) Inertial measurement unit
(b) Nuclear monitoring system
(c) Airline reservations system
(d) Pasta sauce bottling system
what design approach would you use?