Professional Documents
Culture Documents
(Project) Software Design Specification: Project Code: PCV Document Code: PCV-DD - v1.0
(Project) Software Design Specification: Project Code: PCV Document Code: PCV-DD - v1.0
RECORD OF CHANGE
19/11
SIGNATURE PAGE
ORIGINATOR:<Name> <Date>
<Position>
<Position>
<Position>
<Position>
TABLE OF CONTENTS
1 INTRODUCTION............................................................................................................6
1.1 Purpose.........................................................................................................................6
1.2 Definitions, Acronyms and Abbreviations.........................................................................6
1.3 References....................................................................................................................7
1.4 Overview.......................................................................................................................7
2 SYSTEM ARCHITECTURE..............................................................................................8
3 SCREEN FLOW..............................................................................................................9
7.1 ERDs...........................................................................................................................16
9 APPENDIX...................................................................................................................19
1 INTRODUCTION
1.1 Purpose
Purpose of document.
Reader of document
Ex.
XXX class design document contains descriptions of all classes of the YYYY system
including:
Class diagrams that describe the static relation of all classes in the system
Developer and tester will base on this design to implement classes and unit test.
1.3 References
List all the reference document such as: other document of the system, or the technical
article,...
1.4 Overview
General overview of the detail design such as what is the structure of the document
2 SYSTEM ARCHITECTURE
report()
Control System
report()
logIn() validateLogIn
inputReport
requestNecessaryInformation()
Top Package::Operator vehicle
report()
emergencyService
traffic
solutionSelect replyRequest()
schedule
Top Package::databaseController
processAndProposeSolution()
Solution
Communication Interface
Security System
Policemen Database
Control System
Reporter Operator
Maintenance System
This context model illustrate the structure of the PCV-CS System. We see that the Control
system connect to the Reporter, Policemen, Database. The Operator is incharge of control
system.
Contact Connect
Confirm Connect
Respond
Report Input
Request Information
Transfer
Display
Send Request
Respond to Request
Send Information
Send Information
Send Feedback
Report
The Sequence Model Diagram that is shown the way the system and its context react in particular
way.
Schedule GPS
-ID : long -Data
-Address : string * -Position
-Vehicle : Vehicle +showMap()
-Time : long +showCamera()
+getInform() -send
* -sendSchedule Operator
-ID
Report
-Name EmergencyServices
-ID : long -Date of Birth
-Type : string -ID : long
-Position
-ReporterName : string -Type : string
ControlSystem +getInformation() -Address : string -sendEmergencyServices
-Place : string -send
+send() -ID : long +getInform()
+sendTo() -accept -Operator : Operator * +call() *
-process Road
+saveToDB() * +acceptReport()
* -ID : long
+parseReport()
-accept call * -intervenedRoad : Road
-processSchedule* +validateReport()
-length : float
Vehicle -process +findSolution() *
* -call * -status : bool
-ID : long +sendAck()
* +callEmergency() * +getInform()
-Type : string
* +saveLog() *-processRoadInform +sendInform()
-Status : bool -sendRoadInform
-ack +view() * +updateInform()
-PoliceID : long *
-Area : long -send +acceptFeedback()
+showInformation() Message
*
+acceptAck() -ID : long
* -acceptFeedback *
+requestHelp() -Report : Report
-accept ack -Map
* -sendVehicleInform
Displayer
-parseVehicleInform
+showVehicleInformation() Log
+showReportInformation() * Feedback
* +showFeedback() -ID : long
-ProblemType -Operator : Operator
+showEmergencyServices() -SolutionPropose *
+showRoadMap() -parseEmergencyServices -Report : Report
+send() +create()
+saveToDB()
-parseRoadMap * * -sendFeedback
3 SCREEN FLOW
Log In
Subselect and
type additional
text here
Main Screen
Subselect and
type additional
text here
View Emergency
View Map View Vehicle
Service
06 Log create and save Provide a form to create log and save to
database
07 View Vehicle View the vehicle list
08 View Map View the map
09 View Emergency services View the Emergency Services
1. Log in screen
Log in
ID Agent1
Password **************
2. Main
3. Incident Report
Reporter
ID Enter Text
Rate of Disastrous
incident
Send
4. View
a. View Map
Calculate Best Route Find out the nearest Car Reload the Database
b. View Vehicle
5. Communication
Form Title
Update
Database
Update Cancel
Schedule GPS
-ID : long -Data
-Address : string * -Position
-Vehicle : Vehicle +showMap()
-Time : long +showCamera()
+getInform() -send
* -sendSchedule Operator
-ID
Report
-Name EmergencyServices
-ID : long -Date of Birth
-Type : string -ID : long
-Position
-ReporterName : string -Type : string
ControlSystem +getInformation() -Address : string -sendEmerge
-Place : string -send
+send() -ID : long +getInform()
+sendTo() -accept -Operator : Operator * +call() *
+saveToDB() * +acceptReport() -process
+parseReport() *
-accept call *
-processSchedule* +validateReport()
Vehicle -process +findSolution() *
-ID : long * +sendAck() -call
-Type : string * +callEmergency() *
-Status : bool * +saveLog() -processRoadInform
*
-PoliceID : long -ack +view() *
*
-Area : long -send +acceptFeedback()
Road
+showInformation() *
+acceptAck() -ID : long
* -acceptFeedback * -intervenedRoad : Road
+requestHelp()
-accept ack -length : float
* -status : bool
* -sendVehicleInform
+getInform()
+sendInform()
-sendRoadInform +updateInform()
Displayer
-parseVehicleInform
+showVehicleInformation() Log
+showReportInformation() * Feedback
* +showFeedback() -ID : long
-ProblemType -Operator : Operator
+showEmergencyServices() -SolutionPropose *
+showRoadMap() -parseEmergencyServices -Report : Report
+send() +create()
+saveToDB()
-parseRoadMap * * -sendFeedback
The main class of the process. It accept data from the other classes, process these data,
find out the solution and send acknowledgement to appropriate class.
Attributes
Methods
No Method Description
01 acceptReport() Accept the report from the reporter (through phone, the Police
Reporter Machine, through radio wave…). It automatically send an
acknowledgement to reporter to inform they that the report have been
accepted. Otherwise, error code will be sent
02 parseReport() Parse the report to the information into an XML object format.
03 validateReport() Validate the report (using the XML object above) whether it is real or
not report. System connect to the database and using services provide
by the GPS, and other connected institution and universities. Operator
is in charge deciding whether real or unreal report.
04 damagedEstimate() If it is a real report, then the process proceed to this phase. Depend on
the information from XML object, it will calculate the estimate damaged
(properties damaged and humanities damaged). This function can be
called manually or automatically.
05 addToQueue() Add the incident to the queue according to its priortity
06 findSolution() This include these operation:
Solve the problem by: learning from the old log file (Artificial
Intelligent), problem analysis and estimate and proposed
solution.
07 sendAck() Send a message to a police vehicle through a communication interface.
This interface was built in the police system and not included in this
system. Some of type to transfer the message: internet, telephone
lines (fax), radio wave (WiMAX). The message contains the incident
details and the route to the incidents
08 callEmergency() Call for an emergency services, with the message object as above.
09 saveLog() Connect to the database to save the log file about the incident that has
been solved lately. This function can function in these mode:
database
<acceptReport()> method
Syntax: acceptReport(Report)
Accept the report from the reporter (through phone, the Police Reporter Machine, through radio
wave…). It automatically send an acknowledgement to reporter to inform they that the report have
been accepted. Otherwise, error code will be sent
Implementation
How to implement the method, it can be in pseudo code or activity diagram or just words
<parseReport()> method
Syntax:parseReport(Report)
Implementation
How to implement the method, it can be in pseudo code or activity diagram or just words
4.1.3 Feedback
Store the feedback information from the police vehicle sends back to the control system. Control
system can use this information from the Feedback object to update the temporarily database and re-
process the system to find out the new solution.
Attributes
Methods
No Method Description
01 Send Send the information to the control system. When this function is
invoked, the most suitable transfer way is chosen.
4.1.4 EmergencyService class
Information about an Emergency service. It contains: services type, their address, their status. You
can call or getInformation about this services. This class is referenced by the police vehicle and the
control system. The police vehicle can send the request directly to the emergency services if they feel
that it is more convenient and faster instead of send the request back to the control system.
Attributes
Methods
No Method Description
01 getInform() Get information about this services. Use to create a list of
appropriate services in control system to find out the solution.
02 acceptCall() An acknowledgement information from the emergency services send
back to the requester. It may express their status (ready, busy, out
of services etc….)
4.1.5 GPS class
Store the information that requested from the GPS (Global Positioning System). Its data is used to
generate the map and the traffic status.
Attributes
Methods
No Method Description
01 sendMap() Send the data to the displayer to display. Data is in bitmap format in
RGBA(32 bit) pixel color.
02 requestVehicle() Request vehicle list from the control system. The GPS system will
automatically locate each police vehicle in the list and send it back to
the control system in the map data.
Attributes
Methods
No Method Description
01 getInformation Get the information about the operator. It is used to view the list of
operator and to save in the log file
4.1.7 Log class
Information about an incident that is created by the operator. It is an aggregation of two classes:
operator and report.
Attributes
Methods
No Method Description
01 createLog() Create the log file. Temporarily save it on the hard disk. If in
automatically mode, the log file will be immediately saved to the
database. Otherwise, it is reserved for later use.
02 saveToDatabase() Save the log file to the database. This function is carried out after
the createLog() function has been invoked.
4.1.8 Report class
The class that is used to store the information about an incident that provided from the Reporter or
Policemen. This class is also used in other class such as Log class to save in database
Attributes
Methods
No Method Description
01 send() Broadcast the report in the system. This function invokes a
commnunication interface to transfer the data to the control system.
( telephone line, radio wave, WiMAX, 3G).
02 sendTo() Send the report file to a specific location that can process the data.
The sender can send report to the control system, or the other
vehicle or emergency services that support the PVC-CS system.
03 saveToDB() Save the report to the report database. Use for referenced later.
4.1.9 Road class
Store information about a road. It contain the length of the road, an array of interconnected road,
and their traffic status. It is used to estimate the time and find out the best route .
Attributes
Methods
No Method Description
01 getInform() Return the information about the road object.
02 sendInfom() Send the information of this road object for further processing.
03 UpdateIn Save the report to the report database. Use for referenced later.
4.1.10 Schedule class
Store the schedule of patroling police vehicle in that day. It contains the ID, address of the area, the
police vehicle ID that patrol that area and the time. This class is used for choosing the appropriate list
of police vehicles to send to the incidents place.
Attributes
Methods
No Method Description
01 getInform() Return the information about the schedule object.
02 sendInfom() Send the information of this schedule object for further processing.
4.1.11 Vehicle class
Store the information about a vehicle. It contains the ID, the vehicle type, the Policemen ID that
control that vehicle.
Attributes
Methods
No Method Description
01 getInform() Return the information about the Vehicle object.
02 sendInfom() Send the information of this Vehicle object for further processing.
03 acceptAck() Send back an acknowledgement to the control system if the vehicle
is received the message (there is no signal loss).
4.1.12 Message class
Store the information message. The message object is sent back and forth to the police vehicle and
the control system. It contains the information about the incidents, and the best route to the
incidents place generate by the system.
Attributes
Methods
No Method Description
5 DIAGRAMS
Input Incidents
Communicate with
Operator Vehicle
Reporter Policemen
Report Traffic
Save Log to DB
Connect
Accept Message
traffic Information
Send Information Call Emergency
Database Controller Force
Input Emergency
Services
srcReportIncident
1: validateReport()
createReport()
Control Systems IncidentsDatabase
logIn()
sendBackFeedback()
validateLogIn()
temporarilySaveReport()
saveReportIncident()
srcTrafficIncident
createTrafficReport()
Control Systems TrafficDatabase
logIn()
sendBackFeedback()
validateLogIn()
saveTrafficIncident()
5.2.1 Log in
ID + password
validateAccount()
acceptLogIn()
Top Package::Operator
requestData()
sendData()
requestVehicleList()
sendData()
requestData()
sendData()
Top Package::Operator
processDisplay()
Control System
Communication Interface
send send()
Vehicle
Top Package::Operator
validateLogIn()
returnValidateResult()
createLogFile()
user id + password
saveToDatabase()
Top Package::Operator
saveFinishAck()
6 PACKAGES
<Class description>
Attributes
Methods
No Method Description
01 <method name> <brief description of method. can be one sentence tell what the
method does>
xxxx method
<Method declaration>
<method description, it must be compliance with the brief description in the upper class list>
<return >
Implementation
<How to implement the method, it can be in pseudo code or activity diagram or just words>
6.2 ......
7 DATABASE
Sơ đồ quan hệ ERD (khác với class diagram) . Nó dùng để lưu trữ dữ liệu ghi thật sự xuống
database
7.1 ERDs
7.2 tblOperator
7.3 tblVehicle
7.4 tblEmergencyServices
01 ID int Code of
EmergencyServices.
Autonumber
02 serviceType Text Name of the services
03 Address Text Address of the
services
04 Phone Number The phone number
of this services
7.5 tblRoad
7.6 tblReport
e
05 reporterID Number The ID number of
reporter
06 Place Text The place where the
incident happened
07 roadID Number The road ID nearest
to the incident
7.7 tblLog
8 OTHER CONSIDERATIONS
<[This section provides a description of other design elements that were considered as alternatives
in selection process for the above class design, i.e. a brief explanation of advantages and
disadvantages of the selected package relationships and/or class implementation in comparison
with others. It should be a clear answer to the question why the above class design is selected for
this system, not the others.>
9 APPENDIX