Logiciels de Conception Assistée par Ordinateur 

OUTILS DE DEVELOPPEMENT

La maintenance du logiciel ACCEAO s’est effectuée à l’aide d’un Environnement de Développement Intégré (EDI) très évolué connu sous l’appellation « CodeGear RAD Studio 2007 ». Il convient de cadrer les facultés de cet outil de travail dans le but de l’exploiter de façon optimale. Pour ce faire, on présentera en premier lieu la définition d’un Environnement de Développement Intégré par son fonctionnement, les spécificités de CodeGear RAD Studio seront mises en exergue dans un second lieu.

Généralités sur les Environnements de Développements Intégrés

Un Environnement de Développement Intégré est une suite de logiciels destinée au développement d’une application. Les EDI sont surtout très connus pour faciliter la création des interfaces graphiques (GUI en anglais pour Graphical User Interface). Ils intègrent également un système de gestion de versions permettant de maintenir l’ensemble des versions d’un logiciel.

Editeur de texte

Un éditeur de texte est un logiciel attribué pour la création et l’édition de fichiers textes. Son usage est très courant dans le cadre d’un développement d’application. Chaque système d’exploitation fournit un éditeur de texte vu qu’il est incontournable pour beaucoup de tâches.
Un éditeur de texte se distingue d’un logiciel de traitement de texte par le fait que la composition s’oriente plutôt sur les lignes de code que sur les paragraphes. Il en résulte que les fichiers textes ne comportent pas de mise en forme telle l’espacement des caractères ouencore la couleur de la police.

Compilateur

On peut définir un compilateur comme un programme servant à traduire un langage source en un langage nommé langage cible. Le langage cible présente habituellement un niveau d’abstraction plus élevé que le langage source. En terme technique, on dit que le langage source est de plus haut niveau que le langage cible. Pratiquement, le compilateur transcrit un code source écrit dans un langage de programmation, à l’exemple du langage C++, en un autre langage qui est souvent un langage d’assemblage ou langage machine. Ce programme produit en langage machine forme ce qu’on appelle code objet.

Interpréteur

Un interpréteur ou interprète analyse, traduit et exécute un programme écrit dans un langage de programmation dit interprété. A l’inverse du compilateur, l’interpréteur exécute les instructions du programme au fur et à mesure qu’il lit le code source.
Le processus d’interprétation s’appuie sur l’exécution dynamique du programme par un autre programme qu’est l’interpréteur. La conversion du langage n’est donc plus nécessaire.
L’interpréteur effectue cycliquement la lecture et l’analyse d’une instruction, exécute ou évalue celle-ci, et passe à l’instruction suivante.

Débogueur (en anglais, debugger)

Un débogueur sert à détecter les dysfonctionnements dans le programme. Il favorise également les tests du programme, et permet un suivi rapproché de celui-ci. Il est à noter que le programme à déboguer s’exécute normalement à travers le débogueur. Cependant, le débogueur procure des façons diversifiées dans le but de contrôler l’exécution.
Le débogueur offre notamment la possibilité d’arrêter ou de suspendre un programme sur un point que le programmeur aura à spécifier. A partir du moment où le programme s’est arrêté, les états des différentes variables stockées en mémoire peuvent être observés. Chaque anomalie résultant de la surveillance de ces variables peut être à l’origine d’un défaut de fonctionnement du programme.

Les outils automatiques de fabrication

Facteur déterminant dans le choix d’un EDI, les outils de conception peuvent différer selon les langages et les systèmes. Les fonctionnalités les plus privilégiées sont :
– Les documentations du langage et de l’EDI.
– Les assistants et les outils de développement rapide d’applications ou RAD (acronyme de l’anglais Rapid Aid Development).
– Les interfaces de programmation (Application Programming Interface)

La documentation

Afin d’optimiser les possibilités du logiciel, les développeurs cherchent souvent à avoir à portée de main des sources d’informations qui leur permettraient d’exploiter toute la puissance de leur EDI. Aussi, il est important d’assurer la disponibilité des documentations si toutefois elles ne figurent pas dans l’EDI lui-même.
Les types d’informations pouvant figurer à l’intérieur d’un EDI sont les documentations sur les fonctionnalités présentes dans celui-ci, les documentations sur les interfaces de programmation ainsi que leurs concepts.

