SysML 1.3 disponible

La version 1.3 du langage de modélisation SysML est officiellement disponible. Les spécifications sont accessibles depuis le site de l’OMG.
SysML 1.3 apporte principalement des changements sur la définition des ports : les full ports et proxy ports remplacent les flow ports et ports standards.
Pour plus d’informations sur les changements avec SysML 1.3, voir mon post sur SysML 1.3 bêta.

SysML 1.3 bêta

SysML, le langage de modélisation OMG basé sur UML et adapté à l’ingénierie système, est actuellement en version 1.3 bêta. Cette version devrait être officielle au mois de Juin.

SysML 1.3 apporte de nombreux changements à la définition des ports, points d’interactions sur les Blocs. Pour rappel, SysML 1.2 intègre les ports standards pour exposer des interfaces, et les ports de flux (flow ports) pour représenter ce qui peut circuler en entrée et/ou en sortie d’un bloc, que ce soit des données, de la matière ou de l’énergie.

Les “flow port” et les “port specifications” de SysML 1.2 ont été abandonnés dans la version 1.3, mais leurs concepts ont été conservés. Les changements apportés dans la version 1.3 portent sur la définition et l’implémentation de ces concepts, qui se résume de manière non-exhaustive par les points suivants :

  • Ports complets (full ports)
    • permet de représenter une partie intégrante du bloc sur la frontière du bloc principal (main block boundary)
    • un port complet est typé par un bloc; il peut ainsi combiner les flux d’éléments en entrée/sortie et l’exécution d’opérations, remplaçant respectivement les flow ports et les ports standards de SysML 1.2
    • les interfaces ne sont alors plus exposées sur le port, supprimant l’utilisation de la notation lollipop
    • les ports complets peuvent être « conjugés » comme dans les flow ports de SysML 1.2 ayant pour effet d’inverser la direction des éléments ; cela a le même effet sur les opérations i.e. les opérations fournies par le bloc sont alors des opérations requises

OMG SysML 1.3 Full Port - port complet

  • Ports proxy
    • sert de proxy aux fonctions du bloc principal ou de ses parties intégrantes
    • un port proxy ne porte pas de comportement, ni ne constitue une partie du bloc principal
    • les flux d’éléments ou l’exécution d’opérations sur le port proxy sont transmis directement vers le bloc principal ou une partie intégrante
    • un port proxy est typé par un bloc d’interface (block interface) pour spécifier les fonctions disponibles (éléments, opérations), alors que les ports complets comme indiqué précédemment sont typés par des blocs

OMG SysML 1.3 Port Proxy

  • Ports et flux imbriqués (nested ports & flows) : SysML permet de définir des ports imbriqués ; pour cela le bloc utilisé comme type du port possède lui-même des ports

OMG SysML Ports imbriqués (nested ports)

  • Blocs d’association : ces blocs permettent de définir la compatibilité entre ports de blocs différents

En conclusion
SysML 1.3 propose une implémentation et une approche plus complète que la version 1.2 actuelle pour gérer la notion de ports, flux et connecteurs sur les Blocs. Il évite par exemple la duplication de ports si l’on a besoin de définir un port pour transmettre des éléments et fournir des opérations.
Ce changement pourrait avoir un impact non négligeable dans l’organisation du modèle comme l’on ne va plus exposer les interfaces sur un port. Par exemple, il semble que ce sera le bloc, utilisé comme type du full port, qui va réaliser les interfaces du modèle (dans le cas où un référentiel d’interfaces existe). Si un bloc doit appeler des opérations d’un autre bloc, on remplacera donc le lien entre deux interfaces required/provided de SysML 1.2, par le lien entre un full port et son inverse (full port du même type mais conjugué).

La seconde édition du livre “A Practical Guide to SysML” de Sanford Friedenthal (consultant MBSE et membre de l’OMG),  Alan Moore, et Rick Steiner est déjà disponible et intègre SysML 1.3 (cf. chapitre 7.6) ; ce livre fournit ainsi des exemples concrets sur l’utilisation de full ports, proxy ports, interface blocks, etc.
Lorsque le langage SysML 1.3 sera officiel, il sera intéressant de voir si les éditeurs d’outils de modélisation SysML tel que Sparx Systems (Enterprise Architect) auront intégrés ces nouveaux principes par une utilisation simple (par exemple pouvoir changer facilement une partie intégrante en ‘full port’ par le choix de la porter sur la frontière du bloc).

Modélisation de systèmes avec SysML

Suite à la formation donnée il y a quelques mois sur « UML2 et SysML pour modéliser des systèmes complexes », j’ai posté un article sur le Wiki d’Objet Direct pour présenter le langage de modélisation SysML (Systems Modeling Language), dérivé de l’UML.
SysML est destiné aux domaines d’activité industrielle, par exemple les systèmes embarqués impliquant la réalisation de solutions logicielles et matérielles.
Ainsi il propose un vocabulaire plus adapté à l’Ingénierie Système, à savoir la modélisation de blocs plutôt que de classes. SysML adapte et ne réutilise qu’une partie des diagrammes UML2, évitant ainsi d’être trop vaste.

Ce langage, maintenu par l’OMG, est en constante évolution (adopté en 2006, la version 1.2 est sortie en Juin 2010). Il  est aussi supporté par la plupart des outils UML via un plugin (ex: Enterprise Architect version Ultimate ou avec le plugin SysML).

Article Wiki « Présentation du langage SysML »