1. 2 composants, architectures des logiciels pascal.estraillier @ univ-lr.fr département...

60
1

Upload: genevieve-villeneuve

Post on 04-Apr-2015

108 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

1

Page 2: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

2

Composants,Architectures des Logiciels

pascal.estraillier @ univ-lr.frpascal.estraillier @ univ-lr.fr

Département Informatique - Laboratoire L3i Université de La Rochelle

Master IMA

Page 3: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

3

Objectifs du coursObjectifs du cours

Elaboration de logiciels complexesdans un contexte distribué

Maîtriser la conception et le développement d’architectures logiciellesMaîtriser l’intégration de composants logiciels

Connaissance des problèmesConnaissance des méthodes

Connaissance des techniques

Page 4: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

4

Bibliographie - références principalesBibliographie - références principales1.1. Design Patterns, E.Gamma,R.Helm,R.Johnson &J.Vlissides, Ed.International Design Patterns, E.Gamma,R.Helm,R.Johnson &J.Vlissides, Ed.International

Thomson Publishing Thomson Publishing 2.2. 'Testing Object-Oriented Systems, Models, Patterns and Tools''Testing Object-Oriented Systems, Models, Patterns and Tools'

R.V. Binder; Addison-Wesley - 2000. R.V. Binder; Addison-Wesley - 2000. ISBN : 0.201.80938.9ISBN : 0.201.80938.93.3. L.Bass, P.Clement, R.Kazman (1998) Software Architecture in Practice, SEI L.Bass, P.Clement, R.Kazman (1998) Software Architecture in Practice, SEI

Series in Software Engineering, Addison-Wesley. Series in Software Engineering, Addison-Wesley. 4.4. J.Bosch (2000) design and Use of Software Architectures, Addison-Wesley.J.Bosch (2000) design and Use of Software Architectures, Addison-Wesley.5.5. F.Buschmann &al. (1996) Pattern-Oriented Software Architecture - A System of F.Buschmann &al. (1996) Pattern-Oriented Software Architecture - A System of

Patterns, Wiley. Patterns, Wiley. 6.6. M.E.Fayad, D.C.Schmidt, R.E.Johnson(1999) Building Application Frameworks, M.E.Fayad, D.C.Schmidt, R.E.Johnson(1999) Building Application Frameworks,

Wiley.Wiley.7.7. E.Gamma &al. (1995) Design Patterns - Elements of Reusable Object-Oriented E.Gamma &al. (1995) Design Patterns - Elements of Reusable Object-Oriented

Software, Addison-Wesley. Software, Addison-Wesley. 8.8. A.Goldberg, K.S.Rubin (1995) Succeeding with Objects - Decision Frameworks A.Goldberg, K.S.Rubin (1995) Succeeding with Objects - Decision Frameworks

for Project Management, Addison-Wesley.for Project Management, Addison-Wesley.9.9. C.Hofmeister, R.Nord, D.Soni (2000) Applied Software Architecture, Object C.Hofmeister, R.Nord, D.Soni (2000) Applied Software Architecture, Object

Technology Series, Addison-Wesley.Technology Series, Addison-Wesley.10.10.Sommerville I. “Génie Logiciel”, InterEdition, 1993Sommerville I. “Génie Logiciel”, InterEdition, 199311.11.Arnold A.& all. “Programmes parallèles, modèles et validation”, Armand ColinArnold A.& all. “Programmes parallèles, modèles et validation”, Armand Colin12.12.Précis de Génie Logiciel, M.-C. Gaudel et al., Masson, 96Précis de Génie Logiciel, M.-C. Gaudel et al., Masson, 9613.13.Génie Logiciel : principes, méthodes et techniques, A. Strohmeier et al., Presses Génie Logiciel : principes, méthodes et techniques, A. Strohmeier et al., Presses

Polytechniques et Universitaires Romandes, 1996Polytechniques et Universitaires Romandes, 1996

Page 5: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

5

1-IntroductionPourquoi doit on s’intéresser au logiciels ?

ComposantsArchitectures des Logiciels

Master IMA

Master IMA

Page 6: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

6

Risques humains/économiques dus à Risques humains/économiques dus à l’informatisationl’informatisation

Dans le monde de la gestion en 1993 :Dans le monde de la gestion en 1993 : • envoi de 20.000 journaux à la même adresse : envoi de 20.000 journaux à la même adresse :

sélecteur d'adresse de l'imprimante bloquésélecteur d'adresse de l'imprimante bloqué• Cartes de crédit systématiquement avalées : Cartes de crédit systématiquement avalées :

désaccord de 2 calculateurs sur calcul des années désaccord de 2 calculateurs sur calcul des années bissextilesbissextiles

• Arrêt de Transpac (surcharge du système) pour 7.000 Arrêt de Transpac (surcharge du système) pour 7.000 entreprises et 1.000.000 d'abonnésentreprises et 1.000.000 d'abonnés

• TAURUS, le projet d'informatisation de la bourse TAURUS, le projet d'informatisation de la bourse londonienne définitivement abandonné après 4 londonienne définitivement abandonné après 4 années de travail et 100 millions de £ de pertesannées de travail et 100 millions de £ de pertes

• Et le bogue de l’an 2000 ? Et le bogue de l’an 2000 ?

Page 7: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

7

Risques humains/économiques dus à Risques humains/économiques dus à l’informatisationl’informatisation

Dans les systèmes embarqués :Dans les systèmes embarqués :• mission VENUS: passage à 500.000 km au lieu de 5.000 km : mission VENUS: passage à 500.000 km au lieu de 5.000 km :

remplacement d'une virgule par un pointremplacement d'une virgule par un point • avion F16 déclaré sur le dos au passage de l'équateur : avion F16 déclaré sur le dos au passage de l'équateur : non prise non prise

en compte du référentielen compte du référentiel hémisphère sud hémisphère sud • faux départ de la première navette: faux départ de la première navette: erreur de synchronisation erreur de synchronisation

entre calculateurs assurant la redondanceentre calculateurs assurant la redondance• non reconnaissance de l'EXOCET dans la guerre des Malouines : non reconnaissance de l'EXOCET dans la guerre des Malouines :

