Tâche: Dépendances du sous-système de modèle
Cette tâche étend la conception de sous-système RUP traditionnel avec des détails spécifiques d'une solution SOA, notamment lorsque des sous-systèmes ont été identifiés à partir de modèles d'analyse métier. Une fois que nous effectuons la transition du domaine métier vers le domaine informatique, nous mappons des domaines fonctionnels identifiés, définis par le domaine métier, avec des sous-systèmes, leur contrepartie informatique.
Objet

Pour relier les modèles métier à leur contrepartie informatique, nous effectuons les tâches suivantes :

Relations
Description principale

Nous commençons par déterminer et documenter les dépendances entre les sous-systèmes qui correspondent aux domaines fonctionnels qui ont été identifiés pendant la Tâche : Analyse de domaine fonctionnel. Généralement, un domaine fonctionnel correspond à un sous-système unique, à savoir la vérification de l'hypothèse simplifiée dans de nombreux, ou même, dans la plupart des cas. Si nous décidons de mapper un domaine fonctionnel avec plusieurs sous-systèmes, cela peut être faisable et valable, mais cela signifie également que la décomposition du domaine n'a pas été suffisamment détaillée et que la granularité des domaines fonctionnels n'est pas assez fine.

Etapes
Décrire les dépendances du sous-système
Objet Documenter les interfaces dont dépend le sous-système. 

Lorsqu'un élément contenu dans un sous-système utilise un comportement d'un élément contenu dans un autre sous-système, une dépendance est créée entre les deux sous-systèmes. Pour améliorer la réutilisation et réduire les dépendances de maintenance, nous souhaitons exprimer ceci en termes de dépendance à une interface particulière du sous-système, et non au sous-système lui-même ou à l'élément contenu dans le sous-système.

La raison de ce choix est double :

  • Nous souhaitons pouvoir remplacer un élément de modèle (y compris les sous-systèmes) par un autre dans la mesure où ils proposent le même comportement. Nous précisons le comportement requis en terme d'interfaces, ainsi, toute exigence comportementale qu'un élément de modèle a par rapport à un autre doit être exprimée en termes d'interfaces.
  • Nous souhaitons donner au concepteur une liberté totale dans la conception du comportement interne du sous-système tant que celui-ci fournit le comportement externe correct. Si un élément de modèle dans un sous-système fait référence à un élément de modèle d'un autre sous-système, le concepteur n'a plus la liberté de supprimer cet élément de modèle ou de redistribuer le comportement de cet élément de modèle à d'autres éléments. Ainsi, le système est plus fragile.

Lorsque vous créez des dépendances, assurez-vous qu'il n'y a pas de dépendances ou d'associations directes entre les éléments de modèles contenus dans le sous-système et les éléments de modèles contenus dans d'autres sous-systèmes. Assurez-vous également qu'il n'existe pas de dépendance circulaire entre les sous-systèmes et les interfaces ; un sous-système ne peut pas à la fois réaliser une interface et dépendre d'elle.

Les dépendances entre les sous-systèmes et entre les sous-systèmes et les packages peuvent être exprimées comme ci-dessous. Représentée ainsi, la dépendance montre qu'un sous-système (Gestion des factures, par exemple) dépend directement d'un autre sous-système (Gestion de la planification du paiement).


Diagramme décrit dans le texte d'accompagnement.

Exemple d'une organisation des sous-systèmes en couches en utilisant des dépendances directes

Lorsqu'il est possible de substituer un sous-système à un autre (lorsqu'ils ont les mêmes interfaces), la dépendance peut être reliée à une interface réalisée par le sous-système, plutôt qu'au sous-système lui-même. Cela permet d'utiliser tout autre élément de modèle (sous-système ou classe) réalisant la même interface. L'utilisation de dépendances d'interfaces permet de concevoir des cadres d'application flexibles en utilisant des éléments de conception remplaçables.


Diagramme décrit dans le texte d'accompagnement.

Exemple d'organisation en couches du sous-système au moyen de dépendances d'interface

 

Propriétés
Plusieurs occurrences
Commandé par les événements
En cours
Facultatif
Planifié
Réitérable
Plus d'informations