Brevet FR2997777A1 — publié le 20140509

PROCEDE DE CONCEPTION D'UN SYSTEME MODELISE PAR UNE ARCHITECTURE MULTI-VUES La présente invention concerne un procédé d'accélération de l'analyse des architectures lors de la conception itérative d'un système modélisé par une architecture multi-vues. Elle s'applique notamment pour la création de systèmes matériels et/ou logiciels quelque soit leur complexité. Selon la norme ISO 42010, la description architecturale d'un système nécessite en général plusieurs vues d'architecture. Chaque vue contient des modèles prenant en compte un ensemble de préoccupations des parties prenantes du système. Par exemple une architecture d'un système peut être décrite par ses vues de sécurité, de sûreté, de fiabilité, de performance, de coût, de productivité, de rendement ou encore au travers de ses vues physiques, logiques, techniques et dynamiques. Pour construire un système, qu'il soit matériel, logiciel ou encore organisationnel, satisfaisant les besoins de toutes ses parties prenantes, il faut prendre en compte toutes leurs préoccupations lors de la description de l'architecture du système. La qualité d'un système et donc son succès dépendent fortement de son architecture qui est définie dans les premières étapes de son processus de développement. Une architecture doit répondre aux exigences aussi bien fonctionnelles que non fonctionnelles des parties prenantes. Dans le processus du développement système, l'impact des décisions architecturales prises lors de la phase de conception, peut être très important. La correction d'une mauvaise décision de conception architecturale demande de plus en plus d'effort au fur et à mesure que le développement du système avance. Il est par conséquent très utile d'analyser les architectures des systèmes le plus tôt possible dans le processus de développement. Une architecture d'un système peut être analysée aussi bien sur la base des exigences fonctionnelles des parties prenantes du système que sur une base d'exigences non fonctionnelles comme par exemple la capacité d'un système à être maintenu ou à évoluer. Il est à noter que, selon le contexte, certaines exigences sont parfois classées comme non-fonctionnelles et d'autres fois comme fonctionnelles. Par exemple, il s'agit de la disponibilité, la consommation d'énergie, l'autonomie ou encore les temps de réponse. L'analyse d'une architecture peut se faire de plusieurs manières, par exemple : - en utilisant des métriques telles que par exemple des temps de réponse. Ces métriques peuvent être obtenues par des calculs simples ou par des simulations très complexes. Elles fournissent des informations très utiles mais qui demandent parfois des compétences très pointues afin d'être correctement interprétées. La complexité d'interprétation a souvent comme origine les dépendances complexes entre les éléments d'architecture. - par test de conformité à des patrons de conception plus connus sous le nom anglais « design patterns » . Ceux-ci sont le résultat d'une synthèse de l'expérience acquise par les concepteurs et les ingénieurs. Ils sont généralement considérés comme des bonnes pratiques de conception dans un domaine donné ou pour une préoccupation spécifique. Par conséquent, il est important de pouvoir vérifier que ces bonnes pratiques sont utilisées tant se faire que peut dans une architecture. - en vérifiant que des anti-patrons « anti-patterns » ne peuvent pas se produire. Les anti-patrons sont en fait des erreurs types commises lors de la conception des systèmes. Les goulets d'étranglement, l'interdépendance accrue entre objets, les inter-blocages, les inter-appels spaghetti, sont des exemples d'anti-patrons qui nécessitent des outils d'analyse qui les détectent. - en vérifiant ou en prouvant que l'architecture répond bien aux exigences que l'on trouve dans les cas d'usage et scénarii d'utilisation. Puisque les architectures sont complexes et nécessitent beaucoup de compromis dans la phase de conception, certains processus d'analyse formelle ont été développés. On peut citer à titre d'exemple la méthode ATAM (Architecture Trade off Analysis Method) développée à l'Université de Carnegie Mellon ayant pour but d'aider les architectes à choisir leur architecture en découvrant des compromis possibles satisfaisants au mieux les objectifs de chacune des parties prenantes. Cette méthode définit un processus global de modélisation. Ce processus aide toutes les parties prenantes à exprimer leurs préoccupations afin d'obtenir les objectifs spécifiques de qualité selon lesquels l'architecture sera évaluée. En effet, des scénarii d'utilisation sont définis pour chaque partie prenante. Ces scénarii sont priorisés entre eux par les parties prenantes. L'architecture est ensuite évaluée par rapport à chaque scénario d'utilisation et sera analysée et évaluée suivant les priorités des scénarii. Il est à noter aussi que la majorité des cadres architecturaux connus, de type multi-vues, comme par exemple RM-ODP ou le modèle 4+1 de P. Kruchten, définissent un ensemble de points de vue correspondant aux préoccupations des parties prenantes afin de guider l'analyse et les choix architecturaux. Toutes les méthodes citées dans le paragraphe précédent fournissent un cadre d'analyse qui prend comme critères de choix les préoccupations des parties prenantes, telles que la sécurité, l'intégrité, la fiabilité, l'efficacité ou l'évolutivité. Ces méthodes proposent d'analyser l'architecture et de la juger par rapport à un ensemble de critères définis depuis les préocupations des différents parties prenantes. En général, il n'existe pas une architecture qui soit optimale pour tous les critères. Ainsi, l'objectif est de définir le meilleur compromis en termes d'architecture satisfaisant au mieuxles critères d'optimisation. Un inconvénient de ces méthodes est dans le fait que l'évaluation de tous les critères à chaque étape de l'exploration architecturale coûte très cher. En effet, les méthodes connues n'offrent pas de procédés pour simplifier l'analyse suite à des modifications architecturales. Certaines métriques comme le temps de réponse moyen d'un composant nécessitent parfois des simulations complexes très gourmandes en temps pour être obtenues. De même, la vérification des anti-patrons est souvent un problème NP-complet qui nécessite beaucoup de savoir-faire et de temps dans le calcul avant de pouvoir valider un modèle d'architecture. Le fait d'être obligé de refaire une analyse complète à chaque modification architecturale, empêche naturellement l'architecte de faire de nombreuses itérations afin d'arriver à un bon compromis architectural. Il est donc nécessaire de trouver un procédé qui réduit le temps de l'analyse à chaque itération. Un autre inconvénient de ces méthodes proposant des architectures multivues, est la difficulté de maintenir en cohérence le modèle sous-jacent les différentes vues. Il est ainsi nécessaire de pouvoir rendre l'architecture cohérente après chaque modification locale. Un but de l'invention est notamment de pallier les inconvénients précités et de permettre, dans le cadre d'une architecture multi-vues, de : - maintenir la cohérence d'un modèle perçu par les vues d'une architecture où chaque vue a comme objectif de répondre à une ou plusieurs préoccupations des parties prenantes du système correspondant ; - diminuer le temps d'analyse pour évaluer les architectures dans un processus de type itératif. A cet effet, l'invention a pour objet un procédé de conception d'un système modélisé par une architecture multi-vue, ladite architecture comportant un noyau commun et un nombre N de vues, le noyau commun comportant un ensemble d'éléments, chaque élément représentant un composant du système, une vue comportant des éléments correspondant aux éléments du noyau commun projetés selon un point de vue de parties prenantes, ledit procédé étant caractérisé en ce que : - dans une première étape, on modélise le système pour obtenir le noyau commun et les N vues ; - dans une deuxième étape, on construit un graphe entre les éléments du noyau commun et les éléments des vues de telle sorte que tout élément du noyau est relié à un élément correspondant dans une ou plusieurs vues, un élément formant un sommet du graphe, deux éléments reliés ayant une relation de dépendance ; - dans une troisième étape, on établit des programmes d'analyse correspondant chacun à une vue, le résultat d'un programme étant destiné à être comparé à un critère donné propre à sa vue, puis on lance l'exécution de ces programmes d'analyse ; - dans une quatrième étape : on compare les résultats desdits programmes par rapport aux critères donnés, si au moins une vue a un résultat, dit négatif, ne répondant pas à un critère donné : - on modifie l'architecture en modifiant au moins un élément de ladite vue ; - on détecte tous les éléments impactés par cette modification dans les autres vues en détectant toutes les chaînes du graphe ayant ledit élément comme extrémité, un élément impacté étant une autre extrémité d'une chaîne ainsi détectée ; - on relance les programmes d'analyse des vues ayant un élément impacté la quatrième étape étant réitérée, l'architecture modélisant le système étant choisie en fonction des résultats obtenus. L'architecture est par exemple choisie lorsque tous les résultats obtenus sont 15 positifs. Le graphe reliant les éléments de ladite architecture est par exemple construit afin de réduire le coût d'analyse à chache modification architecturale Le graphe reliant les éléments de ladite architecture est par exemple mis à 20 jour à chaque modification de ladite architecture. Une vue peut comporter des éléments non reliés au graphe, lesdits éléments sont des ajouts propres à la vue. Le graphe est par exemple construit sans itération en reliant chaque élément d'une vue à au plus un élément du noyau commun. 25 Le graphe peut être construit pour n'avoir que des chaines de longueur égale à 1 ou des chaines de longueur égale à 2. Dans la quatrième étape on modifie l'architecture en modifiant au moins un élément de la vue ayant le résultat estimé comme le plus négatif. Une vue est par exemple représentée par une liste de blocs composants le 30 système. D'autres caractéristiques et avantages de l'invention apparaîtront à l'aide de la description qui suit, faite en regard de dessins annexés qui représentent : - la figure 1, une représentation d'une architecture multi-vues 35 modélisant un système ; - la figure 2, une illustration du principe de mise en oeuvre du procédé selon l'invention ; - la figure 3, une illustration des chaînes du graphe de la figure précédente, reliant les éléments de l'architecture ; - la figure 4, une présentation des étapes possibles du procédé selon l'invention ; - la figure 5, un vélo présenté à titre d'exemple comme un système conçu selon l'invention ; - la figure 6, une illustration d'un exemple de vue structurelle de représention du vélo ; - la figure 7, une illustration d'un exemple de vue de design du vélo ; - la figure 8, une illustration d'un exemple de vue de sécurité du vélo ; - la figure 9, à titre illustratif une vue partielle du graphe utilisé par le procédé selon l'invention ; - la figure 10, une autre vue partielle du graphe utilisé par le procédé selon l'invention. La figure 1 montre une représentation d'une architecture multi-vues modélisant un système donné. Cette architecture comporte un noyau commun 1 et des vues 2 issues de projections. Dans la figure 1, une vue 2 est définie comme une projection du noyau commun 1 selon un point de vue. Chaque vue peut comporter un ajout 4. Le standard ISO/IEC/IEEE 42010 autorise la définition d'un nombre arbitraire N de points de vue. Un point de vue peut traiter une ou plusieurs préoccupations, des parties prenantes et établit les conventions à partir desquelles la vue est représentée et analysée. Les ajouts 4 sont généralement des données non présentes dans le noyau commun 1 car elles représentent des éléments de modèle propres à la vue et seulement à celle-ci. Les vues 2 sont ainsi construites en projetant le noyau commun à partir de points de vue donnés, adressant notamment les préoccupations des parties prenantes et en leur ajoutant éventuellement des éléments 4 qui leur sont propre. Une vue comporte ainsi des données de projection 3 et des données ajoutées 4. Etant donné que quelques représentations sont bonnes à des fins particulières et mauvaises à d'autres fins, l'utilisation des vues multiples apporte tout son intérêt. En effet, des entités de profils très différents peuvent être impliquées dans le système. Ces entités ont des préoccupations et des objectifs très différents ; elles voient l'efficacité et la productivité de façons très différentes, elles ont des points de vue différents et elles demandent des vues et des données différentes. La modélisation par vues multiples permet de découper le système en différentes vues où chaque vue est analysée indépendamment des autres vues. Elle apporte ainsi une meilleure modularité et contribue à réduire considérablement la complexité d'analyse du système. Par exemple, les analyses des performances, de sûreté, de sécurité, de disponibilité, de flexibilité, de modularité, de maintenabilité, de coût, de productivité, etc. sont faites indépendamment dans leurs vues correspondantes, on analyse ensuite l'ensemble des résultats et juge s'il faut améliorer le compromis entre toutes ces préoccupations dans son architecture. Néanmoins, cette simplification ne surmonte pas les inconvénients de l'art antérieur, en particulier elle n'enlève pas la difficulté intrinsèque dans l'analyse de certaines vues même si elles sont faites indépendamment. La vérification de propriétés de sûreté par exemple, a toujours été un problème très difficile en lui-même. La figure 2 illustre le principe de mise en oeuvre du procédé selon l'invention à partir de la représentation de l'architecture de la figure 1. Le procédé applique un graphe, qui sera décrit par la suite, sur l'architecture modélisant le système. Le procédé permet notamment d'avoir à tout moment le résultat de l'analyse complète de l'architecture, avec un coût d'analyse réduite. Suite à un changement dans une vue 2, le procédé analyse l'impact de ce changement aux autres vues et ordonne la ré-analyse seulement des vues impactées. Il est inutile par exemple de recalculer le coût de fabrication d'un avion, si juste un paramétrage dans un module logiciel a été effectué ; en revanche cette modification nécessitera la ré-analyse de la sûreté de fonctionnement. En phase de conception, l'architecte fait en effet évoluer les vues et leurs modèles dans le temps, la modification de l'une d'elle pouvant entraîner une incohérence avec les autres vues. Il en résulte la nécessité d'identifier les vues et les éléments de ces vues qui seront impactés par le changement afin de répercuter la modification. Dans l'exemple des figures 1 et 2, si l'architecte fait une modification dans un élément de l'ajout d'une vue, aucune autre vue ne sera impactée car un ajout est propre à sa vue. En revanche, si un changement est fait dans un élément d'une projection, il y a des chances que d'autres vues seront impactées. Ainsi, pour empêcher les calculs inutiles d'analyse, le procédé selon l'invention assure le référencement entre éléments du système. Ceci se fait en reliant les éléments de modèles de vues de système par des relations 21, ou liens. L'analyse complète de toutes les vues du système, n'est donc faite qu'à la première étape du cycle de la conception ou suite à des modifications radicales dans l'architecture. En effectuant le référencement, on améliore les performances de l'évaluation du système complet à chaque modification architecturale. Ensuite, on résout 15 la difficulté majeure de cohérence qui réside dans la synchronisation et dans le maintien de la cohérence entre les modèles des vues. Deux étapes au moins sont mises en oeuvre : 1) la construction des liens d'analyses 21 entre vues et éléments du noyau; 20 2) la mise en place d'une procédure de répercussion des modifications. Les liens ont pour fonction de référencer les dépendances entre vues afin de maintenir la cohérence entre elles et de faciliter l'analyse du système. On appelle ces liens : « liens d'analyse ». Ces liens peuvent appartenir à des ensembles de liens distincts qui dépendent des types des objets qui sont à 25 relier entre eux. Un méta-modèle des liens peut être défini en conséquence. On pourrait par exemple créer un ensemble de liens pour relier deux vues et un autre ensemble de liens pour relier deux objets. Cependant, dans la présente invention, on suppose que tous les liens d'analyse appartiennent à un et un seul ensemble. Par ailleurs il n'y a pas de liens d'analyse entre deux 30 projections différentes ou entre deux vues différentes. Les seuls liens 21 autorisés sont présents entre une projection 3 et le noyau commun 1. Etant donné qu'un lien est toujours bidirectionnel, on peut le représenter par une ligne sans flèches reliant un objet 20 du noyau commun et un objet 22 de la projection. En règle générale, les éléments dans le noyau commun 1 sont représentés dans une arborescence par la majorité des outils de modélisation. On fait abstraction de cette arborescence dans la représentation de la figure 2: le noyau commun est alors représenté comme un ensemble de points 20, plus particulièrement représentés par des petits ronds, chaque point représentant un élément ou objet. Un point du noyau commun peut être projeté dans une ou plusieurs vues. Une projection d'un point 20 est représentée par un autre point 22 dans la vue correspondante. On crée ensuite un lien 21 entre le point du noyau commun et chacun de ses points correspondant dans les projections 3, cela pour tous les points 20 du noyau. Dans la figure 2 par exemple, l'élément « a» est représenté par l'élément « 3 » de la vue n°1, par l'élément « 1 » de la vue n°2 et par l'élément « 2 » de la vue n°N. Il existe alors 3 liens qui sont issus de l'élément « a ». Un point d'une vue n'est jamais relié à un point d'une autre vue. Grâce à la création des liens d'analyse, l'architecte peut être informé des éléments des divers vues qui sont impactés par un changement qu'il a fait dans une vue. Par conséquent, il ne relance que les programmes d'analyse faisant appel aux éléments 22 impactés dans les vues. Par exemple, dans la figure 2, suite à une modification de l'élément « 1 » de la vue n°2, seulement les vues n°1 et n°N sont impactés en raison des liens de l'élément « a » décrits ci-dessus. Les programmes d'analyse des autres vues n'ont pas besoin d'être relancés. Plus particulièrement, seulement les programmes d'analyse faisant appel à l'élément « 3» de la vue n°1 et à l'élément « 2 » de la vue n°N, ont besoin d'être mis à jour et relancés. Il est à noter qu'un élément dans une vue peut en principe être lié à plus qu'un élément dans le noyau commun. Cependant pour des soucis de lisibilité et d'efficacité dans l'analyse, il est possible de construire des architectures où un élément dans une projection est lié à un et un seul élément du noyau commun comme cela est illustré par la figure 2. Les liens 21 et les éléments 20, 22 de l'architecture de la figure 2 forment un graphe. 2 99 7777 10 En théorie des graphes, un graphe non orienté G = (S, A) est défini par la donnée d'un ensemble de sommets S et d'un ensemble d'arêtes A, chaque arête étant une paire de sommets (par exemple, si x et y sont des sommets, la paire {x, y} - notée aussi xy - peut être une arête du graphe G. Dans un tel 5 graphe, une chaine d'extrémités x et y est définie par une suite finie d'arêtes consécutives, reliant x à y. Une chaine élémentaire est une chaine ne passant pas deux fois par un même sommet, c'est-à-dire dont tous les sommets sont distincts. La longueur d'une chaine est le nombre d'arêtes de la chaine. 10 Dans le procédé selon l'invention, le graphe G comporte : - un ensemble de sommets S : ces sommets étant les éléments 20, 22 qui sont à la fois dans le noyau commun 1 et les projections 2 ; - un ensemble d'arêtes A : ces arêtes étant les liens d'analyse 21. Selon l'invention, après une modification d'un sommet x appartenant à une 15 projection 3 d'une vue 2, on détecte l'ensemble de tous les autres sommets du graphe G qui sont impactés par le changement sur x. Cette opération revient à chercher l'ensemble des chaines élémentaires du graphe G ayant le sommet x comme une extrémité. Ce problème est assez connu en théorie de graphes et il est résolu avec des méthodes efficaces connues. De plus, 20 dans le cas où chaque sommet dans les projections est lié à un et un seul élément du noyau commun, tous les chemins du graphe G ont une longueur maximum de 2 comme le montrera la figure 3 ci-après. Par exemple, si on suppose que les liens 21 formant les arêtes dans la figure 2 représentent toutes les arêtes de ce graphe, on y détecte alors 12 chaines en tout, dont 6 25 sont de longueur 2 et 6 de longueur 1. La figure 3 illustre ces chaines, correspondant au graphe de la figure 2. A cet effet, la figure 3 présente trois ensembles de sommets 31, 32, 33. Les deux ensembles 31 et 33 représentent des éléments des vues en liaison avec un 30 élément du noyau. L'ensemble 32 représente des éléments du noyau en liaison avec des éléments de vues. Par exemple, l'élément « 2 » de la vue n°3 est en liaison avec l'élément « d » du noyau, l'élément « 1 » de la vue n°3 est en liaison avec l'élément « c» du noyau. Ainsi, cette figure 3 montre que l'élément « d » du noyau est en bout de chaîne, la longueur de la chaîne étant alors égale à 1, alors que l'élément « c » du noyau est aussi relié à l'élément « 2 » de la vue n°2. La longueur de la chaîne étant ici égale à 2. Avantageusement, un graphe peut ainsi être construit pour n'avoir que des chaînes de longueur égale à 1 ou des chaine de longueur égale à 2. Cela permet notamment de faciliter la recherche de l'impact de la modification d'un élément sur le reste de l'architecture. A partir du graphe ou de l'ensemble de chaîne tels qu'illustrés par les figures 2 et 3, il devient possible de définir de manière automatique et en temps réel l'ensemble des sommets qui peuvent être impactés par une modification sur l'un des sommets correspondant à un élément d'une vue. La figure 4 illustre les étapes possibles d'un procédé selon l'invention appliqué pour la réalisation d'un système. Dans une première étape 41, on modélise le système sous étude afin d'obtenir le noyau commun et ses projections en prenant en compte tous les points de vue, comme illustré notamment par la figure 1. Pour cette modélisation, on peut utiliser les deux approches suivantes ou un mixte des deux pour créer l'architecture. Ces deux approches consistent: a. soit à construire d'abord des briques du noyau commun (dans ce cas l'édition se fait souvent en UML ou SysML), pour ensuite projeter ces briques selon les points de vue. On complète ensuite les modèles de chaque vue par des ajouts qui sont propres à chaque vue. b. Soit à commencer par écrire les modèles des vues associées aux points de vue et construire ensuite le noyau commun à partir de ces vues. (Dans ce cas l'édition se fait avec les langages des points de vue). Dans une deuxième étape 42, on construit le graphe d'analyse entre éléments du noyau commun et éléments des modèles dans les vues tel que défini dans l'étape précédente. La figure 2 illustre la construction d'un tel graphe. La construction du graphe peut se faire d'une manière semi-automatique. Il est à noter que dans la pratique la conception d'un système est relativement simple, en revanche quand on s'intéresse aux préoccupations et points de vue comme les performances, le respect de l'environnement ou la sûreté, la conception du système devient de plus en plus complexe. Ceci fait que les ajouts à chaque vue peut devenir très importants mais heureusement ces ajouts n'affecteront pas le graphe d'analyse. Dans une troisième étape 43, on met en place les programmes d'analyse qui correspondent aux vues de l'architecture et qui prennent en compte l'ensemble des préoccupations des parties prenantes puis on lance ces programmes, simultanément ou séquentiellement selon l'architecture de la plateforme d'analyse. Dans une quatrième étape 44, on analyse 40 les résultats des programmes d'analyse et on communique à chaque partie prenante les résultats la concernant. L'analyse est effectuée en comparant les résultats obtenus par rapport à des critères donnés. Ces critères dépendent des points de vue. Si toutes les parties prenantes sont satisfaites par les résultats d'analyse 45, 20 une architecture de consensus a alors été trouvée 46. Sinon, on modifie l'architecture 47. Plus particulièrement : - on se focalise sur un résultat d'analyse d'une vue qui paraît le plus négatif et on modifie l'architecture afin d'améliorer ce résultat, la 25 modification de l'architecture se fait par la modification d'au moins un élément de cette vue ; - si nécessaire, on remet à jour le graphe d'analyse suite à la modofication dans l'architecture, l'ajout d'un élément à l'architecture pouvant nécessiter l'ajout de liens au graphe d'analyse ; 30 - on détecte tous les éléments impactés par cette modification dans les autres vues, en détectant toutes les chaines du graphe d'analyse ayant cet élément modifié comme extrémité, un élément impacté étant à l'autre extrémité d'une chaîne ainsi détectée ; - On relance 48 les programmes d'analyse qui font appel aux éléments modifiés, plus particulièrement on identifie les vues impactées et on lance les programmes d'analyse correspondants ; On effectue les itérations nécessaires jusqu'à obtenir tous les résultats d'analyse positifs. Avantageusement, seuls les programmes associés à une vue ayant un élément impacté par une modification d'architecture sont relancés dans l'étape 44. Si on ne parvient pas à obtenir la totalité des résultats Une architecture choisie peut être celle qui apporte le plus de compromis. En règle générale, on choisit l'architecture en fonction des résultats obtenus, et plus particulièrement l'architecture correspondant à tous les résultats positifs si ceux-ci peuvent être obtenus. Les figures suivantes illustrent un exemple de mise en oeuvre du procédé selon l'invention où le système est un vélo. Cet exemple illustre aussi la variabilité des points de vues et des notations dédiées aux différentes parties prenantes. La figure 5 illustre une architecture d'un vélo où l'on prend en compte les six 20 préoccupations ci-dessous formant des points de vue à partir du noyau commun 50 de l'architecture du vélo : - la structure 51, décrivant un vélo qui a des roues, un guidon, des vitesses, des frein, etc. ... - le design 52; 25 - la maintenabilité 53; - le coût 54 ; - la sécurité du cycliste et des piétons 55; - les performances du vélo 56. La figure 6 illustre la construction de la vue structurelle 51, ou vue statique, par un exemple de représentation du vélo à l'aide d'un diagramme de définition de blocs au sens de SysML. La liste des blocs 60 est la suivante : Guidon, Poignée, Tige, Tube de direction, Fourche, Cadre, Base arrière, Hauban, Selle, Tige de selle, Tube de selle, Bielle, Pédale, Plateaux, Pignon, Chaine, Roues, Freins, Dérailleurs, Amortisseurs, Signalisation Le cadre 61 est composé à son tour d'un tube horizontal 611 et d'un tube diagonal 612. Quant à une roue 62, elle est composée de rayons 621, d'un 10 moyeu 622, d'une jante 623, d'un pneu 624 et d'une valve 625. La figure 7 illustre la construction de la vue du design 52. Le design du vélo 70 doit prendre en compte des contraintes techniques imposées par les ingénieurs, ces contraintes formant le point de vue de la vue du design 52. Par exemple, la structure du vélo doit contenir un triangle sur lequel le poids 15 du cycliste sera réparti à partir du point d'appui de la selle, qui sera associé à un second triangle plus petit sur lequel est montée la roue arrière. Le choix des matériaux tient compte des contraintes de performance (poids) et de maintenabilité (rigidité). Les matériaux pour un vélo peuvent contenir un alliage d'acier et de chrome, de l'aluminium (économique), de la fibre de 20 carbone ou du titane, ces matériaux étant cependant onéreux. On suppose aussi que le confort fait partie du design du vélo. Le confort du vélo dépend du choix de la selle, de la géométrie du cadre, des pneumatiques et des amortisseurs. On peut proposer plusieurs designs différents qui sont par exemple notés par les parties prenantes concernées par le design. Les notes 25 peuvent ensuite être pondérées pour obtenir une note par design. Pour la construction de la vue de maintenabilité 53, on peut utiliser des échelles allant d'une valeur minimale vers une valeur maximale. L'entretien courant d'un vélo consiste principalement à : - s'assurer de la pression des pneumatiques 30 - réparer les petites crevaisons - remplacer les pneus lorsque leur usure devient trop importante - changer les patins de freins - remettre la chaîne en place en cas de déraillement En général, la maintenabilité et la facilité d'entretien du vélo sont très corrélés avec la durée de vie des pneus, patins et au bon fonctionnement des dérailleurs de vitesse. L'architecte décide de représenter la dureté de chaque matériau du vélo sur une échelle allant de A àG; A pour le plus résistant et G pour le plus fragile. On peut utiliser une représentation analogue pour indiquer la fiabilité des dérailleurs. Pour construire la vue de coûts 54, on peut utiliser un tableur. Le coût de fabrication d'un vélo est en général représenté dans un tableur énumérant tous les coûts élémentaires incluant notamment les coûts de recherche et développement, du personnel, de la logistique, des bâtiments, de la consommation d'énergie. Les prix d'achat des composants du vélo, tels que décrits par les blocs de la figure 6 décroissent quand les volumes d'achat augmentent. Ces coûts peuvent alors être représentés sur plusieurs colonnes en fonction des volumes. Le tableau qui suit illustre un exemple de vue partielles des coûts 54, les prix d'achat des composants du vélo tels que décrits par les blocs de la figure 6 étant indiqués en fonction de volumes donnés : Volume1 Volume2 Volume3 Guidon 4,2 3,2 2,4 Poignée 2,1 1,6 1,2 Tige 2,1 1,6 1,2 Tube de direction 2,1 1,6 1,2 Fourche 4,2 3,2 2,4 Cadre 4,2 3,2 2,4 Base arrière 2,1 1,6 1,2 Hauban 4,2 3,2 2,4 Selle 4,2 3,2 2,4 Tige de selle 2,1 1,6 1,2 Tube de selle 2,1 1,6 1,2 Bielle 2,1 1,6 1,2 Pédale 2,1 1,6 1,2 Plateaux 6,3 4,8 3,6 Pignon 4,2 3,2 2,4 Chai ne 4,2 3,2 2,4 Roues 8,4 6,4 4,8 Freins 2,1 1,6 1,2 Dérailleurs 2,1 1,6 1,2 Amortisseurs 4,2 3,2 2,4 Signalisation 2,1 1,6 1,2 Total 71,4 54,4 40,8 La figure 8 illustre la construction de la vue de sécurité 55. En effet, il ne suffit pas que le vélo puisse rouler, il faut que la sécurité du cycliste et des 5 piétons soit assurée. Des dispositifs supplémentaires doivent à cet effet être ajoutés au vélo. Le vélo doit avoir notamment un système de freinage 81 efficace, à l'avant et à l'arrière, un système d'éclairage avant 82 et arrière 83, ainsi qu'un système de catadioptres 84, 85 répartis sur les pédales et/ou les rayons des roues pour être visible latéralement, et à l'avant 86 et à l'arrière 10 87 pour compléter la visibilité. On prévoit par ailleurs un dispositif sonore 88. Les pneus sont les seuls composants du vélo qui touchent le sol, ils doivent avoir une bonne adhérence au sol pour minimiser le risque de chute. L'analyse de sécurité a par exemple une valeur binaire : « conforme » ou « non conforme ». Par exemple, pour être conforme aux normes de sécurité, 15 tous les dispositifs de sécurité doivent être présents sur un vélo. Enfin, on procède à la construction de la vue de performance 56. L'exigence de performance dans l'exemple du vélo peut correspondre à l'exigence type suivante : le vélo doit pouvoir atteindre la vitesse de 50 km/h sur une route plate en l'absence de vent. L'architecture du système, le vélo dans cet 20 exemple, doit prendre en compte les contraintes environnementales. Dans le cas du vélo, on peut citer les contraintes suivantes qui sont trois types de résistances différentes auxquelles le cycliste doit face : la traînée aérodynamique de l'air, la résistance au roulement engendrée par le contact des roues sur le sol et des frictions sur les pièces mécaniques et la force de 25 gravité due au poids de l'ensemble vélo-cycliste dans la montée. Par conséquent, l'architecture du système vélo doit : - présenter un design permettant au cycliste d'avoir une position confortable minimisant la traînée aérodynamique ; - permettre une réduction du frottement des pneus et utiliser des roulements à billes pour les pièces mécaniques ; - présenter des matériaux permettant d'obtenir une structure légère afin de réduire le poids du vélo. D'autres adaptations, dont il n'est nécessaire de rentrer dans les détails, doivent aussi être prises en compte pour assurer le niveau de performance souhaité. A titre d'exemple, et pour des raisons de simplification, on s'intéresse uniquement à l'analyse de résistance au frottement. Il est à noter qu'un matériau ne peut pas être caractérisé à lui seul par un coefficient de frottement. Seul un couple de matériaux permet de mettre en évidence un coefficient de frottement. La valeur d'un coefficient de frottement dépend, par ordre d'importance décroissant, du couple de matériaux en contact, de la lubrification, de l'état de surface des matériaux et de la température. A titre d'exemple, on dispose comme données d'entrée trois types de pneus offrant les coefficients de traitement suivant : PNEU Catégorie 1 Surface de contact Coefficient de frottement Route 0.5 Route mouillé 0.3 Sol boueux 0.1 Asphalte à 25Km/h 0.02 PNEU Catégorie 2 Surface de contact Coefficient de frottement Route 0.5 Route mouillé 0.3 Sol boueux 0.1 Asphalte à 25Km/h 0.03 PNEU Catégorie 3 Surface de contact Coefficient de frottement Route 0.6 Route mouillé 0.6 Sol boueux 0.15 Asphalte à 25Km/h 0.03 Ce tableau est un exemple d'une vue de performance 56 dans le cas où l'analyse de la performance porte uniquement sur les frottements. La figure 9 illustre le graphe d'analyse pour l'exemple du système vélo, plus particulièrement seule une partie du graphe est représentée. En conformité avec la figure 5, l'architecture comporte un noyau commun 50 et les six vues 51, 52, 53, 54, 55, 56 précédemment décrites. L'architecture de la figure 9 précise les blocs contenus dans le noyau commun et les blocs contenus dans les vues ainsi que les liens entre les différents blocs. Les blocs Ci contenus dans les vues peuvent être des éléments de projections issues du noyau 50 ou des ajouts. Pour des raisons de simplification, on suppose que tous les composants du vélo listés dans la figure 6 sont obligatoires. Ils sont inclus dans le noyau 50. En référence la figure 6, ils sont nommés Cl, C2, ... C25, représentés par des points ou tout autre élément. On considère les roues arrière et avant comme un seul bloc C22. Dans le graphe d'analyse, on se limite à un certain niveau d'abstraction. Par exemple, on ne décrit pas les composants de la roue. Un pneu est alors représenté par le composant C22. On réalise alors l'étape 42 de construction du graphe d'analyse dont une partie est représentée à la figure 9. Certains éléments 91, 92, 93 dans les vues sont des ajouts à ces vues qui ne sont pas reliés à d'autres éléments dans le graphe d'analyse. Le coût de chauffage 92 par exemple est nécessaire pour calculer le coût total de fabrication de chaque vélo mais n'impacte aucune autre vue 51, 52, 53, 55, 56 du vélo. Les éléments de la vue statique 51 ne sont pas reliés non plus dans le graphe d'analyse car on suppose que ces composants sont obligatoires. Par exemple si on change le matériau du guidon, le guidon est toujours présent et la vue n'est pas impactée au niveau d'abstraction considéré. A l'inverse, chaque composant Ci est lié à son poids Ci et à son coût Ci. Sur la figure 9, où le graphe est représenté partiellement, les liens entre le composant Cl et le coût Cl dans la vue coût 54 et le poids Cl dans la vue performance 56 sont représentés. Il en est de même pour le composant C2. Le composant signalisation C24 est lié au composant correspondant C24 dans les vues sécurité 55, coût 54 et design 52 car l'éclairage est important pour le design et la sécurité en tenant compte des coûts. Par contre il n'impacte pas la maintenabilité et les performances. A l'inverse, les pneus C22 impactent toutes les vues sauf la vue design 52 et statique 51 étant donné le niveau d'abstraction considéré. Le composant pneus C22 est donc reliés aux composants correspondants dans les vues sauf les vues design 52 et statique 51. Pour un niveau d'abstraction différent, ces vues 51, 52 pourraient être impactées. D'autres liens que ceux illustrés par la figure 9 complètent le graphe mais ne sont pas représentés pour des raisons de simplification. Une fois l'étape de construction du graphe réalisée, on exécute l'étape 43 de lancement du programme d'analyse suivi de l'analyse de résultats 44, de manière itérative. Ainsi, pour une architecture donnée du système vélo, on commence par faire une analyse de toutes les vues. A titre d'exemple, les itérations successives sont les suivantes : Itération 1 : - résultat d'analyse du design : trois designs sont proposés avec chacun une note, cette analyse peut ne pas être répétée à chaque itération, les analyse suivantes se font sur la base de ces trois designs ; 2 99 7777 20 - résultat de l'analyse de maintenabilité : la note F est donnée pour les pneus, la note E pour les patins de frein, la note D pour le dérailleur arrière et la note C pour le dérailleur avant, cette analyse montre que les pneus sont mal notés et qu'il faut donc les 5 améliorer ; - résultat de l'analyse des coûts : le coût moyen du vélo est 60 euros, ce qui est élevé par rapport à un objectif de 50 euros ; - résultat de l'analyse de sécurité : le résultat est non conforme car l'architecture n'a pas intégré une sonnette, avertisseur sonore, 10 dans le vélo ; - résultat de l'analyse de performance : l'analyse de performance peut demander une simulation complexe qui nécessite plusieurs heures de calcul, les résultats révèlent par exemple un indice de frottement sur la route égal à 0,6 qui est très élevé par rapport à 15 l'objectif de 0,5 ; Itération 2 On commence par ajouter la sonnette, puis on relance l'analyse de la sécurité. Le résultat est alors « conforme ». Cependant, le graphe montre que la sonnette impacte le coût, comme le montre la figure 10 qui présente 20 une autre vue partielle du graphe. Le composant signalisation 24 qui incluse la sonnette est en effet relié au composant C24 de la vue de sécurité 55 et au composant C24 de la vue de coût 54. Dans cette itération 2, l'analyse de coût est ensuite relancée et le résultat montre que le coût augmente passant à 62 euros. 25 Itération 3 A l'initialisation de cette itération, les résultats d'analyse de maintenabilité, de coûts et de performance sont mauvais. On choisit par exemple d'améliorer d'abord les performances du système vélo. On change par exemple les pneus pour atteindre un coefficient de frottement de 0,45 qui est bon car 30 inférieur à 0,5. La vue partielle du graphe présentée en figure 9 montre qu'il faut refaire une analyse de sécurité, de coût et de maintenabilité. En effet, le composant pneus C22 est relié aux composants correspondant C22 dans la vue sécurité 55, dans la vue coût 54 et dans la vue maintenabilité 53. Le résultat de sécurité devient alors « non conforme » car le pneu n'adhère plus suffisamment au sol et le temps de freinage devient trop lent. Les résultats d'analyse de maintenabilité et de coûts restent mauvais. Itérations 4, ...i, ... n-1 On choisit un résultat d'analyse qui n'est pas bon, par exemple l'analyse de sécurité, et on effectue des modifications d'architecture afin d'améliorer ce résultat. Avantageusement, l'invention permet d'utiliser le graphe d'analyse pour relancer les analyses nécessaires. Il est à noter que l'utilisation du graphe d'analyse évite de recommencer l'ensemble des analyses lors des différentes itérations, l'analyse étant effectuée seulement sur les vues impactées. Une itération est relancée jusqu'à ce que l'on parvienne à trouver une solution satisfaisante pour toutes les vues. Itération n A l'issue d'un nombre n d'itérations, si on ne parvient pas à trouver une solution satisfaisante à toutes les vues. Une architecture choisie peut être celle qui apporte le plus de compromis. Le graphe peut être construit sans itération, en reliant par exemple chaque 20 élément 22 d'une vue 2 à au plus un élément 20 du noyau commun 1. La mise en oeuvre du procédé selon l'invention a été illustrée pour la conception d'un vélo, c'est-à-dire pour un système matériel de faible complexité. L'invention s'applique également pour des systèmes beaucoup plus complexe qu'ils soient matériels ou logiciels. 25 Avantageusement l'invention permet d'améliorer la conception d'un système. Le mécanisme de propagation des modifications dans des modèles de vue à d'autres modèles d'autres vues et l'évaluation de l'impact des modifications permettent d'obtenir des architectures cohérentes. L'invention permet par ailleurs qu'à la suite d'une modification dans le 30 modèle d'une vue, seulement les parties impactées dans d'autres vues sont ré-analysés. En conséquence, il n'est pas nécessaire de relancer une analyse complète. Ceci permet de gagner du temps très significatif dans l'exploration et l'analyse d'architectures, ce qui facilite la capacité de faire des bons choix de conception au plus tôt et aide à maîtriser la complexité à un coût acceptable.5 REVENDICATIONS1. Procédé de conception d'un système modélisé par une architecture multivue, ladite architecture comportant un noyau commun (1, 50) et un nombre N de vues (2, 51, 52, 53, 54, 55, 56), le noyau commun comportant un ensemble d'éléments (20), chaque élément représentant un composant du système, une vue comportant des éléments (22) correspondant aux éléments du noyau commun projetés selon un point de vue de parties prenantes, ledit procédé étant caractérisé en ce que : - dans une première étape (41), on modélise le système pour obtenir le noyau commun et les N vues ; - dans une deuxième étape (42), on construit un graphe entre les éléments du noyau commun et les éléments des vues de telle sorte que tout élément (20) du noyau est relié à un élément (22) correspondant dans une ou plusieurs vues (2), un élément (20, 22) formant un sommet du graphe, deux éléments reliés ayant une relation de dépendance ; - dans une troisième étape (43), on établit des programmes d'analyse correspondant chacun à une vue (2), le résultat d'un programme étant destiné à être comparé à un critère donné propre à sa vue, puis on lance l'exécution de ces programmes d'analyse ; - dans une quatrième étape (44) : on compare (40) les résultats desdits programmes par rapport aux critères donnés, si au moins une vue a un résultat, dit négatif, ne répondant pas à un critère donné : - on modifie (45) l'architecture en modifiant au moins un élément de ladite vue (2) ; - on détecte tous les éléments impactés par cette modification dans les autres vues en détectant toutes les chaînes du graphe ayant ledit élément comme extrémité, un élément impacté étant une autre extrémité d'une chaîne ainsi détectée ; - on relance (48) les programmes d'analyse des vues ayant un élément impacté la quatrième étape (44) étant réitérée, l'architecture modélisant le système étant choisie en fonction des résultats obtenus. 2. Procédé selon la revendication 1, caractérisé en ce que l'architecture est choisie lorsque tous les résultats obtenus sont positifs. 3. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que le graphe reliant les éléments de ladite architecture est construit afin de réduire le coût d'analyse à chache modification architecturale 4. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que le graphe reliant les éléments de ladite architecture est mis à jour à chaque modification de ladite architecture. 5. Procédé selon l'une quelconque des revendications précédentes, 15 caractérisé en ce qu'une vue comporte des éléments (4, 51, 91, 92, 93) non reliés au graphe. 6. Procédé selon la revendication 5, caractérisé en ce que lesdits éléments sont des ajouts (4, 91, 92, 93) propres à ladite vue. 20 7. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que le graphe est construit sans itération en reliant chaque élément (22) d'une vue (2) à au plus un élément (20) du noyau commun (1). 25 8. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce le graphe est construit pour n'avoir que des chaines de longueur égale à 1 ou des chaines de longueur égale à 2. 9. Procédé selon l'une quelconque des revendications précédentes, 30 caractérisé en ce que dans la quatrième étape (44) on modifie l'architecture en modifiant au moins un élément de la vue ayant le résultat estimé comme le plus négatif. 10. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'une vue est représentée par une liste de blocs (60) composants le système.5