web-dev-qa-db-fra.com

UML: Aller de l'utilisation du diagramme de classe

Dans des étapes simples, comment peut-on effectuer la transition d'un diagramme de cas d'utilisation à un diagramme de classe?

8
James P.

L'année dernière, j'ai proposé à ICSOFT 2010 qui a abordé cette question particulière. La réponse n'est pas simple et je ne peux pas la décrire ici en totalité, mais vous pouvez télécharger ma présentation ici . Faites défiler vers le bas pour glisser 23 "Passer de modèles fonctionnels aux structures" pour cette rubrique.

Le papier blanc ouvert/métis contient des informations supplémentaires pour compléter la présentation.

Les étapes de base pour obtenir un modèle de classe des cas d'utilisation sont les suivantes:

  1. Créer un modèle de service pour chaque cas d'utilisation.
  2. Définir Opérations Pour chaque service et état occupé dans vos modèles de service.
  3. Déterminez la classe responsable pour chaque opération, en ajoutant de nouvelles classes si nécessaire.

Je serai heureux d'étendre cette réponse avec des détails supplémentaires si vous avez d'autres questions.

5
CesarGon

La question est l'une des "découvertes d'objets"; Le processus d'enquête sur une exigence système et d'identification des "objets" pouvant mettre en œuvre ou être impliqué dans le fonctionnement d'un tel système. Il existe un certain nombre de techniques pour la découverte d'objets, l'une des plus productives et la plus communicative est la technique carte de collaboration-collaboration (CRC) Technique.

Malgré son nom, CRC est principalement à propos de objet Découverte, pas classe Découverte et peut-être que (ORC aurait-il été moins déroutant si vous travaillez jamais dans des systèmes de communication où CRC signifie quelque chose de totalement différent), mais ce dernier découle de la découverte du premier, et cela devrait toujours être Conception orientée objet non classe orientée après tout.

De toute façon, en utilisant CRC pour générer des objets candidats, puis les utiliser pour utiliser des scénarios de cas, vous pouvez affiner votre ensemble d'objets candidats (élimination des objets non utilisés et en créer de nouveaux si nécessaire) et affiner leurs responsabilités et collaborations comme vous allez. Lorsque vous avez alors une pile de cartes qui satisfont à tous les scénarios de cas d'utilisation, vous pouvez les utiliser pour identifier les classificateurs et les hiérarchies de classe. Souvent, une carte deviendra une classe, bien qu'elle aura peut-être représenté plusieurs objets dans les travaux de passage, vous pouvez même voir que plusieurs objets ont des responsabilités similaires et sont en fait une classe ou sous-classes si une super-classe commune. Tout cela informe les relations et les classes de votre diagramme de classe.

Les collaborations découvertes lors de l'exercice de la CRC constituent les relations dans le diagramme de la classe, la nature de la collaboration peut déterminer l'utilisation de l'agrégation, de la composition ou autrement, mais c'est souvent une question de conception ou de mise en œuvre détaillée et peut ne pas être évidente ou même souhaitable à Le niveau de cas d'utilisation de la conception, qui est généralement plus d'exercice de modélisation essentielle ou d'exigences qu'un exercice de modélisation de la mise en œuvre. Utilisation de cas -O-Mise en œuvre est généralement une étape trop grande, surtout si vous devez vérifier votre modèle avec des parties prenantes avec une expertise de domaine peut-être, mais pas l'expertise d'architecture logicielle.

3
user17821

Avez-vous seulement un diagramme de cas d'utilisation ou avez-vous les scénarios pour aller avec les cas d'utilisation? Si vous n'avez que le diagramme de cas d'utilisation, je vous recommanderais de créer les scénarios pour aller avec les cas d'utilisation. J'aime les phrases anglaises mais les diagrammes d'activité fonctionnent également.

Après avoir eu les scénarios, la prochaine étape consiste à créer des diagrammes de séquence. En supposant que vos scénarios aient été effectués correctement, vos cours de domaine tomberont de vos diagrammes de séquence directe. Vous pouvez ensuite optimiser vos classes de domaine pour respecter les critères que vous jugez importants dans votre système.

En tout état de cause, OMI, vous ne proposez absolument pas les classes d'abord, malgré certaines méthodes qui suggèrent autrement. Cela n'entraînera que des piquets carrés montés dans des trous ronds. Laissez les classes s'identifier et ils le feront assez bien dans les diagrammes de séquence si vous prenez le temps d'apprendre à faire un diagramme de séquence correctement et non seulement à des fins d'ambiance de la main.

3
Dunk

C'est une très bonne et intervocaire une question sans réponses définitives. Il existe de nombreuses méthodologies et pratiques encourageant des approches similaires mais différentes. Vous pouvez en trouver un dans une autre réponse. D'autres incluent des réalisations de cas d'utilisation et une modélisation analytique (UP), une modélisation de domaine (DDD), des cartes CRC (RDD) et bien d'autres. Ce que je considère comme similaire à ces approches, on examine les étapes dans les descriptions de cas d'utilisation (utiliser des diagrammes de cas ne sont pas de beaucoup de valeur en soi) et d'identifier les données d'entrée et de sortie et leur relation avec le domaine problématique. De là, c'est surtout l'intuition, je suppose. Les cas d'utilisation globale ne sont pas la source principale du OO Conception, ils sont importants comme spécification du comportement du système et de gestion des exigences.

0
Gabriel Ščerbák