Les interfaces de programmation ou API

Une interface de programmation est définie comme un ensemble de fonctions, procédures et classes mises au service des programmes informatiques. Les API sont fournies par l’intermédiaire d’une bibliothèque logicielle, d’un service, et par le système d’exploitation lui-même. Leur maîtrise est indispensable à l’interopérabilité des composants.
Le logiciel ACCEAO a fait usage de bon nombre d’interfaces de programmation (API) à citer en particulier la bibliothèque standard C++ ou STL (Standard Template Library). En effet, la nouvelle version a fait un usage encore plus avancé de la STL grâce à l’introduction de la notion d’algorithme et de conteneurs.

Le débogage d’application avec CodeGear RAD Studio 2007

CodeGear RAD Studio 2007 comporte le débogueur CodeGear.NET et le débogueur CodeGear Win32. Il choisit automatiquement le débogueur qui est approprié au type du projet actif. On peut déjà noter que le débogage multiplateforme dans un groupe de projets est pris en charge et partage une interface utilisateur commune dans la mesure du possible. Les débogueurs intégrés dans CodeGear RAD Studio 2007 autorisent la correction des erreurs d’exécution dans une application RAD Studio [6]. Le débogueur de l’EDI inclut toutes les fonctionnalités de base.
Les fenêtres du débogueur sont rassemblées dans un volet appelé « inspecteur de débogage » qui offre notamment la possibilité d’examiner les types de données tels les tableaux, les classes, les constantes, les variables scalaires, les pointeurs. L’option « inspecter » du menu « Exécuter » permet d’entreprendre cette action de suivi et évaluation.

Les points d’arrêt de CodeGear RAD Studio 2007

Le débogueur de CodeGear RAD Studio 2007 gère quatre (4) types de points d’arrêt :
– Les points d’arrêt source interrompent l’exécution à un emplacement donné du code source ;
– Les points d’arrêt adresse interrompent l’exécution à une adresse mémoire donnée ;
– Les points d’arrêt données interrompent l’exécution lorsque la mémoire change à une adresse particulière ;
– Les points d’arrêt chargement de module suspendent l’exécution durant le chargement du module spécifié.

Evaluation/Modification dans CodeGear RAD Studio 2007

La fonctionnalité Evaluer/Modifier évalue une expression. On peut envisager la modification de la valeur des variables grâce à cette possibilité.

Points de suivi

Les points de suivi permettent de suivre la valeur des variables ou des expressions du programme lorsque le code est exécuté en mode pas-à-pas. La valeur de l’expression point de suivi change si le programme met à jour l’une des variables contenues dans l’expression de suivi.

Débogage à distance

CodeGear RAD Studio 2007 donne la possibilité de déboguer une application exécutée sur un ordinateur distant. La connexion se fait via le protocole TCP/IP, le débogueur étant sur la machine distante.

La compilation dans CodeGear RAD Studio 2007

Au cours du développement d’une application, CodeGear RAD Studio 2007 permet de compiler, construire et exécuter l’application depuis sa fenêtre. Ces opérations se comportent d’une manière différente :
– Compiler (ou Make) : compile uniquement les fichiers qui ont été modifiés depuis la dernière construction. Cette commande n’exécute donc pas l’application.
– Construire : compile tout le code source du projet en cours, qu’il ait été modifié ou non. La construction est impérative si les fichiers modifiés n’ont pas été relevés.
– Exécuter : compile tout le code source modifié. Si la compilation réussit, l’application peut être testée et utilisée dans l’EDI.
Il est aussi possible de supprimer les fichiers générés dans la précédente construction en utilisant tout simplement la commande Nettoyer.

Les erreurs de compilation

CodeGear RAD Studio 2007 affiche les messages du compilateur dans la fenêtre Messages. Mais il est aussi capable de fournir des explications concernant les messages d’erreurs en sélectionnant un message et en appuyant sur F1.

Les options de compilation

