Conclusion
Les objectifs étant à présent clairement
exposées, il convient de choisir une méthodologie de recherche et
de travail appropriée. En effet, un projet de ce genre, nécessite
la mise en place d'un planning organisationnel tout au long de son cycle de
vie. C'est ainsi qu'apparait la notion de méthode.
Une méthode, dans le contexte du développement
d'applications, peut être définie comme une démarche
fournissant une méthodologie et des notations standards qui aident
à concevoir des services de qualité.
Dans la partie suivante, nous ferons une étude
approfondie de l'ensemble des méthodes d'analyse et de conception
existantes. Enfin nous effectuerons un choix parmi ces dites
méthodes.
PARTIE 2 : Méthodologie d'Analyse et de
Conception
Chapitre 3 : Méthodologie de la recherche et de
l'implémentation
Modéliser un système avant sa réalisation
permet de mieux comprendre le fonctionnement du système. C'est
également un bon moyen de maîtriser sa complexité et
d'assurer sa cohérence. Un modèle est un langage commun,
précis, qui est connu par tous les membres de l'équipe et il est
donc, à ce titre, un vecteur privilégié pour communiquer.
Cette communication est essentielle pour aboutir à une
compréhension commune aux différentes parties prenantes
(notamment entre la maîtrise d'ouvrage et la maîtrise d'oeuvre
informatique) et précise d'un problème donné.
Dans le domaine de l'ingénierie du logiciel, le
modèle permet de mieux répartir les tâches et d'automatiser
certaines d'entre elles. C'est également un facteur de réduction
des coûts et des délais. Par exemple, les plateformes de
modélisation savent maintenant exploiter les modèles pour faire
de la génération de code (au moins au niveau du squelette) voire
des allers-retours entre le code et le modèle sans perte d'information.
Le modèle est enfin indispensable pour assurer un bon niveau de
qualité et une maintenance efficace car, une fois mise en production,
l'application va devoir être maintenue, probablement par une autre
équipe et, qui plus est, pas nécessairement de la même
société que celle ayant créée l'application. Le
choix du modèle a donc une influence capitale sur les solutions
obtenues. Les systèmes non triviaux sont mieux modélisés
par un ensemble de modèles indépendants. Selon les modèles
employés, la démarche de modélisation n'est pas la
même.
Mais avant de se lancer dans les différentes
méthodes d'analyse, de conception et d'implémentation, revoyant
certaines définitions de concepts de base clés qui nous
permettront de garder la tête émergée.
III.1 L'analyse
L'analyse correspondant à la phase qui répond
à la question « que fait le système », l'analyse est
l'une des étapes les plus importantes et les plus difficiles de la
modélisation. Elle permet de modéliser le domaine d'application,
d'analyser l'existant et les contraintes de réalisation. Elle s'effectue
par une abstraction et une séparation des problèmes. Elle peut
être découpée en trois phases que sont :
La définition des besoins
Il s'agit d'identifier les acteurs et les cas d'utilisation, de
structurer le modèle, et d'identifier les autres exigences.
La capture des besoins
Elle consiste à collecter des informations (interviews,
lecture de documentation) et à la compréhension du domaine et du
problème posé.
A ce niveau il s'agit de restituer les besoins dans un langage
compréhensible par le client et de procéder à
l'identification, à la structuration et à la définition
d'un dictionnaire.
La spécification des besoins
Dans cette phase il sera question d'aller à un niveau
de spécification plus détaillé voire même plus
formel des besoins. Elle sera d'une grande utilité pour le client mais
aussi pour le développeur.
A la fin de cette phase d'analyse un modèle conceptuel
sera disponible, lequel modèle sera un outil fondamental lors de la
phase de conception.
III.2 La conception
Phase menée à la suite de l'analyse des besoins,
la conception met en oeuvre tout un ensemble d'activités qui à
partir d'une demande d'informatisation d'un processus permettent la conception,
l'écriture et la mise au point d'un produit informatique (et donc de
programmes informatiques) jusqu'à sa livraison au demandeur. Elle a
comme objectifs de répondre à la question « comment faire le
système ?» et de décomposer de façon modulaire le
système à mettre en place. La conception définit
l'architecture du logiciel. Elle définit par la même occasion
chaque constituant du logiciel (Informations traitées, traitements
effectués, résultats fournis, contraintes à respecter. A
la suite un modèle logique utilisable à la phase
d'implémentation est produit.
III.3 L'implémentation
Cette phase consiste à la mise en oeuvre des programmes
dans un langage de programmation conformément aux spécifications
définies dans les phases précédentes. Elle renferme en son
sein les phases de test et de mise au point (débogage). A la sortie il
sera produit un modèle physique (collection de modules
implémentés mais non testés, documentation de
programmation expliquant le code).
III.3.1 Classification des méthodes d'analyse et
de conception
Malgré la diversité des méthodes d'analyse
et de conception, il est possible de les classer en trois catégories
:
Les méthodes cartésiennes ou
fonctionnelles
Avec cette méthode, le système
étudié est abordé par les fonctions qu'il doit assurer
plutôt que par les données qu'il doit gérer. Le processus
de conception est vu comme un développement linéaire. Il y a
décomposition systématique du domaine étudié en
sous domaines, eux-mêmes décomposés en sous-domaines
jusqu'à un niveau considéré élémentaire.
SADT (Structured-Analysis-Design-Technique) en est un exemple.
Les méthodes objet
Ce sont des méthodes consistant à créer
une représentation informatique des éléments du monde
réel auxquels on s'intéresse, sans se préoccuper de
l'implémentation, ce qui signifie indépendamment d'un langage de
programmation. Il s'agit donc de déterminer les objets présents
et d'isoler leurs données et les fonctions qui les utilisent. Pour cela
des méthodes ont été mises au point. Entre 1970 et 1990,
de nombreux analystes ont mis au point des approches orientées objets,
si bien qu'en 1994 il existait plus de 50 méthodes objet. Toutefois
seules 3 méthodes ont véritablement émergé :
- La méthode OMT de Rumbaugh
- La méthode BOOCH'93 de Booch -
La méthode OOSE de Jacobson
Les méthodes agiles
Les méthodes de développement dites «
méthodes agiles » (en anglais Agile
Modeling) visent à réduire le cycle de vie du logiciel (donc
accélérer son développement) en développant une
version minimale, puis en intégrant les fonctionnalités par un
processus itératif basé sur une écoute client et des tests
tout au long du cycle de développement.
L'origine des méthodes agiles est liée à
l'instabilité de l'environnement technologique et au fait que le client
est souvent dans l'incapacité de définir ses besoins de
manière exhaustive dès le début du projet. Le terme «
agile » fait ainsi référence à la capacité
d'adaptation aux changements de contexte et aux modifications de
spécifications intervenant pendant le processus de développement.
En 2001, 17 personnes mirent ainsi au point le manifeste agile dont la
traduction est la suivante :
- individus et interactions plutôt que processus et
outils
- développement logiciel plutôt que documentation
exhaustive
- collaboration avec le client plutôt que
négociation contractuelle - ouverture au changement plutôt que
suivi d'un plan rigide
Grâce aux méthodes agiles, le client est pilote
à part entière de son projet et obtient très vite une
première mise en production de son logiciel. Ainsi, il est possible
d'associer les utilisateurs dès le début du projet. Comme
méthode agile nous pouvons citer eXtreme Programming (XP).
Les méthodes systémiques
Les méthodes systémiques sont des
méthodes s'appuyant sur une approche systémique. Elles
définissent différents niveaux de préoccupation ou
d'abstraction et proposent de nombreux modèles complémentaires.
Les méthodes systémiques sont souvent spécialisées
pour la conception d'un certain type de systèmes. Comme exemple de
méthode systémique nous pouvons citer MERISE, AXIAL
...
III.3.2 Choix d'une méthode d'analyse et de
conception
Pour l'analyse et la conception de notre application nous
opterons pour une méthode systémique notamment la méthode
MERISE. Une méthode étant un assemblage d'une
démarche et d'un langage de modélisation, nous allons choisir le
tandem le plus adéquat.
Rappel sur Merise
Un système d'information est un système
organisé de ressources, de personnes et de structures qui
évoluent dans une organisation et dont le comportement coordonné
vise à atteindre un but commun. Les systèmes d'information sont
censés aider les utilisateurs dans leurs activités : stocker et
restaurer l'information, faire des calculs, permettre une communication
efficace, ordonnancer et contrôler des tâches, etc.
Dans ce contexte, la méthode Merise s'avère
appropriée ; c'est une méthode française d'analyse et de
conception des systèmes d'information, élaborée en 1978
sous la direction du ministère de l'Industrie français.
L'année 1981 a connu l'apparition de Merise version 1 qui s'est enrichie
des premières années d'expérience. En 1991, la version 2
de Merise a vu le jour, elle est une extension de la méthode Merise
version 1, elle intègre les flux et les données aux principes de
traitement. La puissance de cette approche réside dans le fait qu'elle
permet de schématiser les niveaux d'abstraction et offre un niveau de
granularité adaptable à tous les besoins. Elle utilise :
- un modèle fonctionnel basé sur les diagrammes de
flux ;
- un modèle statique basé sur
l'Entité-Association enrichi de méthodes de - traitement ;
- un modèle dynamique des objets explicitant le
contrôle et les - interactions des objets.
Merise sépare les données et traitements et
définit trois niveaux d'abstraction qui permettent de décomposer
les préoccupations du concepteur.
- Le niveau conceptuel s'appuie sur les invariants, il
répond à la question «quoi ?» - Le niveau
organisation et logique précise les aspects pratiques (qui
fait
- quoi ?) et la vision informatique de la solution (comment
?).
- Le niveau physique décrit l'outil informatique
(avec quoi ?).
Les niveaux d'abstraction de Merise ainsi que ces modèles
correspondants sont présentés dans le tableau suivant :
Niveau
|
Statique (données)
|
Dynamique (traitements)
|
|
Conceptuel
|
MCD
|
MCT
|
Indépendant du système,
quoi ?
|
Organisationnel et Logique
|
MLD
|
MOT
|
Choix SGBD Qui fait quoi ? comment ?
|
Physique
|
MPD
|
MOPT
|
Maîtrise du SGBD, avec
quoi ?
|
Tableau II.1 : Les niveaux d'abstraction de Merise
Par ailleurs, la méthode Merise présente une
approche par étapes itératives et réalisées
successivement. Les étapes de Merise sont représentées
avec leur ordre de réalisation dans le tableau suivant :
|
Nom de l'étape
|
Description
|
1
|
Schéma directeur
|
Approche globale du développement
|
2
|
Etude préalable
|
Etude des différentes solutions possibles puis choix de la
solution appropriée
|
3
|
Analyse détaillée
|
Complément des spécifications du domaine,
étude détaillée
|
4
|
Analyse technique
|
Spécifications techniques complètes
|
5
|
Réalisation
|
Ecriture des programmes, tests, essais, formation utilisateur
|
6
|
maintenance
|
Correction et adaptation du logiciel
|
Tableau II.2 : les étapes de Merise
L'utilisation de Merise s'est progressivement étendue
dans les services informatiques des entreprises et des administrations.
Aujourd'hui, elle est utilisée dans plus de 75 % des services
informatiques en France. Cette large diffusion est due à son
évolution et à son adaptation aux nouvelles technologies :
architectures client/serveur, interfaces graphiques, démarche de
développement rapide, approche objet, applications ouvertes
intranet/intemet. Elle correspond aussi et globalement aux savoir-faire actuels
en ingénierie de systèmes d'information et de gestion.
L'utilisation de la méthode Merise dans le cas de la bibliothèque
universitaire est justifiée par le fait que :
- Merise est une méthodologie qui dispose de beaucoup
d'outils de développement informatique tel que AMC Designer, Power
Designer, Designor.
- Merise est présentée souvent comme une
méthode d'analyse informatique, elle offre une démarche
rigoureuse pour l'établissement des systèmes d'information.
- Merise sort du domaine de l'informatique pure pour
s'intéresser à la gestion des organisations concernées
La Méthodologie MERISE
|