Cours MCSI PDF
Cours MCSI PDF
Cours MCSI PDF
Tarak Chaari
Maître-assistant à l’ISECS
Membre de l’unité de recherche ReDCAD
MCSI
Présentation générale du cours
Le nom du cours
Méthodes de conception des Systèmes d’information
(MCSI)
Volume horaire
21 heures
Cours + TD
Objectifs
Avoir une idée sur le processus d’ingénierie des
logiciels d’une façon générale
Maitriser le langage de modélisation (UML)
Tarak CHAARI (ISECS)
MCSI 2
Plan
2. Importance de la modélisation
5. Exercices et exemples
Introduction au Génie
Logiciel
90
80 90
70
60
50
40
30
20 6
10 1
0
Analyse Développement Exploitation
Les erreurs:
Le développement est terminé quand le logiciel fonctionne.
Tant qu’un logiciel ne fonctionne pas, il n’y a pas moyen d’en
mesurer la qualité
Ce qui compte c’est le livrable: Le logiciel
La réalité
50% à 70% de l’effort consacré a lieu après la livraison.
Les revues et les contrôles de logiciel au cours de
développement sont très importantes
La documentation pour l’utilisateur et pour les développeurs
L’erreur
Il suffira d’ajouter des programmeurs pour rattraper le
retard d’un projet.
Conséquences
beaucoup de temps perdu pour intégrer les nouveaux
dans le projet
incompréhensions
incohérences
temps perdu dans la répartition de tâches (temps de
communication)
Généricité et réutilisabilité
Maîtriser la qualité
Quoi ? Analyse
Comment ? Conception
Problème: ……………………………………………………...
Cause: ………………………………………………………….
Avantages: ……………………………………………….
Inconvénients: …………………………………………...
Héritage
Transmission de propriétés (attributs et méthodes) d’une classe
à une sous classe d’objets
Construire
une niche: c’est facile
une maison: c’est un peu plus compliqué
un immeuble: bon là, comment s’y prendre?
Modèle météorologique :
partir de données d'observation (satellite ...), permet de prévoir
les conditions climatiques pour les jours à venir.
Modèle économique :
peut par exemple permettre de simuler l'évolution de cours
boursiers en fonction d'hypothèses macro-économiques
(évolution du chômage, taux de croissance...).
Modèle démographique :
définit la composition d'un panel d'une population et son
comportement, dans le but de fiabiliser des études statistiques,
d'augmenter l'impact de démarches commerciales, etc...
UML est riche (il couvre toutes les phases d'un cycle de
développement)
3 types de démarches:
Itérative et incrémentale
guidée par l’utilisateur
centrée sur l’architecture
Spécifications
(cahier de charge)
Conception / Étude
Développement
En d'autres termes, cette vue identifie les modules qui réalisent
(physiquement) les classes de la vue logique
Elle est la "colle" qui unifie les quatre autres vues de l'architecture.
Les états
une étape de la vie d’un objet Attente
Les acteurs
utilisateurs finaux du système
administrateur
Les noeuds
Un dispositif matériel Serveur
Les paquetages
Une partition du modèle IHM
Les notes
Un commentaire, une explication ou une annotation
remarques
Exprime
Comprend Utilisateur
Analyste
Programmeur
Employer
<< extends >>
Chef de service
Diagramme de collaboration
Serveur d'adaptation
des images
1: revenuTotalDeLocation()
Loueur / Propriétaire :
Personne
:Coût /Maison:Logement
1.1.i : valeur()
Diagramme de séquence
L'ordre d'envoi d'un message est déterminé par sa position sur l'axe
vertical du diagramme ; le temps s'écoule "de haut en bas" de cet axe
Messages asynchrones
l’émetteur n’est pas bloqué et il peut poursuivre son exécution
2 : demandeEtage()
2.1 : allumer()
2.2 : fermer()
2.3 : déplacer()
Diagramme d’objets
Diagramme de classes
Comparable
CollectionOrdonnée implements
+ addition(int x, int y)
+ multiplication(int x, int y)
dépend de
java.rmi java.net
Une personne peut louer une et une seule chambre et une chambre
peut être loué par une ou deux personnes.
Complément: Du modèle de
classes au modèle relationnel
Personne
Exemple:
Un hôte habite dans une et une seule chambre
Une chambre héberge un et un seul hôte
Exemple:
Un hôtel contient un ensemble de chambres
Exemple:
Etudiant(ID_Etudiant, nom, prenom)
Enseignant(ID_Enseignant, nom, prenom)
Enseignement(ID_Etudiant#, ID_Enseignant#, heure, durée)
Traduction de l’héritage
Les sous classes ont la même clé primaire que la superclasse
Un attribut « type » est ajouté à la superclasse dans le cas
d’une spécialisation complète
Exemple:
L’étudiant et l’enseignant sont des personnes
une personne est caractérisé par un ID, un nom et un prénom
Un étudiant est caractérisé par son niveau (bac+1, bac+2…)
Un enseignant est caractérisé par son grade (Vacataire, ATER,
Maitre de conférences, professeur…)
transition conditionnelle :
[entrée valide]
saisieValeur confirmation
[erreur saisie]
afficherProblème
Diagramme d’activités
Bas niveau
une opération
une classe
cas d’utilisation
Haut niveau
Synchronisation
Diagramme de composants
Notations
Interfaces offertes
C Composant
Interfaces utilisées
rechercher
Moteur de
SGBD C recherche
RequetesSQL
Diagramme de déploiement
Diagramme de classes
les entités du système
Diagramme de classes
le cœur de la conception d’un système
Diagramme de séquence
indispensable pour comprendre l’interaction entre les classes
Composants/déploiement
Spécifications
Classes Séquence
Conception / Étude
Développement
Vue
Vue architecturale
Fonctionnelle
Play
Player
Find Beverage
[ no coffee ] [ no cola ]
Vue
[ found coffee ]
[ found cola ]
Vue Cohérence !! Comportementale
Statique
Put Coffee in Filter Add Water to Reservoir Get Cups Get Can of Cola
1: play( )
Turn on Machine
game : Dice
Game
^coffeePot.TurnOn
3: r2=roll( )
Brew Coffee
d2 : Die
light goes out Momo : Player
1: play( )
/ Start game start 2: roll( )
Ready to play Player ready
entry: get player name
3: roll( )
Quit
Cancel play
[ turn>=10 ] In progress
entry: turn++
146
MCSI Tarak
Cohérence de conception (2)
Diagramme Use-cases/Activities
Un diagramme de séquence représente un scénario
associé à un cas d’utilisation
Bonne documentation