Le programmeur peut définir de nombreuses options de compilation pour un projet en sélectionnant une page relative au compilateur dans le menu Projet > Options. On peut également invoquer le compilateur depuis la ligne de commande et spécifier d’autres options du compilateur. CodeGear RAD Studio 2007 est un Environnement de Développement Intégré assez riche pour prendre en charge les étapes d’amélioration du logiciel ACCEAO. Pour entamer les activités de maintenance, il faudrait rétablir la fonction de représentation du diagramme de Bode qui n’a pas été effectuée pendant la migration sous Windows du logiciel. Ce travail fera l’objet du prochain chapitre qui explicitera par ailleurs les spécificités de cette fonctionnalité.

Absence du Diagramme de Bode dans la version 5 sous WINDOWS

Sous sa dernière version, le logiciel ne possède pas la fonction Diagramme de Bode. Cette version opérait la migration du logiciel ACCEAO sous DOS vers WINDOWS, dans uneoptique de meilleur rendement des fonctionnalités avec l’interface utilisateur du logiciel.
Il est à rappeler que cette dernière version (ACCEAO v5.0) consistait essentiellement en la réimplantation du logiciel anciennement sous DOS vers le système d’exploitation WINDOWS. Cette migration se traduit par une retranscription d’un langage natif (DOS) vers un autre (WINDOWS), toutefois, sans restructuration majeure des algorithmesd’implémentation qui ont été utilisés depuis les premières versions jusqu’alors.
L’ordre de grandeurs est assujetti à des exposants atteignant les 10 39 à 10, notamment sur adjonction des composants actifs (les transistors, les diodes) compte tenu du fait que les calculs contenant ces composants électroniques accroissent l’ordre de puissances dans les matrices de calcul. Les transistors sont implantés et les modèles mathématiques de ses capacités C mu , Cpi , qui sont logiquement négligés pour les petites et moyennes fréquences dans les études théoriques [5], ne sont nullement négligés dans les calculs internes de ACCEAO pour ces fréquences intermédiaires, ce qui implique l’occurrence de grandeurs d’ordres incommensurables dans le calcul opéré par l’entité de calcul du logiciel. Par-dessus tout, l’initialisation de grandes valeurs implantées au cœur du programme (depuis les versions précédentes sous DOS) réduit à néant le bon déroulement du cycle de calcul opéré par l’algorithme de calcul d’ACCEAO.
Il faut savoir que toutes les versions du logiciel opérant sous DOS ont été développées à partir de l’EDI Turbo C++ (de Borland). La précision supportée et garantie par ces EDI effleure les 10 5000 comme il est montré dans le tableau 2 [8]. L’implémentation de l’algorithme de calcul d’ACCEAO n’est donc pas sujette au problème de pertes d’informations ou de précision.
Dans la mesure où ce même algorithme de calcul ayant fonctionné sans encombre pour la version immédiatement précédente (et toutes les autres versions antérieures), l’algorithme a été dès lors laissé intact, sachant qu’après débogages successifs des lignes de codes du programme, les erreurs et exceptions lancées par l’application proviennent principalement de la précision de calcul apportée par le logiciel de développement CodeGear C++Builder (C++ Builder en général).
En effet, la précision de calcul garantie par CodeGear C++Builder avoisine les 10. Autrement dit la plage des valeurs acceptée pour les nombres flottants entrant dans les calculs (double) ne doit pas dépasser les 10 . Outre cet ordre de grandeur, il apparaît une perte de précision influant grandement sur le résultat de calcul.

LIRE AUSSI :  Lois générales des réseaux linéaires 

Librairie NTL

