des cours informatiques

Discussion dans 'Support informatique' créé par MaRaWaN, 3 Avril 2006.

  1. MaRaWaN

    MaRaWaN Membre exclu Membre du personnel

    J'aime reçus:
    48
    Points:
    0
    salut tt le monde bghayte nposter l wladbladi bezafffff dial les cours f l''formatique:
    -programation-reseau et plz d'autres cours tres interessant yalah li bgha ana moujoud

     
  2. dodi

    dodi °Oo TiTiiiZa oO° Membre du personnel

    J'aime reçus:
    42
    Points:
    48
    Re : des cours informatiques

    merci merci c gentil :D si c possible moi g besoin des cours de réseau khasni la documentation g des exams w ma3ndifach nprépari :(
     
  3. MaRaWaN

    MaRaWaN Membre exclu Membre du personnel

    J'aime reçus:
    48
    Points:
    0
    Re : des cours informatiques

    Ateliers de Génie Logiciel


    1. Introduction

    Qu'est ce qu'un logiciel ?

    ``Le logiciel est l'ensemble des programmes, procédés et règles, et éventuellement de la documentation,
    relatifs au fonctionnement d'un ensemble de traitement de l'information'' (arrêté du 22 déc. 1981)

    Autrement dit, et de façon plus générale, un logiciel est un ensemble de programmes informatiques (du code) mais également un certain nombre de documents se rapportant à ces programmes et nécessaires à leur installation, utilisation, développement et maintenance: spécifications, schémas conceptuels, jeux de tests, mode d'emploi, ...


    La ``crise du logiciel''

    La ``crise du logiciel'' est apparue à la fin des années 60 et provient d'un décalage entre les progrès matériels d'une part et logiciels d'autre part: alors qu'apparaissaient les ordinateurs de la troisième génération, de plus en plus puissants et de moins en moins coûteux, la construction de logiciels restait dans le domaine de l'artisanat et du folklore, où chacun y allait de sa petite recette. De fait, alors que les nouvelles machines rendaient possibles des applications jusqu'alors irréalisables, les méthodes de développement
    logiciel ne s'appliquaient pas à de grands systèmes:

    la construction de logiciels coutait très cher (200 millions de dollars pour fabriquer OS-360),
    les délais n'étaient pas respectés (2 ans de retard pour les premiers compilateurs PL/1, Algol 68, ADA),
    les logiciels n'étaient pas évolutifs (parfois écrits en assembleur pour un type de machine) ce qui les rendait très rapidement obsolètes, avec des performances poussives (Univac, le système de réservation pour United Air Lines au début des années 75 n'a jamais servi car les temps de réponse étaient trop longs !),
    une fiabilité aléatoire (la sonde américaine qui devait aller sur Vénus s'est perdue, à cause d'une mauvaise instruction... plus récemment, la trajectoire de Ariane 5 a été modifiée à cause d'un débordement de capacité),
    et une convivialité discutable (des interfaces homme/machine inexistantes).


    Le génie logiciel

    ``Le génie logiciel est l'ensemble des activités de conception et de mise en oeuvre des produits et des
    procédures tendant à rationaliser la production du logiciel et son suivi'' (arrêté du 30 déc. 83)

    Autrement dit, le génie logiciel est ``l'art'' de produire de bons logiciels, au meilleur rapport qualité/prix. Il utilise pour cela des principes d'ingéniérie et comprend des aspects à la fois techniques et non techniques: le génie logiciel est basé sur des méthodologies et des outils qui permettent de formaliser et même d'automatiser partiellement la production de logiciels, mais il est également basé sur des concepts plus informels, et demande des capacités de communication, d'interprétation et d'anticipation. De fait, la ``crise du logiciel'' n'est toujours pas résolue. Le génie logiciel reste un ``art'' qui demande de la part de l'informaticien une bonne formation aux différentes techniques (le ``savoir''), mais également un certain entrainement et de l'expérience (le ``savoir faire'').


    Les qualités d'un logiciel

    Si le génie logiciel est l'art de produire de bons logiciels, il est nécessaire de fixer les critères de qualité d'un logiciel. On peut séparer ces qualités en deux catégories, suivant que l'on regarde le logiciel de l'extérieur ou de l'intérieur:

    les qualités du logiciel lors de l'utilisation: fiabilité (correction et robustesse), adéquation aux besoins (y compris aux besoins implicites !), ergonomie (simplicité et rapidité d'emploi, personnalisation), efficacité, convivialité, ..., faible coût et respect des délais bien entendu.

    les qualités du logiciel lors de la maintenance: un logiciel doit pouvoir être maintenu (pour le corriger, l'améliorer, l'adapter aux changements de son environnement, ...). Pour cela, il doit être flexible (utilisation du paramétrage, de la généricité, de l'héritage), portable (éviter l'assembleur et les langages trop confidentiels), structuré (utilisation de modules ou de classes, de procédures ou de fonctions) avec une indépendance maximum entre les structures (utilisation de l'abstraction), ... et bien sur, documenté.

    Ces différentes qualités ne sont pas toujours compatibles ni même réalisables, et il est nécessaire de trouver des compromis. Dans tous les cas, les objectifs de qualité doivent être définis pour chaque logiciel, et la qualité du logiciel doit être controlée par rapport à ces objectifs.


    2. Le processus logiciel, ou cycle de vie du logiciel

    Le processus logiciel désigne l'ensemble des activités nécessaires au développement et à la maintenance d'un logiciel. Il s'agit d'un processus variable (selon le type d'application) et complexe, composé de différentes phases inter-dépendantes.

    Afin de tenter de résoudre la crise du logiciel, ce processus a fait l'objet de différentes modélisations. Historiquement, le premier modèle de développement proposé est celui dit ``de la cascade'', au début des années 70. Ce modèle a été assez largement mis en oeuvre, mais on s'est rapidement aperçu qu'il n'est pas toujours approprié. Sa vision simpliste du processus sous-estime le coût des retours en arrière dans le cycle de vie. Ainsi, plusieurs alternatives au modèle de la cascade ont été proposées, basées notamment sur le prototypage et l'assemblage de composants réutilisables.


    Le prototypage ou approche exploratoire

    Le modèle de la cascade est bien adapté au processus logiciel s'il y a peu de retours en arrière. Dans ce modèle, l'élaboration des spécifications est une phase particulièrement critique: les erreurs de spécifications sont généralement détectées au moment des tests, voire au moment de la livraison du logiciel à l'utilisateur. Leur correction nécessite alors de reprendre toutes les phases du processus.

    Une difficulté majeure de la phase de spécification provient du fait que les différents partenaires ne parlent généralement pas le même langage:

    le client s'exprime dans le langage du domaine de l'application, un jargon qui fait souvent appel à des termes techniques très spécialisés, mais qui utilise pour support le langage naturel (le français, l'anglais). De plus, le client ne sait pas toujours précisément ce qu'il veut: sa demande peut varier en fonction de l'offre. De fait, les désirs du client sont généralement ambigus et incomplets.

    l'informaticien fait des petits schémas, utilise des langages formels pour représenter sa perception du problème. Le client non informaticien n'est généralement pas capable de comprendre la spécification résultante, et ne peut donc la valider en connaissance de cause.

    Une solution, pour vérifier la conformité de la spécification avec les besoins du client, est de construire rapidement un prototype de l'application.

    L'intégration d'une phase de prototypage dans le processus logiciel peut s'effectuer de deux façons différentes:

    l'approche ``prototypage jetable'' consiste à réaliser rapidement et dès le début du cycle de vie un prototype de l'application qui va permettre de valider les spécifications. Ce prototype sert alors de référence pour la définition des spécifications, puis il est ``jeté'' et le programme définitif est conçu.

    l'approche ``développement incrémental'' consiste à réaliser dès le début du cycle de vie un sous-ensemble du produit logiciel final. Ce sous-ensemble est alors raffiné incrémentalement jusqu'à obtenir le produit final.
    3. Ateliers de Génie Logiciel


    Qu'est ce qu'un atelier de génie logiciel ?

    Un AGL (Atelier de Génie Logiciel) ou atelier CASE (Computer Aided Software Engineering) est un logiciel aidant à la réalisation de logiciels. Autrement dit, il s'agit d'un système pour le développement logiciel assisté par ordinateur. Un AGL intègre des outils adaptés aux différentes phases de la production d'un logiciel et facilite la communication et la coordination entre ces différentes phases. Un AGL est basé sur des méthodologies qui formalisent le processus logiciel, et à l'intérieur de ce processus, chacune des phases qui le composent.

    Les AGL apportent une réelle solution à certains problèmes du génie logiciel et contribuent nettement à l'amélioration de la productivité et de la qualité du logiciel, notamment en faisant le suivi des différentes phases du processus logiciel et en offrant un cadre cohérent et uniforme de production. Néanmoins, cet enthousiasme doit être modéré: le processus logiciel est encore loin d'être maîtrisé et les différentes formalisations qui en sont proposées font encore l'objet de controverses, et dans tous les cas, sont bien loin d'être totalement automatisables. L'informaticien a encore de belles années de travail devant lui avant d'être supplanté par des AGL...


    Les outils ``CASE''

    Les AGL intègrent différents outils d'aide au développement de logiciels, appelés outils CASE: éditeurs de texte (vi, emacs, ...), de diagrammes (TRAMIS VIEW, X-fig, ...), outils de gestion de configuration (make), SGBD, compilateurs, debuggers, outils pour la mise en forme (pretty-printers), la génération de tests, la génération d'interfaces homme-machine, ...

    Ces différents outils interviennent lors d'une ou plusieurs phases du cycle de vie du logiciel: conception (éditeurs de texte, de diagrammes, ...), programmation (éditeurs de texte, compilateurs, pretty printers, générateurs d'interfaces homme/machine...), mise au point (debuggers, outils de génération de tests, ...), etc, ... Certains outils, concernant notament la gestion de configurations, la gestion de projet, interviennent durant la totalité du processus logiciel.

    L'intégration d'outils CASE

    Un AGL intègre différents outils CASE, de manière à les faire coopérer de façon uniforme. Cette intégration peut (devrait) s'effectuer à trois niveaux:

    Intégration des données: Les outils CASE manipulent (génèrent, utilisent, transforment, ...) des données: spécification, modèle conceptuel des données, jeux de test, code, manuel utilisateur, .... Différents outils sont amenés à partager une même donnée: les tables générées par un éditeur de diagrammes sont utilisées par un SGBD, le code généré par un éditeur de texte est compilé par un compilateur, à partir d'une spécification algébrique on peut générer des jeux de test, ...
    Un AGL doit prendre en charge la communication de ces données entre les différents outils. Cette intégration peut être simplement physique: tous les outils de l'AGL utilisent un seul format de représentation des données, par exemple des fichiers UNIX, sur une même machine. Cette approche implique que tous les outils de l'AGL connaissent la structure logique (l'organisation) des fichiers qu'ils sont amenés à utiliser: il est nécessaire de normaliser la structure logique des fichiers. L'intégration des données peut se faire également au niveau logique en utilisant un système de gestion des objets qui gère automatiquement les différentes entités et leurs inter-relations (cette approche nécessite la définition des différents types de données manipulées).

    Un AGL devrait également gérer la cohérence entre les différentes versions de ces données (gestion de configuration).

    Intégration de l'interface utilisateur: tous les outils intégrés dans l'AGL communiquent avec l'utilisateur selon un schéma uniforme, ce qui facilite leur utilisation (voir par exemple l'interface du Macintosh, X11 sous Unix ou Windows95 sous DOS).

    Intégration des activités: un AGL peut gérer le séquencement des appels aux différents outils intégrés, et assurer ainsi un enchainement cohérent des différentes phases du processus logiciel. Cet aspect implique que l'on dispose d'un modèle du processus de développement bien accepté (ce qui relève un peu de l'utopie !!!).

    Les différents types d'AGL

    On distingue essentiellement deux types d'AGL selon la nature des outils intégrés:

    1.Les environnements de conception (upper-case): ces ateliers s'intéressent plus particulièrement aux phases d'analyse et de conception du processus logiciel. Ils intègrent généralement des outils pour l'édition de diagrammes (avec vérification syntaxique), des dictionnaires de données, des outils pour l'édition de rapports, des générateurs de (squelettes de) code, des outils pour le prototypage, ... Ces ateliers sont généralement basés sur une méthode d'analyse et de conception (JSD, Yourdon, Merise, ...) et utilisés pour l'analyse et la conception des systèmes d'information.

    TRAMIS est un environnement de conception qui intègre notamment un éditeur de diagrammes (TRAMIS View), un générateur de prototypes (TRAMIS Dialog), ...

    2.Les environnements de développement (lower-case): ces ateliers s'intéressent plus particulièrement aux phases d'implémentation et de test du processus logiciel. Ils intègrent généralement des éditeurs (éventuellement dirigés par la syntaxe), des générateurs d'interfaces homme/machine, des SGBD, des compilateurs, optimiseurs, pretty-printers, debuggers, ...

    WinDev est un environnement de développement.

    Un autre exemple d'environnement de développement est Unix qui intègre différents outils pour la programmation et le test.
    L'intégration des données est faite par l'intermédiaire des fichiers Unix, la gestion (limitée) de configurations est faite par make...

    Certains environnement, plus évolués, sont dédiés à un langage particulier. Il existe par exemple des environnements dédiés à InterLisp, Smalltalk, Loops (l'environnement Loops fonctionne sur une machine dédiée à Loops), Oz ... Ces différents environnements proposent des bibliothèques de composants, une interface graphique, des éditeurs dédiés au langage, des interprètes, debuggers, ... Ces environnements permettent un développement rapide et convivial. En revanche, l'application développée est intégrée dans (et généralement inséparable de) l'environnement, ce qui peut poser des problèmes de portabilité et de coût.

    Enfin, il existe des générateurs d'environnements de programmation: Mentor, Gandalf, Synthesizer Generator, ... A partir de la description formelle d'un langage (à l'aide de grammaires attribuées, de la logique), ces différents systèmes génèrent un environnement de programmation dédié au langage, contenant un éditeur dédié au langage, un pretty-printer, un debugger, un interpréteur, ...
     
  4. MaRaWaN

    MaRaWaN Membre exclu Membre du personnel

    J'aime reçus:
    48
    Points:
    0
    Re : des cours informatiques

    o
    ok khouya moujoudine
     
  5. dodi

    dodi °Oo TiTiiiZa oO° Membre du personnel

    J'aime reçus:
    42
    Points:
    48
    Re : Re : des cours informatiques

    l3eeeeez [:Z]
    PS: ana khtek [16h]
     
  6. MaRaWaN

    MaRaWaN Membre exclu Membre du personnel

    J'aime reçus:
    48
    Points:
    0
  7. MaRaWaN

    MaRaWaN Membre exclu Membre du personnel

    J'aime reçus:
    48
    Points:
    0
  8. MaRaWaN

    MaRaWaN Membre exclu Membre du personnel

    J'aime reçus:
    48
    Points:
    0
  9. autregalaxie

    autregalaxie not a perfect

    J'aime reçus:
    0
    Points:
    0
    Re : des cours informatiques

    khouya chouf liya 3afak des cours réseaux informatique ( java ) et télécom si c possible et que ça soit plus developpé et si tu as le wifi pour les réseaux svp. je s_uis a ton service si tu veux quelque chose j'ai tout ce que tu veux j'en suis sur. merci
     
  10. dodi

    dodi °Oo TiTiiiZa oO° Membre du personnel

    J'aime reçus:
    42
    Points:
    48
    merci khaaaaaaay c vraiment interessant dakchi li passiti li [06c]
     
  11. MaRaWaN

    MaRaWaN Membre exclu Membre du personnel

    J'aime reçus:
    48
    Points:
    0
    Re : des cours informatiques

    ok khouya ana ghadi nchouf lik kheti dodi besa7a
     
  12. MaRaWaN

    MaRaWaN Membre exclu Membre du personnel

    J'aime reçus:
    48
    Points:
    0
  13. bidawi sga3e

    bidawi sga3e Touriste

    J'aime reçus:
    3
    Points:
    18
    Re : des cours informatiques

    drafate ila 3andek des formations sur l'ACCES / CIEL / SAGE / SAARI ???
     
  14. MaRaWaN

    MaRaWaN Membre exclu Membre du personnel

    J'aime reçus:
    48
    Points:
    0
    Re : des cours informatiques

    khouya hadou ma3andichi ndaber lik fi l'acces les autres je crois des logiciels de comptabilite yak daba nchouf lik
     

Partager cette page