-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path02-presentation.html
293 lines (275 loc) · 12.4 KB
/
02-presentation.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
<section id="presentation">
<section>
<h2>Présentation</h2>
</section>
<section>
<h3>Problématique</h3>
<p>L'informatique est aujourd'hui utilisée massivement dans de <strong>nombreuses entreprises de différents secteurs d'activités</strong> (banque, industrie, communication...).</p>
<p>De plus, les <strong>technologies évoluent</strong> toujours plus rapidement (nouveaux langages, nouvelles versions, nouveaux frameworks...).</p>
<p>Ainsi, pour certaines applications ayant une <strong>durée de vie de plusieurs dizaines d'années</strong>, <strong>plusieurs équipes</strong> de développement peuvent être amenées à travailler sur un même projet.</p>
</section>
<section>
<h3>Problématique</h3>
<p>On constate alors l'apparition de plusieurs disfonctionnements :</p>
<ul>
<li>Evolution des logiciels en retard par rapport aux technologies</li>
<li>Nouvelles demandes des clients complexes à développer</li>
<li>Difficulté pour les développeurs de s'intégrer aux projets</li>
</ul>
<p>En conséquence, on observe alors que</p>
<ul>
<li>Peu de projet arrivent à terme</li>
<li>Peu de projet respectent les délais / budgets</li>
<li>Les projets sont souvent externalisés aux <abbr title="Entreprise de Services du Numérique">ESN</abbr></li>
<li>Les applications sont souvent instables</li>
</ul>
</section>
<section>
<h3>Problématique</h3>
<p>Une étude réalisée par un groupe indépendant de recherche en informatique nous indique que de nombreux projets échouent (Failed) ou ne respectent pas les délais / budgets (Challenged).</p>
<canvas id="chart-chaos-per-year"></canvas>
<footer>
<a href="assets/files/CHAOSReport2015-Final.pdf" class="info" target="_blank">CHAOS Report 2015</a>
</footer>
</section>
<section>
<h3>Problématique</h3>
<p>On observe également que les projets de grande taille ont une plus forte probabilité d'échouer.</p>
<canvas id="chart-chaos-per-size"></canvas>
<footer>
<a href="assets/files/CHAOSReport2015-Final.pdf" class="info" target="_blank">CHAOS Report 2015</a>
</footer>
</section>
<section>
<h3>Causes</h3>
<ul>
<li>Applications complexes et spécifiques</li>
<li>Besoins mal rédigés</li>
<li>Evolution constante de la demande</li>
<li>Documentation insuffisante du projet</li>
<li>Manque de communication entre les équipes participant au projet</li>
<li>Tests insuffisants (méthode <abbr title="Tests Driven Development">TDD</abbr> non utilisée)</li>
</ul>
</section>
<section>
<h3>Définition</h3>
<div class="container">
<div class="col">
<p>UML est un langage standardisé permettant de modéliser un système dans le domaine du développement informatique.</p>
<p>UML utilise de nombreux diagrammes permettant de visualiser, spécifier, concevoir et documenter une application pour la plupart des systèmes et domaines d'activité.</p>
</div>
<div class="col">
<img src="assets/images/uml-logo.png" alt="Logo UML">
</div>
</div>
</section>
<section>
<h3>Définition</h3>
<ul>
<li><strong>Unified</strong> : Unification de plusieurs méthodes</li>
<li><strong>Modeling</strong> : Analyse et conception</li>
<li><strong>Language</strong> : Il s'agit d'un langage et non d'une méthode</li>
</ul>
<footer>
<a href="#" class="info">Un langage n'impose pas de processus</a>
</footer>
</section>
<section>
<h3>Historique</h3>
<div class="uml-creator">
<div class="uml-creator-img-container">
<img src="assets/images/grady-booch.jpg" alt="Grady Booch">
</div>
<div class="uml-creator-description">
<h4>Grady Booch</h4>
<p>Booch method</p>
<p>Rational Software (racheté depuis par IBM)</p>
</div>
</div>
<div class="uml-creator">
<div class="uml-creator-img-container">
<img src="assets/images/jim-rumbaugh.jpg" alt="Jim Rumbaugh">
</div>
<div class="uml-creator-description">
<h4>Jim Rumbaugh</h4>
<p>OMT (Object Modeling Technique)</p>
<p>General Electric</p>
</div>
</div>
<div class="uml-creator">
<div class="uml-creator-img-container">
<img src="assets/images/ivar-jacobson.jpg" alt="Ivar Jacobson">
</div>
<div class="uml-creator-description">
<h4>Ivar Jacobson</h4>
<p>OOSE (Object-Oriented Software Engineering)</p>
<p>Objectory AB</p>
</div>
</div>
</section>
<section>
<h3>Historique</h3>
<p>En 1994, Jim Rumbaugh quitte General Electric pour rejoindre Rational Software puis l'année suivante, la société d'Ivar Jacobson est rachetée par Rational Software.</p>
<ul>
<li>Créé en 1994 par l'entreprise Rational Software</li>
<li>Adopté en 1997 comme un standard par le consortium <a href="https://www.omg.org">Object Management Group</a></li>
<li>Publié en 2005 par <a href="https://www.iso.org">l'organisation internationale de normalisation</a> (ISO)</li>
</ul>
<p>De nombreuses entreprises multinationales ont collaboré à la création d'UML (HP, Microsoft, IBM, Oracle...).</p>
</section>
<section>
<h3>Historique</h3>
<img src="assets/images/history.jpg" alt="Historique UML">
</section>
<section>
<h3>OMG (Object Management Group)</h3>
<p>Objectif : Standardiser et promouvoir le modèle objet</p>
<p>A l'origine de plusieurs standards :</p>
<ul>
<li>UML (Unified Modeling Language)</li>
<li>MOF (Meta Object Facility) : Représentations des métamodèles</li>
<li>CORBA (Common Object Request Broker Architecture) : Norme utilisée comme base pour faire communiquer des composants (utilise IDL)</li>
<li>IDL (Interface Definition Language) : Langage de définition des interfaces</li>
</ul>
<p>Et recommandations :</p>
<ul>
<li>MDA (Moden Driven Architecture) : Démarche de réalisation de logiciels</li>
<li>QVT (Query / View / Transformation) : Langage standardisé pour exprimer des transformations de modèles</li>
</ul>
</section>
<section>
<h3>Versions</h3>
<table>
<thead>
<tr>
<th>Version</th>
<th>Date</th>
<th>URL</th>
</tr>
</thead>
<tbody>
<tr>
<td>2.5.1</td>
<td>Decembre 2017</td>
<td><a href="https://www.omg.org/spec/UML/2.5.1" target="_blank">https://www.omg.org/spec/UML/2.5.1</a></td>
</tr>
<tr>
<td>2.4.1</td>
<td>Juillet 2011</td>
<td><a href="https://www.omg.org/spec/UML/2.4.1" target="_blank">https://www.omg.org/spec/UML/2.4.1</a></td>
</tr>
<tr>
<td>2.3</td>
<td>Mai 2010</td>
<td><a href="https://www.omg.org/spec/UML/2.3" target="_blank">https://www.omg.org/spec/UML/2.3</a></td>
</tr>
<tr>
<td>2.2</td>
<td>Janvier 2009</td>
<td><a href="https://www.omg.org/spec/UML/2.2" target="_blank">https://www.omg.org/spec/UML/2.2</a></td>
</tr>
<tr>
<td>2.1.2</td>
<td>Octobre 2007</td>
<td><a href="https://www.omg.org/spec/UML/2.1.2" target="_blank">https://www.omg.org/spec/UML/2.1.2</a></td>
</tr>
<tr>
<td>2.0</td>
<td>Juillet 2005</td>
<td><a href="https://www.omg.org/spec/UML/2.0" target="_blank">https://www.omg.org/spec/UML/2.0</a></td>
</tr>
<tr>
<td>1.5</td>
<td>Mars 2003</td>
<td><a href="https://www.omg.org/spec/UML/1.5" target="_blank">https://www.omg.org/spec/UML/1.5</a></td>
</tr>
<tr>
<td>1.4</td>
<td>Septembre 2001</td>
<td><a href="https://www.omg.org/spec/UML/1.4" target="_blank">https://www.omg.org/spec/UML/1.4</a></td>
</tr>
<tr>
<td>1.3</td>
<td>Février 2000</td>
<td><a href="https://www.omg.org/spec/UML/1.3" target="_blank">https://www.omg.org/spec/UML/1.3</a></td>
</tr>
<tr>
<td>1.2</td>
<td>Juillet 1999</td>
<td><a href="https://www.omg.org/spec/UML/1.2" target="_blank">https://www.omg.org/spec/UML/1.2</a></td>
</tr>
<tr>
<td>1.1</td>
<td>Decembre 1997</td>
<td><a href="https://www.omg.org/spec/UML/1.1" target="_blank">https://www.omg.org/spec/UML/1.1</a></td>
</tr>
</tbody>
</table>
</section>
<section>
<h3>Objectifs</h3>
<ul>
<li>Apporter aux utilisateurs un <strong>langage de modélisation commun</strong> afin de pouvoir échanger des informations de conception</li>
<li>Pouvoir <strong>étendre le langage</strong> pour repondre aux besoins spécifiques</li>
<li>Etre <strong>indépendant</strong> vis-à-vis des langages de programmation et des processus</li>
<li>Encourager le développement des concepts <strong>Orientés Objet</strong></li>
</ul>
</section>
<section>
<h3>Organisation des diagrammes</h3>
<p>Les diagrammes peuvent être organisés en trois catégories principales :</p>
<div class="container">
<div class="col">
<h4>Structure</h4>
<ul style="font-size: 0.8em;">
<li><strong>Diagramme de classe</strong></li>
<li><strong>Diagramme de composants</strong></li>
<li>Diagramme de structure composite</li>
<li><strong>Diagramme de déploiement</strong></li>
<li>Diagramme d'objets</li>
<li>Diagramme des paquetages</li>
<li>Diagramme de profils</li>
</ul>
</div>
<div class="col">
<h4>Comportement</h4>
<ul style="font-size: 0.8em;">
<li><strong>Diagramme d'activité</strong></li>
<li><strong>Diagramme état-machine</strong></li>
<li><strong>Diagramme des cas d'utilisation</strong></li>
</ul>
<h5 style="margin-top: 1em;">Interaction</h5>
<ul style="font-size: 0.8em;">
<li>Diagramme de communication</li>
<li><strong>Diagramme de séquence</strong></li>
<li>Diagramme de temps</li>
<li>Diagramme global d'interaction</li>
</ul>
</div>
</div>
</section>
<section>
<h3>Un bon modèle</h3>
<div class="container">
<div class="col">
<ul>
<li>Simple à comprendre</li>
<li>Respecte les standards</li>
<li>Apporte une vision globale</li>
</ul>
</div>
<div class="col">
<img src="assets/images/floor-plan.jpg" alt="Floor Plan">
</div>
</div>
</section>
<section>
<h3>Un bon modèle</h3>
<ol>
<li>Choisir le ou les modèles adaptés pour représenter une fonctionnalité</li>
<li>Adapter la granularité en fonction du besoin</li>
<li>Bien représenter la réalité</li>
<li>Préférer décomposer un système complexe en sous-ensembles</li>
</ol>
</section>
</section>