Vous êtes sur la page 1sur 20

Module : Modlisation O.

O
UML
Matire 1: Mthodologie
de dveloppement du
logiciel

A,OTMANI

Chapitre 1: Approche industrielle


du dveloppement de logiciel.

I Dfinitions:
1- Gnie logiciel :
Le gnie logiciel est un domaine des sciences
de lingnieur dont lobjet dtude est la
conception, la fabrication, et la maintenance
des systmes informatiques complexes.
Le gnie logiciel vise garantir que :
la spcification rpond aux besoins rels de ses
clients ;
le logiciel respecte sa spcification ;
les cots allous pour sa ralisation sont
respects ;
les dlais de ralisation sont respects.

A- Ncessit de la Gnie Logiciel:


La programmation est une discipline rcente purement
intellectuelle, certains la qualifiaient mme d'art [Knuth,
The art of software programming] ; pour ces raisons, on y
trouve des attitudes et des habitudes qui paratraient
tranges dans d'autres disciplines plus mures.
Notamment le syndrome du "not invented here" ; on
n'imagine pas un ingnieur mcanicien rinventer la roue
ou fabriquer ses propres vis et boulons alors qu'un
programmeur prfre souvent rcrire ses propres lignes de
code plutt que rutiliser un code dvelopp par d'autres.
La lutte contre cette tendance naturelle est un dfi majeur
de l'industrie informatique d'aujourd'hui connu sous le
vocable rutilisation.

Le

terme gnie logiciel a t introduit pour la


premire fois en 1968 lors dune confrence
internationale consacre des discussions sur la crise
du logiciel. Cette crise est apparue lorsque lon a pris
conscience que le cot du logiciel dpassait le cot du
matriel. Aujourdhui, il le dpasse trs largement.
Un autre symptme de cette crise se situe dans la non
qualit des systmes produits. Les risques humains et
conomiques ont importants.
Exemple :
mission VENUS : passage 500000 km au lieu de 5000 km
cause du remplacement dune virgule par un point,
non diffrenciation entre avion civil et avion militaire : guerre
du Golfe Airbus iranien abattu : 280 morts,

Solution !
La

solution imagine pour rpondre cette crise t


lindustrialisation de la production du logiciel :
organisation des procds de production (cycle de vie,
mthodes, notations, outils), des quipes de
dveloppement, plan qualit rigoureux, etc.
Malgr tout, le GL reste aujourdhui moins avanc et
moins bien codifi que dautres sciences de
lingnieur, comme le gnie civil qui construit des
routes et des ponts, ou le gnie chimique.
Causes :

Le logiciel lui-mme !!!

Le logiciel lui-mme !!!


le

logiciel est un objet immatriel, trs mallable au sens de


facile modifier,
ses caractristiques attendues sont difficiles figer au dpart et
souvent remises en cause en cours de dveloppement,
les dfaillances et erreurs ne proviennent ni de dfauts dans les
matriaux ni de phnomnes dusure dont on connat les lois
mais derreurs humaines, inhrentes lactivit de
dveloppement,
le logiciel ne suse pas, il devient obsolte (par rapport aux
concurrents, par rapport au contexte technique, par rapport aux
autres logiciels...),
le dveloppement par assemblage de composants est encore
balbutiant dans le domaine logiciel

B - AGL :
Un

AGL (Atelier de Gnie Logiciel) ou atelier CASE


(Computer Aided Software Engineering) est un
logiciel aidant la ralisation de logiciels. Autrement
dit, il s'agit d'un systme pour le dveloppement
logiciel assist par ordinateur.
Un AGL intgre des outils adapts aux diffrentes
phases de la production d'un logiciel et facilite la
communication et la coordination entre ces diffrentes
phases. Un AGL est bas sur des mthodologies qui
formalisent le processus logiciel, et l'intrieur de ce
processus, chacune des phases qui le composent.

On

distingue essentiellement deux types d'AGL selon la nature des


outils intgrs:

Les environnements de conception (upper-case): ces ateliers s'intressent


plus particulirement aux phases d'analyse et de conception du processus
logiciel. Ils intgrent gnralement des outils pour l'dition de diagrammes
(avec vrification syntaxique), des dictionnaires de donnes, des outils pour
l'dition de rapports, des gnrateurs de (squelettes de) code, des outils pour
le prototypage, ... Ces ateliers sont gnralement bass sur une mthode
d'analyse et de conception (JSD,, Merise, UML ...) et utiliss pour l'analyse et
la conception des systmes d'information.

TRAMIS est un environnement de conception qui intgre notamment un diteur de


diagrammes (TRAMIS View), un gnrateur de prototypes (TRAMIS Dialog), ...

Les environnements de dveloppement (lower-case): ces ateliers


s'intressent plus particulirement aux phases d'implmentation et de test du
processus logiciel. Ils intgrent gnralement des diteurs (ventuellement
dirigs par la syntaxe), des gnrateurs d'interfaces homme/machine, des
SGBD, des compilateurs, optimiseurs, pretty-printers, debuggers, ...

WinDev est un environnement de dveloppement.


Un autre exemple d'environnement de dveloppement est Unix qui intgre diffrents outils
pour la programmation et le test. L'intgration des donnes est faite par l'intermdiaire des
fichiers Unix, la gestion (limite) de configurations est faite par make...

C- Caractristiques du Gnie Logiciel :


