---
# System prepended metadata

title: SIGRAF Modele de donées
tags: [SIGRAF]

---

---
title: SIGRAF Modele de donées  
tags: SIGRAF
description: Modélisation de données de SIGRAF
---


```mermaid
classDiagram
    direction TB
   
    %% SIGRAF
    class TacheFonctionnelle {
        #+ id: string
        #+ nom: string
        #+ dateDebut: date
        #+ dateFin: date
        # projetId : string
        + projet: Projet
        + tacheTechnique: List ~tacheTechnique~  
        
       # raf: number
       # estimee: number
    }
    
    class MajRaf {
        #+ id: string
        #+ old: number
        #+ new: number
        #+ date: date
        + traceable: BIDULE extends Traceable 
    }
    
    class TacheTechniqueHaveMajRaf {
        # idRaf: string
        # idTacheTechnique: string;
    }
    
    class TacheFonctionnelleHaveMajRaf {
        # idRaf: string
        # idTacheFonctionnelle: string;
    }
    
    class Traceable {
    <<Abstract>>
        + raf: number
        + estimee: number
        + listMaj: List~MajRaf~
    }
    
    class TacheTechnique {
        #+ id: string
        #+ nom: string
        # moduleGitId: number
        # tacheFonctionnelleId: string
       + moduleGit: ModuleGit
       + tacheFonctionnelle: TacheFonctionnelle
       
       # raf: number
       # estimee: number
    }
    
    class Projet {
        #+ id: string
        #+ nom: string
        #+ dateDebut: date
        #+ dateFin: date
        + tacheFonctionnelles: List~TacheFonctionnelle~
        + modulesGit: List~ModuleGit~
    }
    
    %% GIT
    class ModuleGit {
        #+ id: number => Utilisé pour appeler l'api de GIT = iid
       # projetId: string
       + projet: Projet
       + tacheTechniques: List~TacheTechnique~
    }
    
    Traceable "0..*" --* "1" MajRaf
    
    TacheFonctionnelle "1" --* "1..*" TacheTechnique : Correspond
    TacheFonctionnelle --|> Traceable
    
    TacheTechnique --|> Traceable
    
    Projet "1" --* "1..*" TacheFonctionnelle: Contient
    Projet "1" --* "1..*" ModuleGit: Comprend
    
    TacheTechnique "1" *-- "1..*" ModuleGit: Est présente
    
```