Exocet non répertorié comme missile ennemiExocet non répertorié comme missile ennemi : 88 morts : 88 morts• Airbus iranien abattu : Airbus iranien abattu : non différenciation entre avion civil et non différenciation entre avion civil et

avion militaireavion militaire : guerre du Golfe - 280 morts : guerre du Golfe - 280 morts• mauvais Pilote Automatique de la commande d’une bombe au mauvais Pilote Automatique de la commande d’une bombe au

cobalt en milieu hospitalier : 6 mortscobalt en milieu hospitalier : 6 morts• échec d’Ariane 501 …échec d’Ariane 501 …

Page 8: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

8

Ariane 501 : un cas d’école ...Ariane 501 : un cas d’école ...

Il existe des “erreurs grossières”...Il existe des “erreurs grossières”... Bug FORTRAN (programme MARINER)Bug FORTRAN (programme MARINER)

Rendues rares parRendues rares parl’évolution de la technologie...l’évolution de la technologie...

Le cas étudié concerne l’aérospatialeLe cas étudié concerne l’aérospatiale grosses applicationsgrosses applications procédures complexesprocédures complexes procédures rodéesprocédures rodées

Ce ne peut donc être considéréCe ne peut donc être considérécomme une “erreur grossièrecomme une “erreur grossière””

Page 9: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

9

Ariane 501 : l’échec du 4 juin 1996Ariane 501 : l’échec du 4 juin 1996

Conditions météorologiques acceptablesConditions météorologiques acceptablesVisibilité “correcte”, pas de risque de foudre, Visibilité “correcte”, pas de risque de foudre,

champs électrique négligeablechamps électrique négligeable Chronologie de lancement correcteChronologie de lancement correcte

Arrêt du remplissage de l’étage Arrêt du remplissage de l’étage cryotechnique de quelques minutes suite à cryotechnique de quelques minutes suite à une dégradation temporaire de la visibilitéune dégradation temporaire de la visibilité

Allumage (moteur principal Vulcain et Allumage (moteur principal Vulcain et moteurs à propergol) nominalmoteurs à propergol) nominal

Début de vol nominalDébut de vol nominal vers Hvers H00+40 secondes : +40 secondes :

déviation soudaine de la trajectoiredéviation soudaine de la trajectoireExplosion de la fusée Explosion de la fusée

Page 10: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

10

Analyse préliminaire de l’accidentAnalyse préliminaire de l’accident

Ce qui est observé Ce qui est observé (extraits du rapport)(extraits du rapport) un comportement nominal du lanceur jusqu'à Hun comportement nominal du lanceur jusqu'à H00 + 36 + 36

secondes ; secondes ; la défaillance du système de référence inertielle de secours, la défaillance du système de référence inertielle de secours,

suivie immédiatement par celle du système de référence suivie immédiatement par celle du système de référence inertielle actif ; inertielle actif ;

le braquage en butée des tuyères des deux moteurs à le braquage en butée des tuyères des deux moteurs à propergols solides puis, quelques instants après, du moteur propergols solides puis, quelques instants après, du moteur Vulcain, provoquant le basculement brutal du lanceur ; Vulcain, provoquant le basculement brutal du lanceur ;

l'auto-destruction du lanceur déclenchée correctement par la l'auto-destruction du lanceur déclenchée correctement par la rupture des liaisons entre les étages d'accélération à poudre rupture des liaisons entre les étages d'accélération à poudre et l'étage principal. et l'étage principal.

A prioriA priori

““On a pu remonter rapidement jusqu'à l'origine de cette On a pu remonter rapidement jusqu'à l'origine de cette défaillance dans le système de pilotage et, plus précisément, défaillance dans le système de pilotage et, plus précisément,

dans les systèmes de référence inertielle qui, à l'évidence, ont dans les systèmes de référence inertielle qui, à l'évidence, ont cessé de fonctionner presque simultanément à environ Hcessé de fonctionner presque simultanément à environ H00 + +

36,7 s”36,7 s”

Page 11: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

11

Contexte techniqueContexte technique

RéplicationRéplication SRI, OBC etc... doublésSRI, OBC etc... doublés

élément actifélément actif élément en veilleélément en veille

RéutilisationRéutilisation La conception des SRI est La conception des SRI est

pratiquement la même que pratiquement la même que pour Ariane 4 (notemment en pour Ariane 4 (notemment en ce qui concerne le logiciel)ce qui concerne le logiciel)

OBC(Calculateur embarqué)OBC(Calculateur embarqué)

SRI(Système de Référence Inertiel)SRI(Système de Référence Inertiel)

Bus

MoteurVulcain

Tuyèresdes étages d’ac-

célération à poudre

Page 12: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

12

Rapport final : analyse de l’échec (1)Rapport final : analyse de l’échec (1)

