I. Introduction Les systèmes deviennent plus complexes Exemple
Transcription
I. Introduction Les systèmes deviennent plus complexes Exemple
04/10/2008 1 Les systèmes deviennent plus complexes 2 • Volume croissant – Des données – Du code • Évolutivité croissante I. Introduction – De la partie métier (mondialisation, concentration, restructuration, …) – De la partie plate-forme d'exécution • Hétérogénéité croissante a) Pourquoi une « encore » nouvelle approche du développement logiciel – – – – Etat des lieux Des langages et des paradigmes Des supports de données et des protocoles d'accès Des systèmes et des plates-formes Des technologies • Le rythme d'arrivée des nouvelles technos s'accélère • Ce rythme ne se ralentira pas • Les vieilles technos ne meurent pas, elles se cachent Ingé Ingénierie des Modè Modèles Logiciels Exemple typique • • CoursBlay-Fornarino #3 Bezivin– 2008 Mireille EPU département SI, Master STIC Mireille Blay-Fornarino – 2008 3 EPU département SI, Master STIC La croissance de la complexité des spécifications Un jeune ingénieur en sortie de Bac+5 et ayant des connaissances de base en Java, XML et UML se voit invité, lors de son arrivée en entreprise et avant de commencer son travail, à lire le lundi le rapport public J2EE v1.4 de 228 pages – Dans les six premières pages de ce rapport il est fait référence à : EJB, JSP, JMS, JMX, JCA, JAAS, JAXP, JDBC, JNDI. – Cette nouvelle version de J2EE est la version Web services et on suppose donc connus les concepts SOAP, SAAJ, JAX-RPC et JAXR – Chacun des acronymes cités correspond à une spécification – La spécification de EJB 2.1 correspond à un document pdf de 640 pages qui sera lue le mardi – Le mercredi sera consacré à la lecture du document Servlet 2.4 PFD specification de 307 pages – Le jeudi il s'attaque à la lecture du document JSP 2.0 PFD specification de 374 pages – Et ainsi de suite … Au bout d'un mois de lectures, notre ingénieur est enfin prêt à commencer le travail productif … d'après Interactive-Objects D'après "Is complexity hurting Java?" de Jason Weiss, dans Java Developer's Journal, Vol. 7, Issue 10, Octobre 2002. Ingé Ingénierie des Modè Modèles Logiciels Cours Bezivin Mireille#3Blay-Fornarino – 2008 Ingé Ingénierie des Modè Modèles Logiciels Et aussi : http://www.theserverside.com/home/thread.jsp?thread_id=11273 EPU département SI, Master STIC Constats du développement logiciel • 4 CoursBlay-Fornarino #3 Bezivin– 2008 Mireille 5 Génie du logiciel • Spécifications mouvantes – Evolution des besoins, de la législation, des groupements de sociétés, des technologies, …) • Variations des environnements • Besoin important d’Intégration des applications existantes • Nécessité d’une forte expertise des domaines métiers • Intégration de propriétés non-fonctionnelles complexes (sécurité, persistance, tracabilité, …) • Multiplicité des points de vues sur le logiciels – Langues, supports, connectiques, embarquées, … • – Transports, médecine, finances, …. Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC 6 Pris dans un sens large, le génie logiciel englobe en effet les «règles de l'art» de l'ingénierie de la réalisation des systèmes manipulant de l'information, qu'on appelle encore systèmes à logiciel prépondérant. Pour les systèmes de plus en plus complexes qu'on cherche à construire, il s'agit de trouver un compromis entre un système parfaitement bien conçu (qui pourrait demander un temps infini pour être construit) et un système trop vite fait (qu'il serait difficile de mettre au point et de maintenir), en conciliant trois forces largement antagonistes : les délais, les coûts, et la qualité. Il ne s'agit donc pas de produire le système parfait, mais bien de produire, en respectant un coût et des délais raisonnables, un système suffisamment bon compte tenu de son contexte d’utilisation. Le principal problème du génie logiciel ne se pose plus en termes de « donnez-moi une spécification immuable et je produis une implantation de qualité » mais plutôt en « comment réaliser une implantation de qualité avec des spécifications continuellement mouvantes ». De plus, il arrive de plus en plus fréquemment de ne plus avoir à produire un produit donné à un moment donné, mais simultanément toute une gamme (ou famille) de produits pour prendre en compte des variations de fonctionnalités ou d'environnements [1]. À cet égard on peut citer des constructeurs emblématiques tels que Microsoft, qui adaptent certains de leurs logiciels à des dizaines de platesformes différentes ainsi qu'à des centaines d'environnements culturels, ou encore l'éditeur de jeux vidéos Gameloft qui a développé rien moins que 700 versions du jeu Tom Clancy's Splinter Cell Chaos Theory, conçu par Ubisoft, afin de l'adapter à quelque 180 modèles de téléphones portables, dans différentes langues et dans 65 pays (des acteurs du secteur expliquent que chaque nouvelle version peut coûter entre 1.000 et 2.000 dollars). La maîtrise de cette double variabilité spatiale et temporelle est donc devenue un des enjeux majeurs de l'industrie du logiciel. • Quel qu'il soit, un processus de développement logiciel englobe un certain nombre d'activités (comme l'expression des besoins, l'analyse, la conception, l'implantation ou encore la validation) qui chacune produisent un ou plusieurs artefacts tels que documentation, diagrammes, codes sources, fichiers de configuration, fiches de tests, rapports de qualification, etc. Ces artefacts donnent de multiples points de vue sur le logiciel en cours de développement et, en pratique, sont souvent indépendants les uns des autres. Un problème ici, est d’être capable d’assurer une cohérence entre ces vues, ou au minimum une tracabilité entre les éléments des différents artefacts. • Extrait du livre [IDM06], chapitre Génie logiciel et IDM. – Expression des besoins, analyse, conception, implantation, validation, évolution, maintenance, clients, … ¾ La complexité a atteint un tel niveau qu'il est hors de portée d'un seul individu d'avoir une vision globale sur un système en évolution EPU département SI, Master STIC Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC 1 04/10/2008 7 8 Interopérabilité et intégration ? • • Langages de programmation – ~3 million COBOL programmers – ~1.6 million VB programmers – ~1.1 million C/C++ programmers Supports de développements Operating systems – Unix, MVS, VMS, MacOS, Windows, Windows(3.1->XP), PalmOS… – Embedded devices Les objets Les intergiciels Les « design Patterns » La programmation par aspects Les intégrateurs Networks – Ethernet, ATM, IP, SS7, Firewire, – Bluetooth, 802.11b, HomeRF EPU département SI, Master STIC Mireille Blay-Fornarino – 2008 Mireille Blay-Fornarino – 2008 9 Once upon a time… software development looked simple EPU département SI, Master STIC Abstraction… simplification… généralisation…. 10 (d’après JM Jezequel) • From the object as the only one concept 1980 1990 2000 – As e.g. in Smalltalk Collaborations • To a multitude of concepts Middleware (middle war) It's difficult -- in fact, next to impossible – for a large enterprise to standardize on a single middleware platform. (R. Soley) Soley) Design patterns HTTP HTML COM+ DCOM ReceiverI Components Sun’s Java & EJB Microsoft DataI Required port Mireille Blay-Fornarino – 2008 Da Proprietary Middleware (eg. automotive) XML SOAP Aspects DecoderI C# & .Net <<Component>> Decoder CORBA IIOP Procédures Modules ….. + Services Orchestration Chorégraphies Contrats Business process … Provided Port + until the next ultimate middleware platform (~2005) EPU département SI, Master STIC Mireille Blay-Fornarino – 2008 "Because of the wonderful unifying properties of the object paradigm, the transition from procedural technology to object technology will bring huge conceptual simplification to the software engineering field. Since everything will be considered as an object, we shall observe a dramatic reduction in the number of necessary concepts." All together, circa 1980 Object technology failed to achieve its promises of simplification. 12 [JB03] • The object-oriented approach does not adequately address the computing requirements of the future. • Object-oriented languages have lost the simplicity—some would say purity—that made them special and which were the source of their expressive and development power. • Powerful concepts like encapsulation were supposed to save people from themselves while developing software, but encapsulation fails for global properties or when software evolution and wholesale changes are needed. … • Objects promised reuse, and we have not seen much success. … • People enthused by objects hogged the road, would not get out of the way, would not allow alternatives to be explored—not through malice but through exuberance— and now resources that could be used to move ahead are drying up. But sometimes this exuberance was out-and-out lying to push others out of the way. http://www.dreamsongs.com/ObjectsHaveFailedNarrative.html [JB03] EPU département SI, Master STIC D’aprèsEPU http://lifc.univ-fcomte.fr/~philippe/composants/JC2001.htm département SI, Master STIC Objects have failed (Richard Gabriel, OOPSLA 2002) 11 Les objets : promesses… Mireille Blay-Fornarino – 2008 Objets, Classes, Méthodes ... Beans, Components, Containers, Packages, Interfaces, Layers, Tiers, Use cases, Patterns, Frameworks ... Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC 2 04/10/2008 13 Vers l’interopérabilité •Il n’y aura pas de consensus sur • Intergiciels… prolifération – – – – – – -les plates-formes “hardware” -Les « operating systems » -Les protocoles network -Les langages de programmation intergiciels (courtiers, « Middleware ») • Comment préserver l’investissement logiciel quand les infrastructures changent? Couche logicielle qui masque l’hétérogénéité Intégrer ce que vous avez construit avec : - ce que vous construisez - ce que vous construirez Placée entre l’OS et les composants de l’application …. OMG & CORBA EPU département SI, Master STIC CORBA®: Vendor, OS & language independent middleware COM/DCOM/MTS Java/EJB XML/SOAP C#/.Net Aucun ne prévaut sur les autres… “What will be Next Best Thing?” Le problème demeure…….. Une solution : Se mettre d’accord à un niveau plus haut: les Mireille Blay-Fornarino – 2008 14 Intergiciels (Courtier, Middleware) Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC 15 Tir sur cible mobile 16 Évolutions mineures Business Model 1 BM 2 AOP/AOSD : un problème bien identifié … BM 3 Product line or application development Specification Platform 1 Implementation and Tests Pf 2 Pf 3 Usage and maintenance Évolutions majeures Pf 4 Pf 5 Pf 6 Pf 7 Pf 8 Pf 9 La séparation Des Préoccupations Pascal; C; ADA; Linux; Smalltalk; C++; Com/DCOM; Apple OS; PowerBuilder; CORBA; Java; EJB; DotNet; C#; XML; SOAP; Web services; Spring, etc. Le changement de plate-forme était jusqu'à présent un événement exceptionnel; Il devient de plus en plus une opération de routine. Cette opération doit être prise en compte de façon explicite dans le cycle de développement du logiciel. Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC AOP/AOSD : un problème bien identifié … • We have found many programming problems for which neither procedural nor object-oriented programming techniques are sufficient to clearly capture some of the important design decisions the program must implement. This forces the implementation of those design decisions to be scattered through-out the code, resulting in "tangled" code that is excessively difficult to develop and maintain. We present an analysis of why certain design decisions have been so difficult to clearly capture in actual code. We call the properties these decisions address aspects, and show that the reason they have been hard to capture is that they cross-cut the system's basic functionality. We present the basis for a new programming technique, called aspectoriented programming, that makes it possible to clearly express programs involving such aspects, including appropriate isolation, composition and re-use of the aspect code. Mireille Blay-Fornarino – 2008 17 18 Les aspects : de la transformation de code AOP: le code comme référentiel unique. Optimisation directives Debugging directives Synchronization from Gregor Kiczales, John Lamping, Anurag Mendhekar Chris Maeda, Cristina Videira Lopes, Jean-Marc Loingtier, John Irwin. In proceedings of the European Conference Algorithmique preconditions postconditions Exceptions Code d'organization (#include, etc.) on Object-Oriented Programming (ECOOP), Finland. Springer-Verlag LNCS 1241. June 1997. Code exécutable Aspect Oriented Programming / Aspect-Oriented Software Development Ingé Ingénierie des Modè Modèles Logiciels CoursBlay-Fornarino #3 Bezivin– 2008 Mireille EPU département SI, Master STIC Ingé Ingénierie des Modè Modèles Logiciels EPU département SI, Master STIC CoursBlay-Fornarino #3 Bezivin– 2008 Mireille EPU département SI, Master STIC 3 04/10/2008 Intégration des codes : le syndrome du wrapper fou 19 En bref, les technos se suivent et se complètent • Chaque technologie a un apport historique qui persiste. • Les principes de la programmation structurée, issus de la technologie procédurale n'ont pas été perdus ni oubliés lors du passage à la technologie des objets dans les années 1980. • Les contributions des différentes technologies (procédures, objets, composants, services, modèles, etc.) ne sont jamais perdues mais laissent des traces positives même longtemps après leur période d'impact maximum. • "Tchernobilization du logiciel" consiste à recouvrir l'existant de chapes technologiques successives. Tchernobyl 20 • Avantages et inconvénients de l’utilisation des emballeurs d’objets (wrappers) pour applications existantes. TdP Un sarcophage de béton recouvre désormais le réacteur #4 de la centrale de Tchernobyl. There is no silver bullet ! TdO TdC TdS IdM Ingé Ingénierie des Modè Modèles Logiciels CoursBlay-Fornarino #3 Bezivin– 2008 Mireille •Il ne faut pas jeter le bébé avec l'eau du bain : la contribution de la technologie des objets entre 1980 et 2000 aura été essentielle à l'évolution de l'informatique. EPU département SI, Master STIC Mais les défis des nouvelles applications évoluent Mireille Blay-Fornarino – 2008 Séminaire X-Aristote 21 du 12 décembre 2002 EPU département SI, Master STIC La nouvelle crise du logiciel • Dirigées par le métier versus dirigées par les technologies 22 • Première crise : 1965 – Solutions? (NATO Summer School 1967): • "Software engineering" • "Structured programming" • "Top-down approaches" – Nécessite une connaissance approfondie du métier – Complexité rend obligatoire des collaborations inter disciplines et un développement dirigé par les experts du domaine – Enterprise Application Platforms (SAP, PeopleSoft…) vs. Technology Platforms (J2EE, .NET, Unix, Mainframes) • Seconde crise : 2000 – Solutions? (OMG november 2000): • La PPO ou la PPC ne constituent que des réponses très partielles à la montée en complexité. Seules elles sont aujourd'hui insuffisantes. • "MDA : Decouple neutral business models from variable platforms" • "Transformations as assets" [jb03] Extrait de « MDA™ MDA™ : From Hype to Hope, Mireille Blay-Fornarino – 2008 and Reality ». Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC J Constat – des projets qui échouent http://www.irisa.fr/prive/jezequel/enseignement/IFSIC....2006.pdf Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC Bé i i EPU département SI, Master STIC UML‘2003 23 Résultat 24 http://www.irisa.fr/prive/jezequel/enseignement/IFSIC....2006.pdf Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC 4 04/10/2008 25 Offshore et MDA 26 http://www.uae.ma/dossiers/down/formations/unia+uae/4-CHAFIK_KHALID_UAE.pdf Extrait de : http://www.orchestranetworks.com/fr/soa/pdf/ON-MDA-SOA-Offshore.pdf Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC Mireille Blay-Fornarino – 2008 EPU département SI, Master STIC 5