Le GL est en forte relation avec presque tous les autres
domaines de linformatique : langages de programmation
(modularit, orientation objet, paralllisme...), bases de
donnes (modlisation des donnes, accs aux
donnes...), informatique thorique (automates, types
abstraits...), etc.
Le GL est aussi en relation avec dautres disciplines de
lingnieur : ingnierie des systmes et gestion de projets,
sret et fiabilit des systmes, etc. Les principales
branches du GL couvrent :

la conception,
la validation/vrification,
la gestion de projet et lassurance qualit,
les aspects socio-conomiques.

D- Outils pour les activits du gnie logiciel


Les activits de production du logiciel sont fois complexes et
ncessitent de la rigueur dans llaboration et exploitation des rsultats
fournis par chaque tape. Cest la raison pour laquelle on fait appel
des outils pour supporter les activits pendant tout le cycle de vie du
logiciel.
Ces outils sont appels CASE (Computer-Aided Software
Engineering). Les CASE sont classs selon leurs fonctions et phases
o ils sont utiliss. On recense les essentiellement les classes de CASE
suivantes :

outils de planification (comme PERT),


outils ddition de textes, dimages...,
outils de gestion de configurations,
outils daide la conception,
compilateurs et environnements de programmation,
outils danalyse de programmes et code,
outils de tests,
outils de dbogage,
outils de documentation,
outils de ringnierie, ...

2- Systme :
Un systme est un ensemble dlments interagissant
entre eux suivant un certains nombres de principes et
de rgles dans le but de raliser un objectif.
La frontire dun systme est le critre
dappartenance au systme.
Lenvironnement est la partie du monde extrieure au
systme.
Un systme est souvent hirarchis laide de soussystmes.
Un systme complexe se caractrise par :
sa dimension, qui ncessite la collaboration de plusieurs
personnes ;
son volutivit.

3- Logiciel
Un logiciel est un ensemble dentits ncessaires au fonctionnement
dun processus de traitement automatique de linformation.
Parmi ces entits, on trouve par exemple :
des programmes (en format code source ou excutables) ;
des documentations dutilisation ;
des informations de configuration.
Un logiciel est en gnral un sous-systme dun systme englobant.
Il peut interagir avec des clients, qui peuvent tre :

des oprateurs humains (utilisateurs, administrateurs, . . . ) ;

dautres logiciels ;
des contrleurs matriels.
Il ralise une spcification : son comportement vrifie un ensemble
de critres qui rgissent ses interactions avec son environnement.

A- Qualits dun logiciel :


- Dfinition :
La qualit du logiciel est dfinie par son aptitude satisfaire les
besoins des utilisateurs.
Elle est dfinie par l'ANSI comme "l'ensemble des attributs et
caractristiques d'un produit ou d'un service qui portent sur sa
capacit satisfaire des besoins donns".

- Procdures qualit :
Lorganisation du processus: dcouper le processus pour le matriser

(QUOI ?)

Les ressources humaines: les quipes doivent tre motives pour


mettre en place des procdures de qualit

(QUI ?)

Lutilisation de techniques, mthodes, outils reconnus

(COMMENT?)

Considrations managriales, politiques et conomiques: valuer le


retour sur investissement par une analyse cots-bnfices

(POURQUOI ?).

B- FACTEURS DE QUALIT D'UN LOGICIEL :


Au vu de son utilisateur, un logiciel de qualit doit
donc prsenter ces caractristiques sans que son
efficacit, ses performances (temps de rponse, place
mmoire minimum, ...) en ptissent.
Les principaux facteurs de qualit d'un logiciel sont :
Disponibilit
Aptitude du logiciel assurer sa fonction pendant une priode de
temps donne.

Ergonomie
Etude scientifique de l'homme au travail sous les aspects
physiologiques, anatomiques, psychologiques et sociaux. D'une
manire gnrale, l'ergonomie vise l'adaptation des machines et du
travail l'homme en permettant la conception d'outils qui puissent
tre utiliss avec le maximum de confort, d'efficacit et de scurit.
On considre que la convivialit, la facilit d'apprentissage pour
l'utilisateur font partie de l'ergonomie.

Fiabilit
Aptitude du logiciel accomplir sans dfaillance l'ensemble des
fonctions spcifies, fonctionner dans des conditions anormales
sans mettre en cause ni les informations du systme, ni leur
cohrence.

Flexibilit
Caractre d'un logiciel qui dfinit la facilit avec laquelle des
fonctions peuvent tre ajoutes, supprimes ou modifies dans un
programme oprationnel.

Intgrit
Facult d'un logiciel tre protg contre des altrations ou contre
l'accs par des utilisateurs non autoriss.

maintenabilit
Caractre d'un logiciel qui dfinit la facilit avec laquelle un dfaut
peut tre localis, identifi et corrig.

C- Cycle de vie dun logiciel:


Le

cycle de vie dun logiciel est la priode situe


entre le dbut de la conception et larrt de
lexploitation du logiciel.
Le cycle de vie dun logiciel correspond
lidentification des tats successifs dune
application ou dun produit dtermin. Il est
essentiellement dynamique, volutif et presque
toujours progressif

D- Les contraintes lies la ralisation


dun logiciel
Cot,

dlais, qualit : ces trois


mots rsument les trois proccupations du
chef de projet.
Lorsqu'un chef de projet accepte la
responsabilit d'un nouveau logiciel, il
l'accepte dans un cadre qui doit tre bien
dfini et valid par toutes les parties
concernes par le projet.