Categories

DiffTools

Dernier ajout : 30 juillet 2012.

DiffTools est une application permettant de faire la différence entre deux tableaux représentés dans un ou plusieurs fichiers. Il accepte les entrées de type CSV et des fichiers Excel. Il produit une sortie fichier Excel ou HTML. Les données sont comparées ligne par ligne avec un clef comme référence de comparaison. Une clef représente un identifiant unique des données d’une ligne.

DiffTools est disponible en openSource sur githHub : https://github.com/fasar/diffTools. L’archive est téléchargeable ici :

Zip - 10.5 Mo

Une version pdf reprenant toutes les informations de cette rubrique est disponible ici : Readme de l'outil DiffTools {PDF}

DiffTools est modulaire. Il permet d’adapter le traitement des données, leur représentation et leur présentation. Le traitement des données est mis en œuvre par l’intermédiaire de scripts. C’est aussi en utilisant le système de scripts que le logiciel adapte la représentation des données en différents tableaux. Ces scripts utilisent un langage spécifique du domaine (DSL) du traitement des données.

La présentation des données est réalisée au moyen d’un transformateur. Ils changent la représentation conceptuelle de la différence en une représentation conceptuelle d’affichage. Par la suite, un driver utilise cette représentation conceptuelle d’affichage pour produire un fichier. Les drivers permettent de changer facilement les formats de sorties.

Ce document est une note explicative de la réalisation de DiffTools. Dans un premier temps, l’article Utilisation de l’application explique l’utilisation de l’application. Puis, la section Flux de travail donne les différentes étapes permettant de traiter les données. Ensuite, la section Modules présente différents modules et modèles constituant le logiciel et les technologies utilisées. La section Technologies décrit les scripts de traitement des données. Enfin, la dernière section conclut ce document.

Articles de cette rubrique

  • Captures d’écran

    16 mai 2012, par fasar

    Les figures ci-dessous présente une copie d’écran du programme. Interface console de DiffTools Interface graphique de DiffTools La figure ci-dessous présente la sortie du programme. Sortie Excel l’un au-dessus de l’autre Sortie Excel une ligne Sortie Excel l’un à côté de l’autre

  • Utilisation de l’application

    29 juillet 2012, par fasar

    L’application s’utilise au moyen d’une interface console ou d’une interface graphique. Des paramètres permettent de changer le comportement de l’application. Ces paramètres peuvent être donnés au moyen de l’interface ou dans un fichier de configuration. Les paramètres obligatoires sont les deux fichiers d’entrées. La comparaison est effectuée entre les deux fichiers. Le premier fichier est le fichier référence des données, le second représente la nouvelle version des données. Le comportement par défaut est de comparer les données de référence aux nouvelles données. Mais ce comportement peut être changé (...)

  • Flux de travail

    29 juillet 2012, par fasar

    Le traitement de la différence des données est effectué en plusieurs étapes. Chacune des étapes se consacre à une préoccupation. La découpe en préoccupation fournit la décomposition en modules. Elle facilite la maintenance de l’application. L’aspect modulaire rend l’application évolutive vis-à-vis de nouvelles fonctionnalités. La figure ci-dessous donne le flux de traitement des données et les productions de données intermédiaires. Les données sont représentées par une forme carrée, les données d’entrées et de sorties par une forme de papyrus et les traitements sont illustrés par les étoiles. [fig:workflow (...)

  • Modules

    29 juillet 2012, par fasar

    DiffTools est mis en place selon une architecture divisée en module. Cette approche permet de découper l’application en fonction de différentes préoccupations. La figure ci-dessous est une représentation des modules de l’application. Elle illustre un diagramme de packages (modules) dans le format de la norme UML. Le nom des packages permet de comprendre le périmètre fonctionnel de ces modules. L’approche est de type trois tiers avec : la couche présentation correspondant au module application, la couche logique correspondant aux modules DSL et script, la couche donnée correspondant aux (...)

  • Technologies

    29 juillet 2012, par fasar

    DiffTools fonctionne au moyen d’une machine virtuelle java (JVM) version 1.5. La réalisation et l’exécution de l’application font appel à différentes technologies. Par exemple : log4j et commons-logging pour les traces applicatives, JUnit pour les tests unitaires, maven pour la gestion de la construction et le packaging de l’application, Intellij IDEA pour l’écriture du code java et scala et pour la création de l’interface graphique. Scala est un langage basé sur les paradigmes de la programmation fonctionnelle et de la programmation orientée objet. La programmation fonctionnelle est adaptée (...)

  • Présentation des scripts

    29 juillet 2012, par fasar

    La partie exécution de scripts de DiffTools donne la possibilité d’adapter l’acquisition des données, leur comparaison et leur présentation. Pour cela, l’application définit un ensemble de classes qui permettent de construire les données et la comparaison. La comparaison est exprimée dans un langage compréhensible par une personne souhaitant faire des comparaisons. La portée de ce langage est figée dans le code de l’application. En revanche, son évolution est possible par une personne ayant des bases de programmation et connaissant la méthode de modélisation du langage du domaine de la comparaison de (...)

  • Synthèse

    30 juillet 2012, par fasar

    DiffTools est un outil de comparaison. Il est modulaire ce qui facilite sa maintenance et son évolution. Il utilise un langage DSL pour la comparaison, ce qui le rend compréhensible par des utilisateurs ne disposant pas de connaissances en programmation. Il compare au moyen de scripts ce qui facilite la création de nouvelle méthode de comparaison. Ce document aborde l’utilisation de DiffTools. DiffTools dispose de deux interfaces permettant d’exploiter ses fonctionnalités. Il utilise des technologies robustes et connues dans le monde de Java. Par exemple, il dispose de traces applicatives et de (...)