Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Ingeacutenierie du Logiciel
Master 1 Informatique ndash 4I502
Cours 1 Introduction Geacutenie Logiciel
Yann Thierry-Mieg
YannThierry-Mieglip6fr
page 1
I Meacutethode de Deacuteveloppement
2
Du besoin informel agrave la solution
bull Besoin informel
laquo Je souhaite un veacutehicule sans chauffeur qui me permette de me
deacuteplacer sans permis de conduire raquo
bull Solution Google Car
3
Le besoin drsquoune meacutethode
bull laquo Petit raquo programme isoleacute non critique jetable dureacutee de
deacuteveloppement limiteacute
bull Exo de TME en binome page ou formulaire web hellip
bull 1 Ouvrir IDE 2 Coder
bull Large echelle communicant critique temps reel embarqueacute
reacuteutilisable coucirct de deacuteveloppement en dizaines drsquohommeanhellip
bull Nombreuses sources de complexiteacute
bull Deacutefis techniques
bull Deacutefis drsquoorganization
4
Complexiteacute technique
Solution complexe
bull Interfaces composants physique embarqueacute
bull Temps reacuteel
bull Connecteacute accegraves donneacutees carte
bull Synchronisation camerasdirection
bull Interface homme machine
bull Langages et technologiesframework techniques multiples
bull Prise de deacutecision systegraveme critique
bull Systegraveme de systegravemes le systegraveme est un assemblage complexe de
sous-systegravemes heacuteteacuterogegraveneshellip
La solution ne se limite pas au code consideacuterer lrsquoensemble des
documents et artefacts neacutecessaires pour le deacuteveloppement drsquoun tel
systegraveme
5
Dimension Humaine
Intervenants Divers =gt visions diverses
bull Chef de Projet avancement projet affectation ressources
6
Diagramme de Gantt Kanban
Burndown Chart
Images wikipedia
Dimension Humaine
bull Architecte architecture logicielle et mateacuterielle composants
interactions
7
Vision architecturaleComposants Instanciation
API InterfacesSeacutequences interactions
Dimension Humaine
Deacuteveloppeur reacutealiser le code
8
Spec Fonctionnelle
API Interfaces
Tests
Code ()
Conception O-O
Dimension Humaine
Administrateur Base de Donneacutee entretenir et geacuterer les donneacutees
optimiser les accegraves
9
EntityRelationship
Requecirctes et volumes perfs
Requecirctes SQL
Dimension Humaine
Intervenants Divers =gt visions diverses
bull Testeur deacutefinir et executer les tests
o Specifications fonctionnelle tests api
bull ClientInvestisseur vue drsquoensemble deacutefinition du besoin
o use case tests de validation maquettesprotos
bull Designer ergonomie graphismes
o charte graphique maquettes use case
bull Responsable qualiteacute suivi et mesure de la qualiteacute
o Normes qualiteacute meacutetriques instruments
hellip
La DIVERSITE = multitude de points de vue deacutedieacutes agrave une utilisation
particuliegravere
On ne peutdoit pas chercher agrave tout fusionner
Le code nrsquoest qursquoun artefact parmi drsquoautres peu abstrait et inadapteacute pour
beaucoup drsquointervenants10
La meacutethode de deacuteveloppement objectifs
La meacutethode a pour but drsquoameacuteliorer
bull La productiviteacute des eacutequipes
bull Time to market deacutelais coucircts
bull La qualiteacute des logiciels produits
bull Portabiliteacute robustesse seacutecuriteacutehellip
Souvent une opposition entre ces deux critegraveres
Quelles qualiteacutes doit posseacuteder le logiciel
11
Qualiteacutes du logiciel
12Source ISO20500com
Cf aussi ISO9126
ISOIEC 25010 categorization of
software quality requirements
Qualiteacutes du logiciel
De nombreuses qualiteacutes souhaitables selon le domaine drsquoapplication
et les contraintes
La qualiteacute est un meacutetier en soi (peu abordeacute dans lrsquoUE)
bull Meacutetrique indicateur quantitatifs aidant agrave eacutevaluer lrsquoeacutevolution drsquoune
dimension de la qualiteacute logicielle
bull Loc locclasse classespackage profondeur drsquoheacuteritage couverture de test
bull Maitrise du risque identification classification mesures de
mitigationhellip
Dans lrsquoUE on recherche en particulier
bull Portabiliteacute minimiser les hypothegraveses sur la plateforme technique
permettre la reacutealisation sur toute plateforme
bull Reacuteutilisabiliteacute modulariteacute accent sur la construction drsquoune
application agrave lrsquoaide de composants reacuteutilisables
bull Aspects non fonctionnels peu abordeacutes performance seacutecuriteacutehellip13
Composantes drsquoune meacutethodeLa deacutemarche deacutecrit les actions agrave mener
leur enchaicircnement et les dispositifs
neacutecessaires pour atteindre les objectifs
du projet
La conduite est la technique de preacutevision
et drsquoordonnancement des travaux Elle
permet le suivi du projet
Lrsquoapproche est la technique de
modeacutelisation utiliseacutee au cours du
projet
La technique de modeacutelisation comprend
bull un formalisme
bull une heuristique
Le formalisme offre une faccedilon de
srsquoexprimer du texte des modegraveles
Lrsquoheuristique est la technique de
deacutecouverte crsquoest la maniegravere de
trouver et de formuler les eacuteleacutements
neacutecessaires au modegravele
14
DEMARCHE APPROCHE
Deacutecoupage du
projet en phases
deacutefinition du
qui fait quoi
Techniques de
repreacutesentation
de modeacutelisation
CONDUITE
Techniques de preacutevisions
dordonnancement et de
suivi
Peu abordeacute dans lrsquoUE (cours 28)
Choix UML
Composants
Objets
Cycle en V
Meacutethode
Qursquoattend-t-on drsquoune meacutethode
bull Quand
bull Deacutecoupage en eacutetapes maniegravere drsquoaborder le problegraveme de deacutecouper le
raisonnement
bull Qui
bull Deacutefinition des rocircles des intervenants organisation
bull Comment
bull Strateacutegies et outils de modeacutelisation preacuteconiseacutes traitements neacutecessaire pour
chaque eacutetape
bull Quoi
bull Speacutecification des objectifs et besoins traccedilabiliteacute des exigences
Quelles sont les qualiteacutes rechercheacutees drsquoune meacutethode
bull Gains de production Gains de qualiteacute Reacuteduction des coucircts
Gestion des risques
15
Meacutethode de Deacuteveloppement une deacutefinition
Un meacutethode doit expliquer quand comment qui doit faire des modegraveles et des scheacutema
(lesquels dans quel objectif agrave quelle granulariteacute drsquoabstraction) pour concevoir une
application
Une meacutethode doit permettre de bons reacutesultats (gain de productiviteacute)
Elle doit ecirctre facile agrave apprendre et agrave mettre en œuvre
Toute meacutethodologie de deacuteveloppement a pour objectif de produire un logiciel reacutepondant au
mieux au cahier des charges tout en ameacuteliorant la productiviteacute
Elle deacutefinit
1048707 des eacutetapes (eg Analyse Tests Validation Conceptionhellip) le plus souvent
aussi une deacutecoupe en iteacuterations plus ou moins longues
1048707 des moyens (eg diagrammes UML tests fiche deacutetailleacutee geacuteneacuteration de
codehellip)
1048707 des produits intermeacutediaires du deacuteveloppement (cagraved les deacutelivrables eg
document drsquoanalyse tests de validationhellip)
Elle peut aussi deacutefinir une structure geacuteneacuterale pour la gestion de projet (petites ou grosses
eacutequipes organisation du travailhellip
16
II Modeacutelisation
17
Retour sur la diversiteacute
Diffeacuterents intervenants
bull Chef de projet (avanceacutee du projet)
bull Deacuteveloppeur (meacutethode algo deacutependance aux API)
bull Testeur (deacutefinition de tests exeacutecution de tests)
bull Deploiement (mise en production tests de monteacutee en charge)
bull Qualiteacute (respect des charte meacutetriques)
bull CLIENT (besoin satisfait)
Points de vue diffeacuterents
Niveaux drsquoabstraction diffeacuterents
Pourtant tout cela doit ecirctre coheacuterent
Limitation des langages de programmation
1 seul niveau drsquoabstraction
1 seul niveau de diversiteacute
Les modegraveles offrent une solution pour aider agrave maintenir la coherence
tout en acceptant la diversiteacute
18
Qursquoest-ce qursquoun modegravele
Modegravele = repreacutesentation simplifieacutee du reacuteel
Contraintes de repreacutesentation facilitant le passage au logiciel 19
Pourquoi Modeacuteliser
20
Entre utilisateurs etinformaticiens
Entre informaticiens
analystes concepteursdeacuteveloppeursmainteneurs
Qualiteacute des modegraveles
coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie
Le premier but de la modeacutelisation
est de garantir
la bonne compreacutehension
entre les acteurs
COMMUNIQUER
CONTROLER
Le second but de la modeacutelisation
est de fournir une description
rigoureuse et controcirclable
Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme
bull documenter
Support outilleacute geacuteneacuteration de code de documentation
Analyses du modegravele (consistance coheacuterence)
Communiquer et Controcircler
Comment atteindre ces objectifs
Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode
de modeacutelisation on peut citer
bull la coheacuterence toutes les repreacutesentations qui composent le modegravele
sarticulent entre elles et ne se contredisent pas
bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute
linformation neacutecessaire pour atteindre les buts fixeacutes
bull la pertinence toutes les informations rassembleacutees dans le modegravele
ont leur utiliteacute
bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que
le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance
et la structure qui facilite son exploitation
21
Coheacuterence et Diversiteacute
Il y a un fort besoin de coheacuterence
Comme toutes les informations visent agrave deacutevelopper une application
il serait inteacuteressant de tout centraliser
Mais il ne faut pas uniformiser
Chaque intervenant a sa faccedilon propre de travailler
On ne peut pas donner un langage de programmation agrave un client
22
Modegravele et Diagramme
Modegravele
Lrsquoensemble des informations permettant la conception le
deacuteveloppement et la maintenance du logiciel (diagrammes code
tests documentation hellip)
Diagramme ou Vue
Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon
un certain point de vue (selon un axe servant un objectif) 23
Deacuteveloppeur Analyste Meacutetier
Modegravele
Objet Composant Service
24
Orienteacute-Objet
Concepts cleacute facilitant la construction drsquoapplications de grande taille
maintenables
Geacuteneacuterations de langages
1 Primitif asm
Pas de structure GOTO
2 Proceacutedural C Pascal
Structure de controcircle fonctions tableaux struct
3 Orienteacute Objet Java C++ hellip
Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation
4 Dynamique Python Perl JS hellip
Typage faible (scalaire list hash) reflexion avanceacutee
En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)
aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25
La classe
La classe
Cateacutegorie ou type
drsquoobjet
Munie de responsabiliteacutes
mateacuterialiseacutees par unedes
interfaces
Deacutefinie par ses attributs
et meacutethodes
Exemple classe
locomotive
Locomotive
- modele- puissance- vitesse- couleur
+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )
Lrsquoobjet instance drsquoune classe
bull Les instances drsquoobjets sont
deacutefinies par la valeur de leurs
attributs
bull Les traitements qursquoon peut
reacutealiser sur ces attributs sont
deacutefinis au niveau de la classe
agrave travers les meacutethodes
Un objet = instance drsquoune classe
dans un eacutetat particulier
-couleur= rouge
-puissance= 18000
-vitesse= 230
-modele= AL2119
Loco21Locomotive
L rsquoobjet notion drsquoencapsulation
Services publics
Donneacuteesproteacutegeacutees
Environnement
Messages
OBJET
Substituabiliteacute du noyau sans impacter les clients
L rsquoabstraction
La modeacutelisation OO pousse agrave
gagner en abstraction
Une application est composeacutee
drsquointeractions complexes entre
composants
Lrsquoencapsulation permet de faire
abstraction de lrsquoimpleacutementation
effective des comportements du
systegraveme pour reposer sur la notion
drsquointerface
Une interface deacutefinit des
responsabiliteacutes
indeacutependamment de la faccedilon
dont elles sont reacutealiseacutees
+demarrer()
+accelerer()
+freiner()
Locomotive
ltltabstractgtgt
LocomotiveDiesel LocomotiveElectrique
ltltinterfacegtgt
Objets vs Composants
bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS
bull Uniteacute de reacuteutilisation meacutediocre
bull La classe ne vient pas seule package entier
bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur
bull SGBD relationnel langages divers
bull Au-delagrave de lrsquoobjet
bull Modegraveles de composant
bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur
bull Uniteacute de reacuteutilisation et de deacuteploiement
bull Support de plateformes heacuteteacuterogegravenes
bull Support de plateformes distribueacutees
bull Vision composant promulgueacutee dans lrsquoUE (arc 2)
bull Au-delagrave du composant
bull SOA Service Oriented Architecture SaS Software as a Service
bull Compatible avec la vision orienteacute-composant
bull Application = choreacutegraphie entre composants dont on ne connait que les API
Unified Modeling Language
UML
Une notation standard pour repreacutesenter des
modegraveles drsquoartefacts logiciels
31
UML historique
bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)
et OOSE (~use case) premier standard OMG
bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique
encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )
bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication
drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution
rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration
bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues
UML est un standard industriel (OMG et ISO) =gt communiquer++ 32
Meacutethode OOD
BOOCH
Modeacutelisation dynamique
Meacutethode OOSE
JACOBSON
Cas drsquoutilisation
Meacutethode OMT
RUMBAUGH
Modeacutelisation statique
UML
Unified Modeling Language
Selon temps disponible
Diagramme de classe
bull Structure (attributs opeacuterations) associations typage
bull Expression Add Constante eval()int + impleacutementations
Diagramme drsquoobjet
bull Instances des classes dans une configuration particuliegravere snapshot
de lrsquoapplication
bull 3+2
Diagramme de Seacutequence
bull Axe temps (vertical) interactions entre instances donneacutees
eacutechangeacutees
bull (3+2)eval()
Intersections non vide entre ces diagrammes
bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances
bull Le modegravele UML unifie et assure la coheacuterence 33
Structure de lrsquoUE et Organisation
34
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
I Meacutethode de Deacuteveloppement
2
Du besoin informel agrave la solution
bull Besoin informel
laquo Je souhaite un veacutehicule sans chauffeur qui me permette de me
deacuteplacer sans permis de conduire raquo
bull Solution Google Car
3
Le besoin drsquoune meacutethode
bull laquo Petit raquo programme isoleacute non critique jetable dureacutee de
deacuteveloppement limiteacute
bull Exo de TME en binome page ou formulaire web hellip
bull 1 Ouvrir IDE 2 Coder
bull Large echelle communicant critique temps reel embarqueacute
reacuteutilisable coucirct de deacuteveloppement en dizaines drsquohommeanhellip
bull Nombreuses sources de complexiteacute
bull Deacutefis techniques
bull Deacutefis drsquoorganization
4
Complexiteacute technique
Solution complexe
bull Interfaces composants physique embarqueacute
bull Temps reacuteel
bull Connecteacute accegraves donneacutees carte
bull Synchronisation camerasdirection
bull Interface homme machine
bull Langages et technologiesframework techniques multiples
bull Prise de deacutecision systegraveme critique
bull Systegraveme de systegravemes le systegraveme est un assemblage complexe de
sous-systegravemes heacuteteacuterogegraveneshellip
La solution ne se limite pas au code consideacuterer lrsquoensemble des
documents et artefacts neacutecessaires pour le deacuteveloppement drsquoun tel
systegraveme
5
Dimension Humaine
Intervenants Divers =gt visions diverses
bull Chef de Projet avancement projet affectation ressources
6
Diagramme de Gantt Kanban
Burndown Chart
Images wikipedia
Dimension Humaine
bull Architecte architecture logicielle et mateacuterielle composants
interactions
7
Vision architecturaleComposants Instanciation
API InterfacesSeacutequences interactions
Dimension Humaine
Deacuteveloppeur reacutealiser le code
8
Spec Fonctionnelle
API Interfaces
Tests
Code ()
Conception O-O
Dimension Humaine
Administrateur Base de Donneacutee entretenir et geacuterer les donneacutees
optimiser les accegraves
9
EntityRelationship
Requecirctes et volumes perfs
Requecirctes SQL
Dimension Humaine
Intervenants Divers =gt visions diverses
bull Testeur deacutefinir et executer les tests
o Specifications fonctionnelle tests api
bull ClientInvestisseur vue drsquoensemble deacutefinition du besoin
o use case tests de validation maquettesprotos
bull Designer ergonomie graphismes
o charte graphique maquettes use case
bull Responsable qualiteacute suivi et mesure de la qualiteacute
o Normes qualiteacute meacutetriques instruments
hellip
La DIVERSITE = multitude de points de vue deacutedieacutes agrave une utilisation
particuliegravere
On ne peutdoit pas chercher agrave tout fusionner
Le code nrsquoest qursquoun artefact parmi drsquoautres peu abstrait et inadapteacute pour
beaucoup drsquointervenants10
La meacutethode de deacuteveloppement objectifs
La meacutethode a pour but drsquoameacuteliorer
bull La productiviteacute des eacutequipes
bull Time to market deacutelais coucircts
bull La qualiteacute des logiciels produits
bull Portabiliteacute robustesse seacutecuriteacutehellip
Souvent une opposition entre ces deux critegraveres
Quelles qualiteacutes doit posseacuteder le logiciel
11
Qualiteacutes du logiciel
12Source ISO20500com
Cf aussi ISO9126
ISOIEC 25010 categorization of
software quality requirements
Qualiteacutes du logiciel
De nombreuses qualiteacutes souhaitables selon le domaine drsquoapplication
et les contraintes
La qualiteacute est un meacutetier en soi (peu abordeacute dans lrsquoUE)
bull Meacutetrique indicateur quantitatifs aidant agrave eacutevaluer lrsquoeacutevolution drsquoune
dimension de la qualiteacute logicielle
bull Loc locclasse classespackage profondeur drsquoheacuteritage couverture de test
bull Maitrise du risque identification classification mesures de
mitigationhellip
Dans lrsquoUE on recherche en particulier
bull Portabiliteacute minimiser les hypothegraveses sur la plateforme technique
permettre la reacutealisation sur toute plateforme
bull Reacuteutilisabiliteacute modulariteacute accent sur la construction drsquoune
application agrave lrsquoaide de composants reacuteutilisables
bull Aspects non fonctionnels peu abordeacutes performance seacutecuriteacutehellip13
Composantes drsquoune meacutethodeLa deacutemarche deacutecrit les actions agrave mener
leur enchaicircnement et les dispositifs
neacutecessaires pour atteindre les objectifs
du projet
La conduite est la technique de preacutevision
et drsquoordonnancement des travaux Elle
permet le suivi du projet
Lrsquoapproche est la technique de
modeacutelisation utiliseacutee au cours du
projet
La technique de modeacutelisation comprend
bull un formalisme
bull une heuristique
Le formalisme offre une faccedilon de
srsquoexprimer du texte des modegraveles
Lrsquoheuristique est la technique de
deacutecouverte crsquoest la maniegravere de
trouver et de formuler les eacuteleacutements
neacutecessaires au modegravele
14
DEMARCHE APPROCHE
Deacutecoupage du
projet en phases
deacutefinition du
qui fait quoi
Techniques de
repreacutesentation
de modeacutelisation
CONDUITE
Techniques de preacutevisions
dordonnancement et de
suivi
Peu abordeacute dans lrsquoUE (cours 28)
Choix UML
Composants
Objets
Cycle en V
Meacutethode
Qursquoattend-t-on drsquoune meacutethode
bull Quand
bull Deacutecoupage en eacutetapes maniegravere drsquoaborder le problegraveme de deacutecouper le
raisonnement
bull Qui
bull Deacutefinition des rocircles des intervenants organisation
bull Comment
bull Strateacutegies et outils de modeacutelisation preacuteconiseacutes traitements neacutecessaire pour
chaque eacutetape
bull Quoi
bull Speacutecification des objectifs et besoins traccedilabiliteacute des exigences
Quelles sont les qualiteacutes rechercheacutees drsquoune meacutethode
bull Gains de production Gains de qualiteacute Reacuteduction des coucircts
Gestion des risques
15
Meacutethode de Deacuteveloppement une deacutefinition
Un meacutethode doit expliquer quand comment qui doit faire des modegraveles et des scheacutema
(lesquels dans quel objectif agrave quelle granulariteacute drsquoabstraction) pour concevoir une
application
Une meacutethode doit permettre de bons reacutesultats (gain de productiviteacute)
Elle doit ecirctre facile agrave apprendre et agrave mettre en œuvre
Toute meacutethodologie de deacuteveloppement a pour objectif de produire un logiciel reacutepondant au
mieux au cahier des charges tout en ameacuteliorant la productiviteacute
Elle deacutefinit
1048707 des eacutetapes (eg Analyse Tests Validation Conceptionhellip) le plus souvent
aussi une deacutecoupe en iteacuterations plus ou moins longues
1048707 des moyens (eg diagrammes UML tests fiche deacutetailleacutee geacuteneacuteration de
codehellip)
1048707 des produits intermeacutediaires du deacuteveloppement (cagraved les deacutelivrables eg
document drsquoanalyse tests de validationhellip)
Elle peut aussi deacutefinir une structure geacuteneacuterale pour la gestion de projet (petites ou grosses
eacutequipes organisation du travailhellip
16
II Modeacutelisation
17
Retour sur la diversiteacute
Diffeacuterents intervenants
bull Chef de projet (avanceacutee du projet)
bull Deacuteveloppeur (meacutethode algo deacutependance aux API)
bull Testeur (deacutefinition de tests exeacutecution de tests)
bull Deploiement (mise en production tests de monteacutee en charge)
bull Qualiteacute (respect des charte meacutetriques)
bull CLIENT (besoin satisfait)
Points de vue diffeacuterents
Niveaux drsquoabstraction diffeacuterents
Pourtant tout cela doit ecirctre coheacuterent
Limitation des langages de programmation
1 seul niveau drsquoabstraction
1 seul niveau de diversiteacute
Les modegraveles offrent une solution pour aider agrave maintenir la coherence
tout en acceptant la diversiteacute
18
Qursquoest-ce qursquoun modegravele
Modegravele = repreacutesentation simplifieacutee du reacuteel
Contraintes de repreacutesentation facilitant le passage au logiciel 19
Pourquoi Modeacuteliser
20
Entre utilisateurs etinformaticiens
Entre informaticiens
analystes concepteursdeacuteveloppeursmainteneurs
Qualiteacute des modegraveles
coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie
Le premier but de la modeacutelisation
est de garantir
la bonne compreacutehension
entre les acteurs
COMMUNIQUER
CONTROLER
Le second but de la modeacutelisation
est de fournir une description
rigoureuse et controcirclable
Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme
bull documenter
Support outilleacute geacuteneacuteration de code de documentation
Analyses du modegravele (consistance coheacuterence)
Communiquer et Controcircler
Comment atteindre ces objectifs
Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode
de modeacutelisation on peut citer
bull la coheacuterence toutes les repreacutesentations qui composent le modegravele
sarticulent entre elles et ne se contredisent pas
bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute
linformation neacutecessaire pour atteindre les buts fixeacutes
bull la pertinence toutes les informations rassembleacutees dans le modegravele
ont leur utiliteacute
bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que
le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance
et la structure qui facilite son exploitation
21
Coheacuterence et Diversiteacute
Il y a un fort besoin de coheacuterence
Comme toutes les informations visent agrave deacutevelopper une application
il serait inteacuteressant de tout centraliser
Mais il ne faut pas uniformiser
Chaque intervenant a sa faccedilon propre de travailler
On ne peut pas donner un langage de programmation agrave un client
22
Modegravele et Diagramme
Modegravele
Lrsquoensemble des informations permettant la conception le
deacuteveloppement et la maintenance du logiciel (diagrammes code
tests documentation hellip)
Diagramme ou Vue
Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon
un certain point de vue (selon un axe servant un objectif) 23
Deacuteveloppeur Analyste Meacutetier
Modegravele
Objet Composant Service
24
Orienteacute-Objet
Concepts cleacute facilitant la construction drsquoapplications de grande taille
maintenables
Geacuteneacuterations de langages
1 Primitif asm
Pas de structure GOTO
2 Proceacutedural C Pascal
Structure de controcircle fonctions tableaux struct
3 Orienteacute Objet Java C++ hellip
Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation
4 Dynamique Python Perl JS hellip
Typage faible (scalaire list hash) reflexion avanceacutee
En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)
aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25
La classe
La classe
Cateacutegorie ou type
drsquoobjet
Munie de responsabiliteacutes
mateacuterialiseacutees par unedes
interfaces
Deacutefinie par ses attributs
et meacutethodes
Exemple classe
locomotive
Locomotive
- modele- puissance- vitesse- couleur
+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )
Lrsquoobjet instance drsquoune classe
bull Les instances drsquoobjets sont
deacutefinies par la valeur de leurs
attributs
bull Les traitements qursquoon peut
reacutealiser sur ces attributs sont
deacutefinis au niveau de la classe
agrave travers les meacutethodes
Un objet = instance drsquoune classe
dans un eacutetat particulier
-couleur= rouge
-puissance= 18000
-vitesse= 230
-modele= AL2119
Loco21Locomotive
L rsquoobjet notion drsquoencapsulation
Services publics
Donneacuteesproteacutegeacutees
Environnement
Messages
OBJET
Substituabiliteacute du noyau sans impacter les clients
L rsquoabstraction
La modeacutelisation OO pousse agrave
gagner en abstraction
Une application est composeacutee
drsquointeractions complexes entre
composants
Lrsquoencapsulation permet de faire
abstraction de lrsquoimpleacutementation
effective des comportements du
systegraveme pour reposer sur la notion
drsquointerface
Une interface deacutefinit des
responsabiliteacutes
indeacutependamment de la faccedilon
dont elles sont reacutealiseacutees
+demarrer()
+accelerer()
+freiner()
Locomotive
ltltabstractgtgt
LocomotiveDiesel LocomotiveElectrique
ltltinterfacegtgt
Objets vs Composants
bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS
bull Uniteacute de reacuteutilisation meacutediocre
bull La classe ne vient pas seule package entier
bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur
bull SGBD relationnel langages divers
bull Au-delagrave de lrsquoobjet
bull Modegraveles de composant
bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur
bull Uniteacute de reacuteutilisation et de deacuteploiement
bull Support de plateformes heacuteteacuterogegravenes
bull Support de plateformes distribueacutees
bull Vision composant promulgueacutee dans lrsquoUE (arc 2)
bull Au-delagrave du composant
bull SOA Service Oriented Architecture SaS Software as a Service
bull Compatible avec la vision orienteacute-composant
bull Application = choreacutegraphie entre composants dont on ne connait que les API
Unified Modeling Language
UML
Une notation standard pour repreacutesenter des
modegraveles drsquoartefacts logiciels
31
UML historique
bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)
et OOSE (~use case) premier standard OMG
bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique
encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )
bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication
drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution
rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration
bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues
UML est un standard industriel (OMG et ISO) =gt communiquer++ 32
Meacutethode OOD
BOOCH
Modeacutelisation dynamique
Meacutethode OOSE
JACOBSON
Cas drsquoutilisation
Meacutethode OMT
RUMBAUGH
Modeacutelisation statique
UML
Unified Modeling Language
Selon temps disponible
Diagramme de classe
bull Structure (attributs opeacuterations) associations typage
bull Expression Add Constante eval()int + impleacutementations
Diagramme drsquoobjet
bull Instances des classes dans une configuration particuliegravere snapshot
de lrsquoapplication
bull 3+2
Diagramme de Seacutequence
bull Axe temps (vertical) interactions entre instances donneacutees
eacutechangeacutees
bull (3+2)eval()
Intersections non vide entre ces diagrammes
bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances
bull Le modegravele UML unifie et assure la coheacuterence 33
Structure de lrsquoUE et Organisation
34
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
Du besoin informel agrave la solution
bull Besoin informel
laquo Je souhaite un veacutehicule sans chauffeur qui me permette de me
deacuteplacer sans permis de conduire raquo
bull Solution Google Car
3
Le besoin drsquoune meacutethode
bull laquo Petit raquo programme isoleacute non critique jetable dureacutee de
deacuteveloppement limiteacute
bull Exo de TME en binome page ou formulaire web hellip
bull 1 Ouvrir IDE 2 Coder
bull Large echelle communicant critique temps reel embarqueacute
reacuteutilisable coucirct de deacuteveloppement en dizaines drsquohommeanhellip
bull Nombreuses sources de complexiteacute
bull Deacutefis techniques
bull Deacutefis drsquoorganization
4
Complexiteacute technique
Solution complexe
bull Interfaces composants physique embarqueacute
bull Temps reacuteel
bull Connecteacute accegraves donneacutees carte
bull Synchronisation camerasdirection
bull Interface homme machine
bull Langages et technologiesframework techniques multiples
bull Prise de deacutecision systegraveme critique
bull Systegraveme de systegravemes le systegraveme est un assemblage complexe de
sous-systegravemes heacuteteacuterogegraveneshellip
La solution ne se limite pas au code consideacuterer lrsquoensemble des
documents et artefacts neacutecessaires pour le deacuteveloppement drsquoun tel
systegraveme
5
Dimension Humaine
Intervenants Divers =gt visions diverses
bull Chef de Projet avancement projet affectation ressources
6
Diagramme de Gantt Kanban
Burndown Chart
Images wikipedia
Dimension Humaine
bull Architecte architecture logicielle et mateacuterielle composants
interactions
7
Vision architecturaleComposants Instanciation
API InterfacesSeacutequences interactions
Dimension Humaine
Deacuteveloppeur reacutealiser le code
8
Spec Fonctionnelle
API Interfaces
Tests
Code ()
Conception O-O
Dimension Humaine
Administrateur Base de Donneacutee entretenir et geacuterer les donneacutees
optimiser les accegraves
9
EntityRelationship
Requecirctes et volumes perfs
Requecirctes SQL
Dimension Humaine
Intervenants Divers =gt visions diverses
bull Testeur deacutefinir et executer les tests
o Specifications fonctionnelle tests api
bull ClientInvestisseur vue drsquoensemble deacutefinition du besoin
o use case tests de validation maquettesprotos
bull Designer ergonomie graphismes
o charte graphique maquettes use case
bull Responsable qualiteacute suivi et mesure de la qualiteacute
o Normes qualiteacute meacutetriques instruments
hellip
La DIVERSITE = multitude de points de vue deacutedieacutes agrave une utilisation
particuliegravere
On ne peutdoit pas chercher agrave tout fusionner
Le code nrsquoest qursquoun artefact parmi drsquoautres peu abstrait et inadapteacute pour
beaucoup drsquointervenants10
La meacutethode de deacuteveloppement objectifs
La meacutethode a pour but drsquoameacuteliorer
bull La productiviteacute des eacutequipes
bull Time to market deacutelais coucircts
bull La qualiteacute des logiciels produits
bull Portabiliteacute robustesse seacutecuriteacutehellip
Souvent une opposition entre ces deux critegraveres
Quelles qualiteacutes doit posseacuteder le logiciel
11
Qualiteacutes du logiciel
12Source ISO20500com
Cf aussi ISO9126
ISOIEC 25010 categorization of
software quality requirements
Qualiteacutes du logiciel
De nombreuses qualiteacutes souhaitables selon le domaine drsquoapplication
et les contraintes
La qualiteacute est un meacutetier en soi (peu abordeacute dans lrsquoUE)
bull Meacutetrique indicateur quantitatifs aidant agrave eacutevaluer lrsquoeacutevolution drsquoune
dimension de la qualiteacute logicielle
bull Loc locclasse classespackage profondeur drsquoheacuteritage couverture de test
bull Maitrise du risque identification classification mesures de
mitigationhellip
Dans lrsquoUE on recherche en particulier
bull Portabiliteacute minimiser les hypothegraveses sur la plateforme technique
permettre la reacutealisation sur toute plateforme
bull Reacuteutilisabiliteacute modulariteacute accent sur la construction drsquoune
application agrave lrsquoaide de composants reacuteutilisables
bull Aspects non fonctionnels peu abordeacutes performance seacutecuriteacutehellip13
Composantes drsquoune meacutethodeLa deacutemarche deacutecrit les actions agrave mener
leur enchaicircnement et les dispositifs
neacutecessaires pour atteindre les objectifs
du projet
La conduite est la technique de preacutevision
et drsquoordonnancement des travaux Elle
permet le suivi du projet
Lrsquoapproche est la technique de
modeacutelisation utiliseacutee au cours du
projet
La technique de modeacutelisation comprend
bull un formalisme
bull une heuristique
Le formalisme offre une faccedilon de
srsquoexprimer du texte des modegraveles
Lrsquoheuristique est la technique de
deacutecouverte crsquoest la maniegravere de
trouver et de formuler les eacuteleacutements
neacutecessaires au modegravele
14
DEMARCHE APPROCHE
Deacutecoupage du
projet en phases
deacutefinition du
qui fait quoi
Techniques de
repreacutesentation
de modeacutelisation
CONDUITE
Techniques de preacutevisions
dordonnancement et de
suivi
Peu abordeacute dans lrsquoUE (cours 28)
Choix UML
Composants
Objets
Cycle en V
Meacutethode
Qursquoattend-t-on drsquoune meacutethode
bull Quand
bull Deacutecoupage en eacutetapes maniegravere drsquoaborder le problegraveme de deacutecouper le
raisonnement
bull Qui
bull Deacutefinition des rocircles des intervenants organisation
bull Comment
bull Strateacutegies et outils de modeacutelisation preacuteconiseacutes traitements neacutecessaire pour
chaque eacutetape
bull Quoi
bull Speacutecification des objectifs et besoins traccedilabiliteacute des exigences
Quelles sont les qualiteacutes rechercheacutees drsquoune meacutethode
bull Gains de production Gains de qualiteacute Reacuteduction des coucircts
Gestion des risques
15
Meacutethode de Deacuteveloppement une deacutefinition
Un meacutethode doit expliquer quand comment qui doit faire des modegraveles et des scheacutema
(lesquels dans quel objectif agrave quelle granulariteacute drsquoabstraction) pour concevoir une
application
Une meacutethode doit permettre de bons reacutesultats (gain de productiviteacute)
Elle doit ecirctre facile agrave apprendre et agrave mettre en œuvre
Toute meacutethodologie de deacuteveloppement a pour objectif de produire un logiciel reacutepondant au
mieux au cahier des charges tout en ameacuteliorant la productiviteacute
Elle deacutefinit
1048707 des eacutetapes (eg Analyse Tests Validation Conceptionhellip) le plus souvent
aussi une deacutecoupe en iteacuterations plus ou moins longues
1048707 des moyens (eg diagrammes UML tests fiche deacutetailleacutee geacuteneacuteration de
codehellip)
1048707 des produits intermeacutediaires du deacuteveloppement (cagraved les deacutelivrables eg
document drsquoanalyse tests de validationhellip)
Elle peut aussi deacutefinir une structure geacuteneacuterale pour la gestion de projet (petites ou grosses
eacutequipes organisation du travailhellip
16
II Modeacutelisation
17
Retour sur la diversiteacute
Diffeacuterents intervenants
bull Chef de projet (avanceacutee du projet)
bull Deacuteveloppeur (meacutethode algo deacutependance aux API)
bull Testeur (deacutefinition de tests exeacutecution de tests)
bull Deploiement (mise en production tests de monteacutee en charge)
bull Qualiteacute (respect des charte meacutetriques)
bull CLIENT (besoin satisfait)
Points de vue diffeacuterents
Niveaux drsquoabstraction diffeacuterents
Pourtant tout cela doit ecirctre coheacuterent
Limitation des langages de programmation
1 seul niveau drsquoabstraction
1 seul niveau de diversiteacute
Les modegraveles offrent une solution pour aider agrave maintenir la coherence
tout en acceptant la diversiteacute
18
Qursquoest-ce qursquoun modegravele
Modegravele = repreacutesentation simplifieacutee du reacuteel
Contraintes de repreacutesentation facilitant le passage au logiciel 19
Pourquoi Modeacuteliser
20
Entre utilisateurs etinformaticiens
Entre informaticiens
analystes concepteursdeacuteveloppeursmainteneurs
Qualiteacute des modegraveles
coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie
Le premier but de la modeacutelisation
est de garantir
la bonne compreacutehension
entre les acteurs
COMMUNIQUER
CONTROLER
Le second but de la modeacutelisation
est de fournir une description
rigoureuse et controcirclable
Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme
bull documenter
Support outilleacute geacuteneacuteration de code de documentation
Analyses du modegravele (consistance coheacuterence)
Communiquer et Controcircler
Comment atteindre ces objectifs
Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode
de modeacutelisation on peut citer
bull la coheacuterence toutes les repreacutesentations qui composent le modegravele
sarticulent entre elles et ne se contredisent pas
bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute
linformation neacutecessaire pour atteindre les buts fixeacutes
bull la pertinence toutes les informations rassembleacutees dans le modegravele
ont leur utiliteacute
bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que
le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance
et la structure qui facilite son exploitation
21
Coheacuterence et Diversiteacute
Il y a un fort besoin de coheacuterence
Comme toutes les informations visent agrave deacutevelopper une application
il serait inteacuteressant de tout centraliser
Mais il ne faut pas uniformiser
Chaque intervenant a sa faccedilon propre de travailler
On ne peut pas donner un langage de programmation agrave un client
22
Modegravele et Diagramme
Modegravele
Lrsquoensemble des informations permettant la conception le
deacuteveloppement et la maintenance du logiciel (diagrammes code
tests documentation hellip)
Diagramme ou Vue
Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon
un certain point de vue (selon un axe servant un objectif) 23
Deacuteveloppeur Analyste Meacutetier
Modegravele
Objet Composant Service
24
Orienteacute-Objet
Concepts cleacute facilitant la construction drsquoapplications de grande taille
maintenables
Geacuteneacuterations de langages
1 Primitif asm
Pas de structure GOTO
2 Proceacutedural C Pascal
Structure de controcircle fonctions tableaux struct
3 Orienteacute Objet Java C++ hellip
Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation
4 Dynamique Python Perl JS hellip
Typage faible (scalaire list hash) reflexion avanceacutee
En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)
aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25
La classe
La classe
Cateacutegorie ou type
drsquoobjet
Munie de responsabiliteacutes
mateacuterialiseacutees par unedes
interfaces
Deacutefinie par ses attributs
et meacutethodes
Exemple classe
locomotive
Locomotive
- modele- puissance- vitesse- couleur
+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )
Lrsquoobjet instance drsquoune classe
bull Les instances drsquoobjets sont
deacutefinies par la valeur de leurs
attributs
bull Les traitements qursquoon peut
reacutealiser sur ces attributs sont
deacutefinis au niveau de la classe
agrave travers les meacutethodes
Un objet = instance drsquoune classe
dans un eacutetat particulier
-couleur= rouge
-puissance= 18000
-vitesse= 230
-modele= AL2119
Loco21Locomotive
L rsquoobjet notion drsquoencapsulation
Services publics
Donneacuteesproteacutegeacutees
Environnement
Messages
OBJET
Substituabiliteacute du noyau sans impacter les clients
L rsquoabstraction
La modeacutelisation OO pousse agrave
gagner en abstraction
Une application est composeacutee
drsquointeractions complexes entre
composants
Lrsquoencapsulation permet de faire
abstraction de lrsquoimpleacutementation
effective des comportements du
systegraveme pour reposer sur la notion
drsquointerface
Une interface deacutefinit des
responsabiliteacutes
indeacutependamment de la faccedilon
dont elles sont reacutealiseacutees
+demarrer()
+accelerer()
+freiner()
Locomotive
ltltabstractgtgt
LocomotiveDiesel LocomotiveElectrique
ltltinterfacegtgt
Objets vs Composants
bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS
bull Uniteacute de reacuteutilisation meacutediocre
bull La classe ne vient pas seule package entier
bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur
bull SGBD relationnel langages divers
bull Au-delagrave de lrsquoobjet
bull Modegraveles de composant
bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur
bull Uniteacute de reacuteutilisation et de deacuteploiement
bull Support de plateformes heacuteteacuterogegravenes
bull Support de plateformes distribueacutees
bull Vision composant promulgueacutee dans lrsquoUE (arc 2)
bull Au-delagrave du composant
bull SOA Service Oriented Architecture SaS Software as a Service
bull Compatible avec la vision orienteacute-composant
bull Application = choreacutegraphie entre composants dont on ne connait que les API
Unified Modeling Language
UML
Une notation standard pour repreacutesenter des
modegraveles drsquoartefacts logiciels
31
UML historique
bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)
et OOSE (~use case) premier standard OMG
bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique
encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )
bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication
drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution
rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration
bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues
UML est un standard industriel (OMG et ISO) =gt communiquer++ 32
Meacutethode OOD
BOOCH
Modeacutelisation dynamique
Meacutethode OOSE
JACOBSON
Cas drsquoutilisation
Meacutethode OMT
RUMBAUGH
Modeacutelisation statique
UML
Unified Modeling Language
Selon temps disponible
Diagramme de classe
bull Structure (attributs opeacuterations) associations typage
bull Expression Add Constante eval()int + impleacutementations
Diagramme drsquoobjet
bull Instances des classes dans une configuration particuliegravere snapshot
de lrsquoapplication
bull 3+2
Diagramme de Seacutequence
bull Axe temps (vertical) interactions entre instances donneacutees
eacutechangeacutees
bull (3+2)eval()
Intersections non vide entre ces diagrammes
bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances
bull Le modegravele UML unifie et assure la coheacuterence 33
Structure de lrsquoUE et Organisation
34
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
Le besoin drsquoune meacutethode
bull laquo Petit raquo programme isoleacute non critique jetable dureacutee de
deacuteveloppement limiteacute
bull Exo de TME en binome page ou formulaire web hellip
bull 1 Ouvrir IDE 2 Coder
bull Large echelle communicant critique temps reel embarqueacute
reacuteutilisable coucirct de deacuteveloppement en dizaines drsquohommeanhellip
bull Nombreuses sources de complexiteacute
bull Deacutefis techniques
bull Deacutefis drsquoorganization
4
Complexiteacute technique
Solution complexe
bull Interfaces composants physique embarqueacute
bull Temps reacuteel
bull Connecteacute accegraves donneacutees carte
bull Synchronisation camerasdirection
bull Interface homme machine
bull Langages et technologiesframework techniques multiples
bull Prise de deacutecision systegraveme critique
bull Systegraveme de systegravemes le systegraveme est un assemblage complexe de
sous-systegravemes heacuteteacuterogegraveneshellip
La solution ne se limite pas au code consideacuterer lrsquoensemble des
documents et artefacts neacutecessaires pour le deacuteveloppement drsquoun tel
systegraveme
5
Dimension Humaine
Intervenants Divers =gt visions diverses
bull Chef de Projet avancement projet affectation ressources
6
Diagramme de Gantt Kanban
Burndown Chart
Images wikipedia
Dimension Humaine
bull Architecte architecture logicielle et mateacuterielle composants
interactions
7
Vision architecturaleComposants Instanciation
API InterfacesSeacutequences interactions
Dimension Humaine
Deacuteveloppeur reacutealiser le code
8
Spec Fonctionnelle
API Interfaces
Tests
Code ()
Conception O-O
Dimension Humaine
Administrateur Base de Donneacutee entretenir et geacuterer les donneacutees
optimiser les accegraves
9
EntityRelationship
Requecirctes et volumes perfs
Requecirctes SQL
Dimension Humaine
Intervenants Divers =gt visions diverses
bull Testeur deacutefinir et executer les tests
o Specifications fonctionnelle tests api
bull ClientInvestisseur vue drsquoensemble deacutefinition du besoin
o use case tests de validation maquettesprotos
bull Designer ergonomie graphismes
o charte graphique maquettes use case
bull Responsable qualiteacute suivi et mesure de la qualiteacute
o Normes qualiteacute meacutetriques instruments
hellip
La DIVERSITE = multitude de points de vue deacutedieacutes agrave une utilisation
particuliegravere
On ne peutdoit pas chercher agrave tout fusionner
Le code nrsquoest qursquoun artefact parmi drsquoautres peu abstrait et inadapteacute pour
beaucoup drsquointervenants10
La meacutethode de deacuteveloppement objectifs
La meacutethode a pour but drsquoameacuteliorer
bull La productiviteacute des eacutequipes
bull Time to market deacutelais coucircts
bull La qualiteacute des logiciels produits
bull Portabiliteacute robustesse seacutecuriteacutehellip
Souvent une opposition entre ces deux critegraveres
Quelles qualiteacutes doit posseacuteder le logiciel
11
Qualiteacutes du logiciel
12Source ISO20500com
Cf aussi ISO9126
ISOIEC 25010 categorization of
software quality requirements
Qualiteacutes du logiciel
De nombreuses qualiteacutes souhaitables selon le domaine drsquoapplication
et les contraintes
La qualiteacute est un meacutetier en soi (peu abordeacute dans lrsquoUE)
bull Meacutetrique indicateur quantitatifs aidant agrave eacutevaluer lrsquoeacutevolution drsquoune
dimension de la qualiteacute logicielle
bull Loc locclasse classespackage profondeur drsquoheacuteritage couverture de test
bull Maitrise du risque identification classification mesures de
mitigationhellip
Dans lrsquoUE on recherche en particulier
bull Portabiliteacute minimiser les hypothegraveses sur la plateforme technique
permettre la reacutealisation sur toute plateforme
bull Reacuteutilisabiliteacute modulariteacute accent sur la construction drsquoune
application agrave lrsquoaide de composants reacuteutilisables
bull Aspects non fonctionnels peu abordeacutes performance seacutecuriteacutehellip13
Composantes drsquoune meacutethodeLa deacutemarche deacutecrit les actions agrave mener
leur enchaicircnement et les dispositifs
neacutecessaires pour atteindre les objectifs
du projet
La conduite est la technique de preacutevision
et drsquoordonnancement des travaux Elle
permet le suivi du projet
Lrsquoapproche est la technique de
modeacutelisation utiliseacutee au cours du
projet
La technique de modeacutelisation comprend
bull un formalisme
bull une heuristique
Le formalisme offre une faccedilon de
srsquoexprimer du texte des modegraveles
Lrsquoheuristique est la technique de
deacutecouverte crsquoest la maniegravere de
trouver et de formuler les eacuteleacutements
neacutecessaires au modegravele
14
DEMARCHE APPROCHE
Deacutecoupage du
projet en phases
deacutefinition du
qui fait quoi
Techniques de
repreacutesentation
de modeacutelisation
CONDUITE
Techniques de preacutevisions
dordonnancement et de
suivi
Peu abordeacute dans lrsquoUE (cours 28)
Choix UML
Composants
Objets
Cycle en V
Meacutethode
Qursquoattend-t-on drsquoune meacutethode
bull Quand
bull Deacutecoupage en eacutetapes maniegravere drsquoaborder le problegraveme de deacutecouper le
raisonnement
bull Qui
bull Deacutefinition des rocircles des intervenants organisation
bull Comment
bull Strateacutegies et outils de modeacutelisation preacuteconiseacutes traitements neacutecessaire pour
chaque eacutetape
bull Quoi
bull Speacutecification des objectifs et besoins traccedilabiliteacute des exigences
Quelles sont les qualiteacutes rechercheacutees drsquoune meacutethode
bull Gains de production Gains de qualiteacute Reacuteduction des coucircts
Gestion des risques
15
Meacutethode de Deacuteveloppement une deacutefinition
Un meacutethode doit expliquer quand comment qui doit faire des modegraveles et des scheacutema
(lesquels dans quel objectif agrave quelle granulariteacute drsquoabstraction) pour concevoir une
application
Une meacutethode doit permettre de bons reacutesultats (gain de productiviteacute)
Elle doit ecirctre facile agrave apprendre et agrave mettre en œuvre
Toute meacutethodologie de deacuteveloppement a pour objectif de produire un logiciel reacutepondant au
mieux au cahier des charges tout en ameacuteliorant la productiviteacute
Elle deacutefinit
1048707 des eacutetapes (eg Analyse Tests Validation Conceptionhellip) le plus souvent
aussi une deacutecoupe en iteacuterations plus ou moins longues
1048707 des moyens (eg diagrammes UML tests fiche deacutetailleacutee geacuteneacuteration de
codehellip)
1048707 des produits intermeacutediaires du deacuteveloppement (cagraved les deacutelivrables eg
document drsquoanalyse tests de validationhellip)
Elle peut aussi deacutefinir une structure geacuteneacuterale pour la gestion de projet (petites ou grosses
eacutequipes organisation du travailhellip
16
II Modeacutelisation
17
Retour sur la diversiteacute
Diffeacuterents intervenants
bull Chef de projet (avanceacutee du projet)
bull Deacuteveloppeur (meacutethode algo deacutependance aux API)
bull Testeur (deacutefinition de tests exeacutecution de tests)
bull Deploiement (mise en production tests de monteacutee en charge)
bull Qualiteacute (respect des charte meacutetriques)
bull CLIENT (besoin satisfait)
Points de vue diffeacuterents
Niveaux drsquoabstraction diffeacuterents
Pourtant tout cela doit ecirctre coheacuterent
Limitation des langages de programmation
1 seul niveau drsquoabstraction
1 seul niveau de diversiteacute
Les modegraveles offrent une solution pour aider agrave maintenir la coherence
tout en acceptant la diversiteacute
18
Qursquoest-ce qursquoun modegravele
Modegravele = repreacutesentation simplifieacutee du reacuteel
Contraintes de repreacutesentation facilitant le passage au logiciel 19
Pourquoi Modeacuteliser
20
Entre utilisateurs etinformaticiens
Entre informaticiens
analystes concepteursdeacuteveloppeursmainteneurs
Qualiteacute des modegraveles
coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie
Le premier but de la modeacutelisation
est de garantir
la bonne compreacutehension
entre les acteurs
COMMUNIQUER
CONTROLER
Le second but de la modeacutelisation
est de fournir une description
rigoureuse et controcirclable
Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme
bull documenter
Support outilleacute geacuteneacuteration de code de documentation
Analyses du modegravele (consistance coheacuterence)
Communiquer et Controcircler
Comment atteindre ces objectifs
Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode
de modeacutelisation on peut citer
bull la coheacuterence toutes les repreacutesentations qui composent le modegravele
sarticulent entre elles et ne se contredisent pas
bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute
linformation neacutecessaire pour atteindre les buts fixeacutes
bull la pertinence toutes les informations rassembleacutees dans le modegravele
ont leur utiliteacute
bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que
le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance
et la structure qui facilite son exploitation
21
Coheacuterence et Diversiteacute
Il y a un fort besoin de coheacuterence
Comme toutes les informations visent agrave deacutevelopper une application
il serait inteacuteressant de tout centraliser
Mais il ne faut pas uniformiser
Chaque intervenant a sa faccedilon propre de travailler
On ne peut pas donner un langage de programmation agrave un client
22
Modegravele et Diagramme
Modegravele
Lrsquoensemble des informations permettant la conception le
deacuteveloppement et la maintenance du logiciel (diagrammes code
tests documentation hellip)
Diagramme ou Vue
Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon
un certain point de vue (selon un axe servant un objectif) 23
Deacuteveloppeur Analyste Meacutetier
Modegravele
Objet Composant Service
24
Orienteacute-Objet
Concepts cleacute facilitant la construction drsquoapplications de grande taille
maintenables
Geacuteneacuterations de langages
1 Primitif asm
Pas de structure GOTO
2 Proceacutedural C Pascal
Structure de controcircle fonctions tableaux struct
3 Orienteacute Objet Java C++ hellip
Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation
4 Dynamique Python Perl JS hellip
Typage faible (scalaire list hash) reflexion avanceacutee
En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)
aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25
La classe
La classe
Cateacutegorie ou type
drsquoobjet
Munie de responsabiliteacutes
mateacuterialiseacutees par unedes
interfaces
Deacutefinie par ses attributs
et meacutethodes
Exemple classe
locomotive
Locomotive
- modele- puissance- vitesse- couleur
+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )
Lrsquoobjet instance drsquoune classe
bull Les instances drsquoobjets sont
deacutefinies par la valeur de leurs
attributs
bull Les traitements qursquoon peut
reacutealiser sur ces attributs sont
deacutefinis au niveau de la classe
agrave travers les meacutethodes
Un objet = instance drsquoune classe
dans un eacutetat particulier
-couleur= rouge
-puissance= 18000
-vitesse= 230
-modele= AL2119
Loco21Locomotive
L rsquoobjet notion drsquoencapsulation
Services publics
Donneacuteesproteacutegeacutees
Environnement
Messages
OBJET
Substituabiliteacute du noyau sans impacter les clients
L rsquoabstraction
La modeacutelisation OO pousse agrave
gagner en abstraction
Une application est composeacutee
drsquointeractions complexes entre
composants
Lrsquoencapsulation permet de faire
abstraction de lrsquoimpleacutementation
effective des comportements du
systegraveme pour reposer sur la notion
drsquointerface
Une interface deacutefinit des
responsabiliteacutes
indeacutependamment de la faccedilon
dont elles sont reacutealiseacutees
+demarrer()
+accelerer()
+freiner()
Locomotive
ltltabstractgtgt
LocomotiveDiesel LocomotiveElectrique
ltltinterfacegtgt
Objets vs Composants
bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS
bull Uniteacute de reacuteutilisation meacutediocre
bull La classe ne vient pas seule package entier
bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur
bull SGBD relationnel langages divers
bull Au-delagrave de lrsquoobjet
bull Modegraveles de composant
bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur
bull Uniteacute de reacuteutilisation et de deacuteploiement
bull Support de plateformes heacuteteacuterogegravenes
bull Support de plateformes distribueacutees
bull Vision composant promulgueacutee dans lrsquoUE (arc 2)
bull Au-delagrave du composant
bull SOA Service Oriented Architecture SaS Software as a Service
bull Compatible avec la vision orienteacute-composant
bull Application = choreacutegraphie entre composants dont on ne connait que les API
Unified Modeling Language
UML
Une notation standard pour repreacutesenter des
modegraveles drsquoartefacts logiciels
31
UML historique
bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)
et OOSE (~use case) premier standard OMG
bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique
encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )
bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication
drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution
rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration
bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues
UML est un standard industriel (OMG et ISO) =gt communiquer++ 32
Meacutethode OOD
BOOCH
Modeacutelisation dynamique
Meacutethode OOSE
JACOBSON
Cas drsquoutilisation
Meacutethode OMT
RUMBAUGH
Modeacutelisation statique
UML
Unified Modeling Language
Selon temps disponible
Diagramme de classe
bull Structure (attributs opeacuterations) associations typage
bull Expression Add Constante eval()int + impleacutementations
Diagramme drsquoobjet
bull Instances des classes dans une configuration particuliegravere snapshot
de lrsquoapplication
bull 3+2
Diagramme de Seacutequence
bull Axe temps (vertical) interactions entre instances donneacutees
eacutechangeacutees
bull (3+2)eval()
Intersections non vide entre ces diagrammes
bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances
bull Le modegravele UML unifie et assure la coheacuterence 33
Structure de lrsquoUE et Organisation
34
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
Complexiteacute technique
Solution complexe
bull Interfaces composants physique embarqueacute
bull Temps reacuteel
bull Connecteacute accegraves donneacutees carte
bull Synchronisation camerasdirection
bull Interface homme machine
bull Langages et technologiesframework techniques multiples
bull Prise de deacutecision systegraveme critique
bull Systegraveme de systegravemes le systegraveme est un assemblage complexe de
sous-systegravemes heacuteteacuterogegraveneshellip
La solution ne se limite pas au code consideacuterer lrsquoensemble des
documents et artefacts neacutecessaires pour le deacuteveloppement drsquoun tel
systegraveme
5
Dimension Humaine
Intervenants Divers =gt visions diverses
bull Chef de Projet avancement projet affectation ressources
6
Diagramme de Gantt Kanban
Burndown Chart
Images wikipedia
Dimension Humaine
bull Architecte architecture logicielle et mateacuterielle composants
interactions
7
Vision architecturaleComposants Instanciation
API InterfacesSeacutequences interactions
Dimension Humaine
Deacuteveloppeur reacutealiser le code
8
Spec Fonctionnelle
API Interfaces
Tests
Code ()
Conception O-O
Dimension Humaine
Administrateur Base de Donneacutee entretenir et geacuterer les donneacutees
optimiser les accegraves
9
EntityRelationship
Requecirctes et volumes perfs
Requecirctes SQL
Dimension Humaine
Intervenants Divers =gt visions diverses
bull Testeur deacutefinir et executer les tests
o Specifications fonctionnelle tests api
bull ClientInvestisseur vue drsquoensemble deacutefinition du besoin
o use case tests de validation maquettesprotos
bull Designer ergonomie graphismes
o charte graphique maquettes use case
bull Responsable qualiteacute suivi et mesure de la qualiteacute
o Normes qualiteacute meacutetriques instruments
hellip
La DIVERSITE = multitude de points de vue deacutedieacutes agrave une utilisation
particuliegravere
On ne peutdoit pas chercher agrave tout fusionner
Le code nrsquoest qursquoun artefact parmi drsquoautres peu abstrait et inadapteacute pour
beaucoup drsquointervenants10
La meacutethode de deacuteveloppement objectifs
La meacutethode a pour but drsquoameacuteliorer
bull La productiviteacute des eacutequipes
bull Time to market deacutelais coucircts
bull La qualiteacute des logiciels produits
bull Portabiliteacute robustesse seacutecuriteacutehellip
Souvent une opposition entre ces deux critegraveres
Quelles qualiteacutes doit posseacuteder le logiciel
11
Qualiteacutes du logiciel
12Source ISO20500com
Cf aussi ISO9126
ISOIEC 25010 categorization of
software quality requirements
Qualiteacutes du logiciel
De nombreuses qualiteacutes souhaitables selon le domaine drsquoapplication
et les contraintes
La qualiteacute est un meacutetier en soi (peu abordeacute dans lrsquoUE)
bull Meacutetrique indicateur quantitatifs aidant agrave eacutevaluer lrsquoeacutevolution drsquoune
dimension de la qualiteacute logicielle
bull Loc locclasse classespackage profondeur drsquoheacuteritage couverture de test
bull Maitrise du risque identification classification mesures de
mitigationhellip
Dans lrsquoUE on recherche en particulier
bull Portabiliteacute minimiser les hypothegraveses sur la plateforme technique
permettre la reacutealisation sur toute plateforme
bull Reacuteutilisabiliteacute modulariteacute accent sur la construction drsquoune
application agrave lrsquoaide de composants reacuteutilisables
bull Aspects non fonctionnels peu abordeacutes performance seacutecuriteacutehellip13
Composantes drsquoune meacutethodeLa deacutemarche deacutecrit les actions agrave mener
leur enchaicircnement et les dispositifs
neacutecessaires pour atteindre les objectifs
du projet
La conduite est la technique de preacutevision
et drsquoordonnancement des travaux Elle
permet le suivi du projet
Lrsquoapproche est la technique de
modeacutelisation utiliseacutee au cours du
projet
La technique de modeacutelisation comprend
bull un formalisme
bull une heuristique
Le formalisme offre une faccedilon de
srsquoexprimer du texte des modegraveles
Lrsquoheuristique est la technique de
deacutecouverte crsquoest la maniegravere de
trouver et de formuler les eacuteleacutements
neacutecessaires au modegravele
14
DEMARCHE APPROCHE
Deacutecoupage du
projet en phases
deacutefinition du
qui fait quoi
Techniques de
repreacutesentation
de modeacutelisation
CONDUITE
Techniques de preacutevisions
dordonnancement et de
suivi
Peu abordeacute dans lrsquoUE (cours 28)
Choix UML
Composants
Objets
Cycle en V
Meacutethode
Qursquoattend-t-on drsquoune meacutethode
bull Quand
bull Deacutecoupage en eacutetapes maniegravere drsquoaborder le problegraveme de deacutecouper le
raisonnement
bull Qui
bull Deacutefinition des rocircles des intervenants organisation
bull Comment
bull Strateacutegies et outils de modeacutelisation preacuteconiseacutes traitements neacutecessaire pour
chaque eacutetape
bull Quoi
bull Speacutecification des objectifs et besoins traccedilabiliteacute des exigences
Quelles sont les qualiteacutes rechercheacutees drsquoune meacutethode
bull Gains de production Gains de qualiteacute Reacuteduction des coucircts
Gestion des risques
15
Meacutethode de Deacuteveloppement une deacutefinition
Un meacutethode doit expliquer quand comment qui doit faire des modegraveles et des scheacutema
(lesquels dans quel objectif agrave quelle granulariteacute drsquoabstraction) pour concevoir une
application
Une meacutethode doit permettre de bons reacutesultats (gain de productiviteacute)
Elle doit ecirctre facile agrave apprendre et agrave mettre en œuvre
Toute meacutethodologie de deacuteveloppement a pour objectif de produire un logiciel reacutepondant au
mieux au cahier des charges tout en ameacuteliorant la productiviteacute
Elle deacutefinit
1048707 des eacutetapes (eg Analyse Tests Validation Conceptionhellip) le plus souvent
aussi une deacutecoupe en iteacuterations plus ou moins longues
1048707 des moyens (eg diagrammes UML tests fiche deacutetailleacutee geacuteneacuteration de
codehellip)
1048707 des produits intermeacutediaires du deacuteveloppement (cagraved les deacutelivrables eg
document drsquoanalyse tests de validationhellip)
Elle peut aussi deacutefinir une structure geacuteneacuterale pour la gestion de projet (petites ou grosses
eacutequipes organisation du travailhellip
16
II Modeacutelisation
17
Retour sur la diversiteacute
Diffeacuterents intervenants
bull Chef de projet (avanceacutee du projet)
bull Deacuteveloppeur (meacutethode algo deacutependance aux API)
bull Testeur (deacutefinition de tests exeacutecution de tests)
bull Deploiement (mise en production tests de monteacutee en charge)
bull Qualiteacute (respect des charte meacutetriques)
bull CLIENT (besoin satisfait)
Points de vue diffeacuterents
Niveaux drsquoabstraction diffeacuterents
Pourtant tout cela doit ecirctre coheacuterent
Limitation des langages de programmation
1 seul niveau drsquoabstraction
1 seul niveau de diversiteacute
Les modegraveles offrent une solution pour aider agrave maintenir la coherence
tout en acceptant la diversiteacute
18
Qursquoest-ce qursquoun modegravele
Modegravele = repreacutesentation simplifieacutee du reacuteel
Contraintes de repreacutesentation facilitant le passage au logiciel 19
Pourquoi Modeacuteliser
20
Entre utilisateurs etinformaticiens
Entre informaticiens
analystes concepteursdeacuteveloppeursmainteneurs
Qualiteacute des modegraveles
coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie
Le premier but de la modeacutelisation
est de garantir
la bonne compreacutehension
entre les acteurs
COMMUNIQUER
CONTROLER
Le second but de la modeacutelisation
est de fournir une description
rigoureuse et controcirclable
Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme
bull documenter
Support outilleacute geacuteneacuteration de code de documentation
Analyses du modegravele (consistance coheacuterence)
Communiquer et Controcircler
Comment atteindre ces objectifs
Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode
de modeacutelisation on peut citer
bull la coheacuterence toutes les repreacutesentations qui composent le modegravele
sarticulent entre elles et ne se contredisent pas
bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute
linformation neacutecessaire pour atteindre les buts fixeacutes
bull la pertinence toutes les informations rassembleacutees dans le modegravele
ont leur utiliteacute
bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que
le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance
et la structure qui facilite son exploitation
21
Coheacuterence et Diversiteacute
Il y a un fort besoin de coheacuterence
Comme toutes les informations visent agrave deacutevelopper une application
il serait inteacuteressant de tout centraliser
Mais il ne faut pas uniformiser
Chaque intervenant a sa faccedilon propre de travailler
On ne peut pas donner un langage de programmation agrave un client
22
Modegravele et Diagramme
Modegravele
Lrsquoensemble des informations permettant la conception le
deacuteveloppement et la maintenance du logiciel (diagrammes code
tests documentation hellip)
Diagramme ou Vue
Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon
un certain point de vue (selon un axe servant un objectif) 23
Deacuteveloppeur Analyste Meacutetier
Modegravele
Objet Composant Service
24
Orienteacute-Objet
Concepts cleacute facilitant la construction drsquoapplications de grande taille
maintenables
Geacuteneacuterations de langages
1 Primitif asm
Pas de structure GOTO
2 Proceacutedural C Pascal
Structure de controcircle fonctions tableaux struct
3 Orienteacute Objet Java C++ hellip
Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation
4 Dynamique Python Perl JS hellip
Typage faible (scalaire list hash) reflexion avanceacutee
En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)
aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25
La classe
La classe
Cateacutegorie ou type
drsquoobjet
Munie de responsabiliteacutes
mateacuterialiseacutees par unedes
interfaces
Deacutefinie par ses attributs
et meacutethodes
Exemple classe
locomotive
Locomotive
- modele- puissance- vitesse- couleur
+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )
Lrsquoobjet instance drsquoune classe
bull Les instances drsquoobjets sont
deacutefinies par la valeur de leurs
attributs
bull Les traitements qursquoon peut
reacutealiser sur ces attributs sont
deacutefinis au niveau de la classe
agrave travers les meacutethodes
Un objet = instance drsquoune classe
dans un eacutetat particulier
-couleur= rouge
-puissance= 18000
-vitesse= 230
-modele= AL2119
Loco21Locomotive
L rsquoobjet notion drsquoencapsulation
Services publics
Donneacuteesproteacutegeacutees
Environnement
Messages
OBJET
Substituabiliteacute du noyau sans impacter les clients
L rsquoabstraction
La modeacutelisation OO pousse agrave
gagner en abstraction
Une application est composeacutee
drsquointeractions complexes entre
composants
Lrsquoencapsulation permet de faire
abstraction de lrsquoimpleacutementation
effective des comportements du
systegraveme pour reposer sur la notion
drsquointerface
Une interface deacutefinit des
responsabiliteacutes
indeacutependamment de la faccedilon
dont elles sont reacutealiseacutees
+demarrer()
+accelerer()
+freiner()
Locomotive
ltltabstractgtgt
LocomotiveDiesel LocomotiveElectrique
ltltinterfacegtgt
Objets vs Composants
bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS
bull Uniteacute de reacuteutilisation meacutediocre
bull La classe ne vient pas seule package entier
bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur
bull SGBD relationnel langages divers
bull Au-delagrave de lrsquoobjet
bull Modegraveles de composant
bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur
bull Uniteacute de reacuteutilisation et de deacuteploiement
bull Support de plateformes heacuteteacuterogegravenes
bull Support de plateformes distribueacutees
bull Vision composant promulgueacutee dans lrsquoUE (arc 2)
bull Au-delagrave du composant
bull SOA Service Oriented Architecture SaS Software as a Service
bull Compatible avec la vision orienteacute-composant
bull Application = choreacutegraphie entre composants dont on ne connait que les API
Unified Modeling Language
UML
Une notation standard pour repreacutesenter des
modegraveles drsquoartefacts logiciels
31
UML historique
bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)
et OOSE (~use case) premier standard OMG
bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique
encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )
bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication
drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution
rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration
bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues
UML est un standard industriel (OMG et ISO) =gt communiquer++ 32
Meacutethode OOD
BOOCH
Modeacutelisation dynamique
Meacutethode OOSE
JACOBSON
Cas drsquoutilisation
Meacutethode OMT
RUMBAUGH
Modeacutelisation statique
UML
Unified Modeling Language
Selon temps disponible
Diagramme de classe
bull Structure (attributs opeacuterations) associations typage
bull Expression Add Constante eval()int + impleacutementations
Diagramme drsquoobjet
bull Instances des classes dans une configuration particuliegravere snapshot
de lrsquoapplication
bull 3+2
Diagramme de Seacutequence
bull Axe temps (vertical) interactions entre instances donneacutees
eacutechangeacutees
bull (3+2)eval()
Intersections non vide entre ces diagrammes
bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances
bull Le modegravele UML unifie et assure la coheacuterence 33
Structure de lrsquoUE et Organisation
34
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
Dimension Humaine
Intervenants Divers =gt visions diverses
bull Chef de Projet avancement projet affectation ressources
6
Diagramme de Gantt Kanban
Burndown Chart
Images wikipedia
Dimension Humaine
bull Architecte architecture logicielle et mateacuterielle composants
interactions
7
Vision architecturaleComposants Instanciation
API InterfacesSeacutequences interactions
Dimension Humaine
Deacuteveloppeur reacutealiser le code
8
Spec Fonctionnelle
API Interfaces
Tests
Code ()
Conception O-O
Dimension Humaine
Administrateur Base de Donneacutee entretenir et geacuterer les donneacutees
optimiser les accegraves
9
EntityRelationship
Requecirctes et volumes perfs
Requecirctes SQL
Dimension Humaine
Intervenants Divers =gt visions diverses
bull Testeur deacutefinir et executer les tests
o Specifications fonctionnelle tests api
bull ClientInvestisseur vue drsquoensemble deacutefinition du besoin
o use case tests de validation maquettesprotos
bull Designer ergonomie graphismes
o charte graphique maquettes use case
bull Responsable qualiteacute suivi et mesure de la qualiteacute
o Normes qualiteacute meacutetriques instruments
hellip
La DIVERSITE = multitude de points de vue deacutedieacutes agrave une utilisation
particuliegravere
On ne peutdoit pas chercher agrave tout fusionner
Le code nrsquoest qursquoun artefact parmi drsquoautres peu abstrait et inadapteacute pour
beaucoup drsquointervenants10
La meacutethode de deacuteveloppement objectifs
La meacutethode a pour but drsquoameacuteliorer
bull La productiviteacute des eacutequipes
bull Time to market deacutelais coucircts
bull La qualiteacute des logiciels produits
bull Portabiliteacute robustesse seacutecuriteacutehellip
Souvent une opposition entre ces deux critegraveres
Quelles qualiteacutes doit posseacuteder le logiciel
11
Qualiteacutes du logiciel
12Source ISO20500com
Cf aussi ISO9126
ISOIEC 25010 categorization of
software quality requirements
Qualiteacutes du logiciel
De nombreuses qualiteacutes souhaitables selon le domaine drsquoapplication
et les contraintes
La qualiteacute est un meacutetier en soi (peu abordeacute dans lrsquoUE)
bull Meacutetrique indicateur quantitatifs aidant agrave eacutevaluer lrsquoeacutevolution drsquoune
dimension de la qualiteacute logicielle
bull Loc locclasse classespackage profondeur drsquoheacuteritage couverture de test
bull Maitrise du risque identification classification mesures de
mitigationhellip
Dans lrsquoUE on recherche en particulier
bull Portabiliteacute minimiser les hypothegraveses sur la plateforme technique
permettre la reacutealisation sur toute plateforme
bull Reacuteutilisabiliteacute modulariteacute accent sur la construction drsquoune
application agrave lrsquoaide de composants reacuteutilisables
bull Aspects non fonctionnels peu abordeacutes performance seacutecuriteacutehellip13
Composantes drsquoune meacutethodeLa deacutemarche deacutecrit les actions agrave mener
leur enchaicircnement et les dispositifs
neacutecessaires pour atteindre les objectifs
du projet
La conduite est la technique de preacutevision
et drsquoordonnancement des travaux Elle
permet le suivi du projet
Lrsquoapproche est la technique de
modeacutelisation utiliseacutee au cours du
projet
La technique de modeacutelisation comprend
bull un formalisme
bull une heuristique
Le formalisme offre une faccedilon de
srsquoexprimer du texte des modegraveles
Lrsquoheuristique est la technique de
deacutecouverte crsquoest la maniegravere de
trouver et de formuler les eacuteleacutements
neacutecessaires au modegravele
14
DEMARCHE APPROCHE
Deacutecoupage du
projet en phases
deacutefinition du
qui fait quoi
Techniques de
repreacutesentation
de modeacutelisation
CONDUITE
Techniques de preacutevisions
dordonnancement et de
suivi
Peu abordeacute dans lrsquoUE (cours 28)
Choix UML
Composants
Objets
Cycle en V
Meacutethode
Qursquoattend-t-on drsquoune meacutethode
bull Quand
bull Deacutecoupage en eacutetapes maniegravere drsquoaborder le problegraveme de deacutecouper le
raisonnement
bull Qui
bull Deacutefinition des rocircles des intervenants organisation
bull Comment
bull Strateacutegies et outils de modeacutelisation preacuteconiseacutes traitements neacutecessaire pour
chaque eacutetape
bull Quoi
bull Speacutecification des objectifs et besoins traccedilabiliteacute des exigences
Quelles sont les qualiteacutes rechercheacutees drsquoune meacutethode
bull Gains de production Gains de qualiteacute Reacuteduction des coucircts
Gestion des risques
15
Meacutethode de Deacuteveloppement une deacutefinition
Un meacutethode doit expliquer quand comment qui doit faire des modegraveles et des scheacutema
(lesquels dans quel objectif agrave quelle granulariteacute drsquoabstraction) pour concevoir une
application
Une meacutethode doit permettre de bons reacutesultats (gain de productiviteacute)
Elle doit ecirctre facile agrave apprendre et agrave mettre en œuvre
Toute meacutethodologie de deacuteveloppement a pour objectif de produire un logiciel reacutepondant au
mieux au cahier des charges tout en ameacuteliorant la productiviteacute
Elle deacutefinit
1048707 des eacutetapes (eg Analyse Tests Validation Conceptionhellip) le plus souvent
aussi une deacutecoupe en iteacuterations plus ou moins longues
1048707 des moyens (eg diagrammes UML tests fiche deacutetailleacutee geacuteneacuteration de
codehellip)
1048707 des produits intermeacutediaires du deacuteveloppement (cagraved les deacutelivrables eg
document drsquoanalyse tests de validationhellip)
Elle peut aussi deacutefinir une structure geacuteneacuterale pour la gestion de projet (petites ou grosses
eacutequipes organisation du travailhellip
16
II Modeacutelisation
17
Retour sur la diversiteacute
Diffeacuterents intervenants
bull Chef de projet (avanceacutee du projet)
bull Deacuteveloppeur (meacutethode algo deacutependance aux API)
bull Testeur (deacutefinition de tests exeacutecution de tests)
bull Deploiement (mise en production tests de monteacutee en charge)
bull Qualiteacute (respect des charte meacutetriques)
bull CLIENT (besoin satisfait)
Points de vue diffeacuterents
Niveaux drsquoabstraction diffeacuterents
Pourtant tout cela doit ecirctre coheacuterent
Limitation des langages de programmation
1 seul niveau drsquoabstraction
1 seul niveau de diversiteacute
Les modegraveles offrent une solution pour aider agrave maintenir la coherence
tout en acceptant la diversiteacute
18
Qursquoest-ce qursquoun modegravele
Modegravele = repreacutesentation simplifieacutee du reacuteel
Contraintes de repreacutesentation facilitant le passage au logiciel 19
Pourquoi Modeacuteliser
20
Entre utilisateurs etinformaticiens
Entre informaticiens
analystes concepteursdeacuteveloppeursmainteneurs
Qualiteacute des modegraveles
coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie
Le premier but de la modeacutelisation
est de garantir
la bonne compreacutehension
entre les acteurs
COMMUNIQUER
CONTROLER
Le second but de la modeacutelisation
est de fournir une description
rigoureuse et controcirclable
Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme
bull documenter
Support outilleacute geacuteneacuteration de code de documentation
Analyses du modegravele (consistance coheacuterence)
Communiquer et Controcircler
Comment atteindre ces objectifs
Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode
de modeacutelisation on peut citer
bull la coheacuterence toutes les repreacutesentations qui composent le modegravele
sarticulent entre elles et ne se contredisent pas
bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute
linformation neacutecessaire pour atteindre les buts fixeacutes
bull la pertinence toutes les informations rassembleacutees dans le modegravele
ont leur utiliteacute
bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que
le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance
et la structure qui facilite son exploitation
21
Coheacuterence et Diversiteacute
Il y a un fort besoin de coheacuterence
Comme toutes les informations visent agrave deacutevelopper une application
il serait inteacuteressant de tout centraliser
Mais il ne faut pas uniformiser
Chaque intervenant a sa faccedilon propre de travailler
On ne peut pas donner un langage de programmation agrave un client
22
Modegravele et Diagramme
Modegravele
Lrsquoensemble des informations permettant la conception le
deacuteveloppement et la maintenance du logiciel (diagrammes code
tests documentation hellip)
Diagramme ou Vue
Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon
un certain point de vue (selon un axe servant un objectif) 23
Deacuteveloppeur Analyste Meacutetier
Modegravele
Objet Composant Service
24
Orienteacute-Objet
Concepts cleacute facilitant la construction drsquoapplications de grande taille
maintenables
Geacuteneacuterations de langages
1 Primitif asm
Pas de structure GOTO
2 Proceacutedural C Pascal
Structure de controcircle fonctions tableaux struct
3 Orienteacute Objet Java C++ hellip
Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation
4 Dynamique Python Perl JS hellip
Typage faible (scalaire list hash) reflexion avanceacutee
En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)
aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25
La classe
La classe
Cateacutegorie ou type
drsquoobjet
Munie de responsabiliteacutes
mateacuterialiseacutees par unedes
interfaces
Deacutefinie par ses attributs
et meacutethodes
Exemple classe
locomotive
Locomotive
- modele- puissance- vitesse- couleur
+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )
Lrsquoobjet instance drsquoune classe
bull Les instances drsquoobjets sont
deacutefinies par la valeur de leurs
attributs
bull Les traitements qursquoon peut
reacutealiser sur ces attributs sont
deacutefinis au niveau de la classe
agrave travers les meacutethodes
Un objet = instance drsquoune classe
dans un eacutetat particulier
-couleur= rouge
-puissance= 18000
-vitesse= 230
-modele= AL2119
Loco21Locomotive
L rsquoobjet notion drsquoencapsulation
Services publics
Donneacuteesproteacutegeacutees
Environnement
Messages
OBJET
Substituabiliteacute du noyau sans impacter les clients
L rsquoabstraction
La modeacutelisation OO pousse agrave
gagner en abstraction
Une application est composeacutee
drsquointeractions complexes entre
composants
Lrsquoencapsulation permet de faire
abstraction de lrsquoimpleacutementation
effective des comportements du
systegraveme pour reposer sur la notion
drsquointerface
Une interface deacutefinit des
responsabiliteacutes
indeacutependamment de la faccedilon
dont elles sont reacutealiseacutees
+demarrer()
+accelerer()
+freiner()
Locomotive
ltltabstractgtgt
LocomotiveDiesel LocomotiveElectrique
ltltinterfacegtgt
Objets vs Composants
bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS
bull Uniteacute de reacuteutilisation meacutediocre
bull La classe ne vient pas seule package entier
bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur
bull SGBD relationnel langages divers
bull Au-delagrave de lrsquoobjet
bull Modegraveles de composant
bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur
bull Uniteacute de reacuteutilisation et de deacuteploiement
bull Support de plateformes heacuteteacuterogegravenes
bull Support de plateformes distribueacutees
bull Vision composant promulgueacutee dans lrsquoUE (arc 2)
bull Au-delagrave du composant
bull SOA Service Oriented Architecture SaS Software as a Service
bull Compatible avec la vision orienteacute-composant
bull Application = choreacutegraphie entre composants dont on ne connait que les API
Unified Modeling Language
UML
Une notation standard pour repreacutesenter des
modegraveles drsquoartefacts logiciels
31
UML historique
bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)
et OOSE (~use case) premier standard OMG
bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique
encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )
bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication
drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution
rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration
bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues
UML est un standard industriel (OMG et ISO) =gt communiquer++ 32
Meacutethode OOD
BOOCH
Modeacutelisation dynamique
Meacutethode OOSE
JACOBSON
Cas drsquoutilisation
Meacutethode OMT
RUMBAUGH
Modeacutelisation statique
UML
Unified Modeling Language
Selon temps disponible
Diagramme de classe
bull Structure (attributs opeacuterations) associations typage
bull Expression Add Constante eval()int + impleacutementations
Diagramme drsquoobjet
bull Instances des classes dans une configuration particuliegravere snapshot
de lrsquoapplication
bull 3+2
Diagramme de Seacutequence
bull Axe temps (vertical) interactions entre instances donneacutees
eacutechangeacutees
bull (3+2)eval()
Intersections non vide entre ces diagrammes
bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances
bull Le modegravele UML unifie et assure la coheacuterence 33
Structure de lrsquoUE et Organisation
34
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
Dimension Humaine
bull Architecte architecture logicielle et mateacuterielle composants
interactions
7
Vision architecturaleComposants Instanciation
API InterfacesSeacutequences interactions
Dimension Humaine
Deacuteveloppeur reacutealiser le code
8
Spec Fonctionnelle
API Interfaces
Tests
Code ()
Conception O-O
Dimension Humaine
Administrateur Base de Donneacutee entretenir et geacuterer les donneacutees
optimiser les accegraves
9
EntityRelationship
Requecirctes et volumes perfs
Requecirctes SQL
Dimension Humaine
Intervenants Divers =gt visions diverses
bull Testeur deacutefinir et executer les tests
o Specifications fonctionnelle tests api
bull ClientInvestisseur vue drsquoensemble deacutefinition du besoin
o use case tests de validation maquettesprotos
bull Designer ergonomie graphismes
o charte graphique maquettes use case
bull Responsable qualiteacute suivi et mesure de la qualiteacute
o Normes qualiteacute meacutetriques instruments
hellip
La DIVERSITE = multitude de points de vue deacutedieacutes agrave une utilisation
particuliegravere
On ne peutdoit pas chercher agrave tout fusionner
Le code nrsquoest qursquoun artefact parmi drsquoautres peu abstrait et inadapteacute pour
beaucoup drsquointervenants10
La meacutethode de deacuteveloppement objectifs
La meacutethode a pour but drsquoameacuteliorer
bull La productiviteacute des eacutequipes
bull Time to market deacutelais coucircts
bull La qualiteacute des logiciels produits
bull Portabiliteacute robustesse seacutecuriteacutehellip
Souvent une opposition entre ces deux critegraveres
Quelles qualiteacutes doit posseacuteder le logiciel
11
Qualiteacutes du logiciel
12Source ISO20500com
Cf aussi ISO9126
ISOIEC 25010 categorization of
software quality requirements
Qualiteacutes du logiciel
De nombreuses qualiteacutes souhaitables selon le domaine drsquoapplication
et les contraintes
La qualiteacute est un meacutetier en soi (peu abordeacute dans lrsquoUE)
bull Meacutetrique indicateur quantitatifs aidant agrave eacutevaluer lrsquoeacutevolution drsquoune
dimension de la qualiteacute logicielle
bull Loc locclasse classespackage profondeur drsquoheacuteritage couverture de test
bull Maitrise du risque identification classification mesures de
mitigationhellip
Dans lrsquoUE on recherche en particulier
bull Portabiliteacute minimiser les hypothegraveses sur la plateforme technique
permettre la reacutealisation sur toute plateforme
bull Reacuteutilisabiliteacute modulariteacute accent sur la construction drsquoune
application agrave lrsquoaide de composants reacuteutilisables
bull Aspects non fonctionnels peu abordeacutes performance seacutecuriteacutehellip13
Composantes drsquoune meacutethodeLa deacutemarche deacutecrit les actions agrave mener
leur enchaicircnement et les dispositifs
neacutecessaires pour atteindre les objectifs
du projet
La conduite est la technique de preacutevision
et drsquoordonnancement des travaux Elle
permet le suivi du projet
Lrsquoapproche est la technique de
modeacutelisation utiliseacutee au cours du
projet
La technique de modeacutelisation comprend
bull un formalisme
bull une heuristique
Le formalisme offre une faccedilon de
srsquoexprimer du texte des modegraveles
Lrsquoheuristique est la technique de
deacutecouverte crsquoest la maniegravere de
trouver et de formuler les eacuteleacutements
neacutecessaires au modegravele
14
DEMARCHE APPROCHE
Deacutecoupage du
projet en phases
deacutefinition du
qui fait quoi
Techniques de
repreacutesentation
de modeacutelisation
CONDUITE
Techniques de preacutevisions
dordonnancement et de
suivi
Peu abordeacute dans lrsquoUE (cours 28)
Choix UML
Composants
Objets
Cycle en V
Meacutethode
Qursquoattend-t-on drsquoune meacutethode
bull Quand
bull Deacutecoupage en eacutetapes maniegravere drsquoaborder le problegraveme de deacutecouper le
raisonnement
bull Qui
bull Deacutefinition des rocircles des intervenants organisation
bull Comment
bull Strateacutegies et outils de modeacutelisation preacuteconiseacutes traitements neacutecessaire pour
chaque eacutetape
bull Quoi
bull Speacutecification des objectifs et besoins traccedilabiliteacute des exigences
Quelles sont les qualiteacutes rechercheacutees drsquoune meacutethode
bull Gains de production Gains de qualiteacute Reacuteduction des coucircts
Gestion des risques
15
Meacutethode de Deacuteveloppement une deacutefinition
Un meacutethode doit expliquer quand comment qui doit faire des modegraveles et des scheacutema
(lesquels dans quel objectif agrave quelle granulariteacute drsquoabstraction) pour concevoir une
application
Une meacutethode doit permettre de bons reacutesultats (gain de productiviteacute)
Elle doit ecirctre facile agrave apprendre et agrave mettre en œuvre
Toute meacutethodologie de deacuteveloppement a pour objectif de produire un logiciel reacutepondant au
mieux au cahier des charges tout en ameacuteliorant la productiviteacute
Elle deacutefinit
1048707 des eacutetapes (eg Analyse Tests Validation Conceptionhellip) le plus souvent
aussi une deacutecoupe en iteacuterations plus ou moins longues
1048707 des moyens (eg diagrammes UML tests fiche deacutetailleacutee geacuteneacuteration de
codehellip)
1048707 des produits intermeacutediaires du deacuteveloppement (cagraved les deacutelivrables eg
document drsquoanalyse tests de validationhellip)
Elle peut aussi deacutefinir une structure geacuteneacuterale pour la gestion de projet (petites ou grosses
eacutequipes organisation du travailhellip
16
II Modeacutelisation
17
Retour sur la diversiteacute
Diffeacuterents intervenants
bull Chef de projet (avanceacutee du projet)
bull Deacuteveloppeur (meacutethode algo deacutependance aux API)
bull Testeur (deacutefinition de tests exeacutecution de tests)
bull Deploiement (mise en production tests de monteacutee en charge)
bull Qualiteacute (respect des charte meacutetriques)
bull CLIENT (besoin satisfait)
Points de vue diffeacuterents
Niveaux drsquoabstraction diffeacuterents
Pourtant tout cela doit ecirctre coheacuterent
Limitation des langages de programmation
1 seul niveau drsquoabstraction
1 seul niveau de diversiteacute
Les modegraveles offrent une solution pour aider agrave maintenir la coherence
tout en acceptant la diversiteacute
18
Qursquoest-ce qursquoun modegravele
Modegravele = repreacutesentation simplifieacutee du reacuteel
Contraintes de repreacutesentation facilitant le passage au logiciel 19
Pourquoi Modeacuteliser
20
Entre utilisateurs etinformaticiens
Entre informaticiens
analystes concepteursdeacuteveloppeursmainteneurs
Qualiteacute des modegraveles
coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie
Le premier but de la modeacutelisation
est de garantir
la bonne compreacutehension
entre les acteurs
COMMUNIQUER
CONTROLER
Le second but de la modeacutelisation
est de fournir une description
rigoureuse et controcirclable
Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme
bull documenter
Support outilleacute geacuteneacuteration de code de documentation
Analyses du modegravele (consistance coheacuterence)
Communiquer et Controcircler
Comment atteindre ces objectifs
Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode
de modeacutelisation on peut citer
bull la coheacuterence toutes les repreacutesentations qui composent le modegravele
sarticulent entre elles et ne se contredisent pas
bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute
linformation neacutecessaire pour atteindre les buts fixeacutes
bull la pertinence toutes les informations rassembleacutees dans le modegravele
ont leur utiliteacute
bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que
le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance
et la structure qui facilite son exploitation
21
Coheacuterence et Diversiteacute
Il y a un fort besoin de coheacuterence
Comme toutes les informations visent agrave deacutevelopper une application
il serait inteacuteressant de tout centraliser
Mais il ne faut pas uniformiser
Chaque intervenant a sa faccedilon propre de travailler
On ne peut pas donner un langage de programmation agrave un client
22
Modegravele et Diagramme
Modegravele
Lrsquoensemble des informations permettant la conception le
deacuteveloppement et la maintenance du logiciel (diagrammes code
tests documentation hellip)
Diagramme ou Vue
Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon
un certain point de vue (selon un axe servant un objectif) 23
Deacuteveloppeur Analyste Meacutetier
Modegravele
Objet Composant Service
24
Orienteacute-Objet
Concepts cleacute facilitant la construction drsquoapplications de grande taille
maintenables
Geacuteneacuterations de langages
1 Primitif asm
Pas de structure GOTO
2 Proceacutedural C Pascal
Structure de controcircle fonctions tableaux struct
3 Orienteacute Objet Java C++ hellip
Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation
4 Dynamique Python Perl JS hellip
Typage faible (scalaire list hash) reflexion avanceacutee
En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)
aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25
La classe
La classe
Cateacutegorie ou type
drsquoobjet
Munie de responsabiliteacutes
mateacuterialiseacutees par unedes
interfaces
Deacutefinie par ses attributs
et meacutethodes
Exemple classe
locomotive
Locomotive
- modele- puissance- vitesse- couleur
+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )
Lrsquoobjet instance drsquoune classe
bull Les instances drsquoobjets sont
deacutefinies par la valeur de leurs
attributs
bull Les traitements qursquoon peut
reacutealiser sur ces attributs sont
deacutefinis au niveau de la classe
agrave travers les meacutethodes
Un objet = instance drsquoune classe
dans un eacutetat particulier
-couleur= rouge
-puissance= 18000
-vitesse= 230
-modele= AL2119
Loco21Locomotive
L rsquoobjet notion drsquoencapsulation
Services publics
Donneacuteesproteacutegeacutees
Environnement
Messages
OBJET
Substituabiliteacute du noyau sans impacter les clients
L rsquoabstraction
La modeacutelisation OO pousse agrave
gagner en abstraction
Une application est composeacutee
drsquointeractions complexes entre
composants
Lrsquoencapsulation permet de faire
abstraction de lrsquoimpleacutementation
effective des comportements du
systegraveme pour reposer sur la notion
drsquointerface
Une interface deacutefinit des
responsabiliteacutes
indeacutependamment de la faccedilon
dont elles sont reacutealiseacutees
+demarrer()
+accelerer()
+freiner()
Locomotive
ltltabstractgtgt
LocomotiveDiesel LocomotiveElectrique
ltltinterfacegtgt
Objets vs Composants
bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS
bull Uniteacute de reacuteutilisation meacutediocre
bull La classe ne vient pas seule package entier
bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur
bull SGBD relationnel langages divers
bull Au-delagrave de lrsquoobjet
bull Modegraveles de composant
bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur
bull Uniteacute de reacuteutilisation et de deacuteploiement
bull Support de plateformes heacuteteacuterogegravenes
bull Support de plateformes distribueacutees
bull Vision composant promulgueacutee dans lrsquoUE (arc 2)
bull Au-delagrave du composant
bull SOA Service Oriented Architecture SaS Software as a Service
bull Compatible avec la vision orienteacute-composant
bull Application = choreacutegraphie entre composants dont on ne connait que les API
Unified Modeling Language
UML
Une notation standard pour repreacutesenter des
modegraveles drsquoartefacts logiciels
31
UML historique
bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)
et OOSE (~use case) premier standard OMG
bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique
encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )
bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication
drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution
rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration
bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues
UML est un standard industriel (OMG et ISO) =gt communiquer++ 32
Meacutethode OOD
BOOCH
Modeacutelisation dynamique
Meacutethode OOSE
JACOBSON
Cas drsquoutilisation
Meacutethode OMT
RUMBAUGH
Modeacutelisation statique
UML
Unified Modeling Language
Selon temps disponible
Diagramme de classe
bull Structure (attributs opeacuterations) associations typage
bull Expression Add Constante eval()int + impleacutementations
Diagramme drsquoobjet
bull Instances des classes dans une configuration particuliegravere snapshot
de lrsquoapplication
bull 3+2
Diagramme de Seacutequence
bull Axe temps (vertical) interactions entre instances donneacutees
eacutechangeacutees
bull (3+2)eval()
Intersections non vide entre ces diagrammes
bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances
bull Le modegravele UML unifie et assure la coheacuterence 33
Structure de lrsquoUE et Organisation
34
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
Dimension Humaine
Deacuteveloppeur reacutealiser le code
8
Spec Fonctionnelle
API Interfaces
Tests
Code ()
Conception O-O
Dimension Humaine
Administrateur Base de Donneacutee entretenir et geacuterer les donneacutees
optimiser les accegraves
9
EntityRelationship
Requecirctes et volumes perfs
Requecirctes SQL
Dimension Humaine
Intervenants Divers =gt visions diverses
bull Testeur deacutefinir et executer les tests
o Specifications fonctionnelle tests api
bull ClientInvestisseur vue drsquoensemble deacutefinition du besoin
o use case tests de validation maquettesprotos
bull Designer ergonomie graphismes
o charte graphique maquettes use case
bull Responsable qualiteacute suivi et mesure de la qualiteacute
o Normes qualiteacute meacutetriques instruments
hellip
La DIVERSITE = multitude de points de vue deacutedieacutes agrave une utilisation
particuliegravere
On ne peutdoit pas chercher agrave tout fusionner
Le code nrsquoest qursquoun artefact parmi drsquoautres peu abstrait et inadapteacute pour
beaucoup drsquointervenants10
La meacutethode de deacuteveloppement objectifs
La meacutethode a pour but drsquoameacuteliorer
bull La productiviteacute des eacutequipes
bull Time to market deacutelais coucircts
bull La qualiteacute des logiciels produits
bull Portabiliteacute robustesse seacutecuriteacutehellip
Souvent une opposition entre ces deux critegraveres
Quelles qualiteacutes doit posseacuteder le logiciel
11
Qualiteacutes du logiciel
12Source ISO20500com
Cf aussi ISO9126
ISOIEC 25010 categorization of
software quality requirements
Qualiteacutes du logiciel
De nombreuses qualiteacutes souhaitables selon le domaine drsquoapplication
et les contraintes
La qualiteacute est un meacutetier en soi (peu abordeacute dans lrsquoUE)
bull Meacutetrique indicateur quantitatifs aidant agrave eacutevaluer lrsquoeacutevolution drsquoune
dimension de la qualiteacute logicielle
bull Loc locclasse classespackage profondeur drsquoheacuteritage couverture de test
bull Maitrise du risque identification classification mesures de
mitigationhellip
Dans lrsquoUE on recherche en particulier
bull Portabiliteacute minimiser les hypothegraveses sur la plateforme technique
permettre la reacutealisation sur toute plateforme
bull Reacuteutilisabiliteacute modulariteacute accent sur la construction drsquoune
application agrave lrsquoaide de composants reacuteutilisables
bull Aspects non fonctionnels peu abordeacutes performance seacutecuriteacutehellip13
Composantes drsquoune meacutethodeLa deacutemarche deacutecrit les actions agrave mener
leur enchaicircnement et les dispositifs
neacutecessaires pour atteindre les objectifs
du projet
La conduite est la technique de preacutevision
et drsquoordonnancement des travaux Elle
permet le suivi du projet
Lrsquoapproche est la technique de
modeacutelisation utiliseacutee au cours du
projet
La technique de modeacutelisation comprend
bull un formalisme
bull une heuristique
Le formalisme offre une faccedilon de
srsquoexprimer du texte des modegraveles
Lrsquoheuristique est la technique de
deacutecouverte crsquoest la maniegravere de
trouver et de formuler les eacuteleacutements
neacutecessaires au modegravele
14
DEMARCHE APPROCHE
Deacutecoupage du
projet en phases
deacutefinition du
qui fait quoi
Techniques de
repreacutesentation
de modeacutelisation
CONDUITE
Techniques de preacutevisions
dordonnancement et de
suivi
Peu abordeacute dans lrsquoUE (cours 28)
Choix UML
Composants
Objets
Cycle en V
Meacutethode
Qursquoattend-t-on drsquoune meacutethode
bull Quand
bull Deacutecoupage en eacutetapes maniegravere drsquoaborder le problegraveme de deacutecouper le
raisonnement
bull Qui
bull Deacutefinition des rocircles des intervenants organisation
bull Comment
bull Strateacutegies et outils de modeacutelisation preacuteconiseacutes traitements neacutecessaire pour
chaque eacutetape
bull Quoi
bull Speacutecification des objectifs et besoins traccedilabiliteacute des exigences
Quelles sont les qualiteacutes rechercheacutees drsquoune meacutethode
bull Gains de production Gains de qualiteacute Reacuteduction des coucircts
Gestion des risques
15
Meacutethode de Deacuteveloppement une deacutefinition
Un meacutethode doit expliquer quand comment qui doit faire des modegraveles et des scheacutema
(lesquels dans quel objectif agrave quelle granulariteacute drsquoabstraction) pour concevoir une
application
Une meacutethode doit permettre de bons reacutesultats (gain de productiviteacute)
Elle doit ecirctre facile agrave apprendre et agrave mettre en œuvre
Toute meacutethodologie de deacuteveloppement a pour objectif de produire un logiciel reacutepondant au
mieux au cahier des charges tout en ameacuteliorant la productiviteacute
Elle deacutefinit
1048707 des eacutetapes (eg Analyse Tests Validation Conceptionhellip) le plus souvent
aussi une deacutecoupe en iteacuterations plus ou moins longues
1048707 des moyens (eg diagrammes UML tests fiche deacutetailleacutee geacuteneacuteration de
codehellip)
1048707 des produits intermeacutediaires du deacuteveloppement (cagraved les deacutelivrables eg
document drsquoanalyse tests de validationhellip)
Elle peut aussi deacutefinir une structure geacuteneacuterale pour la gestion de projet (petites ou grosses
eacutequipes organisation du travailhellip
16
II Modeacutelisation
17
Retour sur la diversiteacute
Diffeacuterents intervenants
bull Chef de projet (avanceacutee du projet)
bull Deacuteveloppeur (meacutethode algo deacutependance aux API)
bull Testeur (deacutefinition de tests exeacutecution de tests)
bull Deploiement (mise en production tests de monteacutee en charge)
bull Qualiteacute (respect des charte meacutetriques)
bull CLIENT (besoin satisfait)
Points de vue diffeacuterents
Niveaux drsquoabstraction diffeacuterents
Pourtant tout cela doit ecirctre coheacuterent
Limitation des langages de programmation
1 seul niveau drsquoabstraction
1 seul niveau de diversiteacute
Les modegraveles offrent une solution pour aider agrave maintenir la coherence
tout en acceptant la diversiteacute
18
Qursquoest-ce qursquoun modegravele
Modegravele = repreacutesentation simplifieacutee du reacuteel
Contraintes de repreacutesentation facilitant le passage au logiciel 19
Pourquoi Modeacuteliser
20
Entre utilisateurs etinformaticiens
Entre informaticiens
analystes concepteursdeacuteveloppeursmainteneurs
Qualiteacute des modegraveles
coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie
Le premier but de la modeacutelisation
est de garantir
la bonne compreacutehension
entre les acteurs
COMMUNIQUER
CONTROLER
Le second but de la modeacutelisation
est de fournir une description
rigoureuse et controcirclable
Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme
bull documenter
Support outilleacute geacuteneacuteration de code de documentation
Analyses du modegravele (consistance coheacuterence)
Communiquer et Controcircler
Comment atteindre ces objectifs
Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode
de modeacutelisation on peut citer
bull la coheacuterence toutes les repreacutesentations qui composent le modegravele
sarticulent entre elles et ne se contredisent pas
bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute
linformation neacutecessaire pour atteindre les buts fixeacutes
bull la pertinence toutes les informations rassembleacutees dans le modegravele
ont leur utiliteacute
bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que
le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance
et la structure qui facilite son exploitation
21
Coheacuterence et Diversiteacute
Il y a un fort besoin de coheacuterence
Comme toutes les informations visent agrave deacutevelopper une application
il serait inteacuteressant de tout centraliser
Mais il ne faut pas uniformiser
Chaque intervenant a sa faccedilon propre de travailler
On ne peut pas donner un langage de programmation agrave un client
22
Modegravele et Diagramme
Modegravele
Lrsquoensemble des informations permettant la conception le
deacuteveloppement et la maintenance du logiciel (diagrammes code
tests documentation hellip)
Diagramme ou Vue
Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon
un certain point de vue (selon un axe servant un objectif) 23
Deacuteveloppeur Analyste Meacutetier
Modegravele
Objet Composant Service
24
Orienteacute-Objet
Concepts cleacute facilitant la construction drsquoapplications de grande taille
maintenables
Geacuteneacuterations de langages
1 Primitif asm
Pas de structure GOTO
2 Proceacutedural C Pascal
Structure de controcircle fonctions tableaux struct
3 Orienteacute Objet Java C++ hellip
Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation
4 Dynamique Python Perl JS hellip
Typage faible (scalaire list hash) reflexion avanceacutee
En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)
aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25
La classe
La classe
Cateacutegorie ou type
drsquoobjet
Munie de responsabiliteacutes
mateacuterialiseacutees par unedes
interfaces
Deacutefinie par ses attributs
et meacutethodes
Exemple classe
locomotive
Locomotive
- modele- puissance- vitesse- couleur
+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )
Lrsquoobjet instance drsquoune classe
bull Les instances drsquoobjets sont
deacutefinies par la valeur de leurs
attributs
bull Les traitements qursquoon peut
reacutealiser sur ces attributs sont
deacutefinis au niveau de la classe
agrave travers les meacutethodes
Un objet = instance drsquoune classe
dans un eacutetat particulier
-couleur= rouge
-puissance= 18000
-vitesse= 230
-modele= AL2119
Loco21Locomotive
L rsquoobjet notion drsquoencapsulation
Services publics
Donneacuteesproteacutegeacutees
Environnement
Messages
OBJET
Substituabiliteacute du noyau sans impacter les clients
L rsquoabstraction
La modeacutelisation OO pousse agrave
gagner en abstraction
Une application est composeacutee
drsquointeractions complexes entre
composants
Lrsquoencapsulation permet de faire
abstraction de lrsquoimpleacutementation
effective des comportements du
systegraveme pour reposer sur la notion
drsquointerface
Une interface deacutefinit des
responsabiliteacutes
indeacutependamment de la faccedilon
dont elles sont reacutealiseacutees
+demarrer()
+accelerer()
+freiner()
Locomotive
ltltabstractgtgt
LocomotiveDiesel LocomotiveElectrique
ltltinterfacegtgt
Objets vs Composants
bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS
bull Uniteacute de reacuteutilisation meacutediocre
bull La classe ne vient pas seule package entier
bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur
bull SGBD relationnel langages divers
bull Au-delagrave de lrsquoobjet
bull Modegraveles de composant
bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur
bull Uniteacute de reacuteutilisation et de deacuteploiement
bull Support de plateformes heacuteteacuterogegravenes
bull Support de plateformes distribueacutees
bull Vision composant promulgueacutee dans lrsquoUE (arc 2)
bull Au-delagrave du composant
bull SOA Service Oriented Architecture SaS Software as a Service
bull Compatible avec la vision orienteacute-composant
bull Application = choreacutegraphie entre composants dont on ne connait que les API
Unified Modeling Language
UML
Une notation standard pour repreacutesenter des
modegraveles drsquoartefacts logiciels
31
UML historique
bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)
et OOSE (~use case) premier standard OMG
bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique
encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )
bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication
drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution
rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration
bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues
UML est un standard industriel (OMG et ISO) =gt communiquer++ 32
Meacutethode OOD
BOOCH
Modeacutelisation dynamique
Meacutethode OOSE
JACOBSON
Cas drsquoutilisation
Meacutethode OMT
RUMBAUGH
Modeacutelisation statique
UML
Unified Modeling Language
Selon temps disponible
Diagramme de classe
bull Structure (attributs opeacuterations) associations typage
bull Expression Add Constante eval()int + impleacutementations
Diagramme drsquoobjet
bull Instances des classes dans une configuration particuliegravere snapshot
de lrsquoapplication
bull 3+2
Diagramme de Seacutequence
bull Axe temps (vertical) interactions entre instances donneacutees
eacutechangeacutees
bull (3+2)eval()
Intersections non vide entre ces diagrammes
bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances
bull Le modegravele UML unifie et assure la coheacuterence 33
Structure de lrsquoUE et Organisation
34
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
Dimension Humaine
Administrateur Base de Donneacutee entretenir et geacuterer les donneacutees
optimiser les accegraves
9
EntityRelationship
Requecirctes et volumes perfs
Requecirctes SQL
Dimension Humaine
Intervenants Divers =gt visions diverses
bull Testeur deacutefinir et executer les tests
o Specifications fonctionnelle tests api
bull ClientInvestisseur vue drsquoensemble deacutefinition du besoin
o use case tests de validation maquettesprotos
bull Designer ergonomie graphismes
o charte graphique maquettes use case
bull Responsable qualiteacute suivi et mesure de la qualiteacute
o Normes qualiteacute meacutetriques instruments
hellip
La DIVERSITE = multitude de points de vue deacutedieacutes agrave une utilisation
particuliegravere
On ne peutdoit pas chercher agrave tout fusionner
Le code nrsquoest qursquoun artefact parmi drsquoautres peu abstrait et inadapteacute pour
beaucoup drsquointervenants10
La meacutethode de deacuteveloppement objectifs
La meacutethode a pour but drsquoameacuteliorer
bull La productiviteacute des eacutequipes
bull Time to market deacutelais coucircts
bull La qualiteacute des logiciels produits
bull Portabiliteacute robustesse seacutecuriteacutehellip
Souvent une opposition entre ces deux critegraveres
Quelles qualiteacutes doit posseacuteder le logiciel
11
Qualiteacutes du logiciel
12Source ISO20500com
Cf aussi ISO9126
ISOIEC 25010 categorization of
software quality requirements
Qualiteacutes du logiciel
De nombreuses qualiteacutes souhaitables selon le domaine drsquoapplication
et les contraintes
La qualiteacute est un meacutetier en soi (peu abordeacute dans lrsquoUE)
bull Meacutetrique indicateur quantitatifs aidant agrave eacutevaluer lrsquoeacutevolution drsquoune
dimension de la qualiteacute logicielle
bull Loc locclasse classespackage profondeur drsquoheacuteritage couverture de test
bull Maitrise du risque identification classification mesures de
mitigationhellip
Dans lrsquoUE on recherche en particulier
bull Portabiliteacute minimiser les hypothegraveses sur la plateforme technique
permettre la reacutealisation sur toute plateforme
bull Reacuteutilisabiliteacute modulariteacute accent sur la construction drsquoune
application agrave lrsquoaide de composants reacuteutilisables
bull Aspects non fonctionnels peu abordeacutes performance seacutecuriteacutehellip13
Composantes drsquoune meacutethodeLa deacutemarche deacutecrit les actions agrave mener
leur enchaicircnement et les dispositifs
neacutecessaires pour atteindre les objectifs
du projet
La conduite est la technique de preacutevision
et drsquoordonnancement des travaux Elle
permet le suivi du projet
Lrsquoapproche est la technique de
modeacutelisation utiliseacutee au cours du
projet
La technique de modeacutelisation comprend
bull un formalisme
bull une heuristique
Le formalisme offre une faccedilon de
srsquoexprimer du texte des modegraveles
Lrsquoheuristique est la technique de
deacutecouverte crsquoest la maniegravere de
trouver et de formuler les eacuteleacutements
neacutecessaires au modegravele
14
DEMARCHE APPROCHE
Deacutecoupage du
projet en phases
deacutefinition du
qui fait quoi
Techniques de
repreacutesentation
de modeacutelisation
CONDUITE
Techniques de preacutevisions
dordonnancement et de
suivi
Peu abordeacute dans lrsquoUE (cours 28)
Choix UML
Composants
Objets
Cycle en V
Meacutethode
Qursquoattend-t-on drsquoune meacutethode
bull Quand
bull Deacutecoupage en eacutetapes maniegravere drsquoaborder le problegraveme de deacutecouper le
raisonnement
bull Qui
bull Deacutefinition des rocircles des intervenants organisation
bull Comment
bull Strateacutegies et outils de modeacutelisation preacuteconiseacutes traitements neacutecessaire pour
chaque eacutetape
bull Quoi
bull Speacutecification des objectifs et besoins traccedilabiliteacute des exigences
Quelles sont les qualiteacutes rechercheacutees drsquoune meacutethode
bull Gains de production Gains de qualiteacute Reacuteduction des coucircts
Gestion des risques
15
Meacutethode de Deacuteveloppement une deacutefinition
Un meacutethode doit expliquer quand comment qui doit faire des modegraveles et des scheacutema
(lesquels dans quel objectif agrave quelle granulariteacute drsquoabstraction) pour concevoir une
application
Une meacutethode doit permettre de bons reacutesultats (gain de productiviteacute)
Elle doit ecirctre facile agrave apprendre et agrave mettre en œuvre
Toute meacutethodologie de deacuteveloppement a pour objectif de produire un logiciel reacutepondant au
mieux au cahier des charges tout en ameacuteliorant la productiviteacute
Elle deacutefinit
1048707 des eacutetapes (eg Analyse Tests Validation Conceptionhellip) le plus souvent
aussi une deacutecoupe en iteacuterations plus ou moins longues
1048707 des moyens (eg diagrammes UML tests fiche deacutetailleacutee geacuteneacuteration de
codehellip)
1048707 des produits intermeacutediaires du deacuteveloppement (cagraved les deacutelivrables eg
document drsquoanalyse tests de validationhellip)
Elle peut aussi deacutefinir une structure geacuteneacuterale pour la gestion de projet (petites ou grosses
eacutequipes organisation du travailhellip
16
II Modeacutelisation
17
Retour sur la diversiteacute
Diffeacuterents intervenants
bull Chef de projet (avanceacutee du projet)
bull Deacuteveloppeur (meacutethode algo deacutependance aux API)
bull Testeur (deacutefinition de tests exeacutecution de tests)
bull Deploiement (mise en production tests de monteacutee en charge)
bull Qualiteacute (respect des charte meacutetriques)
bull CLIENT (besoin satisfait)
Points de vue diffeacuterents
Niveaux drsquoabstraction diffeacuterents
Pourtant tout cela doit ecirctre coheacuterent
Limitation des langages de programmation
1 seul niveau drsquoabstraction
1 seul niveau de diversiteacute
Les modegraveles offrent une solution pour aider agrave maintenir la coherence
tout en acceptant la diversiteacute
18
Qursquoest-ce qursquoun modegravele
Modegravele = repreacutesentation simplifieacutee du reacuteel
Contraintes de repreacutesentation facilitant le passage au logiciel 19
Pourquoi Modeacuteliser
20
Entre utilisateurs etinformaticiens
Entre informaticiens
analystes concepteursdeacuteveloppeursmainteneurs
Qualiteacute des modegraveles
coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie
Le premier but de la modeacutelisation
est de garantir
la bonne compreacutehension
entre les acteurs
COMMUNIQUER
CONTROLER
Le second but de la modeacutelisation
est de fournir une description
rigoureuse et controcirclable
Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme
bull documenter
Support outilleacute geacuteneacuteration de code de documentation
Analyses du modegravele (consistance coheacuterence)
Communiquer et Controcircler
Comment atteindre ces objectifs
Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode
de modeacutelisation on peut citer
bull la coheacuterence toutes les repreacutesentations qui composent le modegravele
sarticulent entre elles et ne se contredisent pas
bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute
linformation neacutecessaire pour atteindre les buts fixeacutes
bull la pertinence toutes les informations rassembleacutees dans le modegravele
ont leur utiliteacute
bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que
le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance
et la structure qui facilite son exploitation
21
Coheacuterence et Diversiteacute
Il y a un fort besoin de coheacuterence
Comme toutes les informations visent agrave deacutevelopper une application
il serait inteacuteressant de tout centraliser
Mais il ne faut pas uniformiser
Chaque intervenant a sa faccedilon propre de travailler
On ne peut pas donner un langage de programmation agrave un client
22
Modegravele et Diagramme
Modegravele
Lrsquoensemble des informations permettant la conception le
deacuteveloppement et la maintenance du logiciel (diagrammes code
tests documentation hellip)
Diagramme ou Vue
Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon
un certain point de vue (selon un axe servant un objectif) 23
Deacuteveloppeur Analyste Meacutetier
Modegravele
Objet Composant Service
24
Orienteacute-Objet
Concepts cleacute facilitant la construction drsquoapplications de grande taille
maintenables
Geacuteneacuterations de langages
1 Primitif asm
Pas de structure GOTO
2 Proceacutedural C Pascal
Structure de controcircle fonctions tableaux struct
3 Orienteacute Objet Java C++ hellip
Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation
4 Dynamique Python Perl JS hellip
Typage faible (scalaire list hash) reflexion avanceacutee
En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)
aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25
La classe
La classe
Cateacutegorie ou type
drsquoobjet
Munie de responsabiliteacutes
mateacuterialiseacutees par unedes
interfaces
Deacutefinie par ses attributs
et meacutethodes
Exemple classe
locomotive
Locomotive
- modele- puissance- vitesse- couleur
+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )
Lrsquoobjet instance drsquoune classe
bull Les instances drsquoobjets sont
deacutefinies par la valeur de leurs
attributs
bull Les traitements qursquoon peut
reacutealiser sur ces attributs sont
deacutefinis au niveau de la classe
agrave travers les meacutethodes
Un objet = instance drsquoune classe
dans un eacutetat particulier
-couleur= rouge
-puissance= 18000
-vitesse= 230
-modele= AL2119
Loco21Locomotive
L rsquoobjet notion drsquoencapsulation
Services publics
Donneacuteesproteacutegeacutees
Environnement
Messages
OBJET
Substituabiliteacute du noyau sans impacter les clients
L rsquoabstraction
La modeacutelisation OO pousse agrave
gagner en abstraction
Une application est composeacutee
drsquointeractions complexes entre
composants
Lrsquoencapsulation permet de faire
abstraction de lrsquoimpleacutementation
effective des comportements du
systegraveme pour reposer sur la notion
drsquointerface
Une interface deacutefinit des
responsabiliteacutes
indeacutependamment de la faccedilon
dont elles sont reacutealiseacutees
+demarrer()
+accelerer()
+freiner()
Locomotive
ltltabstractgtgt
LocomotiveDiesel LocomotiveElectrique
ltltinterfacegtgt
Objets vs Composants
bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS
bull Uniteacute de reacuteutilisation meacutediocre
bull La classe ne vient pas seule package entier
bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur
bull SGBD relationnel langages divers
bull Au-delagrave de lrsquoobjet
bull Modegraveles de composant
bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur
bull Uniteacute de reacuteutilisation et de deacuteploiement
bull Support de plateformes heacuteteacuterogegravenes
bull Support de plateformes distribueacutees
bull Vision composant promulgueacutee dans lrsquoUE (arc 2)
bull Au-delagrave du composant
bull SOA Service Oriented Architecture SaS Software as a Service
bull Compatible avec la vision orienteacute-composant
bull Application = choreacutegraphie entre composants dont on ne connait que les API
Unified Modeling Language
UML
Une notation standard pour repreacutesenter des
modegraveles drsquoartefacts logiciels
31
UML historique
bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)
et OOSE (~use case) premier standard OMG
bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique
encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )
bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication
drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution
rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration
bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues
UML est un standard industriel (OMG et ISO) =gt communiquer++ 32
Meacutethode OOD
BOOCH
Modeacutelisation dynamique
Meacutethode OOSE
JACOBSON
Cas drsquoutilisation
Meacutethode OMT
RUMBAUGH
Modeacutelisation statique
UML
Unified Modeling Language
Selon temps disponible
Diagramme de classe
bull Structure (attributs opeacuterations) associations typage
bull Expression Add Constante eval()int + impleacutementations
Diagramme drsquoobjet
bull Instances des classes dans une configuration particuliegravere snapshot
de lrsquoapplication
bull 3+2
Diagramme de Seacutequence
bull Axe temps (vertical) interactions entre instances donneacutees
eacutechangeacutees
bull (3+2)eval()
Intersections non vide entre ces diagrammes
bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances
bull Le modegravele UML unifie et assure la coheacuterence 33
Structure de lrsquoUE et Organisation
34
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
Dimension Humaine
Intervenants Divers =gt visions diverses
bull Testeur deacutefinir et executer les tests
o Specifications fonctionnelle tests api
bull ClientInvestisseur vue drsquoensemble deacutefinition du besoin
o use case tests de validation maquettesprotos
bull Designer ergonomie graphismes
o charte graphique maquettes use case
bull Responsable qualiteacute suivi et mesure de la qualiteacute
o Normes qualiteacute meacutetriques instruments
hellip
La DIVERSITE = multitude de points de vue deacutedieacutes agrave une utilisation
particuliegravere
On ne peutdoit pas chercher agrave tout fusionner
Le code nrsquoest qursquoun artefact parmi drsquoautres peu abstrait et inadapteacute pour
beaucoup drsquointervenants10
La meacutethode de deacuteveloppement objectifs
La meacutethode a pour but drsquoameacuteliorer
bull La productiviteacute des eacutequipes
bull Time to market deacutelais coucircts
bull La qualiteacute des logiciels produits
bull Portabiliteacute robustesse seacutecuriteacutehellip
Souvent une opposition entre ces deux critegraveres
Quelles qualiteacutes doit posseacuteder le logiciel
11
Qualiteacutes du logiciel
12Source ISO20500com
Cf aussi ISO9126
ISOIEC 25010 categorization of
software quality requirements
Qualiteacutes du logiciel
De nombreuses qualiteacutes souhaitables selon le domaine drsquoapplication
et les contraintes
La qualiteacute est un meacutetier en soi (peu abordeacute dans lrsquoUE)
bull Meacutetrique indicateur quantitatifs aidant agrave eacutevaluer lrsquoeacutevolution drsquoune
dimension de la qualiteacute logicielle
bull Loc locclasse classespackage profondeur drsquoheacuteritage couverture de test
bull Maitrise du risque identification classification mesures de
mitigationhellip
Dans lrsquoUE on recherche en particulier
bull Portabiliteacute minimiser les hypothegraveses sur la plateforme technique
permettre la reacutealisation sur toute plateforme
bull Reacuteutilisabiliteacute modulariteacute accent sur la construction drsquoune
application agrave lrsquoaide de composants reacuteutilisables
bull Aspects non fonctionnels peu abordeacutes performance seacutecuriteacutehellip13
Composantes drsquoune meacutethodeLa deacutemarche deacutecrit les actions agrave mener
leur enchaicircnement et les dispositifs
neacutecessaires pour atteindre les objectifs
du projet
La conduite est la technique de preacutevision
et drsquoordonnancement des travaux Elle
permet le suivi du projet
Lrsquoapproche est la technique de
modeacutelisation utiliseacutee au cours du
projet
La technique de modeacutelisation comprend
bull un formalisme
bull une heuristique
Le formalisme offre une faccedilon de
srsquoexprimer du texte des modegraveles
Lrsquoheuristique est la technique de
deacutecouverte crsquoest la maniegravere de
trouver et de formuler les eacuteleacutements
neacutecessaires au modegravele
14
DEMARCHE APPROCHE
Deacutecoupage du
projet en phases
deacutefinition du
qui fait quoi
Techniques de
repreacutesentation
de modeacutelisation
CONDUITE
Techniques de preacutevisions
dordonnancement et de
suivi
Peu abordeacute dans lrsquoUE (cours 28)
Choix UML
Composants
Objets
Cycle en V
Meacutethode
Qursquoattend-t-on drsquoune meacutethode
bull Quand
bull Deacutecoupage en eacutetapes maniegravere drsquoaborder le problegraveme de deacutecouper le
raisonnement
bull Qui
bull Deacutefinition des rocircles des intervenants organisation
bull Comment
bull Strateacutegies et outils de modeacutelisation preacuteconiseacutes traitements neacutecessaire pour
chaque eacutetape
bull Quoi
bull Speacutecification des objectifs et besoins traccedilabiliteacute des exigences
Quelles sont les qualiteacutes rechercheacutees drsquoune meacutethode
bull Gains de production Gains de qualiteacute Reacuteduction des coucircts
Gestion des risques
15
Meacutethode de Deacuteveloppement une deacutefinition
Un meacutethode doit expliquer quand comment qui doit faire des modegraveles et des scheacutema
(lesquels dans quel objectif agrave quelle granulariteacute drsquoabstraction) pour concevoir une
application
Une meacutethode doit permettre de bons reacutesultats (gain de productiviteacute)
Elle doit ecirctre facile agrave apprendre et agrave mettre en œuvre
Toute meacutethodologie de deacuteveloppement a pour objectif de produire un logiciel reacutepondant au
mieux au cahier des charges tout en ameacuteliorant la productiviteacute
Elle deacutefinit
1048707 des eacutetapes (eg Analyse Tests Validation Conceptionhellip) le plus souvent
aussi une deacutecoupe en iteacuterations plus ou moins longues
1048707 des moyens (eg diagrammes UML tests fiche deacutetailleacutee geacuteneacuteration de
codehellip)
1048707 des produits intermeacutediaires du deacuteveloppement (cagraved les deacutelivrables eg
document drsquoanalyse tests de validationhellip)
Elle peut aussi deacutefinir une structure geacuteneacuterale pour la gestion de projet (petites ou grosses
eacutequipes organisation du travailhellip
16
II Modeacutelisation
17
Retour sur la diversiteacute
Diffeacuterents intervenants
bull Chef de projet (avanceacutee du projet)
bull Deacuteveloppeur (meacutethode algo deacutependance aux API)
bull Testeur (deacutefinition de tests exeacutecution de tests)
bull Deploiement (mise en production tests de monteacutee en charge)
bull Qualiteacute (respect des charte meacutetriques)
bull CLIENT (besoin satisfait)
Points de vue diffeacuterents
Niveaux drsquoabstraction diffeacuterents
Pourtant tout cela doit ecirctre coheacuterent
Limitation des langages de programmation
1 seul niveau drsquoabstraction
1 seul niveau de diversiteacute
Les modegraveles offrent une solution pour aider agrave maintenir la coherence
tout en acceptant la diversiteacute
18
Qursquoest-ce qursquoun modegravele
Modegravele = repreacutesentation simplifieacutee du reacuteel
Contraintes de repreacutesentation facilitant le passage au logiciel 19
Pourquoi Modeacuteliser
20
Entre utilisateurs etinformaticiens
Entre informaticiens
analystes concepteursdeacuteveloppeursmainteneurs
Qualiteacute des modegraveles
coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie
Le premier but de la modeacutelisation
est de garantir
la bonne compreacutehension
entre les acteurs
COMMUNIQUER
CONTROLER
Le second but de la modeacutelisation
est de fournir une description
rigoureuse et controcirclable
Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme
bull documenter
Support outilleacute geacuteneacuteration de code de documentation
Analyses du modegravele (consistance coheacuterence)
Communiquer et Controcircler
Comment atteindre ces objectifs
Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode
de modeacutelisation on peut citer
bull la coheacuterence toutes les repreacutesentations qui composent le modegravele
sarticulent entre elles et ne se contredisent pas
bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute
linformation neacutecessaire pour atteindre les buts fixeacutes
bull la pertinence toutes les informations rassembleacutees dans le modegravele
ont leur utiliteacute
bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que
le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance
et la structure qui facilite son exploitation
21
Coheacuterence et Diversiteacute
Il y a un fort besoin de coheacuterence
Comme toutes les informations visent agrave deacutevelopper une application
il serait inteacuteressant de tout centraliser
Mais il ne faut pas uniformiser
Chaque intervenant a sa faccedilon propre de travailler
On ne peut pas donner un langage de programmation agrave un client
22
Modegravele et Diagramme
Modegravele
Lrsquoensemble des informations permettant la conception le
deacuteveloppement et la maintenance du logiciel (diagrammes code
tests documentation hellip)
Diagramme ou Vue
Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon
un certain point de vue (selon un axe servant un objectif) 23
Deacuteveloppeur Analyste Meacutetier
Modegravele
Objet Composant Service
24
Orienteacute-Objet
Concepts cleacute facilitant la construction drsquoapplications de grande taille
maintenables
Geacuteneacuterations de langages
1 Primitif asm
Pas de structure GOTO
2 Proceacutedural C Pascal
Structure de controcircle fonctions tableaux struct
3 Orienteacute Objet Java C++ hellip
Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation
4 Dynamique Python Perl JS hellip
Typage faible (scalaire list hash) reflexion avanceacutee
En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)
aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25
La classe
La classe
Cateacutegorie ou type
drsquoobjet
Munie de responsabiliteacutes
mateacuterialiseacutees par unedes
interfaces
Deacutefinie par ses attributs
et meacutethodes
Exemple classe
locomotive
Locomotive
- modele- puissance- vitesse- couleur
+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )
Lrsquoobjet instance drsquoune classe
bull Les instances drsquoobjets sont
deacutefinies par la valeur de leurs
attributs
bull Les traitements qursquoon peut
reacutealiser sur ces attributs sont
deacutefinis au niveau de la classe
agrave travers les meacutethodes
Un objet = instance drsquoune classe
dans un eacutetat particulier
-couleur= rouge
-puissance= 18000
-vitesse= 230
-modele= AL2119
Loco21Locomotive
L rsquoobjet notion drsquoencapsulation
Services publics
Donneacuteesproteacutegeacutees
Environnement
Messages
OBJET
Substituabiliteacute du noyau sans impacter les clients
L rsquoabstraction
La modeacutelisation OO pousse agrave
gagner en abstraction
Une application est composeacutee
drsquointeractions complexes entre
composants
Lrsquoencapsulation permet de faire
abstraction de lrsquoimpleacutementation
effective des comportements du
systegraveme pour reposer sur la notion
drsquointerface
Une interface deacutefinit des
responsabiliteacutes
indeacutependamment de la faccedilon
dont elles sont reacutealiseacutees
+demarrer()
+accelerer()
+freiner()
Locomotive
ltltabstractgtgt
LocomotiveDiesel LocomotiveElectrique
ltltinterfacegtgt
Objets vs Composants
bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS
bull Uniteacute de reacuteutilisation meacutediocre
bull La classe ne vient pas seule package entier
bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur
bull SGBD relationnel langages divers
bull Au-delagrave de lrsquoobjet
bull Modegraveles de composant
bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur
bull Uniteacute de reacuteutilisation et de deacuteploiement
bull Support de plateformes heacuteteacuterogegravenes
bull Support de plateformes distribueacutees
bull Vision composant promulgueacutee dans lrsquoUE (arc 2)
bull Au-delagrave du composant
bull SOA Service Oriented Architecture SaS Software as a Service
bull Compatible avec la vision orienteacute-composant
bull Application = choreacutegraphie entre composants dont on ne connait que les API
Unified Modeling Language
UML
Une notation standard pour repreacutesenter des
modegraveles drsquoartefacts logiciels
31
UML historique
bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)
et OOSE (~use case) premier standard OMG
bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique
encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )
bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication
drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution
rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration
bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues
UML est un standard industriel (OMG et ISO) =gt communiquer++ 32
Meacutethode OOD
BOOCH
Modeacutelisation dynamique
Meacutethode OOSE
JACOBSON
Cas drsquoutilisation
Meacutethode OMT
RUMBAUGH
Modeacutelisation statique
UML
Unified Modeling Language
Selon temps disponible
Diagramme de classe
bull Structure (attributs opeacuterations) associations typage
bull Expression Add Constante eval()int + impleacutementations
Diagramme drsquoobjet
bull Instances des classes dans une configuration particuliegravere snapshot
de lrsquoapplication
bull 3+2
Diagramme de Seacutequence
bull Axe temps (vertical) interactions entre instances donneacutees
eacutechangeacutees
bull (3+2)eval()
Intersections non vide entre ces diagrammes
bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances
bull Le modegravele UML unifie et assure la coheacuterence 33
Structure de lrsquoUE et Organisation
34
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
La meacutethode de deacuteveloppement objectifs
La meacutethode a pour but drsquoameacuteliorer
bull La productiviteacute des eacutequipes
bull Time to market deacutelais coucircts
bull La qualiteacute des logiciels produits
bull Portabiliteacute robustesse seacutecuriteacutehellip
Souvent une opposition entre ces deux critegraveres
Quelles qualiteacutes doit posseacuteder le logiciel
11
Qualiteacutes du logiciel
12Source ISO20500com
Cf aussi ISO9126
ISOIEC 25010 categorization of
software quality requirements
Qualiteacutes du logiciel
De nombreuses qualiteacutes souhaitables selon le domaine drsquoapplication
et les contraintes
La qualiteacute est un meacutetier en soi (peu abordeacute dans lrsquoUE)
bull Meacutetrique indicateur quantitatifs aidant agrave eacutevaluer lrsquoeacutevolution drsquoune
dimension de la qualiteacute logicielle
bull Loc locclasse classespackage profondeur drsquoheacuteritage couverture de test
bull Maitrise du risque identification classification mesures de
mitigationhellip
Dans lrsquoUE on recherche en particulier
bull Portabiliteacute minimiser les hypothegraveses sur la plateforme technique
permettre la reacutealisation sur toute plateforme
bull Reacuteutilisabiliteacute modulariteacute accent sur la construction drsquoune
application agrave lrsquoaide de composants reacuteutilisables
bull Aspects non fonctionnels peu abordeacutes performance seacutecuriteacutehellip13
Composantes drsquoune meacutethodeLa deacutemarche deacutecrit les actions agrave mener
leur enchaicircnement et les dispositifs
neacutecessaires pour atteindre les objectifs
du projet
La conduite est la technique de preacutevision
et drsquoordonnancement des travaux Elle
permet le suivi du projet
Lrsquoapproche est la technique de
modeacutelisation utiliseacutee au cours du
projet
La technique de modeacutelisation comprend
bull un formalisme
bull une heuristique
Le formalisme offre une faccedilon de
srsquoexprimer du texte des modegraveles
Lrsquoheuristique est la technique de
deacutecouverte crsquoest la maniegravere de
trouver et de formuler les eacuteleacutements
neacutecessaires au modegravele
14
DEMARCHE APPROCHE
Deacutecoupage du
projet en phases
deacutefinition du
qui fait quoi
Techniques de
repreacutesentation
de modeacutelisation
CONDUITE
Techniques de preacutevisions
dordonnancement et de
suivi
Peu abordeacute dans lrsquoUE (cours 28)
Choix UML
Composants
Objets
Cycle en V
Meacutethode
Qursquoattend-t-on drsquoune meacutethode
bull Quand
bull Deacutecoupage en eacutetapes maniegravere drsquoaborder le problegraveme de deacutecouper le
raisonnement
bull Qui
bull Deacutefinition des rocircles des intervenants organisation
bull Comment
bull Strateacutegies et outils de modeacutelisation preacuteconiseacutes traitements neacutecessaire pour
chaque eacutetape
bull Quoi
bull Speacutecification des objectifs et besoins traccedilabiliteacute des exigences
Quelles sont les qualiteacutes rechercheacutees drsquoune meacutethode
bull Gains de production Gains de qualiteacute Reacuteduction des coucircts
Gestion des risques
15
Meacutethode de Deacuteveloppement une deacutefinition
Un meacutethode doit expliquer quand comment qui doit faire des modegraveles et des scheacutema
(lesquels dans quel objectif agrave quelle granulariteacute drsquoabstraction) pour concevoir une
application
Une meacutethode doit permettre de bons reacutesultats (gain de productiviteacute)
Elle doit ecirctre facile agrave apprendre et agrave mettre en œuvre
Toute meacutethodologie de deacuteveloppement a pour objectif de produire un logiciel reacutepondant au
mieux au cahier des charges tout en ameacuteliorant la productiviteacute
Elle deacutefinit
1048707 des eacutetapes (eg Analyse Tests Validation Conceptionhellip) le plus souvent
aussi une deacutecoupe en iteacuterations plus ou moins longues
1048707 des moyens (eg diagrammes UML tests fiche deacutetailleacutee geacuteneacuteration de
codehellip)
1048707 des produits intermeacutediaires du deacuteveloppement (cagraved les deacutelivrables eg
document drsquoanalyse tests de validationhellip)
Elle peut aussi deacutefinir une structure geacuteneacuterale pour la gestion de projet (petites ou grosses
eacutequipes organisation du travailhellip
16
II Modeacutelisation
17
Retour sur la diversiteacute
Diffeacuterents intervenants
bull Chef de projet (avanceacutee du projet)
bull Deacuteveloppeur (meacutethode algo deacutependance aux API)
bull Testeur (deacutefinition de tests exeacutecution de tests)
bull Deploiement (mise en production tests de monteacutee en charge)
bull Qualiteacute (respect des charte meacutetriques)
bull CLIENT (besoin satisfait)
Points de vue diffeacuterents
Niveaux drsquoabstraction diffeacuterents
Pourtant tout cela doit ecirctre coheacuterent
Limitation des langages de programmation
1 seul niveau drsquoabstraction
1 seul niveau de diversiteacute
Les modegraveles offrent une solution pour aider agrave maintenir la coherence
tout en acceptant la diversiteacute
18
Qursquoest-ce qursquoun modegravele
Modegravele = repreacutesentation simplifieacutee du reacuteel
Contraintes de repreacutesentation facilitant le passage au logiciel 19
Pourquoi Modeacuteliser
20
Entre utilisateurs etinformaticiens
Entre informaticiens
analystes concepteursdeacuteveloppeursmainteneurs
Qualiteacute des modegraveles
coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie
Le premier but de la modeacutelisation
est de garantir
la bonne compreacutehension
entre les acteurs
COMMUNIQUER
CONTROLER
Le second but de la modeacutelisation
est de fournir une description
rigoureuse et controcirclable
Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme
bull documenter
Support outilleacute geacuteneacuteration de code de documentation
Analyses du modegravele (consistance coheacuterence)
Communiquer et Controcircler
Comment atteindre ces objectifs
Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode
de modeacutelisation on peut citer
bull la coheacuterence toutes les repreacutesentations qui composent le modegravele
sarticulent entre elles et ne se contredisent pas
bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute
linformation neacutecessaire pour atteindre les buts fixeacutes
bull la pertinence toutes les informations rassembleacutees dans le modegravele
ont leur utiliteacute
bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que
le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance
et la structure qui facilite son exploitation
21
Coheacuterence et Diversiteacute
Il y a un fort besoin de coheacuterence
Comme toutes les informations visent agrave deacutevelopper une application
il serait inteacuteressant de tout centraliser
Mais il ne faut pas uniformiser
Chaque intervenant a sa faccedilon propre de travailler
On ne peut pas donner un langage de programmation agrave un client
22
Modegravele et Diagramme
Modegravele
Lrsquoensemble des informations permettant la conception le
deacuteveloppement et la maintenance du logiciel (diagrammes code
tests documentation hellip)
Diagramme ou Vue
Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon
un certain point de vue (selon un axe servant un objectif) 23
Deacuteveloppeur Analyste Meacutetier
Modegravele
Objet Composant Service
24
Orienteacute-Objet
Concepts cleacute facilitant la construction drsquoapplications de grande taille
maintenables
Geacuteneacuterations de langages
1 Primitif asm
Pas de structure GOTO
2 Proceacutedural C Pascal
Structure de controcircle fonctions tableaux struct
3 Orienteacute Objet Java C++ hellip
Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation
4 Dynamique Python Perl JS hellip
Typage faible (scalaire list hash) reflexion avanceacutee
En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)
aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25
La classe
La classe
Cateacutegorie ou type
drsquoobjet
Munie de responsabiliteacutes
mateacuterialiseacutees par unedes
interfaces
Deacutefinie par ses attributs
et meacutethodes
Exemple classe
locomotive
Locomotive
- modele- puissance- vitesse- couleur
+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )
Lrsquoobjet instance drsquoune classe
bull Les instances drsquoobjets sont
deacutefinies par la valeur de leurs
attributs
bull Les traitements qursquoon peut
reacutealiser sur ces attributs sont
deacutefinis au niveau de la classe
agrave travers les meacutethodes
Un objet = instance drsquoune classe
dans un eacutetat particulier
-couleur= rouge
-puissance= 18000
-vitesse= 230
-modele= AL2119
Loco21Locomotive
L rsquoobjet notion drsquoencapsulation
Services publics
Donneacuteesproteacutegeacutees
Environnement
Messages
OBJET
Substituabiliteacute du noyau sans impacter les clients
L rsquoabstraction
La modeacutelisation OO pousse agrave
gagner en abstraction
Une application est composeacutee
drsquointeractions complexes entre
composants
Lrsquoencapsulation permet de faire
abstraction de lrsquoimpleacutementation
effective des comportements du
systegraveme pour reposer sur la notion
drsquointerface
Une interface deacutefinit des
responsabiliteacutes
indeacutependamment de la faccedilon
dont elles sont reacutealiseacutees
+demarrer()
+accelerer()
+freiner()
Locomotive
ltltabstractgtgt
LocomotiveDiesel LocomotiveElectrique
ltltinterfacegtgt
Objets vs Composants
bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS
bull Uniteacute de reacuteutilisation meacutediocre
bull La classe ne vient pas seule package entier
bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur
bull SGBD relationnel langages divers
bull Au-delagrave de lrsquoobjet
bull Modegraveles de composant
bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur
bull Uniteacute de reacuteutilisation et de deacuteploiement
bull Support de plateformes heacuteteacuterogegravenes
bull Support de plateformes distribueacutees
bull Vision composant promulgueacutee dans lrsquoUE (arc 2)
bull Au-delagrave du composant
bull SOA Service Oriented Architecture SaS Software as a Service
bull Compatible avec la vision orienteacute-composant
bull Application = choreacutegraphie entre composants dont on ne connait que les API
Unified Modeling Language
UML
Une notation standard pour repreacutesenter des
modegraveles drsquoartefacts logiciels
31
UML historique
bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)
et OOSE (~use case) premier standard OMG
bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique
encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )
bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication
drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution
rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration
bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues
UML est un standard industriel (OMG et ISO) =gt communiquer++ 32
Meacutethode OOD
BOOCH
Modeacutelisation dynamique
Meacutethode OOSE
JACOBSON
Cas drsquoutilisation
Meacutethode OMT
RUMBAUGH
Modeacutelisation statique
UML
Unified Modeling Language
Selon temps disponible
Diagramme de classe
bull Structure (attributs opeacuterations) associations typage
bull Expression Add Constante eval()int + impleacutementations
Diagramme drsquoobjet
bull Instances des classes dans une configuration particuliegravere snapshot
de lrsquoapplication
bull 3+2
Diagramme de Seacutequence
bull Axe temps (vertical) interactions entre instances donneacutees
eacutechangeacutees
bull (3+2)eval()
Intersections non vide entre ces diagrammes
bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances
bull Le modegravele UML unifie et assure la coheacuterence 33
Structure de lrsquoUE et Organisation
34
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
Qualiteacutes du logiciel
12Source ISO20500com
Cf aussi ISO9126
ISOIEC 25010 categorization of
software quality requirements
Qualiteacutes du logiciel
De nombreuses qualiteacutes souhaitables selon le domaine drsquoapplication
et les contraintes
La qualiteacute est un meacutetier en soi (peu abordeacute dans lrsquoUE)
bull Meacutetrique indicateur quantitatifs aidant agrave eacutevaluer lrsquoeacutevolution drsquoune
dimension de la qualiteacute logicielle
bull Loc locclasse classespackage profondeur drsquoheacuteritage couverture de test
bull Maitrise du risque identification classification mesures de
mitigationhellip
Dans lrsquoUE on recherche en particulier
bull Portabiliteacute minimiser les hypothegraveses sur la plateforme technique
permettre la reacutealisation sur toute plateforme
bull Reacuteutilisabiliteacute modulariteacute accent sur la construction drsquoune
application agrave lrsquoaide de composants reacuteutilisables
bull Aspects non fonctionnels peu abordeacutes performance seacutecuriteacutehellip13
Composantes drsquoune meacutethodeLa deacutemarche deacutecrit les actions agrave mener
leur enchaicircnement et les dispositifs
neacutecessaires pour atteindre les objectifs
du projet
La conduite est la technique de preacutevision
et drsquoordonnancement des travaux Elle
permet le suivi du projet
Lrsquoapproche est la technique de
modeacutelisation utiliseacutee au cours du
projet
La technique de modeacutelisation comprend
bull un formalisme
bull une heuristique
Le formalisme offre une faccedilon de
srsquoexprimer du texte des modegraveles
Lrsquoheuristique est la technique de
deacutecouverte crsquoest la maniegravere de
trouver et de formuler les eacuteleacutements
neacutecessaires au modegravele
14
DEMARCHE APPROCHE
Deacutecoupage du
projet en phases
deacutefinition du
qui fait quoi
Techniques de
repreacutesentation
de modeacutelisation
CONDUITE
Techniques de preacutevisions
dordonnancement et de
suivi
Peu abordeacute dans lrsquoUE (cours 28)
Choix UML
Composants
Objets
Cycle en V
Meacutethode
Qursquoattend-t-on drsquoune meacutethode
bull Quand
bull Deacutecoupage en eacutetapes maniegravere drsquoaborder le problegraveme de deacutecouper le
raisonnement
bull Qui
bull Deacutefinition des rocircles des intervenants organisation
bull Comment
bull Strateacutegies et outils de modeacutelisation preacuteconiseacutes traitements neacutecessaire pour
chaque eacutetape
bull Quoi
bull Speacutecification des objectifs et besoins traccedilabiliteacute des exigences
Quelles sont les qualiteacutes rechercheacutees drsquoune meacutethode
bull Gains de production Gains de qualiteacute Reacuteduction des coucircts
Gestion des risques
15
Meacutethode de Deacuteveloppement une deacutefinition
Un meacutethode doit expliquer quand comment qui doit faire des modegraveles et des scheacutema
(lesquels dans quel objectif agrave quelle granulariteacute drsquoabstraction) pour concevoir une
application
Une meacutethode doit permettre de bons reacutesultats (gain de productiviteacute)
Elle doit ecirctre facile agrave apprendre et agrave mettre en œuvre
Toute meacutethodologie de deacuteveloppement a pour objectif de produire un logiciel reacutepondant au
mieux au cahier des charges tout en ameacuteliorant la productiviteacute
Elle deacutefinit
1048707 des eacutetapes (eg Analyse Tests Validation Conceptionhellip) le plus souvent
aussi une deacutecoupe en iteacuterations plus ou moins longues
1048707 des moyens (eg diagrammes UML tests fiche deacutetailleacutee geacuteneacuteration de
codehellip)
1048707 des produits intermeacutediaires du deacuteveloppement (cagraved les deacutelivrables eg
document drsquoanalyse tests de validationhellip)
Elle peut aussi deacutefinir une structure geacuteneacuterale pour la gestion de projet (petites ou grosses
eacutequipes organisation du travailhellip
16
II Modeacutelisation
17
Retour sur la diversiteacute
Diffeacuterents intervenants
bull Chef de projet (avanceacutee du projet)
bull Deacuteveloppeur (meacutethode algo deacutependance aux API)
bull Testeur (deacutefinition de tests exeacutecution de tests)
bull Deploiement (mise en production tests de monteacutee en charge)
bull Qualiteacute (respect des charte meacutetriques)
bull CLIENT (besoin satisfait)
Points de vue diffeacuterents
Niveaux drsquoabstraction diffeacuterents
Pourtant tout cela doit ecirctre coheacuterent
Limitation des langages de programmation
1 seul niveau drsquoabstraction
1 seul niveau de diversiteacute
Les modegraveles offrent une solution pour aider agrave maintenir la coherence
tout en acceptant la diversiteacute
18
Qursquoest-ce qursquoun modegravele
Modegravele = repreacutesentation simplifieacutee du reacuteel
Contraintes de repreacutesentation facilitant le passage au logiciel 19
Pourquoi Modeacuteliser
20
Entre utilisateurs etinformaticiens
Entre informaticiens
analystes concepteursdeacuteveloppeursmainteneurs
Qualiteacute des modegraveles
coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie
Le premier but de la modeacutelisation
est de garantir
la bonne compreacutehension
entre les acteurs
COMMUNIQUER
CONTROLER
Le second but de la modeacutelisation
est de fournir une description
rigoureuse et controcirclable
Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme
bull documenter
Support outilleacute geacuteneacuteration de code de documentation
Analyses du modegravele (consistance coheacuterence)
Communiquer et Controcircler
Comment atteindre ces objectifs
Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode
de modeacutelisation on peut citer
bull la coheacuterence toutes les repreacutesentations qui composent le modegravele
sarticulent entre elles et ne se contredisent pas
bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute
linformation neacutecessaire pour atteindre les buts fixeacutes
bull la pertinence toutes les informations rassembleacutees dans le modegravele
ont leur utiliteacute
bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que
le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance
et la structure qui facilite son exploitation
21
Coheacuterence et Diversiteacute
Il y a un fort besoin de coheacuterence
Comme toutes les informations visent agrave deacutevelopper une application
il serait inteacuteressant de tout centraliser
Mais il ne faut pas uniformiser
Chaque intervenant a sa faccedilon propre de travailler
On ne peut pas donner un langage de programmation agrave un client
22
Modegravele et Diagramme
Modegravele
Lrsquoensemble des informations permettant la conception le
deacuteveloppement et la maintenance du logiciel (diagrammes code
tests documentation hellip)
Diagramme ou Vue
Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon
un certain point de vue (selon un axe servant un objectif) 23
Deacuteveloppeur Analyste Meacutetier
Modegravele
Objet Composant Service
24
Orienteacute-Objet
Concepts cleacute facilitant la construction drsquoapplications de grande taille
maintenables
Geacuteneacuterations de langages
1 Primitif asm
Pas de structure GOTO
2 Proceacutedural C Pascal
Structure de controcircle fonctions tableaux struct
3 Orienteacute Objet Java C++ hellip
Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation
4 Dynamique Python Perl JS hellip
Typage faible (scalaire list hash) reflexion avanceacutee
En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)
aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25
La classe
La classe
Cateacutegorie ou type
drsquoobjet
Munie de responsabiliteacutes
mateacuterialiseacutees par unedes
interfaces
Deacutefinie par ses attributs
et meacutethodes
Exemple classe
locomotive
Locomotive
- modele- puissance- vitesse- couleur
+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )
Lrsquoobjet instance drsquoune classe
bull Les instances drsquoobjets sont
deacutefinies par la valeur de leurs
attributs
bull Les traitements qursquoon peut
reacutealiser sur ces attributs sont
deacutefinis au niveau de la classe
agrave travers les meacutethodes
Un objet = instance drsquoune classe
dans un eacutetat particulier
-couleur= rouge
-puissance= 18000
-vitesse= 230
-modele= AL2119
Loco21Locomotive
L rsquoobjet notion drsquoencapsulation
Services publics
Donneacuteesproteacutegeacutees
Environnement
Messages
OBJET
Substituabiliteacute du noyau sans impacter les clients
L rsquoabstraction
La modeacutelisation OO pousse agrave
gagner en abstraction
Une application est composeacutee
drsquointeractions complexes entre
composants
Lrsquoencapsulation permet de faire
abstraction de lrsquoimpleacutementation
effective des comportements du
systegraveme pour reposer sur la notion
drsquointerface
Une interface deacutefinit des
responsabiliteacutes
indeacutependamment de la faccedilon
dont elles sont reacutealiseacutees
+demarrer()
+accelerer()
+freiner()
Locomotive
ltltabstractgtgt
LocomotiveDiesel LocomotiveElectrique
ltltinterfacegtgt
Objets vs Composants
bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS
bull Uniteacute de reacuteutilisation meacutediocre
bull La classe ne vient pas seule package entier
bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur
bull SGBD relationnel langages divers
bull Au-delagrave de lrsquoobjet
bull Modegraveles de composant
bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur
bull Uniteacute de reacuteutilisation et de deacuteploiement
bull Support de plateformes heacuteteacuterogegravenes
bull Support de plateformes distribueacutees
bull Vision composant promulgueacutee dans lrsquoUE (arc 2)
bull Au-delagrave du composant
bull SOA Service Oriented Architecture SaS Software as a Service
bull Compatible avec la vision orienteacute-composant
bull Application = choreacutegraphie entre composants dont on ne connait que les API
Unified Modeling Language
UML
Une notation standard pour repreacutesenter des
modegraveles drsquoartefacts logiciels
31
UML historique
bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)
et OOSE (~use case) premier standard OMG
bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique
encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )
bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication
drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution
rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration
bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues
UML est un standard industriel (OMG et ISO) =gt communiquer++ 32
Meacutethode OOD
BOOCH
Modeacutelisation dynamique
Meacutethode OOSE
JACOBSON
Cas drsquoutilisation
Meacutethode OMT
RUMBAUGH
Modeacutelisation statique
UML
Unified Modeling Language
Selon temps disponible
Diagramme de classe
bull Structure (attributs opeacuterations) associations typage
bull Expression Add Constante eval()int + impleacutementations
Diagramme drsquoobjet
bull Instances des classes dans une configuration particuliegravere snapshot
de lrsquoapplication
bull 3+2
Diagramme de Seacutequence
bull Axe temps (vertical) interactions entre instances donneacutees
eacutechangeacutees
bull (3+2)eval()
Intersections non vide entre ces diagrammes
bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances
bull Le modegravele UML unifie et assure la coheacuterence 33
Structure de lrsquoUE et Organisation
34
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
Qualiteacutes du logiciel
De nombreuses qualiteacutes souhaitables selon le domaine drsquoapplication
et les contraintes
La qualiteacute est un meacutetier en soi (peu abordeacute dans lrsquoUE)
bull Meacutetrique indicateur quantitatifs aidant agrave eacutevaluer lrsquoeacutevolution drsquoune
dimension de la qualiteacute logicielle
bull Loc locclasse classespackage profondeur drsquoheacuteritage couverture de test
bull Maitrise du risque identification classification mesures de
mitigationhellip
Dans lrsquoUE on recherche en particulier
bull Portabiliteacute minimiser les hypothegraveses sur la plateforme technique
permettre la reacutealisation sur toute plateforme
bull Reacuteutilisabiliteacute modulariteacute accent sur la construction drsquoune
application agrave lrsquoaide de composants reacuteutilisables
bull Aspects non fonctionnels peu abordeacutes performance seacutecuriteacutehellip13
Composantes drsquoune meacutethodeLa deacutemarche deacutecrit les actions agrave mener
leur enchaicircnement et les dispositifs
neacutecessaires pour atteindre les objectifs
du projet
La conduite est la technique de preacutevision
et drsquoordonnancement des travaux Elle
permet le suivi du projet
Lrsquoapproche est la technique de
modeacutelisation utiliseacutee au cours du
projet
La technique de modeacutelisation comprend
bull un formalisme
bull une heuristique
Le formalisme offre une faccedilon de
srsquoexprimer du texte des modegraveles
Lrsquoheuristique est la technique de
deacutecouverte crsquoest la maniegravere de
trouver et de formuler les eacuteleacutements
neacutecessaires au modegravele
14
DEMARCHE APPROCHE
Deacutecoupage du
projet en phases
deacutefinition du
qui fait quoi
Techniques de
repreacutesentation
de modeacutelisation
CONDUITE
Techniques de preacutevisions
dordonnancement et de
suivi
Peu abordeacute dans lrsquoUE (cours 28)
Choix UML
Composants
Objets
Cycle en V
Meacutethode
Qursquoattend-t-on drsquoune meacutethode
bull Quand
bull Deacutecoupage en eacutetapes maniegravere drsquoaborder le problegraveme de deacutecouper le
raisonnement
bull Qui
bull Deacutefinition des rocircles des intervenants organisation
bull Comment
bull Strateacutegies et outils de modeacutelisation preacuteconiseacutes traitements neacutecessaire pour
chaque eacutetape
bull Quoi
bull Speacutecification des objectifs et besoins traccedilabiliteacute des exigences
Quelles sont les qualiteacutes rechercheacutees drsquoune meacutethode
bull Gains de production Gains de qualiteacute Reacuteduction des coucircts
Gestion des risques
15
Meacutethode de Deacuteveloppement une deacutefinition
Un meacutethode doit expliquer quand comment qui doit faire des modegraveles et des scheacutema
(lesquels dans quel objectif agrave quelle granulariteacute drsquoabstraction) pour concevoir une
application
Une meacutethode doit permettre de bons reacutesultats (gain de productiviteacute)
Elle doit ecirctre facile agrave apprendre et agrave mettre en œuvre
Toute meacutethodologie de deacuteveloppement a pour objectif de produire un logiciel reacutepondant au
mieux au cahier des charges tout en ameacuteliorant la productiviteacute
Elle deacutefinit
1048707 des eacutetapes (eg Analyse Tests Validation Conceptionhellip) le plus souvent
aussi une deacutecoupe en iteacuterations plus ou moins longues
1048707 des moyens (eg diagrammes UML tests fiche deacutetailleacutee geacuteneacuteration de
codehellip)
1048707 des produits intermeacutediaires du deacuteveloppement (cagraved les deacutelivrables eg
document drsquoanalyse tests de validationhellip)
Elle peut aussi deacutefinir une structure geacuteneacuterale pour la gestion de projet (petites ou grosses
eacutequipes organisation du travailhellip
16
II Modeacutelisation
17
Retour sur la diversiteacute
Diffeacuterents intervenants
bull Chef de projet (avanceacutee du projet)
bull Deacuteveloppeur (meacutethode algo deacutependance aux API)
bull Testeur (deacutefinition de tests exeacutecution de tests)
bull Deploiement (mise en production tests de monteacutee en charge)
bull Qualiteacute (respect des charte meacutetriques)
bull CLIENT (besoin satisfait)
Points de vue diffeacuterents
Niveaux drsquoabstraction diffeacuterents
Pourtant tout cela doit ecirctre coheacuterent
Limitation des langages de programmation
1 seul niveau drsquoabstraction
1 seul niveau de diversiteacute
Les modegraveles offrent une solution pour aider agrave maintenir la coherence
tout en acceptant la diversiteacute
18
Qursquoest-ce qursquoun modegravele
Modegravele = repreacutesentation simplifieacutee du reacuteel
Contraintes de repreacutesentation facilitant le passage au logiciel 19
Pourquoi Modeacuteliser
20
Entre utilisateurs etinformaticiens
Entre informaticiens
analystes concepteursdeacuteveloppeursmainteneurs
Qualiteacute des modegraveles
coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie
Le premier but de la modeacutelisation
est de garantir
la bonne compreacutehension
entre les acteurs
COMMUNIQUER
CONTROLER
Le second but de la modeacutelisation
est de fournir une description
rigoureuse et controcirclable
Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme
bull documenter
Support outilleacute geacuteneacuteration de code de documentation
Analyses du modegravele (consistance coheacuterence)
Communiquer et Controcircler
Comment atteindre ces objectifs
Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode
de modeacutelisation on peut citer
bull la coheacuterence toutes les repreacutesentations qui composent le modegravele
sarticulent entre elles et ne se contredisent pas
bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute
linformation neacutecessaire pour atteindre les buts fixeacutes
bull la pertinence toutes les informations rassembleacutees dans le modegravele
ont leur utiliteacute
bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que
le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance
et la structure qui facilite son exploitation
21
Coheacuterence et Diversiteacute
Il y a un fort besoin de coheacuterence
Comme toutes les informations visent agrave deacutevelopper une application
il serait inteacuteressant de tout centraliser
Mais il ne faut pas uniformiser
Chaque intervenant a sa faccedilon propre de travailler
On ne peut pas donner un langage de programmation agrave un client
22
Modegravele et Diagramme
Modegravele
Lrsquoensemble des informations permettant la conception le
deacuteveloppement et la maintenance du logiciel (diagrammes code
tests documentation hellip)
Diagramme ou Vue
Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon
un certain point de vue (selon un axe servant un objectif) 23
Deacuteveloppeur Analyste Meacutetier
Modegravele
Objet Composant Service
24
Orienteacute-Objet
Concepts cleacute facilitant la construction drsquoapplications de grande taille
maintenables
Geacuteneacuterations de langages
1 Primitif asm
Pas de structure GOTO
2 Proceacutedural C Pascal
Structure de controcircle fonctions tableaux struct
3 Orienteacute Objet Java C++ hellip
Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation
4 Dynamique Python Perl JS hellip
Typage faible (scalaire list hash) reflexion avanceacutee
En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)
aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25
La classe
La classe
Cateacutegorie ou type
drsquoobjet
Munie de responsabiliteacutes
mateacuterialiseacutees par unedes
interfaces
Deacutefinie par ses attributs
et meacutethodes
Exemple classe
locomotive
Locomotive
- modele- puissance- vitesse- couleur
+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )
Lrsquoobjet instance drsquoune classe
bull Les instances drsquoobjets sont
deacutefinies par la valeur de leurs
attributs
bull Les traitements qursquoon peut
reacutealiser sur ces attributs sont
deacutefinis au niveau de la classe
agrave travers les meacutethodes
Un objet = instance drsquoune classe
dans un eacutetat particulier
-couleur= rouge
-puissance= 18000
-vitesse= 230
-modele= AL2119
Loco21Locomotive
L rsquoobjet notion drsquoencapsulation
Services publics
Donneacuteesproteacutegeacutees
Environnement
Messages
OBJET
Substituabiliteacute du noyau sans impacter les clients
L rsquoabstraction
La modeacutelisation OO pousse agrave
gagner en abstraction
Une application est composeacutee
drsquointeractions complexes entre
composants
Lrsquoencapsulation permet de faire
abstraction de lrsquoimpleacutementation
effective des comportements du
systegraveme pour reposer sur la notion
drsquointerface
Une interface deacutefinit des
responsabiliteacutes
indeacutependamment de la faccedilon
dont elles sont reacutealiseacutees
+demarrer()
+accelerer()
+freiner()
Locomotive
ltltabstractgtgt
LocomotiveDiesel LocomotiveElectrique
ltltinterfacegtgt
Objets vs Composants
bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS
bull Uniteacute de reacuteutilisation meacutediocre
bull La classe ne vient pas seule package entier
bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur
bull SGBD relationnel langages divers
bull Au-delagrave de lrsquoobjet
bull Modegraveles de composant
bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur
bull Uniteacute de reacuteutilisation et de deacuteploiement
bull Support de plateformes heacuteteacuterogegravenes
bull Support de plateformes distribueacutees
bull Vision composant promulgueacutee dans lrsquoUE (arc 2)
bull Au-delagrave du composant
bull SOA Service Oriented Architecture SaS Software as a Service
bull Compatible avec la vision orienteacute-composant
bull Application = choreacutegraphie entre composants dont on ne connait que les API
Unified Modeling Language
UML
Une notation standard pour repreacutesenter des
modegraveles drsquoartefacts logiciels
31
UML historique
bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)
et OOSE (~use case) premier standard OMG
bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique
encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )
bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication
drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution
rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration
bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues
UML est un standard industriel (OMG et ISO) =gt communiquer++ 32
Meacutethode OOD
BOOCH
Modeacutelisation dynamique
Meacutethode OOSE
JACOBSON
Cas drsquoutilisation
Meacutethode OMT
RUMBAUGH
Modeacutelisation statique
UML
Unified Modeling Language
Selon temps disponible
Diagramme de classe
bull Structure (attributs opeacuterations) associations typage
bull Expression Add Constante eval()int + impleacutementations
Diagramme drsquoobjet
bull Instances des classes dans une configuration particuliegravere snapshot
de lrsquoapplication
bull 3+2
Diagramme de Seacutequence
bull Axe temps (vertical) interactions entre instances donneacutees
eacutechangeacutees
bull (3+2)eval()
Intersections non vide entre ces diagrammes
bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances
bull Le modegravele UML unifie et assure la coheacuterence 33
Structure de lrsquoUE et Organisation
34
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
Composantes drsquoune meacutethodeLa deacutemarche deacutecrit les actions agrave mener
leur enchaicircnement et les dispositifs
neacutecessaires pour atteindre les objectifs
du projet
La conduite est la technique de preacutevision
et drsquoordonnancement des travaux Elle
permet le suivi du projet
Lrsquoapproche est la technique de
modeacutelisation utiliseacutee au cours du
projet
La technique de modeacutelisation comprend
bull un formalisme
bull une heuristique
Le formalisme offre une faccedilon de
srsquoexprimer du texte des modegraveles
Lrsquoheuristique est la technique de
deacutecouverte crsquoest la maniegravere de
trouver et de formuler les eacuteleacutements
neacutecessaires au modegravele
14
DEMARCHE APPROCHE
Deacutecoupage du
projet en phases
deacutefinition du
qui fait quoi
Techniques de
repreacutesentation
de modeacutelisation
CONDUITE
Techniques de preacutevisions
dordonnancement et de
suivi
Peu abordeacute dans lrsquoUE (cours 28)
Choix UML
Composants
Objets
Cycle en V
Meacutethode
Qursquoattend-t-on drsquoune meacutethode
bull Quand
bull Deacutecoupage en eacutetapes maniegravere drsquoaborder le problegraveme de deacutecouper le
raisonnement
bull Qui
bull Deacutefinition des rocircles des intervenants organisation
bull Comment
bull Strateacutegies et outils de modeacutelisation preacuteconiseacutes traitements neacutecessaire pour
chaque eacutetape
bull Quoi
bull Speacutecification des objectifs et besoins traccedilabiliteacute des exigences
Quelles sont les qualiteacutes rechercheacutees drsquoune meacutethode
bull Gains de production Gains de qualiteacute Reacuteduction des coucircts
Gestion des risques
15
Meacutethode de Deacuteveloppement une deacutefinition
Un meacutethode doit expliquer quand comment qui doit faire des modegraveles et des scheacutema
(lesquels dans quel objectif agrave quelle granulariteacute drsquoabstraction) pour concevoir une
application
Une meacutethode doit permettre de bons reacutesultats (gain de productiviteacute)
Elle doit ecirctre facile agrave apprendre et agrave mettre en œuvre
Toute meacutethodologie de deacuteveloppement a pour objectif de produire un logiciel reacutepondant au
mieux au cahier des charges tout en ameacuteliorant la productiviteacute
Elle deacutefinit
1048707 des eacutetapes (eg Analyse Tests Validation Conceptionhellip) le plus souvent
aussi une deacutecoupe en iteacuterations plus ou moins longues
1048707 des moyens (eg diagrammes UML tests fiche deacutetailleacutee geacuteneacuteration de
codehellip)
1048707 des produits intermeacutediaires du deacuteveloppement (cagraved les deacutelivrables eg
document drsquoanalyse tests de validationhellip)
Elle peut aussi deacutefinir une structure geacuteneacuterale pour la gestion de projet (petites ou grosses
eacutequipes organisation du travailhellip
16
II Modeacutelisation
17
Retour sur la diversiteacute
Diffeacuterents intervenants
bull Chef de projet (avanceacutee du projet)
bull Deacuteveloppeur (meacutethode algo deacutependance aux API)
bull Testeur (deacutefinition de tests exeacutecution de tests)
bull Deploiement (mise en production tests de monteacutee en charge)
bull Qualiteacute (respect des charte meacutetriques)
bull CLIENT (besoin satisfait)
Points de vue diffeacuterents
Niveaux drsquoabstraction diffeacuterents
Pourtant tout cela doit ecirctre coheacuterent
Limitation des langages de programmation
1 seul niveau drsquoabstraction
1 seul niveau de diversiteacute
Les modegraveles offrent une solution pour aider agrave maintenir la coherence
tout en acceptant la diversiteacute
18
Qursquoest-ce qursquoun modegravele
Modegravele = repreacutesentation simplifieacutee du reacuteel
Contraintes de repreacutesentation facilitant le passage au logiciel 19
Pourquoi Modeacuteliser
20
Entre utilisateurs etinformaticiens
Entre informaticiens
analystes concepteursdeacuteveloppeursmainteneurs
Qualiteacute des modegraveles
coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie
Le premier but de la modeacutelisation
est de garantir
la bonne compreacutehension
entre les acteurs
COMMUNIQUER
CONTROLER
Le second but de la modeacutelisation
est de fournir une description
rigoureuse et controcirclable
Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme
bull documenter
Support outilleacute geacuteneacuteration de code de documentation
Analyses du modegravele (consistance coheacuterence)
Communiquer et Controcircler
Comment atteindre ces objectifs
Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode
de modeacutelisation on peut citer
bull la coheacuterence toutes les repreacutesentations qui composent le modegravele
sarticulent entre elles et ne se contredisent pas
bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute
linformation neacutecessaire pour atteindre les buts fixeacutes
bull la pertinence toutes les informations rassembleacutees dans le modegravele
ont leur utiliteacute
bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que
le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance
et la structure qui facilite son exploitation
21
Coheacuterence et Diversiteacute
Il y a un fort besoin de coheacuterence
Comme toutes les informations visent agrave deacutevelopper une application
il serait inteacuteressant de tout centraliser
Mais il ne faut pas uniformiser
Chaque intervenant a sa faccedilon propre de travailler
On ne peut pas donner un langage de programmation agrave un client
22
Modegravele et Diagramme
Modegravele
Lrsquoensemble des informations permettant la conception le
deacuteveloppement et la maintenance du logiciel (diagrammes code
tests documentation hellip)
Diagramme ou Vue
Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon
un certain point de vue (selon un axe servant un objectif) 23
Deacuteveloppeur Analyste Meacutetier
Modegravele
Objet Composant Service
24
Orienteacute-Objet
Concepts cleacute facilitant la construction drsquoapplications de grande taille
maintenables
Geacuteneacuterations de langages
1 Primitif asm
Pas de structure GOTO
2 Proceacutedural C Pascal
Structure de controcircle fonctions tableaux struct
3 Orienteacute Objet Java C++ hellip
Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation
4 Dynamique Python Perl JS hellip
Typage faible (scalaire list hash) reflexion avanceacutee
En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)
aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25
La classe
La classe
Cateacutegorie ou type
drsquoobjet
Munie de responsabiliteacutes
mateacuterialiseacutees par unedes
interfaces
Deacutefinie par ses attributs
et meacutethodes
Exemple classe
locomotive
Locomotive
- modele- puissance- vitesse- couleur
+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )
Lrsquoobjet instance drsquoune classe
bull Les instances drsquoobjets sont
deacutefinies par la valeur de leurs
attributs
bull Les traitements qursquoon peut
reacutealiser sur ces attributs sont
deacutefinis au niveau de la classe
agrave travers les meacutethodes
Un objet = instance drsquoune classe
dans un eacutetat particulier
-couleur= rouge
-puissance= 18000
-vitesse= 230
-modele= AL2119
Loco21Locomotive
L rsquoobjet notion drsquoencapsulation
Services publics
Donneacuteesproteacutegeacutees
Environnement
Messages
OBJET
Substituabiliteacute du noyau sans impacter les clients
L rsquoabstraction
La modeacutelisation OO pousse agrave
gagner en abstraction
Une application est composeacutee
drsquointeractions complexes entre
composants
Lrsquoencapsulation permet de faire
abstraction de lrsquoimpleacutementation
effective des comportements du
systegraveme pour reposer sur la notion
drsquointerface
Une interface deacutefinit des
responsabiliteacutes
indeacutependamment de la faccedilon
dont elles sont reacutealiseacutees
+demarrer()
+accelerer()
+freiner()
Locomotive
ltltabstractgtgt
LocomotiveDiesel LocomotiveElectrique
ltltinterfacegtgt
Objets vs Composants
bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS
bull Uniteacute de reacuteutilisation meacutediocre
bull La classe ne vient pas seule package entier
bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur
bull SGBD relationnel langages divers
bull Au-delagrave de lrsquoobjet
bull Modegraveles de composant
bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur
bull Uniteacute de reacuteutilisation et de deacuteploiement
bull Support de plateformes heacuteteacuterogegravenes
bull Support de plateformes distribueacutees
bull Vision composant promulgueacutee dans lrsquoUE (arc 2)
bull Au-delagrave du composant
bull SOA Service Oriented Architecture SaS Software as a Service
bull Compatible avec la vision orienteacute-composant
bull Application = choreacutegraphie entre composants dont on ne connait que les API
Unified Modeling Language
UML
Une notation standard pour repreacutesenter des
modegraveles drsquoartefacts logiciels
31
UML historique
bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)
et OOSE (~use case) premier standard OMG
bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique
encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )
bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication
drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution
rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration
bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues
UML est un standard industriel (OMG et ISO) =gt communiquer++ 32
Meacutethode OOD
BOOCH
Modeacutelisation dynamique
Meacutethode OOSE
JACOBSON
Cas drsquoutilisation
Meacutethode OMT
RUMBAUGH
Modeacutelisation statique
UML
Unified Modeling Language
Selon temps disponible
Diagramme de classe
bull Structure (attributs opeacuterations) associations typage
bull Expression Add Constante eval()int + impleacutementations
Diagramme drsquoobjet
bull Instances des classes dans une configuration particuliegravere snapshot
de lrsquoapplication
bull 3+2
Diagramme de Seacutequence
bull Axe temps (vertical) interactions entre instances donneacutees
eacutechangeacutees
bull (3+2)eval()
Intersections non vide entre ces diagrammes
bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances
bull Le modegravele UML unifie et assure la coheacuterence 33
Structure de lrsquoUE et Organisation
34
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
Meacutethode
Qursquoattend-t-on drsquoune meacutethode
bull Quand
bull Deacutecoupage en eacutetapes maniegravere drsquoaborder le problegraveme de deacutecouper le
raisonnement
bull Qui
bull Deacutefinition des rocircles des intervenants organisation
bull Comment
bull Strateacutegies et outils de modeacutelisation preacuteconiseacutes traitements neacutecessaire pour
chaque eacutetape
bull Quoi
bull Speacutecification des objectifs et besoins traccedilabiliteacute des exigences
Quelles sont les qualiteacutes rechercheacutees drsquoune meacutethode
bull Gains de production Gains de qualiteacute Reacuteduction des coucircts
Gestion des risques
15
Meacutethode de Deacuteveloppement une deacutefinition
Un meacutethode doit expliquer quand comment qui doit faire des modegraveles et des scheacutema
(lesquels dans quel objectif agrave quelle granulariteacute drsquoabstraction) pour concevoir une
application
Une meacutethode doit permettre de bons reacutesultats (gain de productiviteacute)
Elle doit ecirctre facile agrave apprendre et agrave mettre en œuvre
Toute meacutethodologie de deacuteveloppement a pour objectif de produire un logiciel reacutepondant au
mieux au cahier des charges tout en ameacuteliorant la productiviteacute
Elle deacutefinit
1048707 des eacutetapes (eg Analyse Tests Validation Conceptionhellip) le plus souvent
aussi une deacutecoupe en iteacuterations plus ou moins longues
1048707 des moyens (eg diagrammes UML tests fiche deacutetailleacutee geacuteneacuteration de
codehellip)
1048707 des produits intermeacutediaires du deacuteveloppement (cagraved les deacutelivrables eg
document drsquoanalyse tests de validationhellip)
Elle peut aussi deacutefinir une structure geacuteneacuterale pour la gestion de projet (petites ou grosses
eacutequipes organisation du travailhellip
16
II Modeacutelisation
17
Retour sur la diversiteacute
Diffeacuterents intervenants
bull Chef de projet (avanceacutee du projet)
bull Deacuteveloppeur (meacutethode algo deacutependance aux API)
bull Testeur (deacutefinition de tests exeacutecution de tests)
bull Deploiement (mise en production tests de monteacutee en charge)
bull Qualiteacute (respect des charte meacutetriques)
bull CLIENT (besoin satisfait)
Points de vue diffeacuterents
Niveaux drsquoabstraction diffeacuterents
Pourtant tout cela doit ecirctre coheacuterent
Limitation des langages de programmation
1 seul niveau drsquoabstraction
1 seul niveau de diversiteacute
Les modegraveles offrent une solution pour aider agrave maintenir la coherence
tout en acceptant la diversiteacute
18
Qursquoest-ce qursquoun modegravele
Modegravele = repreacutesentation simplifieacutee du reacuteel
Contraintes de repreacutesentation facilitant le passage au logiciel 19
Pourquoi Modeacuteliser
20
Entre utilisateurs etinformaticiens
Entre informaticiens
analystes concepteursdeacuteveloppeursmainteneurs
Qualiteacute des modegraveles
coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie
Le premier but de la modeacutelisation
est de garantir
la bonne compreacutehension
entre les acteurs
COMMUNIQUER
CONTROLER
Le second but de la modeacutelisation
est de fournir une description
rigoureuse et controcirclable
Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme
bull documenter
Support outilleacute geacuteneacuteration de code de documentation
Analyses du modegravele (consistance coheacuterence)
Communiquer et Controcircler
Comment atteindre ces objectifs
Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode
de modeacutelisation on peut citer
bull la coheacuterence toutes les repreacutesentations qui composent le modegravele
sarticulent entre elles et ne se contredisent pas
bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute
linformation neacutecessaire pour atteindre les buts fixeacutes
bull la pertinence toutes les informations rassembleacutees dans le modegravele
ont leur utiliteacute
bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que
le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance
et la structure qui facilite son exploitation
21
Coheacuterence et Diversiteacute
Il y a un fort besoin de coheacuterence
Comme toutes les informations visent agrave deacutevelopper une application
il serait inteacuteressant de tout centraliser
Mais il ne faut pas uniformiser
Chaque intervenant a sa faccedilon propre de travailler
On ne peut pas donner un langage de programmation agrave un client
22
Modegravele et Diagramme
Modegravele
Lrsquoensemble des informations permettant la conception le
deacuteveloppement et la maintenance du logiciel (diagrammes code
tests documentation hellip)
Diagramme ou Vue
Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon
un certain point de vue (selon un axe servant un objectif) 23
Deacuteveloppeur Analyste Meacutetier
Modegravele
Objet Composant Service
24
Orienteacute-Objet
Concepts cleacute facilitant la construction drsquoapplications de grande taille
maintenables
Geacuteneacuterations de langages
1 Primitif asm
Pas de structure GOTO
2 Proceacutedural C Pascal
Structure de controcircle fonctions tableaux struct
3 Orienteacute Objet Java C++ hellip
Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation
4 Dynamique Python Perl JS hellip
Typage faible (scalaire list hash) reflexion avanceacutee
En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)
aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25
La classe
La classe
Cateacutegorie ou type
drsquoobjet
Munie de responsabiliteacutes
mateacuterialiseacutees par unedes
interfaces
Deacutefinie par ses attributs
et meacutethodes
Exemple classe
locomotive
Locomotive
- modele- puissance- vitesse- couleur
+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )
Lrsquoobjet instance drsquoune classe
bull Les instances drsquoobjets sont
deacutefinies par la valeur de leurs
attributs
bull Les traitements qursquoon peut
reacutealiser sur ces attributs sont
deacutefinis au niveau de la classe
agrave travers les meacutethodes
Un objet = instance drsquoune classe
dans un eacutetat particulier
-couleur= rouge
-puissance= 18000
-vitesse= 230
-modele= AL2119
Loco21Locomotive
L rsquoobjet notion drsquoencapsulation
Services publics
Donneacuteesproteacutegeacutees
Environnement
Messages
OBJET
Substituabiliteacute du noyau sans impacter les clients
L rsquoabstraction
La modeacutelisation OO pousse agrave
gagner en abstraction
Une application est composeacutee
drsquointeractions complexes entre
composants
Lrsquoencapsulation permet de faire
abstraction de lrsquoimpleacutementation
effective des comportements du
systegraveme pour reposer sur la notion
drsquointerface
Une interface deacutefinit des
responsabiliteacutes
indeacutependamment de la faccedilon
dont elles sont reacutealiseacutees
+demarrer()
+accelerer()
+freiner()
Locomotive
ltltabstractgtgt
LocomotiveDiesel LocomotiveElectrique
ltltinterfacegtgt
Objets vs Composants
bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS
bull Uniteacute de reacuteutilisation meacutediocre
bull La classe ne vient pas seule package entier
bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur
bull SGBD relationnel langages divers
bull Au-delagrave de lrsquoobjet
bull Modegraveles de composant
bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur
bull Uniteacute de reacuteutilisation et de deacuteploiement
bull Support de plateformes heacuteteacuterogegravenes
bull Support de plateformes distribueacutees
bull Vision composant promulgueacutee dans lrsquoUE (arc 2)
bull Au-delagrave du composant
bull SOA Service Oriented Architecture SaS Software as a Service
bull Compatible avec la vision orienteacute-composant
bull Application = choreacutegraphie entre composants dont on ne connait que les API
Unified Modeling Language
UML
Une notation standard pour repreacutesenter des
modegraveles drsquoartefacts logiciels
31
UML historique
bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)
et OOSE (~use case) premier standard OMG
bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique
encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )
bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication
drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution
rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration
bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues
UML est un standard industriel (OMG et ISO) =gt communiquer++ 32
Meacutethode OOD
BOOCH
Modeacutelisation dynamique
Meacutethode OOSE
JACOBSON
Cas drsquoutilisation
Meacutethode OMT
RUMBAUGH
Modeacutelisation statique
UML
Unified Modeling Language
Selon temps disponible
Diagramme de classe
bull Structure (attributs opeacuterations) associations typage
bull Expression Add Constante eval()int + impleacutementations
Diagramme drsquoobjet
bull Instances des classes dans une configuration particuliegravere snapshot
de lrsquoapplication
bull 3+2
Diagramme de Seacutequence
bull Axe temps (vertical) interactions entre instances donneacutees
eacutechangeacutees
bull (3+2)eval()
Intersections non vide entre ces diagrammes
bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances
bull Le modegravele UML unifie et assure la coheacuterence 33
Structure de lrsquoUE et Organisation
34
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
Meacutethode de Deacuteveloppement une deacutefinition
Un meacutethode doit expliquer quand comment qui doit faire des modegraveles et des scheacutema
(lesquels dans quel objectif agrave quelle granulariteacute drsquoabstraction) pour concevoir une
application
Une meacutethode doit permettre de bons reacutesultats (gain de productiviteacute)
Elle doit ecirctre facile agrave apprendre et agrave mettre en œuvre
Toute meacutethodologie de deacuteveloppement a pour objectif de produire un logiciel reacutepondant au
mieux au cahier des charges tout en ameacuteliorant la productiviteacute
Elle deacutefinit
1048707 des eacutetapes (eg Analyse Tests Validation Conceptionhellip) le plus souvent
aussi une deacutecoupe en iteacuterations plus ou moins longues
1048707 des moyens (eg diagrammes UML tests fiche deacutetailleacutee geacuteneacuteration de
codehellip)
1048707 des produits intermeacutediaires du deacuteveloppement (cagraved les deacutelivrables eg
document drsquoanalyse tests de validationhellip)
Elle peut aussi deacutefinir une structure geacuteneacuterale pour la gestion de projet (petites ou grosses
eacutequipes organisation du travailhellip
16
II Modeacutelisation
17
Retour sur la diversiteacute
Diffeacuterents intervenants
bull Chef de projet (avanceacutee du projet)
bull Deacuteveloppeur (meacutethode algo deacutependance aux API)
bull Testeur (deacutefinition de tests exeacutecution de tests)
bull Deploiement (mise en production tests de monteacutee en charge)
bull Qualiteacute (respect des charte meacutetriques)
bull CLIENT (besoin satisfait)
Points de vue diffeacuterents
Niveaux drsquoabstraction diffeacuterents
Pourtant tout cela doit ecirctre coheacuterent
Limitation des langages de programmation
1 seul niveau drsquoabstraction
1 seul niveau de diversiteacute
Les modegraveles offrent une solution pour aider agrave maintenir la coherence
tout en acceptant la diversiteacute
18
Qursquoest-ce qursquoun modegravele
Modegravele = repreacutesentation simplifieacutee du reacuteel
Contraintes de repreacutesentation facilitant le passage au logiciel 19
Pourquoi Modeacuteliser
20
Entre utilisateurs etinformaticiens
Entre informaticiens
analystes concepteursdeacuteveloppeursmainteneurs
Qualiteacute des modegraveles
coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie
Le premier but de la modeacutelisation
est de garantir
la bonne compreacutehension
entre les acteurs
COMMUNIQUER
CONTROLER
Le second but de la modeacutelisation
est de fournir une description
rigoureuse et controcirclable
Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme
bull documenter
Support outilleacute geacuteneacuteration de code de documentation
Analyses du modegravele (consistance coheacuterence)
Communiquer et Controcircler
Comment atteindre ces objectifs
Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode
de modeacutelisation on peut citer
bull la coheacuterence toutes les repreacutesentations qui composent le modegravele
sarticulent entre elles et ne se contredisent pas
bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute
linformation neacutecessaire pour atteindre les buts fixeacutes
bull la pertinence toutes les informations rassembleacutees dans le modegravele
ont leur utiliteacute
bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que
le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance
et la structure qui facilite son exploitation
21
Coheacuterence et Diversiteacute
Il y a un fort besoin de coheacuterence
Comme toutes les informations visent agrave deacutevelopper une application
il serait inteacuteressant de tout centraliser
Mais il ne faut pas uniformiser
Chaque intervenant a sa faccedilon propre de travailler
On ne peut pas donner un langage de programmation agrave un client
22
Modegravele et Diagramme
Modegravele
Lrsquoensemble des informations permettant la conception le
deacuteveloppement et la maintenance du logiciel (diagrammes code
tests documentation hellip)
Diagramme ou Vue
Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon
un certain point de vue (selon un axe servant un objectif) 23
Deacuteveloppeur Analyste Meacutetier
Modegravele
Objet Composant Service
24
Orienteacute-Objet
Concepts cleacute facilitant la construction drsquoapplications de grande taille
maintenables
Geacuteneacuterations de langages
1 Primitif asm
Pas de structure GOTO
2 Proceacutedural C Pascal
Structure de controcircle fonctions tableaux struct
3 Orienteacute Objet Java C++ hellip
Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation
4 Dynamique Python Perl JS hellip
Typage faible (scalaire list hash) reflexion avanceacutee
En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)
aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25
La classe
La classe
Cateacutegorie ou type
drsquoobjet
Munie de responsabiliteacutes
mateacuterialiseacutees par unedes
interfaces
Deacutefinie par ses attributs
et meacutethodes
Exemple classe
locomotive
Locomotive
- modele- puissance- vitesse- couleur
+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )
Lrsquoobjet instance drsquoune classe
bull Les instances drsquoobjets sont
deacutefinies par la valeur de leurs
attributs
bull Les traitements qursquoon peut
reacutealiser sur ces attributs sont
deacutefinis au niveau de la classe
agrave travers les meacutethodes
Un objet = instance drsquoune classe
dans un eacutetat particulier
-couleur= rouge
-puissance= 18000
-vitesse= 230
-modele= AL2119
Loco21Locomotive
L rsquoobjet notion drsquoencapsulation
Services publics
Donneacuteesproteacutegeacutees
Environnement
Messages
OBJET
Substituabiliteacute du noyau sans impacter les clients
L rsquoabstraction
La modeacutelisation OO pousse agrave
gagner en abstraction
Une application est composeacutee
drsquointeractions complexes entre
composants
Lrsquoencapsulation permet de faire
abstraction de lrsquoimpleacutementation
effective des comportements du
systegraveme pour reposer sur la notion
drsquointerface
Une interface deacutefinit des
responsabiliteacutes
indeacutependamment de la faccedilon
dont elles sont reacutealiseacutees
+demarrer()
+accelerer()
+freiner()
Locomotive
ltltabstractgtgt
LocomotiveDiesel LocomotiveElectrique
ltltinterfacegtgt
Objets vs Composants
bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS
bull Uniteacute de reacuteutilisation meacutediocre
bull La classe ne vient pas seule package entier
bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur
bull SGBD relationnel langages divers
bull Au-delagrave de lrsquoobjet
bull Modegraveles de composant
bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur
bull Uniteacute de reacuteutilisation et de deacuteploiement
bull Support de plateformes heacuteteacuterogegravenes
bull Support de plateformes distribueacutees
bull Vision composant promulgueacutee dans lrsquoUE (arc 2)
bull Au-delagrave du composant
bull SOA Service Oriented Architecture SaS Software as a Service
bull Compatible avec la vision orienteacute-composant
bull Application = choreacutegraphie entre composants dont on ne connait que les API
Unified Modeling Language
UML
Une notation standard pour repreacutesenter des
modegraveles drsquoartefacts logiciels
31
UML historique
bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)
et OOSE (~use case) premier standard OMG
bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique
encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )
bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication
drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution
rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration
bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues
UML est un standard industriel (OMG et ISO) =gt communiquer++ 32
Meacutethode OOD
BOOCH
Modeacutelisation dynamique
Meacutethode OOSE
JACOBSON
Cas drsquoutilisation
Meacutethode OMT
RUMBAUGH
Modeacutelisation statique
UML
Unified Modeling Language
Selon temps disponible
Diagramme de classe
bull Structure (attributs opeacuterations) associations typage
bull Expression Add Constante eval()int + impleacutementations
Diagramme drsquoobjet
bull Instances des classes dans une configuration particuliegravere snapshot
de lrsquoapplication
bull 3+2
Diagramme de Seacutequence
bull Axe temps (vertical) interactions entre instances donneacutees
eacutechangeacutees
bull (3+2)eval()
Intersections non vide entre ces diagrammes
bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances
bull Le modegravele UML unifie et assure la coheacuterence 33
Structure de lrsquoUE et Organisation
34
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
II Modeacutelisation
17
Retour sur la diversiteacute
Diffeacuterents intervenants
bull Chef de projet (avanceacutee du projet)
bull Deacuteveloppeur (meacutethode algo deacutependance aux API)
bull Testeur (deacutefinition de tests exeacutecution de tests)
bull Deploiement (mise en production tests de monteacutee en charge)
bull Qualiteacute (respect des charte meacutetriques)
bull CLIENT (besoin satisfait)
Points de vue diffeacuterents
Niveaux drsquoabstraction diffeacuterents
Pourtant tout cela doit ecirctre coheacuterent
Limitation des langages de programmation
1 seul niveau drsquoabstraction
1 seul niveau de diversiteacute
Les modegraveles offrent une solution pour aider agrave maintenir la coherence
tout en acceptant la diversiteacute
18
Qursquoest-ce qursquoun modegravele
Modegravele = repreacutesentation simplifieacutee du reacuteel
Contraintes de repreacutesentation facilitant le passage au logiciel 19
Pourquoi Modeacuteliser
20
Entre utilisateurs etinformaticiens
Entre informaticiens
analystes concepteursdeacuteveloppeursmainteneurs
Qualiteacute des modegraveles
coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie
Le premier but de la modeacutelisation
est de garantir
la bonne compreacutehension
entre les acteurs
COMMUNIQUER
CONTROLER
Le second but de la modeacutelisation
est de fournir une description
rigoureuse et controcirclable
Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme
bull documenter
Support outilleacute geacuteneacuteration de code de documentation
Analyses du modegravele (consistance coheacuterence)
Communiquer et Controcircler
Comment atteindre ces objectifs
Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode
de modeacutelisation on peut citer
bull la coheacuterence toutes les repreacutesentations qui composent le modegravele
sarticulent entre elles et ne se contredisent pas
bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute
linformation neacutecessaire pour atteindre les buts fixeacutes
bull la pertinence toutes les informations rassembleacutees dans le modegravele
ont leur utiliteacute
bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que
le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance
et la structure qui facilite son exploitation
21
Coheacuterence et Diversiteacute
Il y a un fort besoin de coheacuterence
Comme toutes les informations visent agrave deacutevelopper une application
il serait inteacuteressant de tout centraliser
Mais il ne faut pas uniformiser
Chaque intervenant a sa faccedilon propre de travailler
On ne peut pas donner un langage de programmation agrave un client
22
Modegravele et Diagramme
Modegravele
Lrsquoensemble des informations permettant la conception le
deacuteveloppement et la maintenance du logiciel (diagrammes code
tests documentation hellip)
Diagramme ou Vue
Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon
un certain point de vue (selon un axe servant un objectif) 23
Deacuteveloppeur Analyste Meacutetier
Modegravele
Objet Composant Service
24
Orienteacute-Objet
Concepts cleacute facilitant la construction drsquoapplications de grande taille
maintenables
Geacuteneacuterations de langages
1 Primitif asm
Pas de structure GOTO
2 Proceacutedural C Pascal
Structure de controcircle fonctions tableaux struct
3 Orienteacute Objet Java C++ hellip
Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation
4 Dynamique Python Perl JS hellip
Typage faible (scalaire list hash) reflexion avanceacutee
En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)
aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25
La classe
La classe
Cateacutegorie ou type
drsquoobjet
Munie de responsabiliteacutes
mateacuterialiseacutees par unedes
interfaces
Deacutefinie par ses attributs
et meacutethodes
Exemple classe
locomotive
Locomotive
- modele- puissance- vitesse- couleur
+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )
Lrsquoobjet instance drsquoune classe
bull Les instances drsquoobjets sont
deacutefinies par la valeur de leurs
attributs
bull Les traitements qursquoon peut
reacutealiser sur ces attributs sont
deacutefinis au niveau de la classe
agrave travers les meacutethodes
Un objet = instance drsquoune classe
dans un eacutetat particulier
-couleur= rouge
-puissance= 18000
-vitesse= 230
-modele= AL2119
Loco21Locomotive
L rsquoobjet notion drsquoencapsulation
Services publics
Donneacuteesproteacutegeacutees
Environnement
Messages
OBJET
Substituabiliteacute du noyau sans impacter les clients
L rsquoabstraction
La modeacutelisation OO pousse agrave
gagner en abstraction
Une application est composeacutee
drsquointeractions complexes entre
composants
Lrsquoencapsulation permet de faire
abstraction de lrsquoimpleacutementation
effective des comportements du
systegraveme pour reposer sur la notion
drsquointerface
Une interface deacutefinit des
responsabiliteacutes
indeacutependamment de la faccedilon
dont elles sont reacutealiseacutees
+demarrer()
+accelerer()
+freiner()
Locomotive
ltltabstractgtgt
LocomotiveDiesel LocomotiveElectrique
ltltinterfacegtgt
Objets vs Composants
bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS
bull Uniteacute de reacuteutilisation meacutediocre
bull La classe ne vient pas seule package entier
bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur
bull SGBD relationnel langages divers
bull Au-delagrave de lrsquoobjet
bull Modegraveles de composant
bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur
bull Uniteacute de reacuteutilisation et de deacuteploiement
bull Support de plateformes heacuteteacuterogegravenes
bull Support de plateformes distribueacutees
bull Vision composant promulgueacutee dans lrsquoUE (arc 2)
bull Au-delagrave du composant
bull SOA Service Oriented Architecture SaS Software as a Service
bull Compatible avec la vision orienteacute-composant
bull Application = choreacutegraphie entre composants dont on ne connait que les API
Unified Modeling Language
UML
Une notation standard pour repreacutesenter des
modegraveles drsquoartefacts logiciels
31
UML historique
bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)
et OOSE (~use case) premier standard OMG
bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique
encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )
bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication
drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution
rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration
bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues
UML est un standard industriel (OMG et ISO) =gt communiquer++ 32
Meacutethode OOD
BOOCH
Modeacutelisation dynamique
Meacutethode OOSE
JACOBSON
Cas drsquoutilisation
Meacutethode OMT
RUMBAUGH
Modeacutelisation statique
UML
Unified Modeling Language
Selon temps disponible
Diagramme de classe
bull Structure (attributs opeacuterations) associations typage
bull Expression Add Constante eval()int + impleacutementations
Diagramme drsquoobjet
bull Instances des classes dans une configuration particuliegravere snapshot
de lrsquoapplication
bull 3+2
Diagramme de Seacutequence
bull Axe temps (vertical) interactions entre instances donneacutees
eacutechangeacutees
bull (3+2)eval()
Intersections non vide entre ces diagrammes
bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances
bull Le modegravele UML unifie et assure la coheacuterence 33
Structure de lrsquoUE et Organisation
34
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
Retour sur la diversiteacute
Diffeacuterents intervenants
bull Chef de projet (avanceacutee du projet)
bull Deacuteveloppeur (meacutethode algo deacutependance aux API)
bull Testeur (deacutefinition de tests exeacutecution de tests)
bull Deploiement (mise en production tests de monteacutee en charge)
bull Qualiteacute (respect des charte meacutetriques)
bull CLIENT (besoin satisfait)
Points de vue diffeacuterents
Niveaux drsquoabstraction diffeacuterents
Pourtant tout cela doit ecirctre coheacuterent
Limitation des langages de programmation
1 seul niveau drsquoabstraction
1 seul niveau de diversiteacute
Les modegraveles offrent une solution pour aider agrave maintenir la coherence
tout en acceptant la diversiteacute
18
Qursquoest-ce qursquoun modegravele
Modegravele = repreacutesentation simplifieacutee du reacuteel
Contraintes de repreacutesentation facilitant le passage au logiciel 19
Pourquoi Modeacuteliser
20
Entre utilisateurs etinformaticiens
Entre informaticiens
analystes concepteursdeacuteveloppeursmainteneurs
Qualiteacute des modegraveles
coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie
Le premier but de la modeacutelisation
est de garantir
la bonne compreacutehension
entre les acteurs
COMMUNIQUER
CONTROLER
Le second but de la modeacutelisation
est de fournir une description
rigoureuse et controcirclable
Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme
bull documenter
Support outilleacute geacuteneacuteration de code de documentation
Analyses du modegravele (consistance coheacuterence)
Communiquer et Controcircler
Comment atteindre ces objectifs
Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode
de modeacutelisation on peut citer
bull la coheacuterence toutes les repreacutesentations qui composent le modegravele
sarticulent entre elles et ne se contredisent pas
bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute
linformation neacutecessaire pour atteindre les buts fixeacutes
bull la pertinence toutes les informations rassembleacutees dans le modegravele
ont leur utiliteacute
bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que
le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance
et la structure qui facilite son exploitation
21
Coheacuterence et Diversiteacute
Il y a un fort besoin de coheacuterence
Comme toutes les informations visent agrave deacutevelopper une application
il serait inteacuteressant de tout centraliser
Mais il ne faut pas uniformiser
Chaque intervenant a sa faccedilon propre de travailler
On ne peut pas donner un langage de programmation agrave un client
22
Modegravele et Diagramme
Modegravele
Lrsquoensemble des informations permettant la conception le
deacuteveloppement et la maintenance du logiciel (diagrammes code
tests documentation hellip)
Diagramme ou Vue
Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon
un certain point de vue (selon un axe servant un objectif) 23
Deacuteveloppeur Analyste Meacutetier
Modegravele
Objet Composant Service
24
Orienteacute-Objet
Concepts cleacute facilitant la construction drsquoapplications de grande taille
maintenables
Geacuteneacuterations de langages
1 Primitif asm
Pas de structure GOTO
2 Proceacutedural C Pascal
Structure de controcircle fonctions tableaux struct
3 Orienteacute Objet Java C++ hellip
Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation
4 Dynamique Python Perl JS hellip
Typage faible (scalaire list hash) reflexion avanceacutee
En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)
aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25
La classe
La classe
Cateacutegorie ou type
drsquoobjet
Munie de responsabiliteacutes
mateacuterialiseacutees par unedes
interfaces
Deacutefinie par ses attributs
et meacutethodes
Exemple classe
locomotive
Locomotive
- modele- puissance- vitesse- couleur
+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )
Lrsquoobjet instance drsquoune classe
bull Les instances drsquoobjets sont
deacutefinies par la valeur de leurs
attributs
bull Les traitements qursquoon peut
reacutealiser sur ces attributs sont
deacutefinis au niveau de la classe
agrave travers les meacutethodes
Un objet = instance drsquoune classe
dans un eacutetat particulier
-couleur= rouge
-puissance= 18000
-vitesse= 230
-modele= AL2119
Loco21Locomotive
L rsquoobjet notion drsquoencapsulation
Services publics
Donneacuteesproteacutegeacutees
Environnement
Messages
OBJET
Substituabiliteacute du noyau sans impacter les clients
L rsquoabstraction
La modeacutelisation OO pousse agrave
gagner en abstraction
Une application est composeacutee
drsquointeractions complexes entre
composants
Lrsquoencapsulation permet de faire
abstraction de lrsquoimpleacutementation
effective des comportements du
systegraveme pour reposer sur la notion
drsquointerface
Une interface deacutefinit des
responsabiliteacutes
indeacutependamment de la faccedilon
dont elles sont reacutealiseacutees
+demarrer()
+accelerer()
+freiner()
Locomotive
ltltabstractgtgt
LocomotiveDiesel LocomotiveElectrique
ltltinterfacegtgt
Objets vs Composants
bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS
bull Uniteacute de reacuteutilisation meacutediocre
bull La classe ne vient pas seule package entier
bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur
bull SGBD relationnel langages divers
bull Au-delagrave de lrsquoobjet
bull Modegraveles de composant
bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur
bull Uniteacute de reacuteutilisation et de deacuteploiement
bull Support de plateformes heacuteteacuterogegravenes
bull Support de plateformes distribueacutees
bull Vision composant promulgueacutee dans lrsquoUE (arc 2)
bull Au-delagrave du composant
bull SOA Service Oriented Architecture SaS Software as a Service
bull Compatible avec la vision orienteacute-composant
bull Application = choreacutegraphie entre composants dont on ne connait que les API
Unified Modeling Language
UML
Une notation standard pour repreacutesenter des
modegraveles drsquoartefacts logiciels
31
UML historique
bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)
et OOSE (~use case) premier standard OMG
bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique
encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )
bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication
drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution
rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration
bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues
UML est un standard industriel (OMG et ISO) =gt communiquer++ 32
Meacutethode OOD
BOOCH
Modeacutelisation dynamique
Meacutethode OOSE
JACOBSON
Cas drsquoutilisation
Meacutethode OMT
RUMBAUGH
Modeacutelisation statique
UML
Unified Modeling Language
Selon temps disponible
Diagramme de classe
bull Structure (attributs opeacuterations) associations typage
bull Expression Add Constante eval()int + impleacutementations
Diagramme drsquoobjet
bull Instances des classes dans une configuration particuliegravere snapshot
de lrsquoapplication
bull 3+2
Diagramme de Seacutequence
bull Axe temps (vertical) interactions entre instances donneacutees
eacutechangeacutees
bull (3+2)eval()
Intersections non vide entre ces diagrammes
bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances
bull Le modegravele UML unifie et assure la coheacuterence 33
Structure de lrsquoUE et Organisation
34
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
Qursquoest-ce qursquoun modegravele
Modegravele = repreacutesentation simplifieacutee du reacuteel
Contraintes de repreacutesentation facilitant le passage au logiciel 19
Pourquoi Modeacuteliser
20
Entre utilisateurs etinformaticiens
Entre informaticiens
analystes concepteursdeacuteveloppeursmainteneurs
Qualiteacute des modegraveles
coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie
Le premier but de la modeacutelisation
est de garantir
la bonne compreacutehension
entre les acteurs
COMMUNIQUER
CONTROLER
Le second but de la modeacutelisation
est de fournir une description
rigoureuse et controcirclable
Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme
bull documenter
Support outilleacute geacuteneacuteration de code de documentation
Analyses du modegravele (consistance coheacuterence)
Communiquer et Controcircler
Comment atteindre ces objectifs
Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode
de modeacutelisation on peut citer
bull la coheacuterence toutes les repreacutesentations qui composent le modegravele
sarticulent entre elles et ne se contredisent pas
bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute
linformation neacutecessaire pour atteindre les buts fixeacutes
bull la pertinence toutes les informations rassembleacutees dans le modegravele
ont leur utiliteacute
bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que
le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance
et la structure qui facilite son exploitation
21
Coheacuterence et Diversiteacute
Il y a un fort besoin de coheacuterence
Comme toutes les informations visent agrave deacutevelopper une application
il serait inteacuteressant de tout centraliser
Mais il ne faut pas uniformiser
Chaque intervenant a sa faccedilon propre de travailler
On ne peut pas donner un langage de programmation agrave un client
22
Modegravele et Diagramme
Modegravele
Lrsquoensemble des informations permettant la conception le
deacuteveloppement et la maintenance du logiciel (diagrammes code
tests documentation hellip)
Diagramme ou Vue
Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon
un certain point de vue (selon un axe servant un objectif) 23
Deacuteveloppeur Analyste Meacutetier
Modegravele
Objet Composant Service
24
Orienteacute-Objet
Concepts cleacute facilitant la construction drsquoapplications de grande taille
maintenables
Geacuteneacuterations de langages
1 Primitif asm
Pas de structure GOTO
2 Proceacutedural C Pascal
Structure de controcircle fonctions tableaux struct
3 Orienteacute Objet Java C++ hellip
Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation
4 Dynamique Python Perl JS hellip
Typage faible (scalaire list hash) reflexion avanceacutee
En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)
aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25
La classe
La classe
Cateacutegorie ou type
drsquoobjet
Munie de responsabiliteacutes
mateacuterialiseacutees par unedes
interfaces
Deacutefinie par ses attributs
et meacutethodes
Exemple classe
locomotive
Locomotive
- modele- puissance- vitesse- couleur
+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )
Lrsquoobjet instance drsquoune classe
bull Les instances drsquoobjets sont
deacutefinies par la valeur de leurs
attributs
bull Les traitements qursquoon peut
reacutealiser sur ces attributs sont
deacutefinis au niveau de la classe
agrave travers les meacutethodes
Un objet = instance drsquoune classe
dans un eacutetat particulier
-couleur= rouge
-puissance= 18000
-vitesse= 230
-modele= AL2119
Loco21Locomotive
L rsquoobjet notion drsquoencapsulation
Services publics
Donneacuteesproteacutegeacutees
Environnement
Messages
OBJET
Substituabiliteacute du noyau sans impacter les clients
L rsquoabstraction
La modeacutelisation OO pousse agrave
gagner en abstraction
Une application est composeacutee
drsquointeractions complexes entre
composants
Lrsquoencapsulation permet de faire
abstraction de lrsquoimpleacutementation
effective des comportements du
systegraveme pour reposer sur la notion
drsquointerface
Une interface deacutefinit des
responsabiliteacutes
indeacutependamment de la faccedilon
dont elles sont reacutealiseacutees
+demarrer()
+accelerer()
+freiner()
Locomotive
ltltabstractgtgt
LocomotiveDiesel LocomotiveElectrique
ltltinterfacegtgt
Objets vs Composants
bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS
bull Uniteacute de reacuteutilisation meacutediocre
bull La classe ne vient pas seule package entier
bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur
bull SGBD relationnel langages divers
bull Au-delagrave de lrsquoobjet
bull Modegraveles de composant
bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur
bull Uniteacute de reacuteutilisation et de deacuteploiement
bull Support de plateformes heacuteteacuterogegravenes
bull Support de plateformes distribueacutees
bull Vision composant promulgueacutee dans lrsquoUE (arc 2)
bull Au-delagrave du composant
bull SOA Service Oriented Architecture SaS Software as a Service
bull Compatible avec la vision orienteacute-composant
bull Application = choreacutegraphie entre composants dont on ne connait que les API
Unified Modeling Language
UML
Une notation standard pour repreacutesenter des
modegraveles drsquoartefacts logiciels
31
UML historique
bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)
et OOSE (~use case) premier standard OMG
bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique
encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )
bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication
drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution
rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration
bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues
UML est un standard industriel (OMG et ISO) =gt communiquer++ 32
Meacutethode OOD
BOOCH
Modeacutelisation dynamique
Meacutethode OOSE
JACOBSON
Cas drsquoutilisation
Meacutethode OMT
RUMBAUGH
Modeacutelisation statique
UML
Unified Modeling Language
Selon temps disponible
Diagramme de classe
bull Structure (attributs opeacuterations) associations typage
bull Expression Add Constante eval()int + impleacutementations
Diagramme drsquoobjet
bull Instances des classes dans une configuration particuliegravere snapshot
de lrsquoapplication
bull 3+2
Diagramme de Seacutequence
bull Axe temps (vertical) interactions entre instances donneacutees
eacutechangeacutees
bull (3+2)eval()
Intersections non vide entre ces diagrammes
bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances
bull Le modegravele UML unifie et assure la coheacuterence 33
Structure de lrsquoUE et Organisation
34
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
Pourquoi Modeacuteliser
20
Entre utilisateurs etinformaticiens
Entre informaticiens
analystes concepteursdeacuteveloppeursmainteneurs
Qualiteacute des modegraveles
coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie
Le premier but de la modeacutelisation
est de garantir
la bonne compreacutehension
entre les acteurs
COMMUNIQUER
CONTROLER
Le second but de la modeacutelisation
est de fournir une description
rigoureuse et controcirclable
Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme
bull documenter
Support outilleacute geacuteneacuteration de code de documentation
Analyses du modegravele (consistance coheacuterence)
Communiquer et Controcircler
Comment atteindre ces objectifs
Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode
de modeacutelisation on peut citer
bull la coheacuterence toutes les repreacutesentations qui composent le modegravele
sarticulent entre elles et ne se contredisent pas
bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute
linformation neacutecessaire pour atteindre les buts fixeacutes
bull la pertinence toutes les informations rassembleacutees dans le modegravele
ont leur utiliteacute
bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que
le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance
et la structure qui facilite son exploitation
21
Coheacuterence et Diversiteacute
Il y a un fort besoin de coheacuterence
Comme toutes les informations visent agrave deacutevelopper une application
il serait inteacuteressant de tout centraliser
Mais il ne faut pas uniformiser
Chaque intervenant a sa faccedilon propre de travailler
On ne peut pas donner un langage de programmation agrave un client
22
Modegravele et Diagramme
Modegravele
Lrsquoensemble des informations permettant la conception le
deacuteveloppement et la maintenance du logiciel (diagrammes code
tests documentation hellip)
Diagramme ou Vue
Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon
un certain point de vue (selon un axe servant un objectif) 23
Deacuteveloppeur Analyste Meacutetier
Modegravele
Objet Composant Service
24
Orienteacute-Objet
Concepts cleacute facilitant la construction drsquoapplications de grande taille
maintenables
Geacuteneacuterations de langages
1 Primitif asm
Pas de structure GOTO
2 Proceacutedural C Pascal
Structure de controcircle fonctions tableaux struct
3 Orienteacute Objet Java C++ hellip
Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation
4 Dynamique Python Perl JS hellip
Typage faible (scalaire list hash) reflexion avanceacutee
En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)
aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25
La classe
La classe
Cateacutegorie ou type
drsquoobjet
Munie de responsabiliteacutes
mateacuterialiseacutees par unedes
interfaces
Deacutefinie par ses attributs
et meacutethodes
Exemple classe
locomotive
Locomotive
- modele- puissance- vitesse- couleur
+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )
Lrsquoobjet instance drsquoune classe
bull Les instances drsquoobjets sont
deacutefinies par la valeur de leurs
attributs
bull Les traitements qursquoon peut
reacutealiser sur ces attributs sont
deacutefinis au niveau de la classe
agrave travers les meacutethodes
Un objet = instance drsquoune classe
dans un eacutetat particulier
-couleur= rouge
-puissance= 18000
-vitesse= 230
-modele= AL2119
Loco21Locomotive
L rsquoobjet notion drsquoencapsulation
Services publics
Donneacuteesproteacutegeacutees
Environnement
Messages
OBJET
Substituabiliteacute du noyau sans impacter les clients
L rsquoabstraction
La modeacutelisation OO pousse agrave
gagner en abstraction
Une application est composeacutee
drsquointeractions complexes entre
composants
Lrsquoencapsulation permet de faire
abstraction de lrsquoimpleacutementation
effective des comportements du
systegraveme pour reposer sur la notion
drsquointerface
Une interface deacutefinit des
responsabiliteacutes
indeacutependamment de la faccedilon
dont elles sont reacutealiseacutees
+demarrer()
+accelerer()
+freiner()
Locomotive
ltltabstractgtgt
LocomotiveDiesel LocomotiveElectrique
ltltinterfacegtgt
Objets vs Composants
bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS
bull Uniteacute de reacuteutilisation meacutediocre
bull La classe ne vient pas seule package entier
bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur
bull SGBD relationnel langages divers
bull Au-delagrave de lrsquoobjet
bull Modegraveles de composant
bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur
bull Uniteacute de reacuteutilisation et de deacuteploiement
bull Support de plateformes heacuteteacuterogegravenes
bull Support de plateformes distribueacutees
bull Vision composant promulgueacutee dans lrsquoUE (arc 2)
bull Au-delagrave du composant
bull SOA Service Oriented Architecture SaS Software as a Service
bull Compatible avec la vision orienteacute-composant
bull Application = choreacutegraphie entre composants dont on ne connait que les API
Unified Modeling Language
UML
Une notation standard pour repreacutesenter des
modegraveles drsquoartefacts logiciels
31
UML historique
bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)
et OOSE (~use case) premier standard OMG
bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique
encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )
bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication
drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution
rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration
bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues
UML est un standard industriel (OMG et ISO) =gt communiquer++ 32
Meacutethode OOD
BOOCH
Modeacutelisation dynamique
Meacutethode OOSE
JACOBSON
Cas drsquoutilisation
Meacutethode OMT
RUMBAUGH
Modeacutelisation statique
UML
Unified Modeling Language
Selon temps disponible
Diagramme de classe
bull Structure (attributs opeacuterations) associations typage
bull Expression Add Constante eval()int + impleacutementations
Diagramme drsquoobjet
bull Instances des classes dans une configuration particuliegravere snapshot
de lrsquoapplication
bull 3+2
Diagramme de Seacutequence
bull Axe temps (vertical) interactions entre instances donneacutees
eacutechangeacutees
bull (3+2)eval()
Intersections non vide entre ces diagrammes
bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances
bull Le modegravele UML unifie et assure la coheacuterence 33
Structure de lrsquoUE et Organisation
34
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
Communiquer et Controcircler
Comment atteindre ces objectifs
Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode
de modeacutelisation on peut citer
bull la coheacuterence toutes les repreacutesentations qui composent le modegravele
sarticulent entre elles et ne se contredisent pas
bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute
linformation neacutecessaire pour atteindre les buts fixeacutes
bull la pertinence toutes les informations rassembleacutees dans le modegravele
ont leur utiliteacute
bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que
le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance
et la structure qui facilite son exploitation
21
Coheacuterence et Diversiteacute
Il y a un fort besoin de coheacuterence
Comme toutes les informations visent agrave deacutevelopper une application
il serait inteacuteressant de tout centraliser
Mais il ne faut pas uniformiser
Chaque intervenant a sa faccedilon propre de travailler
On ne peut pas donner un langage de programmation agrave un client
22
Modegravele et Diagramme
Modegravele
Lrsquoensemble des informations permettant la conception le
deacuteveloppement et la maintenance du logiciel (diagrammes code
tests documentation hellip)
Diagramme ou Vue
Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon
un certain point de vue (selon un axe servant un objectif) 23
Deacuteveloppeur Analyste Meacutetier
Modegravele
Objet Composant Service
24
Orienteacute-Objet
Concepts cleacute facilitant la construction drsquoapplications de grande taille
maintenables
Geacuteneacuterations de langages
1 Primitif asm
Pas de structure GOTO
2 Proceacutedural C Pascal
Structure de controcircle fonctions tableaux struct
3 Orienteacute Objet Java C++ hellip
Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation
4 Dynamique Python Perl JS hellip
Typage faible (scalaire list hash) reflexion avanceacutee
En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)
aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25
La classe
La classe
Cateacutegorie ou type
drsquoobjet
Munie de responsabiliteacutes
mateacuterialiseacutees par unedes
interfaces
Deacutefinie par ses attributs
et meacutethodes
Exemple classe
locomotive
Locomotive
- modele- puissance- vitesse- couleur
+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )
Lrsquoobjet instance drsquoune classe
bull Les instances drsquoobjets sont
deacutefinies par la valeur de leurs
attributs
bull Les traitements qursquoon peut
reacutealiser sur ces attributs sont
deacutefinis au niveau de la classe
agrave travers les meacutethodes
Un objet = instance drsquoune classe
dans un eacutetat particulier
-couleur= rouge
-puissance= 18000
-vitesse= 230
-modele= AL2119
Loco21Locomotive
L rsquoobjet notion drsquoencapsulation
Services publics
Donneacuteesproteacutegeacutees
Environnement
Messages
OBJET
Substituabiliteacute du noyau sans impacter les clients
L rsquoabstraction
La modeacutelisation OO pousse agrave
gagner en abstraction
Une application est composeacutee
drsquointeractions complexes entre
composants
Lrsquoencapsulation permet de faire
abstraction de lrsquoimpleacutementation
effective des comportements du
systegraveme pour reposer sur la notion
drsquointerface
Une interface deacutefinit des
responsabiliteacutes
indeacutependamment de la faccedilon
dont elles sont reacutealiseacutees
+demarrer()
+accelerer()
+freiner()
Locomotive
ltltabstractgtgt
LocomotiveDiesel LocomotiveElectrique
ltltinterfacegtgt
Objets vs Composants
bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS
bull Uniteacute de reacuteutilisation meacutediocre
bull La classe ne vient pas seule package entier
bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur
bull SGBD relationnel langages divers
bull Au-delagrave de lrsquoobjet
bull Modegraveles de composant
bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur
bull Uniteacute de reacuteutilisation et de deacuteploiement
bull Support de plateformes heacuteteacuterogegravenes
bull Support de plateformes distribueacutees
bull Vision composant promulgueacutee dans lrsquoUE (arc 2)
bull Au-delagrave du composant
bull SOA Service Oriented Architecture SaS Software as a Service
bull Compatible avec la vision orienteacute-composant
bull Application = choreacutegraphie entre composants dont on ne connait que les API
Unified Modeling Language
UML
Une notation standard pour repreacutesenter des
modegraveles drsquoartefacts logiciels
31
UML historique
bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)
et OOSE (~use case) premier standard OMG
bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique
encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )
bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication
drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution
rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration
bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues
UML est un standard industriel (OMG et ISO) =gt communiquer++ 32
Meacutethode OOD
BOOCH
Modeacutelisation dynamique
Meacutethode OOSE
JACOBSON
Cas drsquoutilisation
Meacutethode OMT
RUMBAUGH
Modeacutelisation statique
UML
Unified Modeling Language
Selon temps disponible
Diagramme de classe
bull Structure (attributs opeacuterations) associations typage
bull Expression Add Constante eval()int + impleacutementations
Diagramme drsquoobjet
bull Instances des classes dans une configuration particuliegravere snapshot
de lrsquoapplication
bull 3+2
Diagramme de Seacutequence
bull Axe temps (vertical) interactions entre instances donneacutees
eacutechangeacutees
bull (3+2)eval()
Intersections non vide entre ces diagrammes
bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances
bull Le modegravele UML unifie et assure la coheacuterence 33
Structure de lrsquoUE et Organisation
34
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
Coheacuterence et Diversiteacute
Il y a un fort besoin de coheacuterence
Comme toutes les informations visent agrave deacutevelopper une application
il serait inteacuteressant de tout centraliser
Mais il ne faut pas uniformiser
Chaque intervenant a sa faccedilon propre de travailler
On ne peut pas donner un langage de programmation agrave un client
22
Modegravele et Diagramme
Modegravele
Lrsquoensemble des informations permettant la conception le
deacuteveloppement et la maintenance du logiciel (diagrammes code
tests documentation hellip)
Diagramme ou Vue
Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon
un certain point de vue (selon un axe servant un objectif) 23
Deacuteveloppeur Analyste Meacutetier
Modegravele
Objet Composant Service
24
Orienteacute-Objet
Concepts cleacute facilitant la construction drsquoapplications de grande taille
maintenables
Geacuteneacuterations de langages
1 Primitif asm
Pas de structure GOTO
2 Proceacutedural C Pascal
Structure de controcircle fonctions tableaux struct
3 Orienteacute Objet Java C++ hellip
Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation
4 Dynamique Python Perl JS hellip
Typage faible (scalaire list hash) reflexion avanceacutee
En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)
aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25
La classe
La classe
Cateacutegorie ou type
drsquoobjet
Munie de responsabiliteacutes
mateacuterialiseacutees par unedes
interfaces
Deacutefinie par ses attributs
et meacutethodes
Exemple classe
locomotive
Locomotive
- modele- puissance- vitesse- couleur
+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )
Lrsquoobjet instance drsquoune classe
bull Les instances drsquoobjets sont
deacutefinies par la valeur de leurs
attributs
bull Les traitements qursquoon peut
reacutealiser sur ces attributs sont
deacutefinis au niveau de la classe
agrave travers les meacutethodes
Un objet = instance drsquoune classe
dans un eacutetat particulier
-couleur= rouge
-puissance= 18000
-vitesse= 230
-modele= AL2119
Loco21Locomotive
L rsquoobjet notion drsquoencapsulation
Services publics
Donneacuteesproteacutegeacutees
Environnement
Messages
OBJET
Substituabiliteacute du noyau sans impacter les clients
L rsquoabstraction
La modeacutelisation OO pousse agrave
gagner en abstraction
Une application est composeacutee
drsquointeractions complexes entre
composants
Lrsquoencapsulation permet de faire
abstraction de lrsquoimpleacutementation
effective des comportements du
systegraveme pour reposer sur la notion
drsquointerface
Une interface deacutefinit des
responsabiliteacutes
indeacutependamment de la faccedilon
dont elles sont reacutealiseacutees
+demarrer()
+accelerer()
+freiner()
Locomotive
ltltabstractgtgt
LocomotiveDiesel LocomotiveElectrique
ltltinterfacegtgt
Objets vs Composants
bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS
bull Uniteacute de reacuteutilisation meacutediocre
bull La classe ne vient pas seule package entier
bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur
bull SGBD relationnel langages divers
bull Au-delagrave de lrsquoobjet
bull Modegraveles de composant
bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur
bull Uniteacute de reacuteutilisation et de deacuteploiement
bull Support de plateformes heacuteteacuterogegravenes
bull Support de plateformes distribueacutees
bull Vision composant promulgueacutee dans lrsquoUE (arc 2)
bull Au-delagrave du composant
bull SOA Service Oriented Architecture SaS Software as a Service
bull Compatible avec la vision orienteacute-composant
bull Application = choreacutegraphie entre composants dont on ne connait que les API
Unified Modeling Language
UML
Une notation standard pour repreacutesenter des
modegraveles drsquoartefacts logiciels
31
UML historique
bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)
et OOSE (~use case) premier standard OMG
bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique
encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )
bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication
drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution
rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration
bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues
UML est un standard industriel (OMG et ISO) =gt communiquer++ 32
Meacutethode OOD
BOOCH
Modeacutelisation dynamique
Meacutethode OOSE
JACOBSON
Cas drsquoutilisation
Meacutethode OMT
RUMBAUGH
Modeacutelisation statique
UML
Unified Modeling Language
Selon temps disponible
Diagramme de classe
bull Structure (attributs opeacuterations) associations typage
bull Expression Add Constante eval()int + impleacutementations
Diagramme drsquoobjet
bull Instances des classes dans une configuration particuliegravere snapshot
de lrsquoapplication
bull 3+2
Diagramme de Seacutequence
bull Axe temps (vertical) interactions entre instances donneacutees
eacutechangeacutees
bull (3+2)eval()
Intersections non vide entre ces diagrammes
bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances
bull Le modegravele UML unifie et assure la coheacuterence 33
Structure de lrsquoUE et Organisation
34
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
Modegravele et Diagramme
Modegravele
Lrsquoensemble des informations permettant la conception le
deacuteveloppement et la maintenance du logiciel (diagrammes code
tests documentation hellip)
Diagramme ou Vue
Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon
un certain point de vue (selon un axe servant un objectif) 23
Deacuteveloppeur Analyste Meacutetier
Modegravele
Objet Composant Service
24
Orienteacute-Objet
Concepts cleacute facilitant la construction drsquoapplications de grande taille
maintenables
Geacuteneacuterations de langages
1 Primitif asm
Pas de structure GOTO
2 Proceacutedural C Pascal
Structure de controcircle fonctions tableaux struct
3 Orienteacute Objet Java C++ hellip
Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation
4 Dynamique Python Perl JS hellip
Typage faible (scalaire list hash) reflexion avanceacutee
En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)
aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25
La classe
La classe
Cateacutegorie ou type
drsquoobjet
Munie de responsabiliteacutes
mateacuterialiseacutees par unedes
interfaces
Deacutefinie par ses attributs
et meacutethodes
Exemple classe
locomotive
Locomotive
- modele- puissance- vitesse- couleur
+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )
Lrsquoobjet instance drsquoune classe
bull Les instances drsquoobjets sont
deacutefinies par la valeur de leurs
attributs
bull Les traitements qursquoon peut
reacutealiser sur ces attributs sont
deacutefinis au niveau de la classe
agrave travers les meacutethodes
Un objet = instance drsquoune classe
dans un eacutetat particulier
-couleur= rouge
-puissance= 18000
-vitesse= 230
-modele= AL2119
Loco21Locomotive
L rsquoobjet notion drsquoencapsulation
Services publics
Donneacuteesproteacutegeacutees
Environnement
Messages
OBJET
Substituabiliteacute du noyau sans impacter les clients
L rsquoabstraction
La modeacutelisation OO pousse agrave
gagner en abstraction
Une application est composeacutee
drsquointeractions complexes entre
composants
Lrsquoencapsulation permet de faire
abstraction de lrsquoimpleacutementation
effective des comportements du
systegraveme pour reposer sur la notion
drsquointerface
Une interface deacutefinit des
responsabiliteacutes
indeacutependamment de la faccedilon
dont elles sont reacutealiseacutees
+demarrer()
+accelerer()
+freiner()
Locomotive
ltltabstractgtgt
LocomotiveDiesel LocomotiveElectrique
ltltinterfacegtgt
Objets vs Composants
bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS
bull Uniteacute de reacuteutilisation meacutediocre
bull La classe ne vient pas seule package entier
bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur
bull SGBD relationnel langages divers
bull Au-delagrave de lrsquoobjet
bull Modegraveles de composant
bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur
bull Uniteacute de reacuteutilisation et de deacuteploiement
bull Support de plateformes heacuteteacuterogegravenes
bull Support de plateformes distribueacutees
bull Vision composant promulgueacutee dans lrsquoUE (arc 2)
bull Au-delagrave du composant
bull SOA Service Oriented Architecture SaS Software as a Service
bull Compatible avec la vision orienteacute-composant
bull Application = choreacutegraphie entre composants dont on ne connait que les API
Unified Modeling Language
UML
Une notation standard pour repreacutesenter des
modegraveles drsquoartefacts logiciels
31
UML historique
bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)
et OOSE (~use case) premier standard OMG
bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique
encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )
bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication
drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution
rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration
bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues
UML est un standard industriel (OMG et ISO) =gt communiquer++ 32
Meacutethode OOD
BOOCH
Modeacutelisation dynamique
Meacutethode OOSE
JACOBSON
Cas drsquoutilisation
Meacutethode OMT
RUMBAUGH
Modeacutelisation statique
UML
Unified Modeling Language
Selon temps disponible
Diagramme de classe
bull Structure (attributs opeacuterations) associations typage
bull Expression Add Constante eval()int + impleacutementations
Diagramme drsquoobjet
bull Instances des classes dans une configuration particuliegravere snapshot
de lrsquoapplication
bull 3+2
Diagramme de Seacutequence
bull Axe temps (vertical) interactions entre instances donneacutees
eacutechangeacutees
bull (3+2)eval()
Intersections non vide entre ces diagrammes
bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances
bull Le modegravele UML unifie et assure la coheacuterence 33
Structure de lrsquoUE et Organisation
34
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
Objet Composant Service
24
Orienteacute-Objet
Concepts cleacute facilitant la construction drsquoapplications de grande taille
maintenables
Geacuteneacuterations de langages
1 Primitif asm
Pas de structure GOTO
2 Proceacutedural C Pascal
Structure de controcircle fonctions tableaux struct
3 Orienteacute Objet Java C++ hellip
Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation
4 Dynamique Python Perl JS hellip
Typage faible (scalaire list hash) reflexion avanceacutee
En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)
aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25
La classe
La classe
Cateacutegorie ou type
drsquoobjet
Munie de responsabiliteacutes
mateacuterialiseacutees par unedes
interfaces
Deacutefinie par ses attributs
et meacutethodes
Exemple classe
locomotive
Locomotive
- modele- puissance- vitesse- couleur
+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )
Lrsquoobjet instance drsquoune classe
bull Les instances drsquoobjets sont
deacutefinies par la valeur de leurs
attributs
bull Les traitements qursquoon peut
reacutealiser sur ces attributs sont
deacutefinis au niveau de la classe
agrave travers les meacutethodes
Un objet = instance drsquoune classe
dans un eacutetat particulier
-couleur= rouge
-puissance= 18000
-vitesse= 230
-modele= AL2119
Loco21Locomotive
L rsquoobjet notion drsquoencapsulation
Services publics
Donneacuteesproteacutegeacutees
Environnement
Messages
OBJET
Substituabiliteacute du noyau sans impacter les clients
L rsquoabstraction
La modeacutelisation OO pousse agrave
gagner en abstraction
Une application est composeacutee
drsquointeractions complexes entre
composants
Lrsquoencapsulation permet de faire
abstraction de lrsquoimpleacutementation
effective des comportements du
systegraveme pour reposer sur la notion
drsquointerface
Une interface deacutefinit des
responsabiliteacutes
indeacutependamment de la faccedilon
dont elles sont reacutealiseacutees
+demarrer()
+accelerer()
+freiner()
Locomotive
ltltabstractgtgt
LocomotiveDiesel LocomotiveElectrique
ltltinterfacegtgt
Objets vs Composants
bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS
bull Uniteacute de reacuteutilisation meacutediocre
bull La classe ne vient pas seule package entier
bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur
bull SGBD relationnel langages divers
bull Au-delagrave de lrsquoobjet
bull Modegraveles de composant
bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur
bull Uniteacute de reacuteutilisation et de deacuteploiement
bull Support de plateformes heacuteteacuterogegravenes
bull Support de plateformes distribueacutees
bull Vision composant promulgueacutee dans lrsquoUE (arc 2)
bull Au-delagrave du composant
bull SOA Service Oriented Architecture SaS Software as a Service
bull Compatible avec la vision orienteacute-composant
bull Application = choreacutegraphie entre composants dont on ne connait que les API
Unified Modeling Language
UML
Une notation standard pour repreacutesenter des
modegraveles drsquoartefacts logiciels
31
UML historique
bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)
et OOSE (~use case) premier standard OMG
bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique
encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )
bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication
drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution
rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration
bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues
UML est un standard industriel (OMG et ISO) =gt communiquer++ 32
Meacutethode OOD
BOOCH
Modeacutelisation dynamique
Meacutethode OOSE
JACOBSON
Cas drsquoutilisation
Meacutethode OMT
RUMBAUGH
Modeacutelisation statique
UML
Unified Modeling Language
Selon temps disponible
Diagramme de classe
bull Structure (attributs opeacuterations) associations typage
bull Expression Add Constante eval()int + impleacutementations
Diagramme drsquoobjet
bull Instances des classes dans une configuration particuliegravere snapshot
de lrsquoapplication
bull 3+2
Diagramme de Seacutequence
bull Axe temps (vertical) interactions entre instances donneacutees
eacutechangeacutees
bull (3+2)eval()
Intersections non vide entre ces diagrammes
bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances
bull Le modegravele UML unifie et assure la coheacuterence 33
Structure de lrsquoUE et Organisation
34
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
Orienteacute-Objet
Concepts cleacute facilitant la construction drsquoapplications de grande taille
maintenables
Geacuteneacuterations de langages
1 Primitif asm
Pas de structure GOTO
2 Proceacutedural C Pascal
Structure de controcircle fonctions tableaux struct
3 Orienteacute Objet Java C++ hellip
Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation
4 Dynamique Python Perl JS hellip
Typage faible (scalaire list hash) reflexion avanceacutee
En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)
aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25
La classe
La classe
Cateacutegorie ou type
drsquoobjet
Munie de responsabiliteacutes
mateacuterialiseacutees par unedes
interfaces
Deacutefinie par ses attributs
et meacutethodes
Exemple classe
locomotive
Locomotive
- modele- puissance- vitesse- couleur
+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )
Lrsquoobjet instance drsquoune classe
bull Les instances drsquoobjets sont
deacutefinies par la valeur de leurs
attributs
bull Les traitements qursquoon peut
reacutealiser sur ces attributs sont
deacutefinis au niveau de la classe
agrave travers les meacutethodes
Un objet = instance drsquoune classe
dans un eacutetat particulier
-couleur= rouge
-puissance= 18000
-vitesse= 230
-modele= AL2119
Loco21Locomotive
L rsquoobjet notion drsquoencapsulation
Services publics
Donneacuteesproteacutegeacutees
Environnement
Messages
OBJET
Substituabiliteacute du noyau sans impacter les clients
L rsquoabstraction
La modeacutelisation OO pousse agrave
gagner en abstraction
Une application est composeacutee
drsquointeractions complexes entre
composants
Lrsquoencapsulation permet de faire
abstraction de lrsquoimpleacutementation
effective des comportements du
systegraveme pour reposer sur la notion
drsquointerface
Une interface deacutefinit des
responsabiliteacutes
indeacutependamment de la faccedilon
dont elles sont reacutealiseacutees
+demarrer()
+accelerer()
+freiner()
Locomotive
ltltabstractgtgt
LocomotiveDiesel LocomotiveElectrique
ltltinterfacegtgt
Objets vs Composants
bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS
bull Uniteacute de reacuteutilisation meacutediocre
bull La classe ne vient pas seule package entier
bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur
bull SGBD relationnel langages divers
bull Au-delagrave de lrsquoobjet
bull Modegraveles de composant
bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur
bull Uniteacute de reacuteutilisation et de deacuteploiement
bull Support de plateformes heacuteteacuterogegravenes
bull Support de plateformes distribueacutees
bull Vision composant promulgueacutee dans lrsquoUE (arc 2)
bull Au-delagrave du composant
bull SOA Service Oriented Architecture SaS Software as a Service
bull Compatible avec la vision orienteacute-composant
bull Application = choreacutegraphie entre composants dont on ne connait que les API
Unified Modeling Language
UML
Une notation standard pour repreacutesenter des
modegraveles drsquoartefacts logiciels
31
UML historique
bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)
et OOSE (~use case) premier standard OMG
bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique
encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )
bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication
drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution
rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration
bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues
UML est un standard industriel (OMG et ISO) =gt communiquer++ 32
Meacutethode OOD
BOOCH
Modeacutelisation dynamique
Meacutethode OOSE
JACOBSON
Cas drsquoutilisation
Meacutethode OMT
RUMBAUGH
Modeacutelisation statique
UML
Unified Modeling Language
Selon temps disponible
Diagramme de classe
bull Structure (attributs opeacuterations) associations typage
bull Expression Add Constante eval()int + impleacutementations
Diagramme drsquoobjet
bull Instances des classes dans une configuration particuliegravere snapshot
de lrsquoapplication
bull 3+2
Diagramme de Seacutequence
bull Axe temps (vertical) interactions entre instances donneacutees
eacutechangeacutees
bull (3+2)eval()
Intersections non vide entre ces diagrammes
bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances
bull Le modegravele UML unifie et assure la coheacuterence 33
Structure de lrsquoUE et Organisation
34
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
La classe
La classe
Cateacutegorie ou type
drsquoobjet
Munie de responsabiliteacutes
mateacuterialiseacutees par unedes
interfaces
Deacutefinie par ses attributs
et meacutethodes
Exemple classe
locomotive
Locomotive
- modele- puissance- vitesse- couleur
+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )
Lrsquoobjet instance drsquoune classe
bull Les instances drsquoobjets sont
deacutefinies par la valeur de leurs
attributs
bull Les traitements qursquoon peut
reacutealiser sur ces attributs sont
deacutefinis au niveau de la classe
agrave travers les meacutethodes
Un objet = instance drsquoune classe
dans un eacutetat particulier
-couleur= rouge
-puissance= 18000
-vitesse= 230
-modele= AL2119
Loco21Locomotive
L rsquoobjet notion drsquoencapsulation
Services publics
Donneacuteesproteacutegeacutees
Environnement
Messages
OBJET
Substituabiliteacute du noyau sans impacter les clients
L rsquoabstraction
La modeacutelisation OO pousse agrave
gagner en abstraction
Une application est composeacutee
drsquointeractions complexes entre
composants
Lrsquoencapsulation permet de faire
abstraction de lrsquoimpleacutementation
effective des comportements du
systegraveme pour reposer sur la notion
drsquointerface
Une interface deacutefinit des
responsabiliteacutes
indeacutependamment de la faccedilon
dont elles sont reacutealiseacutees
+demarrer()
+accelerer()
+freiner()
Locomotive
ltltabstractgtgt
LocomotiveDiesel LocomotiveElectrique
ltltinterfacegtgt
Objets vs Composants
bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS
bull Uniteacute de reacuteutilisation meacutediocre
bull La classe ne vient pas seule package entier
bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur
bull SGBD relationnel langages divers
bull Au-delagrave de lrsquoobjet
bull Modegraveles de composant
bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur
bull Uniteacute de reacuteutilisation et de deacuteploiement
bull Support de plateformes heacuteteacuterogegravenes
bull Support de plateformes distribueacutees
bull Vision composant promulgueacutee dans lrsquoUE (arc 2)
bull Au-delagrave du composant
bull SOA Service Oriented Architecture SaS Software as a Service
bull Compatible avec la vision orienteacute-composant
bull Application = choreacutegraphie entre composants dont on ne connait que les API
Unified Modeling Language
UML
Une notation standard pour repreacutesenter des
modegraveles drsquoartefacts logiciels
31
UML historique
bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)
et OOSE (~use case) premier standard OMG
bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique
encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )
bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication
drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution
rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration
bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues
UML est un standard industriel (OMG et ISO) =gt communiquer++ 32
Meacutethode OOD
BOOCH
Modeacutelisation dynamique
Meacutethode OOSE
JACOBSON
Cas drsquoutilisation
Meacutethode OMT
RUMBAUGH
Modeacutelisation statique
UML
Unified Modeling Language
Selon temps disponible
Diagramme de classe
bull Structure (attributs opeacuterations) associations typage
bull Expression Add Constante eval()int + impleacutementations
Diagramme drsquoobjet
bull Instances des classes dans une configuration particuliegravere snapshot
de lrsquoapplication
bull 3+2
Diagramme de Seacutequence
bull Axe temps (vertical) interactions entre instances donneacutees
eacutechangeacutees
bull (3+2)eval()
Intersections non vide entre ces diagrammes
bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances
bull Le modegravele UML unifie et assure la coheacuterence 33
Structure de lrsquoUE et Organisation
34
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
Lrsquoobjet instance drsquoune classe
bull Les instances drsquoobjets sont
deacutefinies par la valeur de leurs
attributs
bull Les traitements qursquoon peut
reacutealiser sur ces attributs sont
deacutefinis au niveau de la classe
agrave travers les meacutethodes
Un objet = instance drsquoune classe
dans un eacutetat particulier
-couleur= rouge
-puissance= 18000
-vitesse= 230
-modele= AL2119
Loco21Locomotive
L rsquoobjet notion drsquoencapsulation
Services publics
Donneacuteesproteacutegeacutees
Environnement
Messages
OBJET
Substituabiliteacute du noyau sans impacter les clients
L rsquoabstraction
La modeacutelisation OO pousse agrave
gagner en abstraction
Une application est composeacutee
drsquointeractions complexes entre
composants
Lrsquoencapsulation permet de faire
abstraction de lrsquoimpleacutementation
effective des comportements du
systegraveme pour reposer sur la notion
drsquointerface
Une interface deacutefinit des
responsabiliteacutes
indeacutependamment de la faccedilon
dont elles sont reacutealiseacutees
+demarrer()
+accelerer()
+freiner()
Locomotive
ltltabstractgtgt
LocomotiveDiesel LocomotiveElectrique
ltltinterfacegtgt
Objets vs Composants
bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS
bull Uniteacute de reacuteutilisation meacutediocre
bull La classe ne vient pas seule package entier
bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur
bull SGBD relationnel langages divers
bull Au-delagrave de lrsquoobjet
bull Modegraveles de composant
bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur
bull Uniteacute de reacuteutilisation et de deacuteploiement
bull Support de plateformes heacuteteacuterogegravenes
bull Support de plateformes distribueacutees
bull Vision composant promulgueacutee dans lrsquoUE (arc 2)
bull Au-delagrave du composant
bull SOA Service Oriented Architecture SaS Software as a Service
bull Compatible avec la vision orienteacute-composant
bull Application = choreacutegraphie entre composants dont on ne connait que les API
Unified Modeling Language
UML
Une notation standard pour repreacutesenter des
modegraveles drsquoartefacts logiciels
31
UML historique
bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)
et OOSE (~use case) premier standard OMG
bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique
encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )
bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication
drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution
rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration
bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues
UML est un standard industriel (OMG et ISO) =gt communiquer++ 32
Meacutethode OOD
BOOCH
Modeacutelisation dynamique
Meacutethode OOSE
JACOBSON
Cas drsquoutilisation
Meacutethode OMT
RUMBAUGH
Modeacutelisation statique
UML
Unified Modeling Language
Selon temps disponible
Diagramme de classe
bull Structure (attributs opeacuterations) associations typage
bull Expression Add Constante eval()int + impleacutementations
Diagramme drsquoobjet
bull Instances des classes dans une configuration particuliegravere snapshot
de lrsquoapplication
bull 3+2
Diagramme de Seacutequence
bull Axe temps (vertical) interactions entre instances donneacutees
eacutechangeacutees
bull (3+2)eval()
Intersections non vide entre ces diagrammes
bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances
bull Le modegravele UML unifie et assure la coheacuterence 33
Structure de lrsquoUE et Organisation
34
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
L rsquoobjet notion drsquoencapsulation
Services publics
Donneacuteesproteacutegeacutees
Environnement
Messages
OBJET
Substituabiliteacute du noyau sans impacter les clients
L rsquoabstraction
La modeacutelisation OO pousse agrave
gagner en abstraction
Une application est composeacutee
drsquointeractions complexes entre
composants
Lrsquoencapsulation permet de faire
abstraction de lrsquoimpleacutementation
effective des comportements du
systegraveme pour reposer sur la notion
drsquointerface
Une interface deacutefinit des
responsabiliteacutes
indeacutependamment de la faccedilon
dont elles sont reacutealiseacutees
+demarrer()
+accelerer()
+freiner()
Locomotive
ltltabstractgtgt
LocomotiveDiesel LocomotiveElectrique
ltltinterfacegtgt
Objets vs Composants
bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS
bull Uniteacute de reacuteutilisation meacutediocre
bull La classe ne vient pas seule package entier
bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur
bull SGBD relationnel langages divers
bull Au-delagrave de lrsquoobjet
bull Modegraveles de composant
bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur
bull Uniteacute de reacuteutilisation et de deacuteploiement
bull Support de plateformes heacuteteacuterogegravenes
bull Support de plateformes distribueacutees
bull Vision composant promulgueacutee dans lrsquoUE (arc 2)
bull Au-delagrave du composant
bull SOA Service Oriented Architecture SaS Software as a Service
bull Compatible avec la vision orienteacute-composant
bull Application = choreacutegraphie entre composants dont on ne connait que les API
Unified Modeling Language
UML
Une notation standard pour repreacutesenter des
modegraveles drsquoartefacts logiciels
31
UML historique
bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)
et OOSE (~use case) premier standard OMG
bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique
encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )
bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication
drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution
rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration
bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues
UML est un standard industriel (OMG et ISO) =gt communiquer++ 32
Meacutethode OOD
BOOCH
Modeacutelisation dynamique
Meacutethode OOSE
JACOBSON
Cas drsquoutilisation
Meacutethode OMT
RUMBAUGH
Modeacutelisation statique
UML
Unified Modeling Language
Selon temps disponible
Diagramme de classe
bull Structure (attributs opeacuterations) associations typage
bull Expression Add Constante eval()int + impleacutementations
Diagramme drsquoobjet
bull Instances des classes dans une configuration particuliegravere snapshot
de lrsquoapplication
bull 3+2
Diagramme de Seacutequence
bull Axe temps (vertical) interactions entre instances donneacutees
eacutechangeacutees
bull (3+2)eval()
Intersections non vide entre ces diagrammes
bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances
bull Le modegravele UML unifie et assure la coheacuterence 33
Structure de lrsquoUE et Organisation
34
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
L rsquoabstraction
La modeacutelisation OO pousse agrave
gagner en abstraction
Une application est composeacutee
drsquointeractions complexes entre
composants
Lrsquoencapsulation permet de faire
abstraction de lrsquoimpleacutementation
effective des comportements du
systegraveme pour reposer sur la notion
drsquointerface
Une interface deacutefinit des
responsabiliteacutes
indeacutependamment de la faccedilon
dont elles sont reacutealiseacutees
+demarrer()
+accelerer()
+freiner()
Locomotive
ltltabstractgtgt
LocomotiveDiesel LocomotiveElectrique
ltltinterfacegtgt
Objets vs Composants
bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS
bull Uniteacute de reacuteutilisation meacutediocre
bull La classe ne vient pas seule package entier
bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur
bull SGBD relationnel langages divers
bull Au-delagrave de lrsquoobjet
bull Modegraveles de composant
bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur
bull Uniteacute de reacuteutilisation et de deacuteploiement
bull Support de plateformes heacuteteacuterogegravenes
bull Support de plateformes distribueacutees
bull Vision composant promulgueacutee dans lrsquoUE (arc 2)
bull Au-delagrave du composant
bull SOA Service Oriented Architecture SaS Software as a Service
bull Compatible avec la vision orienteacute-composant
bull Application = choreacutegraphie entre composants dont on ne connait que les API
Unified Modeling Language
UML
Une notation standard pour repreacutesenter des
modegraveles drsquoartefacts logiciels
31
UML historique
bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)
et OOSE (~use case) premier standard OMG
bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique
encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )
bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication
drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution
rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration
bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues
UML est un standard industriel (OMG et ISO) =gt communiquer++ 32
Meacutethode OOD
BOOCH
Modeacutelisation dynamique
Meacutethode OOSE
JACOBSON
Cas drsquoutilisation
Meacutethode OMT
RUMBAUGH
Modeacutelisation statique
UML
Unified Modeling Language
Selon temps disponible
Diagramme de classe
bull Structure (attributs opeacuterations) associations typage
bull Expression Add Constante eval()int + impleacutementations
Diagramme drsquoobjet
bull Instances des classes dans une configuration particuliegravere snapshot
de lrsquoapplication
bull 3+2
Diagramme de Seacutequence
bull Axe temps (vertical) interactions entre instances donneacutees
eacutechangeacutees
bull (3+2)eval()
Intersections non vide entre ces diagrammes
bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances
bull Le modegravele UML unifie et assure la coheacuterence 33
Structure de lrsquoUE et Organisation
34
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
Objets vs Composants
bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS
bull Uniteacute de reacuteutilisation meacutediocre
bull La classe ne vient pas seule package entier
bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur
bull SGBD relationnel langages divers
bull Au-delagrave de lrsquoobjet
bull Modegraveles de composant
bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur
bull Uniteacute de reacuteutilisation et de deacuteploiement
bull Support de plateformes heacuteteacuterogegravenes
bull Support de plateformes distribueacutees
bull Vision composant promulgueacutee dans lrsquoUE (arc 2)
bull Au-delagrave du composant
bull SOA Service Oriented Architecture SaS Software as a Service
bull Compatible avec la vision orienteacute-composant
bull Application = choreacutegraphie entre composants dont on ne connait que les API
Unified Modeling Language
UML
Une notation standard pour repreacutesenter des
modegraveles drsquoartefacts logiciels
31
UML historique
bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)
et OOSE (~use case) premier standard OMG
bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique
encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )
bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication
drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution
rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration
bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues
UML est un standard industriel (OMG et ISO) =gt communiquer++ 32
Meacutethode OOD
BOOCH
Modeacutelisation dynamique
Meacutethode OOSE
JACOBSON
Cas drsquoutilisation
Meacutethode OMT
RUMBAUGH
Modeacutelisation statique
UML
Unified Modeling Language
Selon temps disponible
Diagramme de classe
bull Structure (attributs opeacuterations) associations typage
bull Expression Add Constante eval()int + impleacutementations
Diagramme drsquoobjet
bull Instances des classes dans une configuration particuliegravere snapshot
de lrsquoapplication
bull 3+2
Diagramme de Seacutequence
bull Axe temps (vertical) interactions entre instances donneacutees
eacutechangeacutees
bull (3+2)eval()
Intersections non vide entre ces diagrammes
bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances
bull Le modegravele UML unifie et assure la coheacuterence 33
Structure de lrsquoUE et Organisation
34
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
Unified Modeling Language
UML
Une notation standard pour repreacutesenter des
modegraveles drsquoartefacts logiciels
31
UML historique
bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)
et OOSE (~use case) premier standard OMG
bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique
encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )
bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication
drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution
rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration
bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues
UML est un standard industriel (OMG et ISO) =gt communiquer++ 32
Meacutethode OOD
BOOCH
Modeacutelisation dynamique
Meacutethode OOSE
JACOBSON
Cas drsquoutilisation
Meacutethode OMT
RUMBAUGH
Modeacutelisation statique
UML
Unified Modeling Language
Selon temps disponible
Diagramme de classe
bull Structure (attributs opeacuterations) associations typage
bull Expression Add Constante eval()int + impleacutementations
Diagramme drsquoobjet
bull Instances des classes dans une configuration particuliegravere snapshot
de lrsquoapplication
bull 3+2
Diagramme de Seacutequence
bull Axe temps (vertical) interactions entre instances donneacutees
eacutechangeacutees
bull (3+2)eval()
Intersections non vide entre ces diagrammes
bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances
bull Le modegravele UML unifie et assure la coheacuterence 33
Structure de lrsquoUE et Organisation
34
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
UML historique
bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)
et OOSE (~use case) premier standard OMG
bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique
encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )
bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication
drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution
rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration
bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues
UML est un standard industriel (OMG et ISO) =gt communiquer++ 32
Meacutethode OOD
BOOCH
Modeacutelisation dynamique
Meacutethode OOSE
JACOBSON
Cas drsquoutilisation
Meacutethode OMT
RUMBAUGH
Modeacutelisation statique
UML
Unified Modeling Language
Selon temps disponible
Diagramme de classe
bull Structure (attributs opeacuterations) associations typage
bull Expression Add Constante eval()int + impleacutementations
Diagramme drsquoobjet
bull Instances des classes dans une configuration particuliegravere snapshot
de lrsquoapplication
bull 3+2
Diagramme de Seacutequence
bull Axe temps (vertical) interactions entre instances donneacutees
eacutechangeacutees
bull (3+2)eval()
Intersections non vide entre ces diagrammes
bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances
bull Le modegravele UML unifie et assure la coheacuterence 33
Structure de lrsquoUE et Organisation
34
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
Selon temps disponible
Diagramme de classe
bull Structure (attributs opeacuterations) associations typage
bull Expression Add Constante eval()int + impleacutementations
Diagramme drsquoobjet
bull Instances des classes dans une configuration particuliegravere snapshot
de lrsquoapplication
bull 3+2
Diagramme de Seacutequence
bull Axe temps (vertical) interactions entre instances donneacutees
eacutechangeacutees
bull (3+2)eval()
Intersections non vide entre ces diagrammes
bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances
bull Le modegravele UML unifie et assure la coheacuterence 33
Structure de lrsquoUE et Organisation
34
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
Structure de lrsquoUE et Organisation
34
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
Plan des Seacuteances
Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale
1 Introduction organisation du deacuteveloppement logiciel
Arc 1 QUOI La phase drsquoanalyse
2 Analyse I cas drsquoutilisation classes meacutetier
3 Analyse II fiches deacutetailleacutees
4 Analyse III seacutequences tests de validation bilan analyse
Examen Reacuteparti 1 Analyse drsquoun cahier des charges
Arc 2 COMMENT Conception
5 Conception Architecturale transition architecture composants seacutequences
6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE
7 Tests composants bouchons configurations de test test unitaire bilan cycle V
Arc 3 Drsquoautres approches
8 Agiliteacute pratiques agiles SCRUM XPhellip
9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language
10 Bilan de lrsquoUE design pattern architectural ouverture
Examen Reacuteparti 2 Conception orienteacute composant 35
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
Reacutefeacuterences
bull Hypothegravese preacute-requis
bull Niveau intermeacutediaire en Java ou autre langage O-O
bull Des bases en UML en Design Pattern peuvent ecirctre utiles
bull Page web httpspageslip6frYannThierry-MiegIL
bull Slides du cours Enonceacutes TD et TME
bull Fiches de cours non redondant
bull Videacuteos de lrsquoamphi et drsquoun groupe de TD
bull ExempleGuide pour le projet de TME Sudoku
bull Annales une ressource importante pour preacuteparer lrsquoexamen
bull Reacutefeacuterences biblio
bull Ian Sommerville laquo Software Engineering raquo
bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo
bull FreemanampFreeman laquo Head First in Design Patterns raquo
bull Larman laquo Applying UML and Patterns raquo
bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)
bull Se choisir des livres en bibliothegraveque et les lire36
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
Organisation
bull 2h cours 2h TD 2h TME par semaine
bull Examen reacuteparti 1 (novembre) sur feuille
bull Examen reacuteparti 2 (janvier) sur feuille
bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2
bull En TD
bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des
Charges (CdC)
bull En TME
bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)
bull Appliquer la deacutemarche en eacutequipe sur un CdC
bull LDVH le Livre Dont Vous ecirctes le Heacuteros
37
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
Gestion des Equipes
bull Groupes de 6 agrave 8 eacutetudiants
bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe
bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre
bull Communication
bull Support eacutecrit avec traces consultables par tous les membres du groupe
discord google groups whatsapphellip
bull Git pour les sources
bull Decoupage et affectation de taches
bull Reacuteunions
bull Outils
bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)
bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site
38
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
Gestion drsquoeacutequipe
bull Ideacutealement prendre des personnes avec des affiniteacutes
bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le
monde
bull Rester poli et professionnel dans les eacutechanges
bull Reacuteunions efficaces
bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8
ensemble en geacuteneacuteral
bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum
Typiquement tour de table avancement sur mes tacircches si besoin synchronisation
deacutecoupage du travail suivant affectation
bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation
de tacircches
bull Outils importants
bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du
projet
bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello
bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon
consensuelle cela peut bien fonctionner39
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40
Projet de TME eacutevaluation
Deux soutenances
bull Slidespowerpoint + preacutesentation en groupe
bull Seacuteance 5 bilan de lrsquoanalyse
bull Seacuteance 10 conception bilan du projet
Evaluation
bull Le groupe a bien appliqueacute la deacutemarche proposeacutee
bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits
bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe
Le projet nrsquoest pas centreacute sur la reacutealisationcodage
bull Pas une UE de programmation
bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un
sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit
en appliquant la deacutemarche on est satisfait40