1. 2 composants, architectures des logiciels pascal.estraillier @ univ-lr.fr département...
TRANSCRIPT
1
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
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
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
5
1-IntroductionPourquoi doit on s’intéresser au logiciels ?
ComposantsArchitectures des Logiciels
Master IMA
Master IMA
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 ?
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 …
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””
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
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”
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
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 ;
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é ; ;
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
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..
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.
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.
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
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!!!
20
2- LogicielsUne évolution à contrôler ?
Composants,Architectures des Logiciels
Master IMA
Master IMA
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...
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
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.
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
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.
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
27
Un drôle de marchéUn drôle de marché
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
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
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
31
3- ComposantsDécouper les logiciels, Pourquoi-Comment ?
Composants,Architectures des Logiciels
Master IMA
Master IMA
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
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
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)
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)
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)
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
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
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.)
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
41
TriggersExceptions
Internal DescriptionInternal Description
Resources
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
43
4- ArchitectureUn assemblage de composants ?
Composants,Architectures des Logiciels
Master IMA
Master IMA
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.
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
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
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 ……
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
49
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
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*
52
5- Construction d’architecturesCahier des charges ?
Composants,Architectures des Logiciels
Master IMA
Master IMA
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
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
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
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
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
58
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
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