Vous êtes sur la page 1sur 19

Plan des cours

 Introduction au GL
 Cycle de vie d’un logiciel
 La conception orientée objet
 UML
➢ Introduction sur l’UML
➢ Diagramme de cas d’utilisation
➢ Diagramme de classes
➢ Diagramme de sequences
➢ Autres diagrammes
Introduction au GL
Donner une définition
 Logiciel :
◼ Programmation individuelle sur des problèmes

◼ Algorithmique, langages de programmation,


structures de données, et un peu de
méthodologie
Les différentes catégories de logiciel
 Sur mesure
◼ Pour un client spécifique
 Générique
◼ Vendu sur le marché
• un tableur , un outil de base de donnée
• un outil de traitement de texte
•…
 Embarqués
◼ exécutent dans un matériel électronique isolé
machine à laver, télévision, lecteur DVD, téléphone mobile,
magnétoscope, four à micro-ondes, réfrigérateur, joueur
MP3, ...
◼ Difficile à modifier
Les différentes catégories de logiciel
 Logiciel à temps réel
◼ systèmes de contrôle et de surveillance
◼ manipulent et contrôlent le matériel technique
◼ Réaction immédiate requise
◼ Environnement souvent très contraignant

 Logiciel de traitement de données


◼ Ils stockent, recherchent, transforment et présentent
l'information aux utilisateurs
◼ Grandes quantités de données avec des corrélations
complexes, enregistrées dans les bases de données
◼ Largement utilisés en administration des affaires
◼ Fiabilité des résultats
◼ Sécurité dans l’accès aux données
Les différentes catégories du logiciel
 Les systèmes distribués
◼ synchronisent la transmission, assurent l’intégrité des
données et la sécurité, ...
◼ Technologies utilisées
CORBA, SOAP, EJB, …

 Les systèmes de matériel


◼ Systèmes d'exploitation, exécutions de matériel de
bas niveau

 Les systèmes d'entreprise


décrivent les buts, les ressources, les règles et le
travail réel dans une entreprise
La nature du logiciel
 Le logiciel est facile à reproduire
Tout le coût se trouve dans son développement
Pour d’autres produits, la fabrication est souvent le
processus le plus coûteux

 Le processus de développement est difficile à


automatiser
L’industrie du logiciel exige beaucoup de main d’oeuvre
La nature du logiciel
Raisons pour lesquelles le logiciel vieillit
◼ maintenance (e.g., bug fixes)
◼ inflexibilité dès le début
◼ documentation insuffisante ou inconsistante
◼ duplication de code
◼ manque de modularité
◼ complexité croissante
◼ ...
La nature du logiciel
 Beaucoup de logiciels sont mal conçus et se
détériorent rapidement

 La demande pour les logiciels est toujours


croissante

 L’ingénierie du logiciel est une nécessité


◼ processus systématique au lieu de bricolage
Un peu d’histoire …
Années 50 et 60 : programmation empirique
◼ production "artisanale" de logiciels scientifiques

Fin des années 60 : la "crise du logiciel"


◼ difficulté d'écrire de grands programmes
◼ difficulté de les utiliser, difficulté de les faire
évoluer
◼ de nombreux projets échouent
Quelques statistiques
Étude du gouvernement américain en 1979

◼ Payés mais jamais livrés $3.2M 45%


◼ Livrés mais jamais utilisés $2.0M 30%
◼ Abandonnés ou refaits $1.3M 20%
◼ Utilisés après modification $0.2M 3%
◼ Utilisés tel quel $0.1M 2%
Approches Méthodologiques
Crise de l'industrie du logiciel à la fin des
années 60 :
◼ augmentation des coûts
◼ difficultés d'évolution
◼ non fiabilité
◼ non respect des spécifications
◼ non respect des délais

Importance d'approches méthodologiques

Apparition et développement
du Génie Logiciel
Génie Logiciel: définition
 Génie Logiciel :
◼ Travail en équipe sur des projets complexes et
longs
◼ Spécifications de départ
◼ Dialogue avec les utilisateurs/clients : discours
métier
◼ Organisation, planification, gestion du risque
Génie Logiciel: définition
 Définition du génie logiciel (GL):
Domaine des ‘sciences de l’ingénieur’ dont la
finalité est:
◼ la conception
◼ la fabrication
◼ la maintenance
de systèmes logiciels complexes, sûrs et de
qualité
(‘Software Engineering’ en anglais)
Génie Logiciel: Objectifs
 Objectifs du génie logiciel: CQFD
Le GL se préoccupe des procédés de fabrication des
logiciels de façon à satisfaire les 4 critères suivants:

◼ Le système qui est fabriqué répond aux


besoins des utilisateurs (correction
fonctionnelle).
Génie Logiciel: Objectifs
◼ La qualité correspond au contrat de service initial. La
qualité du logiciel est une notion multiforme qui
recouvre :

 la validité : aptitude d'un logiciel à réaliser exactement les


tâches définies par sa spécification

 la fiabilité : aptitude d'un logiciel à assurer de manière


continue le service attendu

 la robustesse : aptitude d'un logiciel à fonctionner même


dans des conditions anormales

 l’extensibilité : facilité d'adaptation d'un logiciel aux


changements de spécification
Génie Logiciel: Objectifs
 la réutilisation : aptitude d'un logiciel à être
réutilisé en tout ou partie

 la compatibilité : aptitude des logiciels à pouvoir


être combinés les uns aux autres

 l’efficacité : aptitude d'un logiciel à bien utiliser les


ressources matérielles ,la mémoire, la puissance
de l’U.C., etc.

 la portabilité : facilité à être porté sur de


nouveaux environnements matériels et/ou
logiciels
Génie Logiciel: Objectifs
 la traçabilité : capacité à identifier et/ou suivre un
élément du cahier des charges lié à un composant
d'un logiciel

 l’intégrité : aptitude d'un logiciel à protéger ses


différents composants conte des accès ou des
modifications non autorisés

 la facilité d'utilisation, d’entretien, etc


Génie Logiciel: Objectifs

◼ Les coûts restent dans les limites prévues


au départ.

◼ Les délais restent dans les limites prévues


au départ.

Règle du CQFD :
Coût Qualité Fonctionnalités Délai

Vous aimerez peut-être aussi