(1> (1> Le lanceur a commencé à se désintégrer à environ HLe lanceur a commencé à se désintégrer à environ H00 + 39 s + 39 s sous l'effet de charges aérodynamiques élevées dues à un sous l'effet de charges aérodynamiques élevées dues à un angle d'attaque de plus de 20°; qui a provoqué la séparation angle d'attaque de plus de 20°; qui a provoqué la séparation des étages d'accélération à poudre de l'étage principal, des étages d'accélération à poudre de l'étage principal, événement qui a déclenché à son tour le système d'auto-événement qui a déclenché à son tour le système d'auto-destruction du lanceur ; destruction du lanceur ;

(2> (2> Cet angle d'attaque avait pour origine le braquage en butée Cet angle d'attaque avait pour origine le braquage en butée des tuyères des moteurs à propergols solides et du moteur des tuyères des moteurs à propergols solides et du moteur principal Vulcain ; principal Vulcain ;

(3> (3> Le braquage des tuyères a été commandé par le logiciel du Le braquage des tuyères a été commandé par le logiciel du calculateur de bord (OBC) agissant sur la base des données calculateur de bord (OBC) agissant sur la base des données transmises par le système de référence inertielle actif (SRI2). transmises par le système de référence inertielle actif (SRI2). A cet instant, une partie de ces données ne contenait pas des A cet instant, une partie de ces données ne contenait pas des données de vol proprement dites mais affichait un données de vol proprement dites mais affichait un profil de bit profil de bit spécifique de la panne du calculateur du SRI 2 qui a été spécifique de la panne du calculateur du SRI 2 qui a été interprété comme étant des données de volinterprété comme étant des données de vol ; ;

(4> (4> La raison pour laquelle le SRI 2 actif n'a pas transmis des La raison pour laquelle le SRI 2 actif n'a pas transmis des données d'altitude correctes tient au fait que l'unité avait données d'altitude correctes tient au fait que l'unité avait déclaré une panne due à une exception logiciel ; déclaré une panne due à une exception logiciel ;

Page 13: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

13

Rapport final : analyse de l’échec (2)Rapport final : analyse de l’échec (2)

(5> (5> L'OBC n'a pas pu basculer sur le SRI 1 de secours car cette L'OBC n'a pas pu basculer sur le SRI 1 de secours car cette unité avait déjà cessé de fonctionner durant le précédent cycle unité avait déjà cessé de fonctionner durant le précédent cycle de données (période de 72 ms) pour la même raison que le SRI de données (période de 72 ms) pour la même raison que le SRI 2 ; 2 ;

(6> (6> L'exception logiciel interne du SRI s'est produite pendant une L'exception logiciel interne du SRI s'est produite pendant une conversion de données de représentation flottante à 64 bits en conversion de données de représentation flottante à 64 bits en valeurs entières à 16 bits. Le nombre en représentation valeurs entières à 16 bits. Le nombre en représentation flottante qui a été converti avait une valeur qui était flottante qui a été converti avait une valeur qui était supérieure à ce que pouvait exprimer un nombre entier à 16 supérieure à ce que pouvait exprimer un nombre entier à 16 bits. Il en est résulté une erreur d'opérande. Les instructions de bits. Il en est résulté une erreur d'opérande. Les instructions de conversion de données (en code Ada) n'étaient pas protégées conversion de données (en code Ada) n'étaient pas protégées contre le déclenchement d'une erreur d'opérande bien que contre le déclenchement d'une erreur d'opérande bien que d'autres conversions de variables comparables présentes à la d'autres conversions de variables comparables présentes à la même place dans le code aient été protégées ; même place dans le code aient été protégées ;

(7> (7> L'erreur s'est produite dans une partie du logiciel qui L'erreur s'est produite dans une partie du logiciel qui n'assure que l'alignement de la plate-forme inertielle à n'assure que l'alignement de la plate-forme inertielle à composants liés. Ce module de logiciel calcule des résultats composants liés. Ce module de logiciel calcule des résultats significatifs avant le décollage seulement. significatifs avant le décollage seulement. Dès que le lanceur Dès que le lanceur décolle, cette fonction n'est plus d'aucune utilité décolle, cette fonction n'est plus d'aucune utilité ; ;

Page 14: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

14

Rapport final : analyse de l’échec (3)Rapport final : analyse de l’échec (3)

(8> (8> La fonction d'alignement est active pendant 50 secondes La fonction d'alignement est active pendant 50 secondes après le démarrage du mode vol des SRI qui se produit à Haprès le démarrage du mode vol des SRI qui se produit à H00 - 3 - 3 secondes pour Ariane 5. En conséquence, lorsque le décollage a secondes pour Ariane 5. En conséquence, lorsque le décollage a eu lieu, cette fonction se poursuit pendant environ 40 secondes eu lieu, cette fonction se poursuit pendant environ 40 secondes de vol. de vol. Cette séquence est une exigence Ariane 4 mais n'est pas Cette séquence est une exigence Ariane 4 mais n'est pas demandé sur Ariane 5demandé sur Ariane 5 ; ;

(9> (9> L'erreur d'opérande s'est produite sous l'effet d'une valeur L'erreur d'opérande s'est produite sous l'effet d'une valeur élevée non prévue d'un résultat de la fonction d'alignement élevée non prévue d'un résultat de la fonction d'alignement interne appelé BH (Biais Horizontal) et lié à la vitesse horizontale interne appelé BH (Biais Horizontal) et lié à la vitesse horizontale détectée par la plate-forme. Le calcul de cette valeur sert détectée par la plate-forme. Le calcul de cette valeur sert d'indicateur pour la précision de l'alignement en fonction du d'indicateur pour la précision de l'alignement en fonction du temps ; temps ;

(10> (10> La valeur BH était nettement plus élevée que la valeur La valeur BH était nettement plus élevée que la valeur escomptée car la première partie de la trajectoire d'Ariane 5 escomptée car la première partie de la trajectoire d'Ariane 5 diffère de celle d'Ariane 4, ce qui se traduit par des valeurs de diffère de celle d'Ariane 4, ce qui se traduit par des valeurs de vitesse horizontale considérablement supérieures. vitesse horizontale considérablement supérieures.

Ce scénario a été reproduit après coup avec lesCe scénario a été reproduit après coup avec les

données du vol en séance de simulationdonnées du vol en séance de simulation

Page 15: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

15

Autres remarquesAutres remarques(1> (1> Le système de référence inertielle d'Ariane 5 est, pour Le système de référence inertielle d'Ariane 5 est, pour

l'essentiel, identique à un système actuellement utilisé sur Ariane l'essentiel, identique à un système actuellement utilisé sur Ariane 4. La partie du logiciel qui a interrompu le fonctionnement des 4. La partie du logiciel qui a interrompu le fonctionnement des calculateurs des systèmes de référence inertielle est utilisée avant calculateurs des systèmes de référence inertielle est utilisée avant le lancement pour aligner le système de référence inertielle, mais le lancement pour aligner le système de référence inertielle, mais aussi, sur Ariane 4, pour permettre un réalignement rapide du aussi, sur Ariane 4, pour permettre un réalignement rapide du système en cas d'interruption tardive de la chronologie. système en cas d'interruption tardive de la chronologie. Cette Cette fonction de réalignement, qui n'a aucune utilité sur Ariane 5, a fonction de réalignement, qui n'a aucune utilité sur Ariane 5, a néanmoins été maintenue pour des raisons de communité et néanmoins été maintenue pour des raisons de communité et pouvait, comme sur Ariane 4, rester active pendant une pouvait, comme sur Ariane 4, rester active pendant une quarantaine de secondes après le décollagequarantaine de secondes après le décollage..

(2> (2> Lors de la conception du logiciel du système de référence Lors de la conception du logiciel du système de référence inertielle d'Ariane 4 et d'Ariane 5, il a été décidé qu'il n'était pas inertielle d'Ariane 4 et d'Ariane 5, il a été décidé qu'il n'était pas nécessaire de protéger le calculateur de la centrale inertielle nécessaire de protéger le calculateur de la centrale inertielle contre un arrêt de fonctionnement dû à une valeur excessive de la contre un arrêt de fonctionnement dû à une valeur excessive de la variable liée à la vitesse horizontale, laquelle protection a été variable liée à la vitesse horizontale, laquelle protection a été prévue pour plusieurs autres variables du logiciel d'alignement. prévue pour plusieurs autres variables du logiciel d'alignement. Cette décision de conception a été prise sans que l'on analyse ou Cette décision de conception a été prise sans que l'on analyse ou comprenne parfaitement les valeurs que cette variable particulière comprenne parfaitement les valeurs que cette variable particulière pourrait prendre lorsque le logiciel d'alignement est autorisé à pourrait prendre lorsque le logiciel d'alignement est autorisé à fonctionner après le décollagefonctionner après le décollage..

Page 16: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

16

Autres remarquesAutres remarques(3> (3> Une telle défaillance ne s'est pas produite sur les vols Une telle défaillance ne s'est pas produite sur les vols

Ariane 4 utilisant le même système de référence inertielle, car Ariane 4 utilisant le même système de référence inertielle, car la trajectoire pendant les 40 premières secondes du vol est la trajectoire pendant les 40 premières secondes du vol est telle que la variable particulière liée à la vitesse horizontale ne telle que la variable particulière liée à la vitesse horizontale ne peut dépasser, même en tenant compte d'une marge peut dépasser, même en tenant compte d'une marge opérationnelle adéquate, la limite inscrite dans le logiciel. opérationnelle adéquate, la limite inscrite dans le logiciel.

(4> (4> Ariane 5 a une accélération initiale élevée et une trajectoire Ariane 5 a une accélération initiale élevée et une trajectoire telle que telle que sa vitesse horizontale s'accroît cinq fois plus sa vitesse horizontale s'accroît cinq fois plus rapidement que celle d'Ariane 4rapidement que celle d'Ariane 4. La vitesse horizontale . La vitesse horizontale supérieure d'Ariane 5 a généré, en l'espace de ces 40 supérieure d'Ariane 5 a généré, en l'espace de ces 40 secondes, la valeur excessive qui a entraîné l'arrêt de secondes, la valeur excessive qui a entraîné l'arrêt de fonctionnement des calculateurs des systèmes de référence fonctionnement des calculateurs des systèmes de référence inertielle. inertielle.

(5> (5> Le processus des revues, auquel tous les grands partenaires Le processus des revues, auquel tous les grands partenaires d'Ariane 5 participent, a pour objet de valider les décisions de d'Ariane 5 participent, a pour objet de valider les décisions de conception et d'obtenir la qualification pour le vol. Au cours de conception et d'obtenir la qualification pour le vol. Au cours de ce processus, ce processus, les limitations du logiciel d'alignement n'ont pas les limitations du logiciel d'alignement n'ont pas été pleinement analyséesété pleinement analysées et l'on n'a pas mesuré les et l'on n'a pas mesuré les conséquences que pouvait avoir le maintien de cette fonction conséquences que pouvait avoir le maintien de cette fonction en vol. en vol.

Page 17: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

17

Autres remarquesAutres remarques

(6> (6> Les données de trajectoire d'Ariane 5 n'étaient pas Les données de trajectoire d'Ariane 5 n'étaient pas expressément prévues dans la spécification relative au expressément prévues dans la spécification relative au système de référence inertielle ni dans les essais au niveau système de référence inertielle ni dans les essais au niveau équipements. En conséquence, équipements. En conséquence, la fonction de réalignement la fonction de réalignement n'a pas été testée dans les conditions de vol simulées n'a pas été testée dans les conditions de vol simulées d'Ariane 5d'Ariane 5 et l'erreur de conception n'a pas été décelée. et l'erreur de conception n'a pas été décelée.

(7> (7> Il aurait été techniquement possible d'inclure la quasi-Il aurait été techniquement possible d'inclure la quasi-totalité du système de référence inertielle dans les totalité du système de référence inertielle dans les simulations du système completsimulations du système complet. Pour un certain nombre de . Pour un certain nombre de raisons, il a été décidé d'utiliser les résultats simulés du raisons, il a été décidé d'utiliser les résultats simulés du système de référence inertielle, et non le système système de référence inertielle, et non le système proprement dit ou sa simulation détaillée. Si l'on avait inclus proprement dit ou sa simulation détaillée. Si l'on avait inclus ce système, la défaillance aurait pu être décelée. ce système, la défaillance aurait pu être décelée.

(8> (8> Des simulations après vol ont été conduites à l'aide d'un Des simulations après vol ont été conduites à l'aide d'un calculateur doté du logiciel du système de référence calculateur doté du logiciel du système de référence inertielle et dans un environnement simulé, en intégrant les inertielle et dans un environnement simulé, en intégrant les données de trajectoire réelles du vol Ariane 501. Ces données de trajectoire réelles du vol Ariane 501. Ces simulations ont fidèlement reproduit la séquence des simulations ont fidèlement reproduit la séquence des événements qui ont conduit à la défaillance des systèmes de événements qui ont conduit à la défaillance des systèmes de référence inertielle. référence inertielle.

Page 18: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

18

Conclusions à tirerConclusions à tirer

††

Le problème a pour origine une séquence Le problème a pour origine une séquence compliquée de circonstances (décisions, oublis...)compliquée de circonstances (décisions, oublis...)

††

Attention à la réutilisation et aux conditions de Attention à la réutilisation et aux conditions de réutilisation réutilisation

††

Le logiciel embarqué d’Ariane 5 constitue plusieurs Le logiciel embarqué d’Ariane 5 constitue plusieurs centaines de milliers de lignes de codecentaines de milliers de lignes de code

Page 19: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

19

Rapport final : quelques recommandationsRapport final : quelques recommandations

††

inhiber la fonction incriminéeinhiber la fonction incriminée

††

Etendre l’installation d’essaisEtendre l’installation d’essais

(utilisations de données (utilisations de données réalistes)réalistes)

††

Interdire aux instruments de Interdire aux instruments de cessercesser

d’envoyer des données d’envoyer des données cohérentescohérentes

††

Autant que possible, confiner Autant que possible, confiner lesles

exceptions à l’intérieur des exceptions à l’intérieur des tâches ettâches et

prévoir des solutions de secoursprévoir des solutions de secours

††

Intégrer les données de Intégrer les données de trajectoiretrajectoire

dans les exigences d’essaisdans les exigences d’essais

††

Revoir la couverture des essaisRevoir la couverture des essais

réalisés sur les équipements réalisés sur les équipements existantsexistants

††

Traiter les documents Traiter les documents justificatifsjustificatifs

avec autant d’attention que le avec autant d’attention que le codecode

......

Et le développement de ce type Et le développement de ce type de logiciel se déroulait déjà de logiciel se déroulait déjà dans des conditiosn dans des conditiosn draconiènnes!!!draconiènnes!!!

Page 20: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

20

2- LogicielsUne évolution à contrôler ?

Composants,Architectures des Logiciels

Master IMA

Master IMA

Page 21: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

21

Différences en développements logiciels et Différences en développements logiciels et matérielsmatériels

””Hardware is, Software will”Hardware is, Software will”

MatérielMatériel Logiciel Logiciel Rapidité d’expressionRapidité d’expression ++ -- Niveaux d’abstractionNiveaux d’abstraction -- ++ RigiditéRigidité +/-+/- +/-+/-

Les deux peuvent ne pas être fiablesLes deux peuvent ne pas être fiables En matériel, cela ne pardonne pas!En matériel, cela ne pardonne pas! En logiciel, on peut bricoler...En logiciel, on peut bricoler...

Page 22: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

22

Pourquoi le matériel semble-t-il plus sûr?Pourquoi le matériel semble-t-il plus sûr?

On observeOn observe une absence de standardune absence de standard des problèmes de maintenance et des problèmes de maintenance et

d’évolutiond’évolution une absence totale de une absence totale de

réutilisabilitéréutilisabilité

Pas de méthodePas de méthode

les chiffres s’expliquentles chiffres s’expliquentla différence matériel/logiciel la différence matériel/logiciel

aussiaussi

ExplicationExplication Les coûts de production,Les coûts de production, Le besoin de grande séries,Le besoin de grande séries, La difficulté de correction ou La difficulté de correction ou

d’évolution...d’évolution...

forcent les gens à “mieux” forcent les gens à “mieux” travaillertravailler

Le logiciel souffre de

ses qualités

Page 23: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

23

Qualité des LogicielsQualité des Logiciels

La validation de Windows 2000 avait fait appel à 600 000 bêta testeurs, il restait pourtant au lancement de sa commercialisation 63 000 problèmes potentiels dans le code, dont 28 000 sont réels.

Page 24: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

24

Logiciel : un produit spécifique ?Logiciel : un produit spécifique ?

Définition :Définition :

Ensemble des programmes, procédés et règles, et Ensemble des programmes, procédés et règles, et éventuellement de la documentation, relatifs au éventuellement de la documentation, relatifs au fonctionnement d'un ensemble de traitement de fonctionnement d'un ensemble de traitement de l'information (selon le Larousse 96 et IEEE Std 729).l'information (selon le Larousse 96 et IEEE Std 729).

Le logiciel est un produit (industriel ?) très différent des Le logiciel est un produit (industriel ?) très différent des produits classiques :produits classiques :

• il ne vieillit pas , ne s'use pas• il n'est pas détérioré par le test• il est fabriqué artisanalement et souvent original mais Le

processus de développement logiciel n’est pas standardisé (standardisable?)

• il est facilement reproductible et surtout • il est trop facile à modifier• il coûte très (trop ?) cher

Page 25: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

25

Le coût du logicielLe coût du logiciel

100%

50%

50 60 70 80 90 2000

Coût logiciel vs matériel

De 1965 à 1995, en 30 ans, le volume de chaque logiciel a été multiplié 100, alors que la productivité des développeurs n'augmentait que d'un facteur 3.

Page 26: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

26

Une observation surUne observation surla production de logicielsla production de logiciels

Etude du Etude du GGovernment overnment

AAccounting ccounting OOffice ffice en 1979 sur neuf en 1979 sur neuf projets de taille projets de taille

moyenne moyenne ($7 000 000)($7 000 000)

47%29%

19% 3%

2%

Livré mais jamais utiliséPayé mais non livréUtilisé après remaniements puis abandonnéUtilisé après remaniementsUtilisé tel quel

Page 27: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

27

Un drôle de marchéUn drôle de marché

Page 28: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

28

Taille des logiciels développésTaille des logiciels développés

Montre téléphone mobile

automobile central téléphonique

noyau Linux  Syst. combat du Ch. de Gaulle

portail YahooWindows 95 Windows NT

Windows 2000Office VX pour Mac

Linux D.Générale compta. publique

(Bercy) 

2 K instructions 150 K instructions 1 M instructions 1 M instructions 3,7 M instructions8 M instructions11 M instructions10 M instructions16,5 M instructions30 à 50 M instructions25 M instructions100 M instructions160 M instructions Cobol  

Page 29: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

29

Que faire ?Que faire ?

Organiser le développement :Organiser le développement :

- équipe de développement : - équipe de développement : * définition de rôles spécifiques (spécifieur,

concepteur, développeur,)

* reconnaissance de qualifications

* formation complémentaire

- introduction d'un plan qualité : mise en - introduction d'un plan qualité : mise en place de procédures très strictes de place de procédures très strictes de contrôlescontrôles

Introduire des cycles de vie : Introduire des cycles de vie : * choix de méthodes rigoureuses

* choix de notations spécialisées selon la nature des problèmes

* utilisation d'environnements riches et d'outils supports

Page 30: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

30

Alors, le développement de logiciel c’est ...Alors, le développement de logiciel c’est ...

C’est le regroupement de “règles” en vue d’assurer un C’est le regroupement de “règles” en vue d’assurer un bon développement d’une applicationbon développement d’une application

Travail en équipe,Travail en équipe, Analyse du problèmeAnalyse du problème Techniques de programmationTechniques de programmation Gestion de versionsGestion de versions

Qu’est ce que cela apporte?Qu’est ce que cela apporte? Analyse des comportements dans le développement de logicielsAnalyse des comportements dans le développement de logiciels Définition de normes (Langage, sécurité...)Définition de normes (Langage, sécurité...) Définition des caractéristiques d’une “bonne approche”Définition des caractéristiques d’une “bonne approche” Définition de méthodesDéfinition de méthodes

Page 31: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

31

3- ComposantsDécouper les logiciels, Pourquoi-Comment ?

Composants,Architectures des Logiciels

Master IMA

Master IMA

Page 32: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

32

Logiciels : Point de Vue des DéveloppeursLogiciels : Point de Vue des Développeurs

Portabilité Utilisation d'un langage standardisé. Indépendance du matériel Indépendance du système d'exploitation

Utilité sous sa forme actuelle

Fiabilité Précision. Intégrité. Tests réussis pour tous les cas. Uniformité de conduite.

Efficacité Economie de mémoire. Rapidité d'exécution.

Aspect humain Facilité d'utilisation. Accessibilité. Documentation pour l'utilisateur.

Facilité de maintenance

Facilité de vérification Facilité d'utilisation. Accessibilité. Autodocumentation. Vérif. formelles statiques possibles. Structuration.

Clarté Autodocumentation. Structuration. Concision. Lisibilité.

Facilité d'adaptation Structuration. Facilité d'extension. Documentation technique

Page 33: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

33

Logiciels : Point de Vue du SystèmeLogiciels : Point de Vue du Système

OuvertureOuverture Interopérabilité, portabilité,fédération : réutilisation de l’existantInteropérabilité, portabilité,fédération : réutilisation de l’existant

Coopération, Coordination, PartageCoopération, Coordination, Partage Vision commune cohérente d’informations partagéesVision commune cohérente d’informations partagées Interaction en temps-réel, support multimédiaInteraction en temps-réel, support multimédia

TransparenceTransparence Accès (mobilité des usagers avec préservation de l’environnement)Accès (mobilité des usagers avec préservation de l’environnement) Localisation (de l’information, des services, …)Localisation (de l’information, des services, …)

Qualité de serviceQualité de service Disponibilité, délais, coDisponibilité, délais, coûts, qualité de perception … avec niveau ûts, qualité de perception … avec niveau

garantigaranti

SécuritéSécurité Authentification, intégrité, confidentialité, …Authentification, intégrité, confidentialité, …

Evolutivité, Administration aiséeEvolutivité, Administration aisée Reconfiguration, gestion dynamique de servicesReconfiguration, gestion dynamique de services

Page 34: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

34

Composants Composants

Définition Définition module logiciel autonomemodule logiciel autonome

unité de déploiement (installation sur différentes plates formes) unité de déploiement (installation sur différentes plates formes) unité de composition (combinaison avec d'autres composants) unité de composition (combinaison avec d'autres composants)

Propriétés Propriétés spécifie explicitement la ou les interface(s) spécifie explicitement la ou les interface(s) fourniefournie(s) (s) spécifie explicitement la ou les interface(s) spécifie explicitement la ou les interface(s) requiserequise(s) (s) peut être configuré peut être configuré capable de s'auto décrirecapable de s'auto décrire

Intérêt Intérêt permettre la construction d'applications par permettre la construction d'applications par compositioncomposition de briques de briques

de base configurables de base configurables séparer les fonctions des fournisseur et d'assembleur (conditions séparer les fonctions des fournisseur et d'assembleur (conditions

pour le développement d'une industrie des composants)pour le développement d'une industrie des composants)

Page 35: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

35

Composants : modèle génériqueComposants : modèle générique

Composant

synchrone synchrone

asynchrone asynchrone

Propriété configurables(interfaces spéciales avec accès restreint)

Contraintes techniques• placement, sécurité• transactionnel, persistance• interfaces fournies par le système (bibliothèques, etc.)

(fournies par d’autres composants)

Interfaces fournies(fournies par le

composant)

Page 36: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

36

Composants : utilisationComposants : utilisation

Composition hiérarchique et encapsulation (composants construits, sous composants)

A1

A BA2

A3B1 B2

Interfaces d’entrée (fournies) Interfaces de sortie (requises)

Interconnexion de composants (connecteurs, ou objets de communication)

Page 37: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

37

Support logiciel pour composantsSupport logiciel pour composants

ConteneurConteneur encapsulation d'un composant encapsulation d'un composant prise en charge des services du système prise en charge des services du système

nommage, sécurité, transactions, persistance, nommage, sécurité, transactions, persistance, etc. etc.

prise en charge partielle des relations entre prise en charge partielle des relations entre composants (connecteurs) composants (connecteurs) invocations, événements invocations, événements

techniques utilisées : interposition, délégation techniques utilisées : interposition, délégation

Structure d'accueilStructure d'accueil espace d'exécution des conteneurs et composants espace d'exécution des conteneurs et composants médiateur entre conteneurs et services du systèmemédiateur entre conteneurs et services du système

Pour assurer leurs fonctions : support logiciel

Page 38: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

38

Interactions entre composantsInteractions entre composants

Ensemble des composants logiciels d'une Ensemble des composants logiciels d'une application application identification des composants identification des composants désignation des composants désignation des composants

Structuration des composants Structuration des composants composition hiérarchique (sous composants) composition hiérarchique (sous composants)

Interconnexion des composants Interconnexion des composants dépendances entre composants (fournit requiert) dépendances entre composants (fournit requiert) modes de communication (synchrone, asynchrone) modes de communication (synchrone, asynchrone) protocoles de communication protocoles de communication

Autres aspects Autres aspects contraintes globales (environnement requis) contraintes globales (environnement requis) règles d'usagerègles d'usage

Page 39: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

39

Exemple d’interactionExemple d’interaction

Structure d’accueil

Conteneur

Structure d’accueil

Conteneur

Conteneur

Composant

Composant

Composant

Client

Bus logiciel + services (désignation, persistance, transaction, sécurité,etc.)

Page 40: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

40

The Specification Model The Specification Model

Provided service

Required service + imported user manual

Exported operations

Imported operation

Local PropertiesEnvironment hypotheses

External description of a service

exporteduser manual

Page 41: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

41

TriggersExceptions

Internal DescriptionInternal Description

Resources

Page 42: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

42

InteractionsInteractions

LoEnvironment hypothess

Resources

Trigger

Exception

Operations

Expectations on Interactions(Extension of User-Manual)

Current Component Component Environment

Operation(User-Manual)

Exported Usage Constraints

Imported Usage Constraints(User-Manual)

Local properties + Environment hypotheses

Page 43: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

43

4- ArchitectureUn assemblage de composants ?

Composants,Architectures des Logiciels

Master IMA

Master IMA

Page 44: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

44

ArchitectureArchitecture

Séparation et fusionSéparation et fusionSûreté :Sûreté :

Des assemblagesDes assemblages De l’adaptationDe l’adaptation De la coordinationDe la coordination De l’intégrationDe l’intégration De composants logicielsDe composants logicielsContraintes

• Séparation des préoccupations mais cohérence locale, cohérence globale• Indépendance vis-à-vis des technologies mais adéquation des mises en oeuvre

Une première réponse : les interactions logicielles

Besoins, Modèle, Implémentation, Formalisation…

Description de Description de l'ensemble des composants logicielsl'ensemble des composants logiciels

qui constituent une ou plusieurs applications.qui constituent une ou plusieurs applications.

Page 45: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

45

Intérêt d'une description globale d'architectureIntérêt d'une description globale d'architecture

Facilite la conception et la réalisation Facilite la conception et la réalisation réalise la synthèse entre :réalise la synthèse entre :

le cahier des charges (fonctions requises) le cahier des charges (fonctions requises) les méthodes de conception les méthodes de conception la mise en oeuvre la mise en oeuvre le déploiement en environnement réparti le déploiement en environnement réparti

Facilite la compréhension globale du Facilite la compréhension globale du système système outil de documentation outil de documentation

Facilite le processus d'évolution Facilite le processus d'évolution modification des composants (interface, réalisation) modification des composants (interface, réalisation) modification des relations entre composants modification des relations entre composants modification du déploiementmodification du déploiement

Page 46: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

46

ArchitecturesArchitectures

Architecture techniqueArchitecture technique: ensemble de composants : ensemble de composants techniques (machines, réseaux, logiciels de base) techniques (machines, réseaux, logiciels de base) permettant de bâtir une solution informatique.permettant de bâtir une solution informatique. Poste de travail: terminal ou micro-ordinateurPoste de travail: terminal ou micro-ordinateur Serveur: site central, serveur HTTP, serveur d ’applications, Serveur: site central, serveur HTTP, serveur d ’applications,

serveur de données, serveur d ’administration,...serveur de données, serveur d ’administration,...

Architecture d ’exécutionArchitecture d ’exécution: regroupement de : regroupement de composants logiciels remplissant une fonction composants logiciels remplissant une fonction parmi:parmi: Interface homme-machine: présentation + dialogueInterface homme-machine: présentation + dialogue Traitement: fonctions applicativesTraitement: fonctions applicatives Données: gestion de donnéesDonnées: gestion de données

Architecture applicativeArchitecture applicative: décomposition d ’un : décomposition d ’un système d ’information ou d ’une applicative en système d ’information ou d ’une applicative en composants.composants.

IHM

T

D

Page 47: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

47

Les composants d'une architectureLes composants d'une architecture

La présentation :La présentation : C'est l'interface avec C'est l'interface avec

l'utilisateurl'utilisateur Caractéristique principale : Caractéristique principale :

variétévariété Différents paradigmesDifférents paradigmes

• Ecrans, Fenêtres, Documents …

Différents systèmes de Différents systèmes de présentationprésentation

ProblématiqueProblématique Aucune solution Aucune solution

universelle de universelle de présentationprésentation

Evolution rapide des Evolution rapide des dispositifs d'interface dispositifs d'interface utilisateurutilisateur

Intégration de nouveaux Intégration de nouveaux dispositifsdispositifs

• Reconnaissance vocale, écriture ...

Le stockageLe stockage Comment garantir qu'une Comment garantir qu'une

information n'est jamais "égarée"information n'est jamais "égarée" Caractéristique principale : Caractéristique principale :

évolution des volumesévolution des volumes Problématique : coûtProblématique : coût

La logique métierLa logique métier Permet de définir les Permet de définir les

fonctionnalités propre au métierfonctionnalités propre au métier Caractéristique principale : Caractéristique principale :

Spécificité absolueSpécificité absolue Problématique :Problématique :

Pas de standardisationPas de standardisation Pas de solution clé en mainPas de solution clé en main Choix de la méthode Choix de la méthode

d'implantationd'implantation ……

Page 48: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

48

BesoinsBesoins

Sans modification des composantsSans modification des composants Réutilisation Réutilisation

De manière dynamiqueDe manière dynamique Sans recompilationSans recompilation Sans arrêt de l’applicationSans arrêt de l’application

storage

storage

no

tifi

cati

on

notification

collaboration

security

Enrichir les comportement des composants, assembler et coordonner des composants

Page 49: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

49

Page 50: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

50

Plates-formes composites : l'exemple de DotnetPlates-formes composites : l'exemple de Dotnet

Windows COM+ Services

Common Language Runtime

Base Class Library

Data and XML

ASP.NET Windows Forms

Common Language Specification

Eiffel C++ C# JScript …

Class Loader

IL to NativeCompilers

CodeManager

GarbageCollector

Security Engine Debug Engine

Type Checker Exception Manager

Thread Support COM Marshaler

Base Class Library Support

Page 51: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

51

Une autre plate-formeUne autre plate-forme

CORBAservices

CORBAfacilities

Business Object Facility*

Common Business Objects*

CORBADomains

CORBADomains

CORBADomains

SEC

UR

ITY

IDL Interfaces, Mappings, & ORB

Realtime*, Embedded* options

Interoperability: IIOP, Asynch*

Components*, Scripting*

Page 52: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

52

5- Construction d’architecturesCahier des charges ?

Composants,Architectures des Logiciels

Master IMA

Master IMA

Page 53: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

53

Construction d'applications Construction d'applications réparties adaptablesréparties adaptables

ObjectifsObjectifs Fournir des Fournir des outils et servicesoutils et services pour la pour la

construction, le déploiement, et construction, le déploiement, et l'exécution d'applications réparties l'exécution d'applications réparties adaptablesadaptables

Et plus particulièrement pour assembler Et plus particulièrement pour assembler dynamiquement les composants d’une dynamiquement les composants d’une applicationapplication

Composants métiersComposants métiersComposants techniquesComposants techniquesComposants d’interface Homme-MachineComposants d’interface Homme-Machine

Page 54: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

54

Construction d'applications Construction d'applications réparties adaptablesréparties adaptables

AdaptabilitéAdaptabilité Adaptation à l'évolution de l'application et/ou aux Adaptation à l'évolution de l'application et/ou aux

besoins des utilisateursbesoins des utilisateursPersonnalisation d'une applicationPersonnalisation d'une application

• Réutilisation et configuration

Changement de la structure d'une applicationChangement de la structure d'une application• Reconfiguration

Utilisation de services techniquesUtilisation de services techniques• Association dynamique

Adaptation aux conditions de l'environnement Adaptation aux conditions de l'environnement d'exécution (hétérogénéité, QoS)d'exécution (hétérogénéité, QoS)Utilisation de la mobilité (code et/ou données)Utilisation de la mobilité (code et/ou données)Utilisation de services techniquesUtilisation de services techniquesModification de l’Interface Homme-MachineModification de l’Interface Homme-Machine

Page 55: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

55

Construction d'applications Construction d'applications réparties adaptablesréparties adaptables

Principes directeursPrincipes directeurs Application = {assemblage composants}Application = {assemblage composants} Les interactions entre les composants sont Les interactions entre les composants sont

explicitéesexplicitées

Utilisation pour ...Utilisation pour ... Enrichir les comportements des composantsEnrichir les comportements des composants

De manière dynamiqueDe manière dynamique• Sans recompilation de l’application• Sans arrêt du système

Sans modification des composantsSans modification des composants• Afin de réutiliser les composants existants

Page 56: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

56

Construction d'applications Construction d'applications réparties adaptablesréparties adaptables

Domaines d'applicationsDomaines d'applications Intégration et extension d'applications Intégration et extension d'applications

existantesexistantesInterconnexion de logiciels existantsInterconnexion de logiciels existantsInsertion de fonctions complémentairesInsertion de fonctions complémentairesUtilisation de services techniques adaptésUtilisation de services techniques adaptésPersonnalisation pour un scénario Personnalisation pour un scénario

d'utilisation donnéd'utilisation donné Applications pour l'InternetApplications pour l'Internet

Utiliser l'Internet comme un Utiliser l'Internet comme un environnement d'exécution pour les environnement d'exécution pour les applications répartiesapplications réparties

Page 57: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

57

Interactions logiciellesInteractions logicielles

Sont décrites par des schémasSont décrites par des schémas Indépendamment des langages de programmationIndépendamment des langages de programmation

ISL (ISL (Interaction Specification LanguageInteraction Specification Language) ) Programmation déclarative, règle de réécritureProgrammation déclarative, règle de réécriture

• message notifiant action

Description incrémentale des schémasDescription incrémentale des schémasPeuvent être créés ou supprimés à l’exécutionPeuvent être créés ou supprimés à l’exécutionUtilisation de l’héritageUtilisation de l’héritage

Interactions = instance des schémasInteractions = instance des schémas Contrôle uniquement les interfaces des objetsContrôle uniquement les interfaces des objets

Indépendant du modèle d’objet ou de composantsIndépendant du modèle d’objet ou de composants Peuvent être posées ou enlevées à l’exécutionPeuvent être posées ou enlevées à l’exécution

Page 58: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

58

Page 59: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

Stéphane Frénot L’industriel des Systèmes d’Information L’industriel des Systèmes d’Information

StratégieStratégie

Architecture de SIArchitecture de SI

Architecture techniqueArchitecture technique

Architecture de sécuritéArchitecture de sécurité

Architecture OrganisationnelleArchitecture Organisationnelle

Architecture FonctionnelleArchitecture Fonctionnelle

Architecture des ApplicationsArchitecture des Applications

Architecture des DonnéesArchitecture des Données

Architecture SystèmeArchitecture Système

Architecture RéseauArchitecture Réseau

Architecture d ’administrationArchitecture d ’administration

Evolution de la vision Architecture :complète

Page 60: 1. 2 Composants, Architectures des Logiciels pascal.estraillier @ univ-lr.fr Département Informatique - Laboratoire L3i Université de La Rochelle Master

Stéphane Frénot L’industriel des Systèmes d’Information L’industriel des Systèmes d’Information

Notions de services vs Produits

Organisation et sécuritéOrganisation et sécurité

StratégieStratégie

Architecture FonctionnelleArchitecture Fonctionnelle

Architecture des ApplicationsArchitecture des Applications

Architecture des DonnéesArchitecture des Données

Architecture SystèmeArchitecture Système

Architecture RéseauArchitecture Réseau

Architecture d ’administrationArchitecture d ’administrationSockets

LDAP ODBC AMI SNMP

Annuaire NetscapeMiddleware

+SGBDMQSeries