Le plugin expose sept cas d'utilisation, tous déclenchés par l'ingénieur système depuis le menu contextuel de Rhapsody. Ils sont regroupés en trois grandes fonctionnalités : initialisation, analyse SVN, et visualisation.
Les différents cas d'utilisation sont répartis en quatre groupes :
Crée ou recrée le profil SVNProfile dans le projet Rhapsody actif. Initialise les stéréotypes («stakeholder», «system», «valuearc», «SVNDiagram»), les types énumérés (BenefitRanking, SupplyImportance) et les tags associés.
Entrées et provenances
Projet Rhapsody actif (via IRPApplication.activeProject())
Traitement
ProfileService.configureProfile(true) — supprime l'ancien profil s'il existe, puis recrée tous les éléments du profil.
Sorties
Le profil SVNProfile est présent dans le projet. Message console [SVN] Plugin initialisé. Aucun retour visuel à l'utilisateur.
Classe ou instance associée
SVNPlugin (init), RhapsodyWrapper (création des stéréotypes et tags)
UC2 — Créer un arc de valeur
Champ
Contenu
Nom
SVN Create Arc
Description
Crée un arc «valuearc» entre deux éléments sélectionnés dans le diagramme Rhapsody.
Entrées et provenances
Deux éléments sélectionnés graphiquement dans Rhapsody (source et cible de l'arc)
Traitement
DiagramService.createArcBetweenSelected() — récupère la sélection courante via IRPApplication.getSelectedGraphElements(), vérifie que les deux nœuds portent un stéréotype SVN («stakeholder» ou «system»), crée un IRPDependency avec le stéréotype «valuearc», puis l'insère graphiquement dans le diagramme.
Sorties
Un arc «valuearc» apparaît dans le diagramme entre les deux éléments sélectionnés. Message console confirmant la création.
Classe ou instance associée
Listener.afterAddElement(), ValueArc (initialisation des tags par défaut), RhapsodyElementUpdater.updateArcLabel()
UC3 — Éditer les pondérations d'un arc
Champ
Contenu
Nom
SVN Edit Arc
Description
Permet à l'utilisateur de renseigner les deux tags de pondération d'un arc «valuearc» sélectionné : benefitRanking et supplyImportance.
Entrées et provenances
A définir
Traitement
Le Listener.onElementsChanged() détecte la modification d'un tag benefitRanking ou supplyImportance via le panneau de propriétés de Rhapsody. Il écrit la valeur mise à jour dans le modèle et déclenche le recalcul.
Sorties
Les tags benefitRanking et supplyImportance de l'arc sont mis à jour. Message d'avertissement si l'élément sélectionné n'est pas un «valuearc».
Classe ou instance associée
A définir
Valeurs possibles :
Tag
Valeurs
benefitRanking
MIGHT_BE, SHOULD_BE, MUST_BE
supplyImportance
LOW, MEDIUM, HIGH
UC4 — Calculer l'importance des stakeholders
Champ
Contenu
Nom
SVN Calculate
Description
Calcule le score d'importance normalisé de chaque «stakeholder» du modèle en appliquant les équations SVN (Cameron 2007/INCOSE 2018).
Entrées et provenances
Projet Rhapsody actif contenant des éléments «stakeholder», «system» et «valuearc» avec leurs tags benefitRanking et supplyImportance renseignés
Traitement
CalculationService.calculateImportance() — parcourt récursivement le modèle, construit le graphe des arcs, recherche les value loops par DFS depuis le nœud «system», puis calcule l'importance relative de chaque stakeholder (Équation 2, Cameron 2007). En l'absence de nœud «system», bascule sur un calcul simplifié par somme des arcs.
Sorties
Le tag importanceScore (valeur entre 0 et 1) de chaque «stakeholder» est mis à jour dans le modèle. Messages console détaillant les loops trouvés et les scores calculés.
Trouver tous les cycles (value loops) depuis le nœud «system» par DFS
Équation 1: score d'un loop = produit des scores de ses arcs
Équation 2: importance(stakeholder S) = Σ scores des loops contenant S / Σ scores de tous les loops
Matrice de score des arcs (INCOSE 2018, Figure 3) :
supplyImportance ↓ \ benefitRanking →
MIGHT_BE
SHOULD_BE
MUST_BE
HIGH
0.30
0.50
0.95
MEDIUM
0.20
0.40
0.80
LOW
0.10
0.20
0.40
UC5 — Coloriser les éléments SVN
Champ
Contenu
Nom
SVN Colorize Elements
Description
Applique une couleur à chaque arc «valuearc» dans les diagrammes SVN en fonction du score calculé. La coloration des nœuds «stakeholder» est prévue mais non encore implémentée.
Entrées et provenances
Modèle Rhapsody avec des «stakeholder» dont le tag importanceScore est renseigné (nécessite l'exécution préalable de UC4)
Traitement
Trie les arcs «valuearc» par score décroissant, les divise en trois tiers, applique les couleurs rouge/orange/jaune via RhapsodyWrapper (propriété graphique LineColor). La logique de tiers sur les nœuds «stakeholder» (propriété FillColor) est conçue mais non encore intégrée.
Sorties
Les arcs «valuearc» sont colorisés dans les diagrammes SVN (rouge = arcs critiques, orange = importants, jaune = secondaires).
Met à jour manuellement le label d'un arc «valuearc» sélectionné pour afficher son score numérique calculé depuis ses tags benefitRanking et supplyImportance.
Entrées et provenances
Arc «valuearc» sélectionné dans Rhapsody avec ses tags benefitRanking et supplyImportance renseignés
Traitement
RhapsodyElementUpdater.updateArcLabel() — calcule le score numérique de l'arc via ValueArc.getScore() et met à jour son displayName. En cas d'échec, tente une mise à jour via IRPGraphElement.setGraphicalPropertyOfText().
Sorties
L'arc affiche son score numérique dans le diagramme (ex. : 0.95). Message console confirmant la mise à jour.
Supprime tous les éléments SVN du package Default du projet Rhapsody (stakeholders, systems, valuearcs, diagrammes SVN) ainsi que le profil SVNProfile. Remet le modèle dans un état vierge.
Entrées et provenances
Projet Rhapsody actif
Traitement
ProfileService.cleanDefaultPackage() puis ProfileService.deleteProfile() — collecte tous les éléments SVN avant suppression, supprime d'abord les arcs, puis les nœuds, puis les diagrammes, dans le bon ordre pour éviter les erreurs de dépendance.
Sorties
Le modèle ne contient plus d'éléments SVN. Le profil SVNProfile est supprimé. Message console indiquant le nombre d'éléments supprimés.