Académique Documents
Professionnel Documents
Culture Documents
1. Introduction
L’informatique s’est glissée dans la plupart de nos activités quotidiennes. Nombreux sont les appareils
qui utilisent des applications logicielles et qui deviennent complexes et couteuses avec le temps. La
demande de logiciels sophistiqués alourdit considérablement les contraintes imposées aux équipes de
développement. Les informaticiens sont confrontés à une complexité croissante, à cause de la nature
des applications, des environnements distribués et hétérogènes, de la taille des logiciels, de la
composition des équipes de développement, et des attentes des utilisateurs. Pour surmonter ces
difficultés, les informaticiens doivent apprendre à faire, à expliquer et à comprendre. C’est pour ces
raisons qu’ils ont et auront besoin de méthodes d’analyse et de conception pour leur guider dans les
différentes phases de conception.
L’approche objet est incontournable dans le cadre du développement de systèmes logiciels complexes,
capables de suivre les évolutions incessantes des technologies et des besoins applicatifs que la
programmation fonctionnelle. La modélisation apporte une grande rigueur, offre une meilleure
compréhension des logiciels, et facilite la comparaison des solutions de conception avant leur
développement. Cette étape permet de s’affranchir des langages d’implémentation. Plusieurs
méthodes orienté objet sont disponibles qui chacune utilise ses propres notation et spécifications. Une
unification des trois méthodes dominantes : Booch, OOSE (Object Oriented Software Engineering),
d’Ivan Jacobson et OMT (Object Modeling Technique), de James Rumbaugh, sont à l’origine de la
création du langage UML (Unified Modeling Language).
Ce chapitre se trouve partagé en quatre parties. Dans la première partie, une introduction au domaine
GL est faite. Dans la deuxième méthode, une présentation des méthodes d’analyse et de conception est
faite avec des définitions reliées comme la modélisation, le modèle…etc. Dans la troisième partie, une
présentation des concepts de base de l’orienté objet et dans la quatrième partie, une introduction au
langage de modélisation UML est faite.
2. Introduction au GL
2.1. Définitions
Le Génie Logiciel (GL) est un domaine des sciences de l’ingénieur dont l’objet d’étude est la
conception, la fabrication, et la maintenance des systèmes informatiques complexes.
Le génie logiciel est une branche de l'ingénierie associée au développement de logiciels utilisant des
principes, méthodes et procédures scientifiques bien définis. Le résultat de l'ingénierie logicielle est
un produit logiciel efficace et fiable.
IEEE définit le génie logiciel comme l'application d'une approche systématique, disciplinée et
quantifiable au développement, à l'exploitation et à la maintenance des logiciels.
Le génie logiciel est considéré comme étant un ensemble d’activités de conception et de mise en
œuvre des produits et des procédures tendant à rationaliser (normaliser) la production du logiciel et
3ISIL Chapitre 1 : Introduction au GL/ concepts de base de l’OO et Modélisation avec UML GL
son suivi. Autrement dit, le génie logiciel est l’art de produire de bons logiciels, au meilleur rapport
qualité prix.
1. Cohésion: un composant devrait implémenter une seule fonction logique ou une seule
entité logique. Elle signifie que chaque unité ne représente qu’une partie de la résolution
du problème. Il faut une forte cohésion dans le composant;
2. Couplage: c’est une indication de la force d’interconnexion des différents composants d’un
système. En règle générale, des modules sont fortement couplés lorsqu’ils utilisent des
variables partagées ou lorsqu’ils échangent des informations de contrôle. Il faut un faible
couplage;
3. Compréhensibilité: pour modifier un composant dans une conception, il faut comprendre
l’opération effectuée par ce composant;
4. Adaptabilité: si une conception est maintenable a, alors elle est facilement adaptable. Il
faut que les composants soient faiblement couplés, la conception doit être bien
documentée et la documentation doit être facilement compréhensible et consistante avec
l’implémentation et cette dernière doit être écrite de manière lisible;
5. Implémentation: écrire le code du logiciel. La conception détaillée est traduite dans un
langage de programmation dans cette phase;
6. Tests: essayer le logiciel sur des données d’exemple pour s’assurer qu’il fonctionne
correctement par les développeurs et par le client. Il existe des tests unitaires, et des test
d’intégration;
7. Livraison: fournir au client une solution logicielle qui fonctionne correctement (installation,
formation et assistance)
8. Maintenance: mettre à jour et améliorer le logiciel pour assurer sa pérennité
1. Corrective: une maintenance qui corrige les erreurs et les défauts d’utilisabilité, de
fiabilité…identifie aussi les défaillances et les dysfonctionnements;
2. Adaptative: pour adapter le logiciel à une un nouvel environnement. C’est par exemple
le changement de SGBD, de machine…;
3. Perfective et d’extension: pour répondre à des nouveaux besoins…
2.3.2. Le modèle en V
Ce modèle précise la conception des tests:
– Les tests système sont préparés à partir de la spécification;
– Les tests d’intégration sont préparés à partir de la conception architecturale;
– Les tests unitaires sont préparés à partir de la conception détaillée des composants.
Il est souvent adapté aux projets de taille et de complexité moyenne. Sa première branche correspond
à un modèle en cascade classique. La seconde branche correspond à des tests effectifs effectués sur
des composants réalisés.
3.2. Un modèle ?
Un modèle est une représentation abstraite et simplifiée, d’une entité (phénomène, processus,
système, etc.) du monde réel en vue de le décrire, de l’expliquer ou de le prévoir.
Concrètement, un modèle permet de réduire la complexité d’un phénomène en éliminant les détails
qui n’influencent pas son comportement de manière significative. Il reflète ce que le concepteur croit
important pour la compréhension et la prédiction du phénomène modélisé.
Voici quelques exemples de modèles :
Modèle météorologique – à partir de données d’observation (satellite, …), il permet de prévoir les
conditions climatiques pour les jours à venir.
Plans – Les plans sont des modèles qui donnent une vue d’ensemble du système concerné.
convergence (ou une acceptation) de ces modèles. Il n’y a pas de bons ou de mauvais modèles, il y a en
revanche, des modèles plus élégants que d’autres, des solutions plus générales ou adaptables que
d’autres.
La distinction entre fonctionnel (dirigée par le traitement) et orientée objet : Dans la stratégie
fonctionnelle (structurée) un système est vu comme un ensemble hiérarchique d’unités en
interaction, ayant chacune une fonction clairement définie. Les stratégies orientées objet
considèrent qu’un système est un ensemble d’objets interagissant. Chaque objet dispose d’un
ensemble d’attributs décrivant son état et l’état du système est décrit (de façon décentralisée) par
l’état de l’ensemble.
En résumé, l’architecture du système est dictée par la réponse au problème (la fonction du
système).
Exemple: une demande du prix d’une formation représenté par un message demanderprix () entre
l’objet Ahmed et l’objet Formation Bureautique.
DemanderPrix ()
Aziz : Employé Bureautique : Formation
7) Agrégation : c’est un cas particulier d’association où un tout est relié à ses parties. Elle exprime un
couplage plus fort entre classes. Le tout (la classe du côté du losange) est appelé agrégat et la
classe en opposé est appelé agrégée.
Notation graphique: Classe 1 Classe 2
8) Composition : lorsque le lien d’agrégation est fort, c'est-à-dire que la suppression de l’objet agrégat
mène à la suppression des objets agrégés, on parle alors de composition.
Notation graphique: Classe 1 Classe 2
9) Héritage : L’héritage est mis en œuvre grâce à deux propriétés qui sont : la généralisation et la
spécialisation. La généralisation décrit le fait de pouvoir regrouper un ensemble de classes
partageant des éléments en commun en une seule superclasse (classe mère). Tandis que la
spécialisation représente le phénomène inverse, c'est-à-dire pouvoir dériver à partir d’une classe
ou superclasse des sous classes (classe fille) ayant des propriétés spécifiques les distinguant les
unes des autres.
Notation graphique: Classe Mère Généralisation
2. Les diagrammes de machine d’état : appelé aussi diagramme d’état transition, il permet de
décrire les changements d’état d’un objet, en réponse aux interactions avec d’autres objets
ou acteurs.
3. Les diagrammes de séquence : permettent de représenter les interactions entre objets selon un
point de vue temporel. L’accent est mis sur la chronologie des envois de messages.
4. Les diagrammes de communication (collaboration) : décrivent l’interaction en mettant l’accent
sur les liaisons des données entre les différents participants à l’interaction.