2010-09-08 5 views
0

Je ne suis pas un expert en UML, j'ai juste suivi un cours avant d'avoir obtenu mon diplôme qui a passé beaucoup de temps sur la modélisation UML. Je comprends les bases mais je travaillais sur un projet l'autre jour et juste pour ma propre curiosité, je me demandais comment vous modéliseriez un rappel. Voici une partie du code que je travaillais surModélisation de classe UML de fonctions/classes de rappel

 

class OnChangeHandler(): 

    def my_init(self, rem, loc): 
     self.remotes = rem 
     self.locals = loc 

    def process_IN_CREATE(self, event): 
     #Do some work 

    def process_IN_MODIFY(self, event): 
     #Do some other work 
 
 

class Watch(): 
    def __init__(self): 

     self.wm = WatchManager() 
     self. notifier = AsyncNotifier(self.wm, OnChangeHandler(loc=self.locals, rem=self.remotes)) 
 

J'utilise un cadre évidemment, donc je suppose que ma question se résume à comment voulez-vous modéliser les relations complexes où vous travaillez avec la boîte noire modules et cadres? Est-ce que ça ne vaut même pas la peine de passer du temps? Mais si oui, la majorité des programmes ne sont-ils pas construits dans des cadres? J'ai trouvé les modèles de classe UML très utiles quand nous apprenions, mais maintenant je suis confus.

+1

Je ne suis pas sûr de schématiser les rappels dans un diagramme de classes. Un diagramme de classes montre comment les classes sont liées. Je pense qu'un rappel serait mieux modélisé avec un diagramme de séquence. –

Répondre

-1

Vous pouvez inverser un cadre en inversant le .class afin d'obtenir un diagramme de classes.

Voir un exemple de cadre inverse à: http://www.ejb3.org/jar_file_reverse/jar_file_reverse.html Le diagramme de classes donnera une vue de la structure de l'application et de son architecture.

Le diagramme de séquence est également possible afin de comprendre ce qui se passe lors de l'exécution de l'application. Cela aide à mieux comprendre comment une classe .java pourrait réagir avec une classe .class de framework. Voir un exemple sur: http://www.ejb3.org/jar_file_reverse/jar_file_reverse.html#3.Sequence_Diagram_reverse_engineering Il est très utile si vous avez besoin d'ajouter un nouveau code et de réutiliser le code compilé existant.

Espérons que cela aide.

0

Juste pour l'enregistrement. On pourrait simplement modéliser les méthodes d'enregistrement et d'invocation de rappel dans la classe. OTOH si l'on veut avoir plus d'abstraction pour correspondre aux composants du cadre et les stéréotypes pourraient être utilisés, par exemple. en étendant la métaclasse Interface avec un stéréotype Event and Callback.

Questions connexes