7 votes

comportement et opération en UML

Au meilleur de mes connaissances,

l'opération réside dans le deuxième compartiment de la classe au diagramme de classe.

Ce qui suit est Behavior definition de la spécification UML (août 2011 ,page 445)

13.3.2 Comportement (de BasicBehaviors)

Le comportement est une spécification de la façon dont son classificateur de contexte change état au fil du temps. Cette spécification peut être soit une définition de l'exécution d'un comportement possible ou d'un comportement émergent, soit une illustration sélective d'un sous-ensemble intéressant d'exécutions possibles. Le site Cette dernière forme est typiquement utilisée pour capturer des exemples, comme une trace d'une exécution particulière. Un comportement classificateur est toujours un définition du comportement et non une illustration. Il décrit la séquence de changements d'état d'une instance d'un c au cours de sa vie. [ ] de classificateur. Par exemple, le comportement du classificateur d'une collaboration représente le comportement émergent de toutes les parties, tandis que le classificateur d'une classe est simplement le comportement des instances de la classe séparé des comportements de n'importe laquelle de ses parties. Lorsqu'un comportement est associé en tant que méthode d'une caractéristique comportementale, il définit l'implémentation de la méthode. l'implémentation de cette fonctionnalité (c'est-à-dire le calcul qui génère les effets de la caractéristique comportementale).

1) Pouvez-vous expliquer ce que signifie le comportement dans la définition ci-dessus ?

2)Quelles sont les différences entre le comportement et l'opération dans le langage de modélisation unifié (UML) ?

3voto

Rafael Chaves Points 318

L'opération est un élément de spécification uniquement - imaginez-la comme la signature de la méthode dans les langages de programmation OO. Elle possède un nom et une liste de paramètres.

Le comportement est (entre autres) ce que fait une opération (ou une autre caractéristique comportementale telle qu'une réception) lorsqu'elle est invoquée - imaginez que c'est le corps de la méthode.

En fait, UML appelle "méthode" le comportement qui définit ce que fait une opération. De même, à partir d'un comportement (qu'il s'agisse d'une activité ou d'une machine à états), l'opération est considérée comme la "spécification".

Notez également qu'en UML, les opérations peuvent avoir plusieurs méthodes. La signification et le(s) comportement(s) à exécuter lorsqu'une opération est invoquée relèvent de l'outil en question.

Enfin, les comportements peuvent être des machines à états ou des activités - les activités sont faciles à comprendre, car elles sont l'équivalent du code procédural. Les machines à états sont une bête totalement différente, et j'avoue ne pas comprendre comment une machine à états peut être utilisée comme comportement pour une opération.

2voto

Hippias Minor Points 303

Pour être exact :

Dans le diagramme de classe UML, la classe a généralement 3 compartiments communs : il peut y en avoir plus puisque des compartiments définis par l'utilisateur peuvent être ajoutés à la forme de la boîte de classe.

En pratique, l'ordre des compartiments :

  1. Nom de la classe
  2. Attributs
  3. Opérations

Ainsi, le troisième versement est utilisé pour les "opérations".

Comportement : ? Qu'entendez-vous par "comportement" ?

Dans la terminologie OO, les objets ont des propriétés (attributs) [ une voiture a une couleur ], et comportement (opérations) [la voiture accélère, s'arrête, etc].

Dans la terminologie UML la mise en œuvre de l'opération s'appelle méthode .

Et nous utilisons des diagrammes d'interaction (séquence ou collaboration) pour étudier comportement dynamique de systèmes que nous allons construire ou étudier.

1voto

milesma Points 563

Les spécialisations du comportement : OpaqueBehavior, Activity, StateMachine, Interaction Par exemple, un OpaqueBehavior de "i = i+ 1 ;"

Spécification de BehavioralFeature : Fonctionnement, réception Par exemple, une Opération de "void foo()"

Combinaison : Un comportement peut être invoqué directement, par l'intermédiaire d'une BehavioralFeature qu'il met en œuvre en tant que méthode ou en tant que classifierBehavior d'un BehavioredClassifier.

Par exemple,

void foo()
{
    i = i + 1;
}

UML donne au développeur la flexibilité d'"assigner" une opération avec un "comportement" différent à invoquer. Par exemple, s'il existe un autre comportement "MyStateMachine", vous pouvez simplement attribuer l'opération "foo" pour l'invoquer.

void foo()
{
    (new MyStateMachine(this)).run();  //Create an instance of it, pass the current classifier as context of the behavior
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X