L'approche qualité avec OCaml

Image non disponible


précédentsommairesuivant

I. OCaml

Pour accéder à la documentation officielle du langage OCaml cliquez ici.

Pour toute interrogation suscitée par L'approche qualité avec OCaml veuillez exposer ce qui vous fait obstacle dans le fil de discussion réservé à cet effet 18 commentaires Donner une note à l'article (0).

II. Partie I

  1. L'approche qualité
  2. Programmation et composants
  3. Programmation et langage
  4. Installation d'Objective Caml

II-A. 1. L'approche qualité

Le génie logiciel (ou software engineering) est la discipline qui consiste à dégager un certain nombre de principes de conception et d'implémentation dont l'application systématique vise à réduire les efforts (coût humain), les risques de sûreté (coût en insécurité), les risques de fiabilité (coût des indisponibilités) et les risques économiques (coûts financiers) liés au cycle de vie du produit logiciel, depuis son développement, puis sa validation, puis son déploiement, sa mise en service, sa maintenance, sa mise à jour, jusqu'à sa disparition ou son remplacement.

Le génie logiciel est donc par définition essentiellement préventif, il met tout en oeuvre pour minimiser toutes les marges possibles dans les surcoûts liés aux imprévus qui accompagnent les projets logiciels de façon aussi récurrente que pour d'autres réalisations humaines complexes telles que les grands travaux de génie civil. Le génie logiciel ne s'occupe pas des questions humaines et d'organisation sociale, il ne se préoccupe que de la qualité du produit logiciel. Il n'en demeure pas moins que l'application rigoureusement des principes du génie logiciel contribue à atténuer grandement le stress lié à la conception et à la programmation (par l'augmentation de la lisibilité, de la fiabilité et même de l'esthétique du code), augmente la satisfaction et la confiance des utilisateurs (par la robustesse du produit) et plus généralement participe au progrès informatique en rendant possible les logiciels qui doivent exploiter les ressources toujours plus grandes des nouveaux matériels informatiques, sans cesse plus performants, ainsi que satisfaire les nouveaux usages sans cesse plus paramétrables, plus flexibles, plus mobiles et plus communicants.

Enfin, une présentation du génie logiciel ne serait pas complète sans la formulation de sa règle d'or, que le développeur devra toujours garder à l'esprit, et ce d'autant plus si le produit logiciel n'est encore qu'au début de son cycle de développement :

  • les gains en qualité ne peuvent jamais attendre ;
  • les gains en fonctionnalités peuvent toujours attendre.

Cette règle de développement est connue sous le nom de quality first ou encore release early, release often.
Elle dit que la qualité du code doit être maximale dès le début du développement et ne jamais baisser, quitte à différer l'implémentation de fonctionnalités supplémentaires, quelle que soit leur désirabilité.
Elle dit qu'au final la tortue court plus vite que le lièvre.

II-B. 2. Programmation et composants

Au fur et à mesure qu'ils résolvent des problèmes de plus en plus complexes, les programmes informatiques deviennent eux-mêmes de plus en plus complexes. Cette croissance de la complexité doit rester maîtrisée : un programme ne doit pas devenir plus complexe que le problème qu'il résout. Une solution consiste à diviser pour régner, la conception d'un logiciel se réduit alors à un problème de découpage en composants (components) plus élémentaires. Chaque composant offre une fonctionnalité partielle et leur assemblage fournit la totalité de la fonctionnalité recherchée. Il s'ensuit que la première qualité d'un composant est sa composabilité, c'est-à-dire la facilité avec laquelle on peut l'assembler avec ses semblables pour produire un nouveau composant.

Toute la discipline du génie logiciel consiste alors à débattre des mérites comparatifs des différents candidats opérande/opérateur susceptibles de réaliser le couple composant/assembleur.
Dans le cadre de ce cours on a choisi :

  • la fonction (function) comme composant ;
  • l' imbrication comme moyen de composition.

