Dfg txt like uml language

De Wikip
Révision datée du 24 juillet 2026 à 19:08 par WikiAdmin (discussion | contributions) (1 version importée : dfg)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Version : 1.36.1 5000 (2026-07-24) 20260724190850
Auteurs :
Arthur TOROSSIAN

Data Flow Generator (Dfg) est un outil qui a pour but le développement de logiciels en gardant la synchronisation entre les sources (Python et C++) et les modèles utilisant DfgUml(UML) et DfgBehaviour(code Python des méthodes).

Il fait appel aux paradigmes de développement suivants : Round-trip engineering, Object-oriented programming et Model-driven software development.

Dfg offre aussi la possibilité d'écrire ou lire automatiquement la forme persistante des données décrites dans DfgUml.

Il existe deux versions de Dfg : V0 et V1.

Dfg V1 utilise DfgUml et DfgBehaviour et ne génère pour l'instant que du code Python tandis que Dfg V0 n'utilise que DfgUml et génère du code Python et C++.

Dfg V1 peut aussi importer DfgUml depuis les diagrammes de classes contenus dans le fichiers édités par le logiciel Dia.

L'outil est gratuitement utilisable en ligne sur Internet à l'adresse http://dfg.bht.fr pour la version 0 et sur http://dfg1.bht.fr pour la version 1.

Les sources générés par Dfg suivent sous la licence MPL 1.1 et/ou LPGL

Data Flow Generator (Dfg) is a tool that is intended for software development by keeping the synchronization between the sources (PYTHON and C++) and models using DfgUml (UML) and DfgBehaviour (Python codes of methods).

It uses the following paradigms of development: Round-trip engineering, Object-oriented programming and Model-driven software development.

Dfg also offers the ability to automatically read and write the persistent form of data described by DfgUml.

There are two versions of Dfg: V0 and V1.

Dfg V1 uses DfgUml and DfgBehaviour and generates, currently, only Python code while Dfg V0 uses only DfgUml and generates Python and C++ code.

Dfg V1 can also import DfgUml from class diagrams contained in the files edited by the software Dia.

The tool can be used online for free at http://dfg.bht.fr for version 0 and http://dfg1.bht.fr for version 1.

Sources generated by Dfg ar under the license MPL 1.1 and/or LPGL
Dfg1.png
Fig. n°1: Data Flow Generator V1

1 Exemples

1.1 Dfg grammar

CEl 
    ? help : CStr
    ? longHelp : CStr
    ? shortHelp : CStr
CAss 
    ? card : CStr
    name : CStr
CLeave  (CEl,CAss,)
    ? admVals : CStr
    ? defVal : CStr
    ? isAttr : CBool
CScalarLeave  (CLeave,)
    ? unit : CStr
CClBase  (CEl,)
    ? accept : CStr
    type : CStr
CClass  (CClBase,)
    ? her : CStr
    * bool :  CBool  (CLeave,)
    * clDef :  CClDef  (CClass,)
    * clDefInst :  CClDefInst  (CClDef,CAss,)
    * clInst :  CClInst  (CClBase,CAss,)
    * clRef :  CClRef  (CClBase,CAss,)
    * date :  CDate  (CLeave,)
    * flt :  CFlt  (CScalarLeave,)
    * int :  CInt  (CScalarLeave,)
    * map :  CMap  (CEl,CAss,)
        keyType : CStr
        valType : CStr
    * method :  CMethod 
        name : CStr
        * arg :  CArg 
            dir : CStr
            name : CStr
            type : CStr
            ? unit : CStr
    * str :  CStr  (CLeave,)
dfg :  CDfg  (CClass,)

1.2 Load curve

consumption : CLoadCurve
    energyUnit : CStr
    timeStep : CFlt
    timeUnit : CStr
    * values : CFlt
    0:1 comment : CComment
        ligne : CStr

1.3 Surface dépôt

surfaceDepot : CSurfaceDepot
    ? highWaterLevel : CFlt
    * profileData : CProfileData
        num : CInt
        surface : CFlt
        form : CForm
            * coef : CFlt
        ? highWaterLevel : CFlt

1.4 ihm calcul data

ihmCalculData : CIhmCalculData
    calculMode : CInt # 1 -> production, 2-> Sûreté, 0 -> non défini
    bathyDate : CDate
    tidalDate : CDate
    # projectionDuration
    tidalGap : CFlt # [m] déôte de marée
    lowSeaLevel : CFlt # [m]CM  niveau de basse mer
    * pump : CPump
        ref : CStr
        active : CBool
    ? pbes : CFlt # [m]CM
    sedimentaryDynamics : CSedimentaryDynamics
        sedimentaryDynamicType : 1->auto, 2->null, 2->manual
        autoCalculMode : CInt 
            # 1 -> Prédéfinie,
            # 2 -> Prorata
        autoPredefinedMode : CInt # 1-> maximum, 2-> quantil75, 3->moyen
        siltingPeriod : CInt 
            # 1-> après dragage à septembre, 
            # 2-> octobre à dragage d'hiver,
            # 3-> dragage d'hiver à dragage été
        manualDynamic : CManualDynamic
            * profileData : CProfileData
                num : CInt
                surface : CFlt