Pour solutionner le problème de précision des calculs, il a fallu intégrer une approche d’élargissement du registre de calcul utilisé par CodeGear C++ Builder pour aboutir à un plus grand ordre précision dans les calculs, tels qu’implémentés au cœur de ACCEAO. Il a été opté l’apport de la bibliothèque NTL au sein du projet qui permet un accroissement de l’ordre de précision de calcul indifféremment de celui utilisé par l’environnement de développement. Cette solution n’est pas sans conséquence car elle ralentit considérablement le temps de calcul de l’application. Pour minimiser le problème, seules les fonctions afférentes à l’exécution du diagramme de Bode ont été réadaptées à partir de la bibliothèque NTL. Ainsi, le reste du projet n’est pas pénalisé.
NTL est relativement facile à manipuler. Elle fournit un environnement satisfaisant pour une nouvelle implémentation d’algorithme basé sur les grands nombres. Elle est écrite entièrement en C++ et peut être installée sur une grande variété de plateformes à savoir les PC, les stations de travail 32 et 64 bits. Plus rapide que les librairies portables de son genre, NTL fournit des structures de données pour manipuler les nombres signés, les matrices et les
polynômes [9]. Les algorithmes qui y sont implémentés sont des plus rapides au point où NTL est la librairie utilisée pour la factorisation des polynômes et du dénombrement des points dans les courbes elliptiques. Malgré cette rapidité de la librairie, le tracé du diagramme de Bode accuse une certaine lenteur. Face à cela, un indicateur de chargement (une barre de progression) a été implanté au niveau de la fenêtre d’affichage du diagramme montrant la progression du tracé.
Celui-ci correspond à la progression des itérations de la boucle principale de balayage. Une fois le traçage accompli, le temps d’exécution est affiché en millisecondes (ms) au dessus de la barre de progression précédente.

Mise en route des fonctions de traçage du diagramme de Bode

Les méthodes et les propriétés qui régissent la représentation du diagramme de Bode ont été rassemblées dans une classe appelée Bode. Ce procédé nommé encapsulation consiste à réunir les données et les méthodes au sein d’une structure [10]. Ainsi, la classe Bode renferme en son sein les paramètres entrés par l’utilisateur telles les échelles et les plages de fréquence à étudier. La récupération de la fonction de transfert du circuit est effectuée en deux temps, l’extraction du numérateur et du dénominateur. Les données reçues sont ensuite traitées par la méthode bodeplots() de la classe Bode qui s’occupe du tracé proprement dit dudiagramme de Bode. L’interaction avec la librairie NTL est observable uniquement dans l’encapsulation relative à la fonction Diagramme de Bode. Le mécanisme de liaison du programme avec la bibliothèque mathématique a été intelligemment implémenté dans un fichier nommé clever.cpp. Les fonctions présentes dans ce fichier se chargent notamment de l’interprétation des types de données proposées par la NTL. En effet, la librairie NTL possède des classes pour la manipulation des grands nombres mais n’offre aucune méthode pour convertir ceux-ci en des données de type native (ex : double, int, …). Ces opérations de conversion sont effectuées dans le fichier clever.cpp en interceptant les flux de données traités par les classes de la librairie NTL.

Implémentation de circuits numériques dans la version 6.0

Un circuit logique est un circuit électronique dans lequel uniquement deux valeurs logiques sont réalisables, si bien en entrée qu’en sortie, dans une optique d’implémentation d’une fonction logique formelle. De nombreuses applications des circuits logiques requièrent un circuit à entrées et sorties multiples, dans lequel les valeurs de sorties ne dépendent que de celles des entrées. Un tel circuit est dit combinatoire [11]. Par opposition, les fonctions logiques dites « séquentielles » résultent de l’association de plusieurs fonctions logiques combinatoires et qui supposent l’existence d’une horloge qui synchronise le temps, auquel cas, les valeurs de sorties dépendent non seulement des valeursd’entrée, mais aussi des valeurs de sortie à l’instant précédent.

Objectif et besoins

Depuis les anciennes versions du logiciel pédagogique jusque dans la version précédente sous l’environnement Windows, la principale exploitation du logiciel est dirigée sur les essais de circuits analogiques. A l’heure de la numérisation continuelle dans le secteur de la technologie, la présente réingénierie de logiciel est amenée à intégrer la simulation de circuits numériques, d’autant plus que l’étude de ces derniers fait partie intégrante des disciplines acquises au sein du Département Electronique. Pour cette première intégration, le principal tribut du logiciel consiste en la conception ou synthèse de circuits logiques combinatoires.
Pour répondre à cet objectif, des étapes d’ouvrage ont dû être mises en place. Elles sont :

Implantation d’une nouvelle interface