Ce choix est motivé par les facilités suivantes :

  • l'application de fonction permet le raisonnement équationnel, comme en mathématiques (d'où une bonne lisibilité et une excellente prouvabilité) ;
  • l'imbrication est le moyen de composition qui assure le maximum de découplage entre les composants, c'est-à-dire que les composants, tout en étant assemblables, restent totalement lisibles et compréhensibles indépendamment les uns des autres.

Ces deux qualités seront des atouts précieux pour écrire le plus rapidement possible des programmes qu'on espère de la plus grande qualité possible.

II-C. 3. Programmation et langage

Le langage d'implémentation sera Objective Caml (ou en abrégé: OCaml).

Le choix de OCaml est motivé par les avantages suivants :

  • OCaml est déjà utilisé dans les universités, l'enseignement supérieur et les concours aux grandes écoles, ainsi que dans de nombreux domaines scientifiques et industriels (conception de circuits intégrés, traitement de signal, biologie moléculaire, séquençage ADN, interpréteurs, compilateurs, cryptologie, ERP, XML, OpenGL). Microsoft, Dassault-Aviation, Intel, XenSource sont membres du consortium OCaml ;
  • OCaml peut être soit un interpréteur (interactif) soit un compilateur (efficace) ;
  • OCaml est portable et disponible sur de nombreux systèmes ;
  • OCaml pratique l'inférence de type (ou typage automatique).

Ce dernier point est décisif, l'inférence de type est une aide précieuse au développement, elle élimine une grande partie des erreurs de conception au plus tôt, dès la saisie du code. Les erreurs de typage rapportées par OCaml sont moins lisibles qu'avec d'autres langages, mais en contrepartie les phases de test et de débogage sont souvent beaucoup plus restreintes. Il n'est pas rare qu'un code qui compile donne le résultat attendu dès le premier essai. En pratique le gain de productivité est considérable. À chaque nouvelle construction introduite, nous introduirons la règle d'inférence de type qui l'accompagne.

II-D. 4. Installation d'Objective Caml


Pour Microsoft Windows 98 et supérieur (versions 32 bits uniquement)

Installez la dernière version de Objective Caml pour Windows.

Le chemin de l'interpréteur pour l'interface OCamlWinPlus est "C:\Program Files\Objective Caml\bin".
Ensuite, suivez ce tutoriel pour installer l'éditeur Crimson et MinGW :

L'éditeur Crimson offre une édition plus confortable avec :

  • la numérotation des lignes ;
  • la coloration syntaxique personnalisable ;
  • la compilation et l'exécution dans l'éditeur, sans ligne de commande ;
  • le décalage gauche/droite des blocs de code ;
  • des macros définissables par l'utilisateur.

L'environnement MinGW permet la compilation des sources OCaml en code natif sous Windows, ainsi on profite des avantages de l'inférence de types, de l'interpréteur interactif et du ramasse-miettes sans payer le coût en mémoire et en performance qui pénalise les plateformes à compilation juste-à-temps (Just-In-Time).

Soyez conscient que l'interface OCamlWinPlus est assez capricieuse et que d'une façon générale la plateforme Windows, tout en étant largement utilisable, n'est pas forcément la plus confortable pour le développement OCaml.

Les versions pour Windows 64bits sont pour l'instant disponibles sous forme de code source uniquement.


Pour Linux x86, Mac OSX (x86 et PPC)

Voyez la page des distributions binaires précompilés officielles.

Ces plateformes sont les seules à bénéficier d'environnements de développement dédiés à OCaml.


Pour les autres Unix

Voyez la page de la distribution source officielle.

Il vous faudra lancer le script d'installation qui compilera les sources.


Pour BeOS

Il s'agit d'un portage officieux (recompilation à partir du code source).
Un projet d'interfaçage complet avec l'API de BeOS est en cours.
Les binaires de la version 3.08.4 sont à la page http://www.bebits.com/app/3746.

Pour Syllable OS

Il s'agit d'un autre portage officieux (recompilation du code source).
Les binaires de la version 3.10.2 sont à la page OCaml pour Syllable.


précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2013 Damien Guichard. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.