Architecture logicielle - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Outils

  • Azuki - Framework Java ayant pour objectif la separation des préoccupations.
  • BoUML- Modeleur UML open source multiplateforme compatible avec la norme UML 2.0 capable d'effectuer de la rétro-ingénierie
  • IBM Rational - Le produit des trois amigos fondateurs d'UML
  • Silverrun - Un logiciel de modélisation pour la méthode Datarun, version nord-américaine de Merise.
  • Open ModelSphere - Modélisation de données conceptuelle et relationnelle, modélisation de processus d'affaires et modélisation UML sous licence GPL.
  • Acceleo - Générateur de code MDA, open source basé sur Eclipse et EMF
  • Power Designer - Logiciel de modélisation des méthodes Merise, SGBD, UML, Processus métiers, Architecture d'entreprise.
  • DocGen BOUML - Plugin de BOUML permettant la génération des documents d'architecture, d'analyse et de design à partir d'un modèle UML et de la philosophie OpenUP.

Historique

1960 à 1970

L’origine de la notion d’architecture logicielle remonte à la fin des années 1960 avec l’invention de la programmation structurée. Un programme informatique était alors conceptualisé comme une suite d’étapes (flux de contrôle) représentée par les premiers diagrammes d’architecture, les organigrammes (ordinogrammes). Au début des années 1970, avec le développement de la programmation modulaire, les programmes informatiques furent considérés comme des ensembles de composants (les modules) échangeant de l’information. Les diagrammes de flux de données furent alors utilisés pour représenter ce type d’architecture.

  • 1964, création de Simula-I
  • 1967, création de Simula-67

1970 à 1980

C’est au cours de la décennie 1970–80 que les grands principes architecturaux furent élaborés. L’on distingua l’architecture système décrivant les relations et interactions de l’ensemble des composants logiciels de l’architecture détaillée décrivant l’architecture individuelle de chacun des composants. L’on sépara l’architecture statique décrivant les interrelations temporellement invariables (dépendances fonctionnelles, flux de contrôle, flux de données) de l’architecture dynamique, décrivant les interactions et l’évolution du système dans le temps (diagrammes d’activité, de séquence, d’états, réseaux de Petri, etc.). C’est également au cours de cette décennie que furent élaborés les principes directeurs de l’architecture logicielle contemporaine : masquage de l'information, indépendance fonctionnelle, forte cohésion et couplage faible. Les principaux styles architecturaux virent également le jour : architecture en appels et retours (hiérarchie de contrôle), architecture centrée sur les données, architecture en flot de données, architecture en couches et architecture orientée objets.

Événements importants

  • 1970, E. F. Codd publie : "A Relational Model of Data for Large Shared Data Banks", ACM, Vol. 13, No. 6, pp. 377-387.
  • 1971, N. Wirth crée le langage Pascal. "The Programming Language Pascal", Acta Informatica, No. 1, pp. 35-63. La même année, il publie "Program Development by Stepwise Refinement", Comm. ACM, Vol. 14, No. 4, pp. 221-227.
  • 1972, O. Dahl, E. Dijkstra et C. Hoare publient : "Structured Programming", Academic Press.
  • 1973, J.B. Dennis publie : "Modularity", In 4dvanced Course in Software Engineering, F. Bauer, Ed., Springer- Verlag, Berlin.
  • 1974, IBM définie le langage SEQUEL (Structured English Query Language) et l'implémente sur le prototype SEQUEL-XRM.
  • 1975, M. A. Jackson. publie : "Principles of Program Design", Academic Press.
  • 1976-77, IBM révise SEQUEL appelée SEQUEL/2 fut définie et le nom changé en SQL.
  • 1979, Relational Software introduit son produit Oracle V2 comme système de gestion de bases de données relationnelles. Cette version implémente un langage SQL de base (requête et jointure).
  • 1979, E. Yourdon et L.L. Constantine publient : "Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design", Prentice Hall.

1980 à 1990

La décennie 1980-90 fut celle du développement de l’architecture orientée objet. Ce type d’architecture introduisit trois nouveaux types de composants logiciels : l’objet, la classe et la méta-classe ; ainsi que des relations ontologiques entre ces composants : est un (héritage), est composé de (composition), etc. La relation d’héritage est une innovation majeure permettant la réutilisation de code et facilitant son adaptation à d’autres contextes d’utilisation.

Au niveau industriel, par contre, cette décennie est sans conteste celle de l’architecture à trois couches centrée sur les données (3-tiers). Ce type d’architecture logicielle, séparant l’architecture des programmes de l’architecture des données, s’oppose ainsi complètement au principe de forte cohésion prôné par l’architecture objet. L’accent est mis sur l’architecture des données; les diagrammes de ce type d’architecture sont les modèles conceptuels de données et les schémas entités relations. Le développement des systèmes de gestion de bases de données relationnelles, des protocoles multibases ainsi que leurs normalisations (standardisations) constituent les fondations technologiques de ce choix architectural.

