Ambulance Dispatch System

Download Report

Transcript Ambulance Dispatch System

ADS 2009
Ryan Kelly
Akhil Chopra
Chad Gabrysch
Rajeev Sharma
Katie Roberts Hoffman
Ambulance Dispatch System
Team ADS Summer09
Problem Overview
System
Manage Ambulances
Manage Incidents
Requirements Elicitation
Requirements Analysis
Participating Actors: Dispatcher
Preconditions: The ambulance is
available.
Postconditions: The ambulance is
allocated to the incident.
Flow of Events:
1. The Dispatcher chooses an
incident.
2. The Dispatcher chooses an
available ambulance to
dispatch to the given incident.
3. The Dispatcher allocates the
chosen ambulance.
Other Use-Cases
UC_CRUD_Incident
UC_CRUD_Ambulance
UC_Dispatch_Ambulance
UC_Recall_Ambulance
Domain Model
User
+Name
+Id
+create()
+remove()
+setName()
+setId()
+getName()
+getId()
Role
*
CallTaker
*
Dispatcher
+Role
AmbulanceDriver
Incident
+State
+Time
+PatientLocation
+PatientSeverity
+NumberofPatients
+PatientInfo
+ContactInfo
+create()
+remove()
+update()
AmbulanceAdmin
Ambulance
+Availability
+Id
+LocationAddress
+DestinationAddress
0..1
*
+create()
+remove()
+setId()
+recall()
+dispatch()
System Design
System Design
Technology
Object Design – Overview
Controller
Model
View
Object Design - Overview
Deployment Model
Controllers
IncidentsController
+index()
+show(id)
+new()
+edit(id)
+create(attributes)
+update(id, attributes)
+close(id)
+dispatch(id, ambu_id)
+undispatch(id, ambu_id)
AmbulancesController
+index()
+show(id)
+new()
+edit(id)
+create(attributes)
+update(id, attributes)
+destroy(id)
HomeController
Use
Use
Views
Ambulances
Models
Index
Incident
New
Show
Ambulance
+registration_number
+driver_name
+location
0..1 * +created_at
+updated_at
Index
Edit
Show
Incidents
ActiveRecord
+location
+severity
+description
+created_at
+updated_at
+number_patients
+closed
New
Dispatch
Edit
Home
Availability
*
1
+description
Index
Object Design - Model
Models
ActiveRecord
Incident
+location
+severity
+description
+created_at
+updated_at
+number_patients
+closed
Ambulance
+registration_number
+driver_name
+location
*
+created_at
0..1
+updated_at
Availability
*
1
+description
Object Design - Controller
Controllers
IncidentsController
+index()
+show(id)
+new()
+edit(id)
+create(attributes)
+update(id, attributes)
+close(id)
+dispatch(id, ambu_id)
+undispatch(id, ambu_id)
AmbulancesController
+index()
+show(id)
+new()
+edit(id)
+create(attributes)
+update(id, attributes)
+destroy(id)
HomeController
Object Design - Controller
Controller Call
Before
View
Controller Call
After
Index
Index
-
New
New
Create
Show
Show
-
Edit
Edit
Update
Dispatch
Dispatch
Update
Object Design - View
Views
Ambulances
New
Index
Edit
Show
Incidents
Index
New
Show
Dispatch
Edit
Home
Index
Types of Testing
Unit
Integration
Validation
Acceptance
Installation
Unit Testing
Class
Testing
State
Behavior
During
Coding
Operations
Integration Testing
Use-Based
Top Down
Vertical
Partitioning
Validation Testing
Functional
NonFunctional
Performance
Acceptance + Installation Testing
Alpha
Installation
Beta
Example test case

Identifier: TC15_CTAD_6
Test Item: Dispatch Ambulance
Requirements spec: FR_3.2.2.2
Design spec: DispatcherUI, DispatcherController,
ADSController, ADSDatabase
Input specification: The user clicks on dispatch ambulance
link and on the Dispatching ambulance
page, selects any of the listed ambulance and clicks dispatch.
Output specification: The incident is updated on the
Dispatched Ambulance field with the ambulance
assigned to the incident with its registration number
Traceability
Focus on the Ambulance
Domain => Design => Code => Database
User
+Name
+Id
+create()
+remove()
+setName()
+setId()
+getName()
+getId()
Role
*
CallTaker
*
Dispatcher
+Role
AmbulanceDriver
Incident
+State
+Time
+PatientLocation
+PatientSeverity
+NumberofPatients
+PatientInfo
+ContactInfo
+create()
+remove()
+update()
AmbulanceAdmin
Ambulance
+Availability
+Id
+LocationAddress
+DestinationAddress
0..1
*
+create()
+remove()
+setId()
+recall()
+dispatch()
Domain => Design => Code => Database
Models
ActiveRecord
Incident
+location
+severity
+description
+created_at
+updated_at
+number_patients
+closed
Ambulance
+registration_number
+driver_name
+location
*
+created_at
0..1
+updated_at
Availability
*
1
+description
Domain => Design => Code => Database
Domain => Design => Code => Database
Demo