Newer
Older
@startuml
' PARAMETERS
skinparam linetype polyline
skinparam linetype ortho
title Base de données trafic V2I
package "Composant" #87CEEB {
abstract class Noeud {
+ajouter_capteur() : void
+transfér_capteur(N1:Capteur,N2:Capteur): Capteur
+supprimer_capteur():void
}
Noeud"1" *-- "0..*,1..*"Capteur
class Capteur
Class Capteur{
+ numéro_série : int
+ modéle : string
}
note bottom of Capteur : (numéro_série, modéle) primary key
note top of Capteur : les infrastructutres ont au moins un capteur
class Infrastructure {
+id :int {unique}
}
package Composant_mobile #483D8B {
class Véhicule {
+numéro_immatriculation : integer
+marque : string
+modéle : string
}
enum Type_voiture_spéciale {
ORDINAIRE
SAMU
POMPIER
POLICE
}
class Moto{
+capacité_moto : integer
}
class Camion{
+capacite_maximale : integer
}
class Voiture {
}
}
}
Noeud "1..*" - "1" Noeud
(Noeud, Noeud) .. Communication
class Communication {
+type_communication : Type_communication
}
enum Type_communication {
UN_A_UN
UN_A_PLUSIEURS
}
}
package "Evenement" #DDDDDD {
abstract class Evenement {
+timestamp :date
+id_entite : integer
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
}
class accident {
+gravité : integer
+nombre_véhicule : integre
+type_véhicule[1..*] : sting
}
class alert_meteo {
+temps : string
+température : integer
}
class detection_materiel {
}
class traveau_routier {
}
}
package "localisation" #5F9EA0 {
class Position {
+longitude : float
+latitude : float
}
class Commune {
+nom : string
+code_postal : integer
}
Commune "1" --"*" Position : appartient
}
Noeud <|-- Infrastructure
Noeud <|-- Véhicule
Capteur "1" -- "*" Evenement : détecte
Evenement <|-- accident
Evenement <|-- alert_meteo
Evenement <|-- detection_materiel
Evenement <|-- traveau_routier
Véhicule <|-- Voiture
Infrastructure -[hidden]-> Capteur
Véhicule -[hidden]-> Capteur