La création d’une fenêtre numérique a été de mise pour pourvoir à la simulation de circuits logiques exclusivement. ACCEAO peut désormais basculer sur deux interfaces graphiques, analogique et numérique.

Insertion des composants logiques usuels

Les portes constituent l’unité matérielle élémentaire à partir de laquelle tous les circuits logiques sont créés, elles symbolisent graphiquement les opérations de l’algèbre binaire ou booléenne, d’où l’appellation d’opérateurs logiques. Leurs représentations sont données dans le tableau 3 ci-après.

Table des matières

REMERCIEMENTS 
RESUME 
Liste des figures
Liste des tableaux 
Liste des abréviations 
INTRODUCTION 
Chapitre 1 : Le logiciel ACCEAO
1.1 Logiciels de Conception Assistée par Ordinateur
1.2 Les versions antérieures sous MS-DOS d’ACCEAO
a. Fonctionnement du logiciel
b. Maintenance du logiciel
c. Fonctions essentielles dans les versions DOS
1.3 Vue générale de la dernière version ACCEAO V5.0 sous WINDOWS
a. Choix du système d’exploitation
b. L’interface graphique d’ACCEAO Version 5.0
c. Les nouveaux composants dans ACCEAO Version 5
d. Structure de la version 5 du logiciel ACCEAO
1.4 Conclusion
Chapitre 2 : OUTILS DE DEVELOPPEMENT
2.1 Généralités sur les Environnements de Développements Intégrés
2.2 L’Environnement de Développement Intégré CodeGear RAD Studio 2007
a. Présentation de CodeGear RAD Studio
b. Nouveautés dans CodeGear RAD Studio 2007
c. Les outils de développement autonomes de CodeGear RAD Studio 2007
d. Le débogage d’application avec CodeGear RAD Studio 2007
e. La compilation dans CodeGear RAD Studio 2007
Chapitre 3 : Intégration du diagramme de Bode
3.1 Le Diagramme de Bode
3.2 ACCEAO et Diagramme de Bode
a. Diagramme de Bode sous les versions DOS de ACCEAO
b. Absence du Diagramme de Bode dans la version 5 sous WINDOWS
c. Librairie NTL
d. Mise en route des fonctions de traçage du diagramme de Bode
e. Exemples de résultat obtenu
Chapitre 4 : Implémentation de circuits numériques dans la version 6.0 
4.1 Objectif et besoins
a. Implantation d’une nouvelle interface
b. Insertion des composants logiques usuels
c. Besoin de nouveaux composants et création de sous-circuits
d. Outils pour la simulation du circuit : Générateur – analyseur – sondes
e. Moteur de calcul individuel pour la partie numérique
f. Sauvegarde et réutilisation des circuits créés : Base de données ACCEAO
4.2 Moteur de calcul
a. Algorithme récursif
b. Représentation algébrique des fonctions individuelles de portes
c. Séquence assurée par Timer
4.3 Arrangement des composants et les fils de connexions
Chapitre 5. ACCEAO Version 6.0 
5.1 Présentation du logiciel
a. la fonction « Diagramme de Bode »
b. Nouvelle interface numérique
5.2 Exemple de manipulation
a. Emploi de la fonctionnalité « Diagramme de Bode »
b. Présentation de la partie numérique
c. Instruments utilisés dans la partie numérique
d. Utilisation de sous-circuits ou modules
5.3 Consultation de la base de données
a. Circuits et Base de données : Acceao6DB.mdb
b. Sous-circuits et Base de données : Acceao6Module.mdb
c. Intérêts particuliers pour l’interactivité Acceao-Bdd
5.4 Nouvelle interface d’aide
5.5 Déploiement du logiciel
CONCLUSION 
ANNEXE A : CALCUL SUR LES DIAGRAMMES DE BODE
ANNEXE B : OPERATEURS LOGIQUES ASSOCIES A LEUR FONCTION ALGEBRIQUE
ANNEXE C : PROCEDURE D’ACQUISITION DE CODEGEAR RAD STUDIO
ANNEXE D : CADRE THEORIQUE DES BASES DE DONNEES DANS ACCEAO
REFERENCES

projet fin d'etude

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *