Peut-on appliquer l'UML à PHP? [PHP] - PHP - Programmation
Marsh Posté le 07-05-2002 à 00:11:49
UML n'est pas une méthode !
C'est un langage.
Marsh Posté le 07-05-2002 à 00:17:08
antp a écrit a écrit : UML n'est pas une méthode ! C'est un langage. |
Hum...
Citation : |
Source : commentcamarche
Désolé mais bon c'est une notation, une méthode, un langage... enfin tout ce que tu veux quoi!
Bon en tout cas je dirai langage maitenant promis
Sinon t'en penses koi pour UML/PHP?
Marsh Posté le 07-05-2002 à 00:27:20
Je pense que ce n'est pas parcequ'on a un marteau dans la boite a outil q'uil faut tout réparer à coups de marteau.
Marsh Posté le 07-05-2002 à 00:41:03
kadreg a écrit a écrit : Je pense que ce n'est pas parcequ'on a un marteau dans la boite a outil q'uil faut tout réparer à coups de marteau. |
C'était a pensée du jour du père fouras...
Nan plus sérieusement, on peut avoir des problèmatiques très complexes en Php qui nécessite de passer un minimun de temps sur l'analyse quand même...
En ce moment, je fais pas du PHP juste pour faire un SELECT vers MySQL...
Moi ce que je veux savoir c'est pas si UML est un bazooka pour faire du PHP. Ce qui m'interesse, c'est savoir si UML peut s'appliquer à PHP...
Marsh Posté le 07-05-2002 à 00:44:46
ohlàlà
je vois pas pourquoi ça pourrait pas s'apliquer dès lors que PHP est un langage objet
si ça supporte l'objet forcément que tu peux raisonner objet
Marsh Posté le 07-05-2002 à 00:44:46
On peut appliquer UML à n'importe quoi, reste à savoir si c'est pertinent et si on a un réel gain à le faire.
Je ferais une réponse complète demain, là, je vais me coucher.
Marsh Posté le 07-05-2002 à 00:56:54
kadreg a écrit a écrit : On peut appliquer UML à n'importe quoi, reste à savoir si c'est pertinent et si on a un réel gain à le faire. Je ferais une réponse complète demain, là, je vais me coucher. |
Vi stp car UML est purement objet et PHP est pas vraiment purement objet donc je me pose des questions...
Marsh Posté le 07-05-2002 à 09:43:54
Roco a écrit a écrit : Hum...
|
Un langage c'est pas une méthode, désolé, et je connais plein d'analystes qui te donnerait un bon coup de poing si tu leur dit que UML c'est une méthode Mon prof d'analyse nous a assez fait chier à répéter ça à tout bout de champ...
[jfdsdjhfuetppo]--Message édité par antp le 07-05-2002 à 09:44:06--[/jfdsdjhfuetppo]
Marsh Posté le 07-05-2002 à 09:53:57
antp> il est bien ton prof d'analyse. Lorsqu'a l'école j'ai eut des cours UML, au premier rang, il y avait les profs, et derrière les élèves. Et en fait, ils nous ont pas expliqué grand chose vu ce que je sais maintenant sur UML.
Marsh Posté le 07-05-2002 à 09:55:38
Première chose, qu'est-ce qu'UML. C'est une notation comprenant un ensemble de shémas permettant de representer un système objet et ses intéraction avec l'exterieur. C'est une grosse boite à outils contenant des diagrames permettant d'exprimer des caractéristiques. A aucun moment, cela ne signifie que l'on doit utiliser tout UML pour expliquer le système. On ne se sert que ce dont on a besoin. Ainsi rares sont les projets à utiliser les activity diagrams, servant principalement à modéliser des processus logiciels. La méthode maintenant (dans le domaine UML on parle plutot de process) va te dire à quel moment utiliser chacun de ces outils (éventuellement en en laissant tomber quelques uns, d'ou mes histoires de marteau) et pour répondre à quels besoins. Ce process peut etre un process hérité d'une méthode (OMT), un process dédié orienté par ce qu'est capable de fournir UML (RUP), ou un truc pas objet du tout mais qui est utilisé depuis tellement longtemsp que l'on accroche la notation UML dessus pour le faire évoluer dans sa notation, mais pas dans sa démarche.
Donc ta question du début : "Je voudrais savoir si l'on peut appliquer la méthode UML à des projets PHP." se retrouve qualifié en "Peut on exprimer gràce à la notation UML les caractéristiques d'un programme en PHP ?".
Maintenant, passons à PHP. Ce n'est pas un langage purement objet, certe. Mais le C++ ne l'est pas non plus, puisque rien n'empèche de fair en C++ une sorte de C avec des trucs en plus (notamment le passage par valeur). De meme, je sais qu'il existe des projet C intégralement décrit en UML (avec un générateur de code UML->C). Donc le fait que le langage ne soit pas purement objet n'est pas un problème, ce qui compte, c'est l'utilisation qui en est faite.
Donc, a priori, rien n'empeche d'utiliser UML pour modéliser un programme PHP. Maintenant, es-ce que l'on y gagne quelque chose ?
Pour des phases d'analyse et d'expression des besoins on est pas lié à un langage. Donc autant y aller. UseCases et diagrammes de séquences vont permettre de spécifier proprement l'intéraction de l'utilisateur avec l'application.
C'est après que ça se gate. En effet, un programme PHP n'est pas des classes qui agisessent en étant liées entre elles, mais un ensemble de pages, de vues utilisant des classes instanciées à chaques utilisations, contrairememt à J2EE qui garde des pools d'EJB. Donc, ça a pour résultat de se modéliser différament. Personnellement, je vois un modèle statique à deux niveau.
Un premier niveau correspondant à l'organisation des données et méthode, avec un classique diagramme statique avec les classes PHP.
Mais cette organisation en pages de PHP implique un second niveau. Personnellement, je verrais bien l'utilisation d'un composant stéréotypé "page" afin de modéliser une page. Et cette "page" référence les classes qu'elle instancie. De plus, comme les objets ne sont pas persistents d'une page à une autre, pour faire bien, je verrais bien un mécanisme permettant de récuperer des instances déjà créees afin de les avoir facilement, quelque chose proche des EJB entity de J2EE dans l'esprit. Je trouve que ce genre de notion manque aujourd'hui dans PHP.
Donc, comme tu le vois, je pense que UML est adapté pour décrire une application PHP, mais que cela doit ^etre fait de manière réfléchie en enrichissant UML de certaines caractéristiques propres à PHP (comme cette organisation en page) afin de rester pertinant.
[jfdsdjhfuetppo]--Message édité par kadreg le 07-05-2002 à 10:19:59--[/jfdsdjhfuetppo]
Marsh Posté le 07-05-2002 à 10:53:22
je m'incline avec respect
Marsh Posté le 07-05-2002 à 11:17:17
je ne sais pas si ca a déjà été dit mais logiquement lorsque tu travailles au niveau d'UML tu t'en contrefous de ce qui va se passer après (i.e. la façon dont ca va etre implémenté est indépendant du résultat que tu obtiens avec UML)
Marsh Posté le 07-05-2002 à 11:25:24
darklord> Ce n'est plus vrai maintenant que l'OMG pousse sur les démarches MDA (Model Driven Architecture). C'est à dire que tout est contenu dans un modèle UML enrichie d'un maximum de chose. Certaines métaclasses sont stéréotypées suivant le langage, on accroche au modèle des notes stéréotypées avec le code dedans. Tous est contenu dans le modèle.
Ce qui fait que l'assertion disant que le modèle UML n'est pas dépendant du langage est fausse maintenant. Cela reste vrai dans les premières phases d'analyse (encore que...), mais les modèles d'implémentation sont très orientés langage.
Marsh Posté le 07-05-2002 à 11:31:52
ah bon, savais pas ...
Marsh Posté le 07-05-2002 à 12:10:50
kadreg a écrit a écrit : darklord> Ce n'est plus vrai maintenant que l'OMG pousse sur les démarches MDA (Model Driven Architecture). C'est à dire que tout est contenu dans un modèle UML enrichie d'un maximum de chose. Certaines métaclasses sont stéréotypées suivant le langage, on accroche au modèle des notes stéréotypées avec le code dedans. Tous est contenu dans le modèle. Ce qui fait que l'assertion disant que le modèle UML n'est pas dépendant du langage est fausse maintenant. Cela reste vrai dans les premières phases d'analyse (encore que...), mais les modèles d'implémentation sont très orientés langage. |
Y a qu'à voire les différents tools UML -> Rational Rose ou Visio, etc.
Une autre application d'UML que j'ai trouvé, c'est dans les description de l'interaction être-humain <-> machine et la déscription des interfaces.
L'ORM (Object Role Modeling) est principalement utilisé pour les BD, mais est aussi utilisé dans d'autre domaine (interface, etc.).
Un pti copy-paste d'un Ph.D. thesis qui résume assez bien les points importants de l'utilsation de tel langages:
Citation : [...]Not all of them are useful in practice and the question is what makes a representation useful and usable. One aspect of a representation is that it should be effective. In Macinlay Macinlay (1986) defines the effectiveness of a visual language as ?whether a language exploits the capabilities of the output medium and the human visual system?. This notion can be expanded to include purpose and audience i.e. what is the representation intended for and who is going to use it, because ?visualizations are not useful without insight about their use, about their significance and limitations? (Petre et al. 1997). Developing usable diagram techniques is difficult and requires insight in all of these aspects. |
Marsh Posté le 10-05-2002 à 15:16:29
Je faisais un peu de recherche sur les Interaction Design Patterns et je suis tombé la-dessus http://www.e-gineer.com/articles/d [...] ming.phtml Je me disais que ca pouvait peut-être t'intéresser Roco (je suppose que tu utilises des patterns...)
Marsh Posté le 10-05-2002 à 17:33:26
Et bien merci bcp pour ces réponses!!! Elles vont au-delà de mes espérances...
Marsh Posté le 06-05-2002 à 23:44:49
Salut
Je voudrais savoir si l'on peut appliquer la méthode UML à des projets PHP. En effet, le PHP est-il adapté à un mode de raisonnement objet?
J'essaye un peu en ce moment, mais je dois dire que ce que je fais n'est pas très pertinent, je me demande donc si c'est moi qui ne raisonne pas bien ou si c'est l'UML qui n'est pas adapté au langage PHP.
[jfdsdjhfuetppo]--Message édité par Roco le 06-05-2002 à 23:45:57--[/jfdsdjhfuetppo]
---------------
[:roco] Un chtit café et hop ça repart !