[doc] Add positioner_class_diagram_simple.plant

This is a simplified, and somewhat more readable version of
positioner_class_diagram.uxf.
master
Matteo Cypriani 7 years ago
parent 759db45a50
commit 36966148f3

@ -11,8 +11,8 @@ List of figures provided with the OwlPS distribution
- PNG conversion command (assuming ``plantuml`` is an alias for
``java -jar /path/to/plantuml.jar``):
``` plantuml -tpng owlps_sequence_diagram.plant
PlantUML also allow to generate SVG or EPS (which in turn can be
converted to PDF with [Inkscape http://inkscape.org/] or
PlantUML also allows one to generate SVG or EPS (which in turn can
be converted to PDF with [Inkscape http://inkscape.org/] or
[epstopdf http://ctan.org/pkg/epstopdf], respectively).
: **OwlPS Positioner's input and output facilities**
@ -27,6 +27,13 @@ List of figures provided with the OwlPS distribution
- PDF conversion command:
``` 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**
- File name: ``positioner_process.dot``
- Format: [Graphviz http://www.graphviz.org/]

@ -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
Loading…
Cancel
Save