Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture...
Transcript of Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture...
![Page 1: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/1.jpg)
Modélisation Orientée Objet Conception de S.I.
Master MIAGE M1 parcours SIGS
V. Deslandres, Univ. [email protected]
![Page 2: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/2.jpg)
PLANNING séance 1
• Cours « Rappel de Génie Logiciel »
• Fiche TD1• Exercice de sensibilisation sur la capture des Besoins, le vocabulaire
• Cours « Pourquoi la Modélisation OO »
• Suite TD1 : illustration méthode itérative et incrémentale
• Place de la modélisation dans un cadre Agile
2
![Page 3: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/3.jpg)
Le génie LogicielIntroduction générale
V. DESLANDRESMaster MIAGE parcours SIGS (Gestion de la Santé)
POLYTECH LYON
![Page 4: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/4.jpg)
Objectifs de ce chapitre
• Dresser une typologie des logiciels• Savoir ce qu’est le Génie Logiciel• Le définir, en comprendre les enjeux• Savoir qui sont les acteurs impliqués
• Connaître les étapes d’une démarche de GL
• Réf.: « Object-Oriented Software Engineering: Practical Software Development using UML and Java » 2nd Edition, Timothy C. Lethbridge and Robert Laganière - McGraw Hill, 2001
4
![Page 5: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/5.jpg)
La nature du Logiciel...• Le logiciel est intangible• Il est difficile de gérer l’effort de développement
• Le logiciel est facile à reproduire• Le coût se trouve dans son développement et sa maintenance
• Pour d’autres produits, la fabrication est souvent le processus le plus coûteux
• L’industrie du logiciel exige beaucoup de main d’œuvre – artisanat• … à l’opposé de la production en série• Implication d’humains à gestion des relations, soft skills, etc.• Néanmoins, le processus de développement commence à être
automatisé5
![Page 6: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/6.jpg)
La nature du logiciel• Même des informaticiens peu qualifiés peuvent arriver à bricoler
quelque chose qui semble fonctionner• La qualité d’un logiciel n’est pas apparente
• Un logiciel est facile à modifier• La tentation est forte d’effectuer des changements rapides sans
vraiment en mesurer la portée
• Un logiciel ne s’use pas mais se détériore• à mesure que les technologies évoluent, que des changements sont
effectués• introduction d’erreurs • complexification progressive
6
![Page 7: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/7.jpg)
• En conséquence
• Beaucoup de logiciels sont mal conçus et leur maintenance est difficile• La demande de logiciels est toujours croissante• L’ingénierie du logiciel est une nécessité
7
![Page 8: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/8.jpg)
Le génie logiciel ?...• DEF « Le processus visant la résolution de problèmes posés par un client
par le développement systématique et l’évolution de systèmes logiciels de grande taille
et de haute qualité, en respectant les contraintes de coûts, de temps, et autres »
• Autres définitions:
• IEEE: l’application d’une approche de développement, d’utilisation et
de maintenance logicielle systématique, disciplinée, quantifiable
8
• « …la résolution de problèmes posés par un client… »
• Voilà le but essentiel du génie logiciel
• Ajouter des options non requises par le client ne rend pas le logiciel plus satisfaisant
• L’équipe de dév. logiciel doit établir une bonne communication afin de bien identifier
et comprendre le besoin (le problème à résoudre)
![Page 9: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/9.jpg)
• « …par le développement systématique et l’évolution… »
9
Qu’est-ce que ça signifie pour vous :
« développement systématique » ?
![Page 10: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/10.jpg)
• …par le « développement systématique » et l’évolution…
• C’est l’application de techniques maîtrisées (voire automatisées) dans une organisation limpide et disciplinée
• Plusieurs pratiques reconnues ont maintenant été standardisées• e.g. ITIL ou CMMI, RUP, le processus unifié de modélisation, les tests unitaires automatisés,
l’intégration continue, etc.
10
![Page 11: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/11.jpg)
ITIL
11
• Référentiel métier international (Information Technology Infrastructure Library)• Né en Europe années 90 (UK)• Approche processus, « bonnes pratiques »
• Cible très large, orienté gouvernance des S.I. :• Comment organiser un système d'information ?• Comment améliorer l'efficacité du système d'information ?• Comment réduire les risques ?• Comment augmenter la qualité des services informatiques ?
![Page 12: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/12.jpg)
CMMI• Référentiel métier international (Capability Maturity Model Integration)
• USA années 1980 (Université Carnegie Mellon, pour la Défense)
• Approche processus et notion d'amélioration continue
• Propose une évaluation, qui permet de se situer et de ‘définir des voies de progrès’
• CMMI-DEV : orienté développement de systèmes (logiciels) • Mesure la maturité sur une échelle à 5 niveaux
• De ’initial’ à ‘en optimisation’
• Fournit les indicateurs nécessaires pour évaluer les activités
• Modèle de processus accepté par la norme ISO 15504
12
![Page 13: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/13.jpg)
L’intégration continue• Pratique issue d’XP (eXtreme Programming)• OBJ.: automatiser le processus de dév logiciel• Repose sur :• Un logiciel de gestion de versions (VCS)• Des tests automatisés nombreux
• Tests unitaires :Junit, Cactus• Audit de code source, test IHM, tests fonctionnels
• Un serveur d’intégration (ex. Cruise Control, Hudson, Jenkins)
• Permet d’avoir un exécutable à chaque nouvelle version (‘incrément’)
13
![Page 14: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/14.jpg)
L’intégration continue
14
L’intégration continue
Vérifie que la mise à jour ne génère pas de régressions et/ou d’anomalies
Permet de donner au développeur une vision générale de l’application puisque les tests de l’application se font sur un environnement clone de production
![Page 15: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/15.jpg)
DEF génie logiciel...
• « …par le développement systématique et l’évolution… »
15
L’évolution de logiciel…ça concerne quel pourcentage de l’activité par rapport à la création ?
La plupart des projets logiciels consiste à faire évoluer un logiciel existant (80/20)
![Page 16: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/16.jpg)
« …systèmes logiciels de grande taille et de haute qualité… »
• Un logiciel ‘de grande taille’ = qui ne peut être compris par une seule personne
• Le travail en équipe et une bonne coordination sont essentielsè subdiviser le travail à accomplirès’assurer que les parties fonctionneront harmonieusement
ensemble
« de haute qualité… »• Le produit final doit rencontrer des critères de qualité établis
16
DEF génie logiciel...
![Page 17: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/17.jpg)
« …en respectant les contraintes de coûts , de temps, et autres »
• Les ressources sont limitées• Le bénéfice résultant doit être supérieur aux coûts • La productivité de l’équipe doit demeurer concurrentielle• Une mauvaise estimation des coûts et de la durée du projet peut mener à l’
échec du projet
17
DEF génie logiciel...
![Page 18: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/18.jpg)
Taux réussite des projets
• Etude du Standish Group (US) sur 50 000 projets
18
Challenged: budget ou délai dépassé, client satisfaitFailed: abandonné ou client non satisfait
![Page 19: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/19.jpg)
• Plus la complexité et la taille sont importantes, plus le risque d'échec est fort
• On observe d’autre part que « les projets ayant des objectifs plus flexibles ont plus de chance de réussite que ceux avec des objectifs précis »
19
![Page 20: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/20.jpg)
Principales causes d’échec1. Manque d’implication du Client / Utilisateurs : 12,8%
2. Exigences et spécifications incomplètes : 12,3%
3. Changement des exigences et spécifications : 11,8%
• La capture du besoin est la cause de presque 37% des cas
• Le SG préconise un développement « itératif et incrémental, avec de fréquents retours utilisateurs »• Processus flexible et ouvert : mode agile
20
![Page 21: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/21.jpg)
Le métier d’ingénieur logiciel
• Le terme Génie Logiciel a été introduit en 1968• Reconnaître que les principes du « génie » peuvent s’appliquer au
développement du logiciel
• Le « génie » est une pratique régulée par une corporation professionnelleè Protection du public• Application de principes scientifiques et économiques• Pratiques conformes à une éthique établie
21
![Page 22: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/22.jpg)
Organisation
• Pour le dév. Logiciel, il y a 2 organisations possibles :• L’équipe projet : équipe spécifique, vision projet ; dispersion en fin
de projet• Une équipe de développement produit impliquée dans différents
projets (successivement, ce qui se pratique bcp en Agile) : stabilité, soft skills
• Importance de ‘l’Emotionnal Maturity’: la capacité à savoir travailler ensemble• Facteur de succès identifié par le Standish Group
22
![Page 23: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/23.jpg)
Les parties impliquées dans le génie du logiciel
23
Indice : 5
Lesquelles citeriez-vous ?
Software Engineering
![Page 24: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/24.jpg)
Les parties impliquées dans le génie du logiciel
• Utilisateurs• Ceux qui se servent du logiciel
• Clients• Ceux qui paient pour le logiciel
• Développeurs (les Dev)• Ceux qui conçoivent et implémentent le logiciel
• Exploitants (les Ops en Anglais)• Ceux qui exploitent le logiciel (mise en production, maintenance,
évolution)• Managers• Ceux qui supervisent la production du logiciel
(Certains rôles peuvent être remplis par la même personne)24
![Page 25: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/25.jpg)
La qualité du logiciel...
• Conviviabilité• Apprentissage aisé, facilité d’utilisation
• Efficacité• Aucun gaspillage de ressources (mémoire, temps de calcul, …)
• Fiabilité• Les tâches sont effectuées sans problème
• Facilité de maintenance• Aisé à modifier, à faire évoluer
• Réutilisabilité• Des composants peuvent être réutilisés facilement
25
![Page 26: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/26.jpg)
La notion de qualité varie selon le point de vue...
26
Perception dela qualité du
logiciel DéveloppeurFacile et rapide à concevoir,À développer et à tester
UtilisateurFacile à apprendre,utile et efficace
ClientRésoudre le problèmeà un coût acceptable
ManagerSe vend bien,satisfait les clients,peu coûteux à développerExploitant
Facile à maintenir,à réutiliser
![Page 27: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/27.jpg)
La qualité du logiciel...
• Accroître l’efficacité peut rendre le logiciel plus difficile
à maintenir et à réutiliser
• Vouloir « fabriquer la Lune » peut demander du temps
• Livrer vite (et vendre rapidement) peut se faire au
détriment de certaines fonctionnalités
• Telle fonctionnalité demanderait un traitement
spécifique pour la mise en prod, il vaudrait mieux
l’abandonner
• Rentrer ‘dans les standards’ plus ou moins figés
27
Ces différents critères peuvent être en conflit, par ex.
![Page 28: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/28.jpg)
• Définir des critères de qualité constitue un élément clé du génie du logiciel• La conception a alors pour objectif de faire rencontrer ces
critères• Trop en faire est une perte de temps et de ressources
• L’optimisation du logiciel peut ensuite être nécessaire• Recherche de performance, ex. en embarqué
• Il faut atteindre un niveau de performance optimal en fonction des coûts budgétés
28
![Page 29: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/29.jpg)
29
![Page 30: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/30.jpg)
Critères de qualité internes
• Ce sont par exemple: • la généricité du code• le style de programmation• la quantité et la qualité des commentaires,• la complexité du programme produit
• Caractérisent certains aspect de la conception du logiciel• Ont un effet direct sur la qualité externe du produit
30
![Page 31: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/31.jpg)
Qualité du code
• Il en existe un grand nb d’indicateurs en POO• Le nb de classes• La complexité cyclomatique• Etc.
• Ces critères sont aujourd’hui utilisés dans les chaînes de développement automatisées• Outil Sonar• Hudson, outil d’intégration continue
• On fera un topo sur ces indicateurs
31
![Page 32: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/32.jpg)
Risques associés à une mauvaise qualité
• Des bugs subsistent• Peuvent pénaliser plus ou moins fortement son
utilisation
• Client non satisfait• Ne fera plus appel à nous comme développeurs• Refuse de payer le montant fixé• Diffuse son mécontentement sur les réseaux
32
Lesquels voyez-vous ?
![Page 33: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/33.jpg)
Risques associés à une sur-qualité ?
• Délai dépassé, ce qui induit :• Client insatisfait• Coûts plus élevés (durée)• Pénalités de retard
• Risque « d’erreur de focus » : les dév peuvent avoir travaillé un aspect jugé non prioritaire pour les utilisateur• Perte de temps et d’argent• Mauvaise image pour le client
33
Lesquels voyez-vous ?
![Page 34: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/34.jpg)
Activités communes aux projets de génie logiciel
• Définition et spécification des exigencesCe qui inclut• Analyse du domaine• Description du problème• Recueil des besoins• Analyse des besoins• Spécification approfondie des exigences
34Quel est l’interlocuteur privilégié de cette étape ?
![Page 35: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/35.jpg)
•Modélisation•Créer des représentations du logiciel et de son
domaine d’application•Modélisation de l’utilisation envisagée•Modélisation de sa structure•Modélisation de sa dynamique (son
comportement)
35
Activités communes aux projets de génie logiciel
![Page 36: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/36.jpg)
Activités communes aux projets de génie logiciel
• Conception• Faire les choix technologiques pour répondre aux besoins
• Ce qui inclut:• Déterminer ce qui sera réalisé par le logiciel et par le matériel• Mettre au point l’architecture du système, la définition des sous-systèmes et leurs
interactions• Élaboration des éléments internes des sous-systèmes• Conception des interfaces utilisateurs et des bases de données
• Programmation• « Programming is easy, it is just like math. In math, 1 + 2 = 3 always.• Your program is either right or wrong. And you have metrics about
performance, program size, etc. » 36
![Page 37: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/37.jpg)
Activités communes aux projets de génie logiciel
• Assurance qualité (QA)•Mettre en place les tests qui vont garantir la ‘non
régression’ en cas de révisions•Mise à l’épreuve (phase de tests et recette d’application
sur l’environnement de production)• Déploiement / Formation• Gestion du projet (activités supports)
37
![Page 38: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/38.jpg)
Activités du GL : je retiens
1. ______________________2. ______________________3. ______________________4. ______________________5. ______________________6. ______________________7. ______________________
38
Attention, ces activités ne sont pas
nécessairement séquentielles !
(notamment la GP)
![Page 39: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/39.jpg)
Risques et difficultés en génie du logiciel
• Complexité et quantité des éléments à tenir en compte• Incertitude concernant la technologie• Incertitude concernant les exigences• Incertitude concernant les compétences• Adaptation face aux changements• Acceptation des utilisateurs• Risques politiques
39
![Page 40: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/40.jpg)
UML vs. Agilité, BPMPositionnement actuel
40
![Page 41: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/41.jpg)
Cadre Agile : place de la modélisation ?
41
![Page 42: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/42.jpg)
42
![Page 43: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/43.jpg)
En Agilité : UML light
• Avec les méthodes agiles, seul le code compte• (« le code EST le modèle de la réalité »)
• Mais les modèles sont utiles pour communiquer, discuter, avancer dans la compréhension du domaine et des besoins• Ainsi une modélisation « light » est utilisée• Les Cas d'utilisation détaillent des « user stories » • Avec le client, on discute la modélisation métier avec des
diagrammes d'activité, des diagrammes de classes
43
![Page 44: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/44.jpg)
• Prouver les modèles avec du code• Obj.: montrer que ses idées marchent vraiment
• Utiliser des notations simples• afin que le contenu des modèles soit facile à valider
• Se focaliser uniquement sur les aspects qu’on doit modéliser• Ne pas chercher à créer à tout prix un modèle très détaillé• Ne modéliser que ce qui ajoute de la plus value
• Modéliser à plusieurs• Principe de « propriété collective »
44
important
![Page 45: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/45.jpg)
Modèle vs. Documentation
• Les modèles ne sont pas de la documentation !• On modélise pour échanger et développer une compréhension
commune• Ne pas chercher à terminer proprement un modèle : reconnaître leur
aspect provisoire• Un modèle complet n’existe pas• Il doit rester aussi simple que possible mais procurer une valeur claire• Une fois la valeur acquise, on la code
• Et si on a besoin de documentation ?• Reverse engineering sur le code, stable, validé
45
![Page 46: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/46.jpg)
Le BPM
• Business Process Modelling• BPMN (Notation) : norme de l’OMG• Obj.: Réconcilier MOA et MOE• Démarche d'urbanisation SI : progressive• Les techniques utilisées s'applique au SI, puis aux projets,
aux composants, et en final aux objets des applications• UML à composants et objets de l‘application• BPM à S.I., projets
46
![Page 47: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/47.jpg)
47
![Page 48: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/48.jpg)
Lien BPM à UML• Les processus métier BPMN sont le point d'entrée de la phase
‘Expression des besoins’
• Un BPM décrit toutes les activités (manuelles et automatisées), et les flux de données
• Les activités à automatiser deviennent les cas d’utilisation qui représentent les comportements attendus du futur système
48
![Page 49: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/49.jpg)
Pro / cons BPM
• BPMN est plus convivial, voc. Métier, plus facilement accepté
• Traçabilité délicate• Un AGL UML permet la traçabilité des docs• Ex. Matrice Exigences / Diagrammes d’un AGL• Permet d’associer les docs (fiches descriptives des éléments par ex.), et donc
tracer leur évolution
49
![Page 50: Modélisation Orientée Objet Conception de S.I. 2019-09-24 · • Mettre au point l’architecture du système, la définition des sous-systèmes et leurs interactions • Élaboration](https://reader031.fdocument.pub/reader031/viewer/2022041109/5f0d28447e708231d438f4e2/html5/thumbnails/50.jpg)
Cours1 : je m’évalue…
50
• Citer 2 référentiels normalisant l’activité logicielle ?
• Quelles sont les principales causes d’échec de la production de logiciels selon l’étude du Standish Group ?
• Quels acteurs participent aux étapes du GL ?
• Rappeler les 7 activités du GL
• Modéliser en Agile, ça signifie quoi ?• UML vs. BPMN