Événements importants

  • 1983, Grady Booch publie : "Software Engineering with Ada", Benjamin Cummings.
  • 1983, Relational Software devient Oracle Corporation et introduit Oracle V3 (support des transactions).
  • 1983-1985, Bjarne Stroustrup développe le C++ au Bell Laboratory.
  • 1984, U. Dayal and H. Hwang publient : "View definition and generalization for database integration in MULTIBASE: A system for heterogeneous distributed databases", IEEE Trans, Software Engineering, SE-10, No. 6, 628-644.
  • 1986, SQL a été adopté par l'institut de normalisation américaine (ANSI), puis comme norme internationale par l'ISO (ISO/CEI 9075).
  • 1987, Ivar Jacobson fonde Objectory Systems pour vendre sa méthode de développement : ObjectOry
  • 1990, A.P. Sheth and J.A. Larson publient : "Federated Database Systems and Managing Distributed, Heterogeneous, and Autonomous Databases". ACM Computing Surveys.

1990 à 2000

Au début de la décennie 1990-2000 on dénombrait un très grand nombre de représentations architecturales distinctes. En 1995, UML (Unified Modeling Language) devint la norme internationale de représentation de l’architecture logicielle. Le développement orienté objet se répand dans l’industrie, les systèmes de gestion de bases de données sont maintenant perçus comme une façon commode d’assurer la persistance des objets. Les systèmes de gestion de base de données objet-relationnels et objets font leurs apparitions. On voit également apparaître les architectures distribuées; les programmes informatiques ne sont plus simplement perçus comme devant offrir des services à des êtres humains mais également à d’autres programmes. L’arrivée des réseaux ouverts, en particulier Internet, change complètement le paysage architectural. L’architecture à trois couches centrée sur les données (3-tiers) est maintenant réalisée par le triplet serveur de base de données, serveur d’application web et navigateur web.

La recherche universitaire sur l’architecture logicielle se concentre davantage sur les problèmes de couplage entre objets et d’interopérabilité syntaxique et sémantique. Le problème du couplage est essentiellement perçu comme un problème de communication entre objets, voir de dialogues entre agents intelligents; l’architecture orientée agent apparaît. Le principe de réutilisation des composants logiciels est maintenant appliqué à l’architecture. Des façons de faire, principes ou styles architecturaux peuvent être réutilisés; les patrons de conception apparaissent.

Événements importants

  • 1992, Gio Wiederhold publie : "Mediators in the Architecture of Future Information Systems", IEEE Computer Magazine
  • 1994, La définition moderne d'agent logiciel est accepté par la communauté scientifique : "Special issue on intelligent services.", Communication of the ACM.
  • 1994, Sun Microsystems lance le langage de programmation pur objet Java.
  • 1995, UML voit le jour (OOPSLA'95).
  • 1995, Gamma et al. publient : "Design Patterns: Elements of Reusable Object-Oriented Software", Addison-Wesley.
  • 1998, Le W3C recommande le langage à balise XML.

2000 à 2010

Notre décennie est caractérisée par un retour des bases de données distribuées rendu possible grâce aux technologies XML. Le XML est un ensemble de règles permettant de représenter et de structurer des données, c'est une restriction de SGML. Ces données peuvent être syntaxiquement normalisées et la souplesse de la technologie permet d'exprimer des sémantiques variées. L'architecture 3-tiers traditionnelle peut se retrouver sous la forme de trois couches de médiations de données : gestion de données XML, transformation et fusion de données XML et présentation de données XML. La technologie XML permet la spécification syntaxique (DTD, XSD), la transformation (XSLT), la présentation (XSL) et la spécification sémantique (RDF, RDFS, OWL). Il existe des bibliothèques logicielles permettant de gérer les données XML et la plupart des systèmes de gestion de base de données supportent maintenant XML.

Ce nouveau type d'architecture s'oppose à la vision centralisée des données que l'on retrouve dans une architecture centrée sur les données traditionnelle (comme le «datawarehouse» promu par IBM). Cette forme d'architecture se nomme la médiation de données, elle est caractérisée par :

  • Un traitement intelligent de l'information (des données supportant un haut niveau d'abstraction et de généralisation).
  • Un accès et une intégration de plusieurs sources d'information.
  • Une transformation dynamique du flux d'information par des filtres et traducteurs.
  • L'existence de répertoires intelligents et de bases d'information comme des catalogues.
  • La gestion de l'incertitude reliée aux données absentes ou incomplètes et aux données mal comprises.
  • La gestion explicite de l'interopérabilité sémantique grâce à des ontologies générales et de domaines.

Le développement orienté agent (OA) sort progressivement des universités, il existe une multitude d'outils logiciels pour la conception de systèmes basés sur les agents mais la plupart ne sont pas encore destinés à devenir des outils de production. Le langage KQML (Knowledge Query and Manipulation Langage) est un langage de communication inter-agent qui pourrait très bien s'imposer dans un proche avenir. Il n'y aura pas de révolution au niveau des langages de programmation, les différentes fonctionnalités des agents sont implémentées à l'aide de bibliothèques logicielles. Les trois types d'architectures OA qui se dégagent sont : l'architecture réfléchie, l'architecture réactive et l'architecture hybride.

Page générée en 0.127 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise