[Unik] UML : Unified Modeling Language

UML : Unified Modeling Language [Unik] - Divers - Programmation

Marsh Posté le 23-03-2005 à 18:54:25    

Voici donc le topic unique UML. C'est nouveau, ça vient de sortir. Dans le topic, je causerais d'UML, de ce qu'il est, de ce qu'il est pas, et de ce que ça contient.  
 
Ca parlera UML 1 (l'actuel) UML 2 (le futur), des diagrammes, voire même de profils ou de MDA, mais juste si vous avez pas peur.
 
Bien entendu, si vous avez quelques question, vous pouvez les poser, c'est un topic unique comme un autre [:spamafote]
 
Pour commencer, on va le dire tout de suite : UML n'est pas une méthode. UML, qui signifie Unified Modeling Language est un langage graphique destiné à modéliser des systèmes objets (normalement). Il est apparu en 1997, suite au rapprochement de plusieurs méthodes objets tels que OMT, OOSE ou booch, ainsi que des travaux sur l'expression des cas d'utilisation d'ivar jacobson. En novembre 1997, la première version (UML 1.0) est standardisée par l'OMG (qui s'occupe aussi de CORBA). Depuis, plusieurs versions se sont succédées, retouchant certains concepts, et on en est à la version 1.5.
 
La version 2.0 est en cours de finalisation à l'OMG (depuis déjà un certain temps d'ailleurs...), mais on commence à voir apparaitre les premiers outils basés dessus.
 
Pourquoi je dis qu'UML n'est pas une méthode ? Parce qu'il s'agit d'un ensemble de diagramme destiné à exprimer certaines notions, mais que leur utilisation, est laissé à l'appréciation de l'utilisateur. Certains processus de développements, tel le RUP, utilisent d'ailleurs les différents diagrammes dans leur synopsis, ou sinon, il arrive que l'on utilise la notation UML (généralement un sous-ensemble) avec des méthodes plus classiques.
 


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 23-03-2005 à 18:54:25   

Reply

Marsh Posté le 23-03-2005 à 21:08:19    

Yallaa ! Cool je vais pouvoir squatter trankilou chez moi au lieu d'aller en amphi :D
 
Non serieux, j'ai pas trop saisi les ficelles des diagrammes de sequences ... c'est au menu ?
 
PS : La seule chose qui me motivait pour ce cours c'était la prof ... OMG  :love:  :cry:  :love:


Message édité par Chronoklazm le 23-03-2005 à 21:15:36

---------------
Scheme is a programmable programming language ! I heard it through the grapevine !
Reply

Marsh Posté le 23-03-2005 à 21:10:17    

Chronoklazm a écrit :


Non serieux, j'ai pas trop saisi les ficelles des diagrammes de sequences ... c'est au menu ?


 
Pas tout de suite. Parceque c'est le diagramme qui me soule le plus et parcequ'il est entièrement refait dans UML2.


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 23-03-2005 à 21:11:27    

elianor a écrit :

Pas tout de suite. Parceque c'est le diagramme qui me soule le plus et parcequ'il est entièrement refait dans UML2.


+2000  [:kiki]


---------------
[:whatde]
Reply

Marsh Posté le 24-03-2005 à 20:00:37    

Bon, les pollueurs, restez sage un peu, ce soir, je vais causer du premier diagramme :  
 
le diagramme de cas d'utilisations
C'est, selon pas mal de processus de développement, le premier diagramme que l'on utilise lors du  
 
développement d'un système. Son but est d'exprimer, d'une manière simple, le rôle d'un système, ce qu'il  
 
doit faire et les éléments qui interragissent avec lui. C'est généralement utilisé en phase de recueuil  
 
des exigences, par interview des utilisateurs. C'est également un diagramme qui est simple et permet  
 
d'avoir des retours de non-informatiens.
 
Voici un exemple de diagramme :  
 
http://rincevent.dyndns.org/toto/uml/usecase.png
 
La première chose que l'on voit est un ensemble de use case (les patates). Un use case est une  
 
fonctionnalité du système modélisé, sur laquelle on pourra plus tard accrocher un scénario plus  
 
complexe. Traditionnellement, on les nommera avec des termes "d'action", car le système FAIT quelque  
 
chose dans ce cas.
 
Ensuite, on a des acteurs. Un acteur est un élément externe au système, mais qui interragiut avec le  
 
système. On pense tout de suite aux utilisateurs en tant que personnes, mais ce n'est pas que ça. Par  
 
exemple un capteur mécanique ou un autre système peuvent parfaitement être un acteur. Enfin, signalons  
 
qu'il est généralement inutile de faire des liens entre les acteurs, on modélise le système, pas ce qui  
 
est autour. Dans l'exemple ci-dessus, inutile de faire hériter modérateur d'utilisateur, ça ne regarde  
 
pas mon système.
 
Enfin dernier cas, ce rectangle qui traine sur le diagramme. C'est ce que l'on appelle le "system  
 
boundary", la frontière du système, qui marque les limites du système à modéliser.
 
Il existe également des liens entre les uses cases, destiner à extraire certain sous-ensemble que l'on invoquera lors de plusieurs uses cases. Il y a deux type de liens, <<includes>> qui permet de faire sortir une sous-partie d'un cas d'utilisation (taper son mot de passe est l'exemple bateau), et <<extends>> qui permet de faire de "l'héritage" de use case.
 
Pour terminez, n'oubliez pas que les dessins sont bien gentils, mais largements insufisants. Tout cas d'utilisation se doit d'être bien documenté, avec des explication précises, des préconditions (pour poster, un contributeur ne doit pas être banni) et être validé par des cycles de revue.


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 24-03-2005 à 20:17:31    

Cool le topic :jap:
 
Dans le diagramme des use case, faut-il préciser qu'un modérateur est aussi un contributeur ? Y'a-t-il moyen de le faire ? Ou est-ce que c'est un aspect qui n'entre pas dans les use case ?

Reply

Marsh Posté le 24-03-2005 à 20:42:53    

FlorentG a écrit :


Dans le diagramme des use case, faut-il préciser qu'un modérateur est aussi un contributeur ?  


 
En fait, il ne faut pas voir un acteur comme une personne, mais comme un élément qui interragit avec le système. Ca peut être la même personne qui prend deux rôles différents suivant le cas. Suivant le contexte, antp sera contributeur ou modérateur, et suivant le contexte, interragira différemment avec le forum.
 

FlorentG a écrit :

Y'a-t-il moyen de le faire ?  


 
On peut mettre des héritages entre acteurs, mais cela signifie modéliser l'extérieur du système, ce qui me semble mal(tm)
 

FlorentG a écrit :

Ou est-ce que c'est un aspect qui n'entre pas dans les use case ?


 
C'est un problème philosophique :o J'ai ici mis mon avis, d'autres peuvent en avoir un différent.


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 24-03-2005 à 20:43:53    

Ok je vois, merci :jap:
 
J'ai fais de l'UML l'an dernier, mais on l'a survolé. On n'a fait que les graphes d'héritage, pas les use case

Reply

Marsh Posté le 24-03-2005 à 20:44:33    

Reply

Marsh Posté le 24-03-2005 à 21:21:28    

elianor a écrit :

En fait, il ne faut pas voir un acteur comme une personne, mais comme un élément qui interragit avec le système. Ca peut être la même personne qui prend deux rôles différents suivant le cas. Suivant le contexte, antp sera contributeur ou modérateur, et suivant le contexte, interragira différemment avec le forum.


Autrement dit, un cas d'utilisation est un scénario, et l'ensemble des cas d'utilisation est l'ensemble des scénarios possibles dans l'intéraction avec le système. Ce qui signifie que le cas d'utilisation n'est qu'un diagramme, mais que le scénario doit en principe être écrit en français par ailleurs.
Peut-on, par extension, considérer qu'un cas d'utilisation est l'équivalent d'un test de validation, voire d'un contrat, une spécification ?
Ce qui reviendrait en quelque sorte à faire du design par contrat.


Message édité par el muchacho le 24-03-2005 à 21:21:56
Reply

Marsh Posté le 24-03-2005 à 21:21:28   

Reply

Marsh Posté le 25-03-2005 à 08:28:39    

el muchacho a écrit :

Autrement dit, un cas d'utilisation est un scénario, et l'ensemble des cas d'utilisation est l'ensemble des scénarios possibles dans l'intéraction avec le système. Ce qui signifie que le cas d'utilisation n'est qu'un diagramme, mais que le scénario doit en principe être écrit en français par ailleurs.


 
A peu près, sauf que je dirais plus prévu que possible. Certains scénarios tordu peuvent apparaitre lors de l'implémentation.
 

el muchacho a écrit :


Peut-on, par extension, considérer qu'un cas d'utilisation est l'équivalent d'un test de validation, voire d'un contrat, une spécification ?


 
Un use case est plutot une partie de spécification. Il reste insuffisaemment fin pour être exauhstif, et ne permet de modéliser que des contraintes fonctionnelles. Les contraintes non fonctionnelles, qui font pourtant parti de la spécification. Mais il est clair que de la spécification, on va tirer tout un ensemble de tests de validation.
 

el muchacho a écrit :


Ce qui reviendrait en quelque sorte à faire du design par contrat.


 
Non, parceque l'on est pas en phase de design. Et c'est un contrat assez informel. Je n'ai jamais vu personne mettre des contraintes formelles exprimées en OCL sur  des UC. (si vous ne comprenez pas cette phrase, c'est pour une prochaine explication).
 
Accessoirement, on notera la faiblesse d'UML dans ce type de phases amont, puisqu'on a rien pour le receuil des exigences, ni le moindre dictionnaire pour vérifier que tout le monde parle le même langage. Ces notions sont apportées dans les processus de développement par des moyens autres qu'UML.


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 25-03-2005 à 09:00:45    

Muchacho > il est clair que la recette définitive consistera entre autre à dérouler tous les scénarios des use-cases.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 25-03-2005 à 09:36:07    

elianor a écrit :

Accessoirement, on notera la faiblesse d'UML dans ce type de phases amont, puisqu'on a rien pour le receuil des exigences, ni le moindre dictionnaire pour vérifier que tout le monde parle le même langage. Ces notions sont apportées dans les processus de développement par des moyens autres qu'UML.


Aller hop, on améliore ça et on invente le HFRUML :D

Reply

Marsh Posté le 25-03-2005 à 10:05:07    

[:drapo] [:cupralf]

Reply

Marsh Posté le 25-03-2005 à 10:30:46    

Mouais, déjà sur ton premier diagramme je ne suis pas trop d'accord avec l'include. Un diagramme de use case doit contenir les actions élémentaires pour chacun des acteurs. En gros je n'aurai mis que Poster et Modérer (avec en plus un lien entre modérateur et poster, ou alors un "héritage" avec le contributeur).


Message édité par CMk le 25-03-2005 à 10:32:56
Reply

Marsh Posté le 25-03-2005 à 10:41:29    

CMk a écrit :

Un diagramme de use case doit contenir les actions élémentaires pour chacun des acteurs. En gros je n'aurai mis que Poster et Modérer


 
C'était un exemple pour montrer à quoi ça ressemble et essayer de justifier un <<include>>, d'ailleurs "Modérer" n'est pas franchement une action (trop abstrait).


---------------
Moi, j'aime pas les signatures - J'écoute actuellement :
Reply

Marsh Posté le 25-03-2005 à 10:44:23    

CMk > il classifie ses uses-case de façon hiérarchique pour pas que ça devienne le bordel trop vite.
 
D'autre part, il a déjà dit 15 fois que les relations entre les acteurs on en a rien à branler, ils sont pas dans le système. Comme on s'en fout, la politique c'est d'user le moins d'encre possible dans l'imprimante.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 25-03-2005 à 12:17:15    

coffeeman a écrit :

C'était un exemple pour montrer à quoi ça ressemble et essayer de justifier un <<include>>, d'ailleurs "Modérer" n'est pas franchement une action (trop abstrait).


 
Certes, mais il me semble que quand on fait un tutos, il faut quand même présenter et expliquer les méthodes utilisées actuellement. Actuellement, la mode c'est la simplification des diagrammes de use case, qui ont tendance à devenir un peu un fourre-tout incompréhensible. La ok c'est pour l'exemple, mais bon autant partir sur de bonnes bases :p
 
 

nraynaud a écrit :

D'autre part, il a déjà dit 15 fois que les relations entre les acteurs on en a rien à branler, ils sont pas dans le système.


Oui, il l'a dit, mais comme il l'a dit 15 fois, chacun voit un peu comme il veut le schmilblik. Pour certain cas non évident, il vaut mieux les mettre.


Message édité par CMk le 25-03-2005 à 12:21:09
Reply

Marsh Posté le 25-03-2005 à 12:48:27    

[:drapo]
 
 je vais sans doute me faire incendier, mais et Merise par rapport a l'UML? :/


---------------
IVG en france
Reply

Marsh Posté le 25-03-2005 à 12:57:48    

uriel a écrit :

[:drapo]
 
 je vais sans doute me faire incendier, mais et Merise par rapport a l'UML? :/


déjà merise c'est une méthode qui comprend une notation et pas une notation seule.
 
Ensuite, merise c'est pas orienté objet, UML l'est.
 
Enfin et de manière non négligeable, Merise c'est uniquement français.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 25-03-2005 à 13:01:27    

:jap:


---------------
IVG en france
Reply

Marsh Posté le 25-03-2005 à 13:03:33    

ceci dit, un truc "objet" comme les EJB ne sont en fait qu'une vielle revanche des papys du merise sur les jeunes javateux. Les Entity beans modélisent les données et les Session beans modélisent les traitements. ça rend caduque tout le système d'encapsulation.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 04-05-2005 à 19:13:18    

:bounce:

Reply

Marsh Posté le 06-05-2005 à 00:31:11    

elianor a écrit :


le diagramme de cas d'utilisations
Voici un exemple de diagramme :  
http://rincevent.dyndns.org/toto/uml/usecase.png


J'aurais plutôt utilisé << extends >> au lieu d'<< include >> : Bannir est une "spécialisation" de Modérer.
http://uml.free.fr/cours/p10.html#uc
 

el muchacho a écrit :


Autrement dit, un cas d'utilisation est un scénario, et l'ensemble des cas d'utilisation est l'ensemble des scénarios possibles dans l'intéraction avec le système.


Pas tout à fait :

Citation :


A scenario is a sequence of steps describing an interaction between a user and a system. So if we have a Web-based on-line store, we might have a Buy a Product scenario that would say this:
 
 
The customer browses the catalog and adds desired items to the shopping basket. When the customer wishes to pay, the customer describes the shipping and credit card information and confirms the sale. The system checks the authorization on the credit card and confirms the sale both immediately and with a follow-up email.
 
 
This scenario is one thing that can happen. However, the credit card authorization might fail. This would be a separate scenario.
 
A use case, then, is a set of scenarios tied together by a common user goal. In the current situation, you would have a Buy a Product use case with the successful purchase and the authorization failure as two of the use case's scenarios. Other, alternative paths for the use case would be further scenarios. Often, you find that a use case has a common all-goes-well case, and many alternatives that may include things going wrong and also alternative ways that things go well.
 
UML Distilled Second Edition A Brief Guide to the Standard Object Modeling Language
Martin Fowler  
Kendall Scott  
Publisher: Addison Wesley


Message édité par charly007 le 06-05-2005 à 00:34:49
Reply

Marsh Posté le 06-05-2005 à 02:10:59    

charly007 a écrit :

J'aurais plutôt utilisé << extends >> au lieu d'<< include >> : Bannir est une "spécialisation" de Modérer.
http://uml.free.fr/cours/p10.html#uc


 
C'est vrai que Moderer c'est pas "systematiquement" bannir ... quoique c'est discutable (genre un modero un peu expeditif) :)


---------------
Scheme is a programmable programming language ! I heard it through the grapevine !
Reply

Marsh Posté le 29-05-2005 à 21:11:17    

un pti up ! on voit même plus ton beau diagramme avec tes bêtises  :o

Reply

Marsh Posté le 29-05-2005 à 21:19:48    

push a écrit :

un pti up ! on voit même plus ton beau diagramme avec tes bêtises  :o


 
Je reprendrais lorsque :
- je serais plus ban d'images
- j'aurais le courage de fairte un paté sur le static class diagram
 


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 19-07-2005 à 09:37:19    

Bonjour,  
 
etant donné que je n'ai pas trouvé d'autres sujet sur UML je pose ma question ici, excusez moi si j'ai eu tord!!
Je souhaiterai savoir qu'est ce que vous me conseillerez comme logiciel simple et gratuit pour faire des digrammes UML,  
Ya Visio mais c'est payant
Dia, mais je trouve pas la version windows
d'autres???

Reply

Marsh Posté le 19-07-2005 à 09:38:12    

karinou a écrit :

Dia, mais je trouve pas la version windows


 
En cherchant, on trouve.
http://www.google.com/search?hs=9c [...] ercher&lr=


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 19-07-2005 à 09:48:29    

Oki si je pose la question c'est pour avoir d'autres logiciels que ceux que je connais deja, meme si je me suis mal exprimée...

Reply

Marsh Posté le 19-07-2005 à 12:04:06    

Poseidon for UML (http://www.gentleware.com , version Community).
 
Et Dia que tu connais deja, qui avec un plugin peut sortir du php5.
 
Waterproof::UML, pour le php4/5.  
 
PS : Je suis développeur web et ca se voit je crois, désolé donc, mais il y en a surement d'autre pour java, c++, et j'en passe :)


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
Reply

Marsh Posté le 20-07-2005 à 12:22:41    

oki oki merci beaucoup, j'en également besoin pour du developpement web alors merci bcp ;)

Reply

Marsh Posté le 08-10-2005 à 14:31:53    

[:drapo] parceque j'ai 2 jours pour assimiler l'UML

Reply

Marsh Posté le 08-10-2005 à 16:13:44    

nicolbolas a écrit :

[:drapo] parceque j'ai 2 jours pour assimiler l'UML


[:pingouino]


---------------
IVG en france
Reply

Marsh Posté le 08-10-2005 à 16:16:13    

C'est une reprise de la pub ovomaltine ? [:pingouino]

Reply

Marsh Posté le 08-10-2005 à 17:52:50    

ben je dois faire l'intermediaire entre le client et le codeur, et je commence chez le client lundi. On y gagnera tous si j'arrives a mettre l'analyse au propre en UML directement. Donc j'essaye d'engranger un max d'infos, j'ai achetté u bouquin plutot bien foutu, et il me reste 36h ;)

Reply

Marsh Posté le 08-10-2005 à 19:03:43    

Reply

Marsh Posté le 08-10-2005 à 19:24:01    

En une semaine de formation j'ai eu l'impression de quasiment rien faire...alors en 2 jours...[:pingouino]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 08-10-2005 à 21:57:36    


 
ROFL
 
Bon on verra ce que ça donne, de toute façon je vais apprendre "sur le tas", comme d'habitude.
 
J'en profite pour demander vos suggestions quant au soft à utiliser pour modeliser. J'ai un ex collèque qui prechait rational rose, mais d'autres comme dia+dia2code ou uml designer (coir poseidon qu'on vient de me suggerer) pourraient faire l'affaire. Vos preferences? (je suis sous windows, linux et OSX/x86 indifferament) Idéalement un qui soit simple a prendre en main...

Reply

Marsh Posté le 08-10-2005 à 22:00:02    

le premier qui dit 'Dia' a un blame [:dawao]


---------------
IVG en france
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed