Implémentation informatique

Implémentation informatique

..a conception d’un logiciel, et à plus forte raison d’un système informatique, n’est pas chose facile. Ce chapitre a pour objectif de présenter les grandes lignes de la réalisation du système icam . Après une présentation synthétique des spécificités du Génie Lo-giciel, nous abordons l’aspect pratique de la réalisation avec l’étude de l’architecture logicielle. Cette architecture est étudiée sous l’angle des flux d’informations internes au logiciel, puis des communications hommes/machines. Ce dernier point amène une réflexion sur l’aspect ergonomique et sur l’utilisation du logiciel qui sont traités dans la dernière partie de ce chapitre. Nous terminons par quelques commentaires relatifs au logiciel 1.

Au même titre que tout produit manufacturé complexe, le logiciel ne peut prétendre à une qualité totale [GMSB96]. On aimerait cependant disposer d’indicateurs de qualité, mais à défaut, on doit souvent se contenter du niveau de satisfaction des utilisateurs. Ceux-là-mêmes se sont en majorité résignés à supporter les bogues et autres désagréments d’utilisation qui ne sont pourtant pas une fatalité. La non-conformité d’un logiciel au cahier des charges initial est un tout autre problème et doit être considérée comme intolérable, surtout lorsqu’elle a des conséquences catastrophiques en termes économiques, ou pire, de vies humaines [Jau90]. M. Barthe relève un décalage entre l’efficacité d’utilisation et les fonctionnalités du logiciel. Il avance quelques causes de la sous-exploitation des capacités du logiciel telles que des fonctions sans intérêt, une mise en œuvre trop compliquée des fonctions ou bien un temps d’apprentissage trop long [Bar95]. Les conséquences les plus connues sont une démotivation des utilisateurs ainsi qu’une hausse des coûts cachés, et vraisemblablement une désaffection pour l’informatique en général. Une partie de ces problèmes est à porter au crédit du manque d’ergonomie, sujet que nous traitons dans .

Le logiciel, vu comme un produit industriel, est soumis à un processus de production en- gageant généralement de nombreuses ressources humaines, mais sa production est unitaire (la diffusion en nombre ne requiert qu’une simple opération de copie, sans aucune logistique lourde). Il se caractérise cependant par une tendance marquée au dépassement de délai dans les phases de conception (les exemples sont légion, surtout du côté des logiciels « millésimés»). La méthode de développement doit s’adapter au contexte de création et tenir compte du fait qu’un logiciel reste un produit invisible durant son développement. Une solution consiste à procéder à un ma- quettage du logiciel (ou prototypage). On distingue deux catégories de maquettes : les maquettes exploratoires —l’utilisateur précise ses attentes à l’aune de ce que lui présente le concepteur— et la maquette expérimentale —où le concepteur teste des solutions concurrentes—. Dans les deux cas, la spécification initiale des caractéristiques est essentielle à la définition du produit. La création d’un logiciel scientifique expérimental ne respecte pas la même logique que la production d’un logiciel commercial. Nous nous sommes cependant inspirés de certaines pratiques du génie logiciel afin de rationaliser nos efforts. L’une d’entre-elles est la modularité du logiciel, qui facilite sa maintenance, la réutilisation de ses composants et surtout la conception concourante. Elle nécessite des choix importants d’architecture, de langages, que nous détaillons dans les sections suivantes.

Architecture logicielle.

L’architecture des logiciels scientifiques et expérimentaux nécessite de pouvoir mettre au point et modifier aisément le code. Les systèmes informatiques, particulièrement dans le domaine de la cao, ont une durée de vie beaucoup plus courte que les produits qu’ils ont aidés à concevoir ou gérer [Loy91]. Il importe donc que le logiciel soit évolutif, et portable sur de nouveaux matériels. Cela se traduira en termes de choix d’architecture logicielle et de langages. D’autres paramètres environnants sont à prendre en compte lors de la conception d’un logiciel. Considérons les acteurs du projet. La conception d’un logiciel de cao dans le cadre d’un laboratoire de Génie Mécanique fait appel à des mécaniciens (!) qui ne sont pas toujours au faîte des techniques du Génie Logiciel. Nous avons donc composé avec ces compétences. Cela se traduit en partie par des choix de langages que nous justifions en suivant.

Choix des langages de programmation.

Le choix du langage C pour l’écriture des modules de calcul s’est imposé par sa pratique très répandue, ainsi que son aptitude au calcul numérique. Il n’est plus nécessaire de présenter le langage C [KR84], né dans les années 70, intronisé depuis par une norme ansi, qui bénéficie actuellement d’une imposante collection de routines, bibliothèques de fonctions ou outils de développement, souvent gratuits grâce à l’effort de la communauté libre des informaticiens. Ce langage de programmation constitue une référence (bon nombre de systèmes d’exploitation et de langages actuels sont écrits en C !). Le C facilite également l’écriture modulaire de logiciels. Les algorithmes de calculs ont été étudiés et encodés à des dates différentes, ce qui nous a obligé à en faire des modules, dans un premier temps indépendant, que nous avons pu tester et valider individuellement.

Cours gratuitTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

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