[doc] Add positioner_class_diagram_simple.plant

This is a simplified, and somewhat more readable version of
positioner_class_diagram.uxf.
This commit is contained in:
Matteo Cypriani 2016-11-03 11:18:22 -04:00
parent 759db45a50
commit 36966148f3
2 changed files with 217 additions and 2 deletions

View File

@ -11,8 +11,8 @@ List of figures provided with the OwlPS distribution
- PNG conversion command (assuming ``plantuml`` is an alias for - PNG conversion command (assuming ``plantuml`` is an alias for
``java -jar /path/to/plantuml.jar``): ``java -jar /path/to/plantuml.jar``):
``` plantuml -tpng owlps_sequence_diagram.plant ``` plantuml -tpng owlps_sequence_diagram.plant
PlantUML also allow to generate SVG or EPS (which in turn can be PlantUML also allows one to generate SVG or EPS (which in turn can
converted to PDF with [Inkscape http://inkscape.org/] or be converted to PDF with [Inkscape http://inkscape.org/] or
[epstopdf http://ctan.org/pkg/epstopdf], respectively). [epstopdf http://ctan.org/pkg/epstopdf], respectively).
: **OwlPS Positioner's input and output facilities** : **OwlPS Positioner's input and output facilities**
@ -27,6 +27,13 @@ List of figures provided with the OwlPS distribution
- PDF conversion command: - PDF conversion command:
``` umlet -action=convert -format=pdf -filename=positioner_class_diagram.uxf ``` umlet -action=convert -format=pdf -filename=positioner_class_diagram.uxf
: **OwlPS Positioner's simplified class diagram**
- File name: ``positioner_class_diagram_simple.plant``
- Format: [PlantUML http://plantuml.sourceforge.net/]
- PNG conversion command (see the explanations for the aggregation
sequence diagram above):
``` plantuml -tpng positioner_class_diagram_simple.plant
: **OwlPS Positioner's internal process** : **OwlPS Positioner's internal process**
- File name: ``positioner_process.dot`` - File name: ``positioner_process.dot``
- Format: [Graphviz http://www.graphviz.org/] - Format: [Graphviz http://www.graphviz.org/]

View File

@ -0,0 +1,208 @@
@startuml
'''''''''''''''''''
' Syntax reminder '
'''''''''''''''''''
'
' <|-- ' Extension
' *-- ' Composition
' o-- ' Agregation
'
' Orientation of the links:
' 2 dashes: vertical
' 1 dash: horizontal
''''''''''''''
' Parameters '
''''''''''''''
hide empty members
title (Somewhat simplified) OwlPS Positioner's class diagram
''''''''''''''
' Executable '
''''''''''''''
class "owlps-positionerd" as owlps_positionerd << (X, orchid) executable >>
owlps_positionerd *-- Positioning
'''''''''''''''''''''
' Utilitary classes '
'''''''''''''''''''''
' Note: for the sake of clarity, PosUtil and posexcept are not
' associated with the other classes, but they should actually be
' linked with pretty much all of them.
package "Utilitary classes" {
class PosUtil << static >>
note top
The functions of <i>PosUtil</i> are
used by too many classes to
link them all in this diagram
end note
class posexcept
note bottom
<i>posexcept</i> is the super-class of
a bunch of exception classes that
do not appear in this diagram
end note
' Text file reading and writing
class TextFileWriter
class TextFileReader
CSVFileReader <|-- TextFileReader
}
'''''''''''''''''''''''''
' Configuration classes '
'''''''''''''''''''''''''
package "Configuration classes" {
class Configuration << static >>
UserInterface ..> Configuration
}
owlps_positionerd *-- UserInterface
Configuration <.. Positioning
''''''''''''''''''''''
' Data input classes '
''''''''''''''''''''''
package "Data input classes" {
class InputDataReader
MobilesReaderCSV <.. InputDataReader
CapturePointsReaderCSV <.. InputDataReader
TopologyReaderCSV <.. InputDataReader
}
owlps_positionerd *-- InputDataReader
UserInterface --> InputDataReader
CSVFileReader <-- MobilesReaderCSV
CSVFileReader <-- CapturePointsReaderCSV
CSVFileReader <-- TopologyReaderCSV
'''''''''''''''''
' Input classes '
'''''''''''''''''
package "Input classes" {
class Input
abstract InputMedium --* Input
InputCSV --|> InputMedium
InputUDPSocket --|> InputMedium
abstract InputLogMedium --* Input
InputLogCSV --|> InputLogMedium
}
Input --* Positioning
InputMedium <-- InputDataReader
CSVFileReader <-- InputCSV
TextFileWriter <-- InputLogCSV
'''''''''''''''''''''''''''''''''
' Positioning algorithm classes '
'''''''''''''''''''''''''''''''''
package "Positioning algorithm classes" {
abstract PositioningAlgorithm
RealPosition --|> PositioningAlgorithm
abstract TrilaterationAlgorithm --|> PositioningAlgorithm
InterlinkNetworks --|> TrilaterationAlgorithm
FBCM --|> TrilaterationAlgorithm
abstract TrilaterationMethod <-- TrilaterationAlgorithm
MinMax --|> TrilaterationMethod
abstract CartographyAlgorithm --|> PositioningAlgorithm
NSS --|> CartographyAlgorithm
FRBHMBasic --|> FBCM
FRBHMBasic --|> NSS
}
PositioningAlgorithm <.. Positioning
''''''''''''''''''
' Output classes '
''''''''''''''''''
package "Output classes" {
class Output
abstract OutputMedium --* Output
OutputCSV --|> OutputMedium
OutputTerminal --|> OutputMedium
abstract OutputNetworkSocket --|> OutputMedium
OutputUDPSocket --|> OutputNetworkSocket
OutputTCPSocketEvAAL --|> OutputNetworkSocket
}
Output --* Positioning
TextFileWriter <-- OutputCSV
''''''''''''''''
' Data classes '
''''''''''''''''
package "Data classes" {
class Stock << static >>
' Points
class Point3D
Waypoint --|> Point3D
ReferencePoint --|> Point3D
ReferencePoint --o Stock
' Deployment area
Building --o Stock
Area --o Building
Waypoint --o Stock
Waypoint -- Area
Waypoint -- Building
' Devices
WifiDevice <|-- Mobile
Mobile --o Stock
WifiDevice <|-- CapturePoint
CapturePoint --o Stock
' Requests & results
Request <-- InputMedium
Mobile <-- Request
Timestamp --* Request
Measurement --* Request
Measurement -- CapturePoint
Result -- Request
Result *-- Point3D
ResultList *-- Result
CalibrationRequest --|> Request
ReferencePoint -- CalibrationRequest
Direction --* CalibrationRequest
}
owlps_positionerd o-- Stock
ReferencePoint <-- Positioning
ResultList <-- Output
@enduml
' vim: tw=0