En informatique l´architecture est la structure générale inhérente à un système informatique, l'organisation des différents éléments du système (logiciels et/ou matériels et/ou humains et/ou informations) et des relations entre les éléments. Cette structure fait suite à un ensemble de décisions stratégiques prises durant la conception de tout ou partie du système informatique, par l'exercice d'une discipline technique et industrielle du secteur de l'informatique appelée elle aussi l´architecture, et dont le responsable est l´architecte.
La structure d'un système informatique est représentée sous forme de graphiques tels que des organigrammes, des diagrammes de workflow ou des diagrammes entité-relation. Le diagramme peut concerner un logiciel, une pièce de matériel, un réseau informatique, un groupe de machines, un sous-système, voire l'ensemble des dispositifs informatique d'une entreprise ou d'une institution.
Un diagramme d'architecture est une perspective qui dépend du point de vue adopté par son auteur, en fonction des éléments qu'il recherche à mettre en évidence. Le diagramme omet volontairement certains détails pour rendre la perspective plus visible. Il peut y avoir plusieurs diagrammes d'architecture pour un même système, tels que : architecture des informations, architecture métier, architecture applicative et architecture technique.
Architecture est un mot très populaire en informatique. Il a connu un effet de mode dans les années 1980-1990 ou il était alors considéré comme un buzzword. Martin Fowler dans son livre Patterns of enterprise application architecture dit ceci :
« L'industrie du logiciel brille dans la déformation des mots, les étirant dans toutes les directions jusqu'à leur donner une myriade de sens subtilement contradictoires. Le mot architecture est un de ceux qui a le plus souffert de ce phénomène. Je suis tenté de dire que architecture est un de ces mots ronflants utilisé avant tout pour indiquer qu'on est en train de parler de quelque chose d'important. Mais je vais me montrer pragmatique et ne pas laisser mon cynisme nuire à l'intérêt de mon livre :-) »
En théorie des systèmes, un système est une collection de pièces et un ensemble de principes qui une fois mis ensemble forment une unité. Unité qui peut à son tour être un élément d'une collection. La structure d'un système informatique – représentée sous forme de graphiques – est une perspective, et dépend du point de vue adopté et des éléments que le graphique met en évidence. Il peut par conséquent y avoir plusieurs diagrammes d'architecture pour un même système.
L´architecture métier est un point de vue tourné sur les politiques, les stratégies et les procédures opérationnelles propres à une organisation et les différents éléments du système informatique en rapport avec eux.
L´architecture des informations est un point de vue tourné sur l'organisation, le classement et la présentation des informations propres à une organisation en accord avec la manière dont les gens vont interpréter, retrouver ou modifier ces informations.
L´architecture logicielle est une vue tournée sur l'organisation interne et le découpage en couches et modules du ou des logiciels du système informatique. Les responsabilités de chaque module et la nature et la structure des relations entre modules.
L´architecture technique est une vue tournée vers les différents éléments matériels et l'infrastructure dans laquelle le système informatique s'inscrit, les liaisons physiques et logiques entre ces éléments et les informations qui y circulent.
L´architecture matérielle est une vue tournée sur le choix et l'organisation des différents composants électroniques d'un appareil informatique.
L'architecture métier décrit les applications informatiques, les principales base de données du système informatique d'une institution ou d'une entreprise, les utilisations faites de ces éléments dans le cadre de l'activité de l'institution et leur alignement à l'organisation générale de l'institution. La vue métier fait ressortir les éléments historiques et en fin de vie, les interfaces avec des éléments appartenant à des tiers, ainsi que les possibilités d'ajouter des nouveaux éléments.
Le diagramme d'architecture métier servira à guider la direction de l'institution dans le choix de création de nouveaux éléments, et aidera les ingénieurs à créer des produits informatiques en ligne avec les activités et l'organisation générale de l'institution. Il permettra également d'informer les collaborateurs de l'institution sur son organisation générale, ses buts, sa stratégie, et les flux d'informations au sein de l'institution.
L'architecture des informations concerne la manière dont les informations sont organisées et agrégées : ordre alphabétique, chronologique, taxinomie. Les manières d'accéder à ces informations, la compréhension qu'ont les lecteurs et comment ils manipulent et s'échangent les informations ainsi que l'organisation de la base de données qui contiendra les informations. L'architecture repose sur trois axes clés:
Les sites web contenant de nombreuses informations, tels que les sites de e-commerce, les médias, ou les bases de connaissances ou les encyclopédies en ligne sont les premiers concernés par l'architecture des informations.
L'architecture logicielle est une vue tournée sur l'organisation interne et le découpage d'un logiciel en modules. Dans les logiciels les caractéristiques communes concernent les interfaces, c'est-à-dire la connectique qui permet la communication entre les modules, ainsi que les caractéristiques du matériel informatique et du système d'exploitation sur lequel le logiciel s'exécutera et les caractéristiques du réseau informatique qui sera utilisé.
Le diagramme d'architecture logicielle décrit quelle est la nature des différents modules d'un logiciel, quelles sont les responsabilités et les fonctionnalités de chaque module, quelle machine va les exécuter, et quand. Il décrit également la nature des relations entre les modules, est-ce qu'il vont s'échanger des informations, est-ce qu'un module pilote l'autre, lui envoie des informations, ou lui fait des demandes. En ingénierie informatique le diagramme d'architecture donne une première série de réponses sur comment sera le futur logiciel, avant le début du travail de programmation.
L'architecture technique est une vue tournée sur l'organisation logique de la plateforme informatique, c'est-à-dire les moyens techniques clés qui seront utilisés par tout les logiciels applicatifs. La vue contient le matériel informatique, les logiciels systèmes, les middlewares, ainsi que les réseaux de télécommunication et les relations entre ces différents éléments.
Pour une entreprise ou une institution, le choix de l'architecture technique vise à maximiser les possibilités d'implantation de logiciel du commerce ainsi que de réalisation de logiciels sur mesure. Il vise également à rentabiliser l'utilisation du matériel et des logiciels déja acquis par l'institution.
Pour une entreprise ou une institution qui transforme son architecture technique, le plan d'architecture est accompagné d'un planning et d'un budget des acquisitions, des ventes et des opérations de migration nécessaires pour aligner le système informatique avec le plan.
Le mot architecture matérielle est parfois utilisé pour désigner l'architecture du jeu d'instructions d'un processeur. L'architecture matérielle comprends toutes les caractéristiques générales, la conception, le choix et l'organisation des différents dispositifs électroniques des appareils informatiques (ordinateurs personnels, serveurs, assistant personnels, téléphones portables, consoles de jeu,...). L'architecture est fonction du type d'appareil, du client cible, de l'espace d'adressage - qui est fonction du nombre de bits utilisées pour les adresses mémoire, du système d'exploitation et du langage de programmation cible.
L'architecture matérielle est un premier élément de réponse sur comment obtenir le futur ordinateur, recherchant la performance tout en respectant les contraintes de coût, de consommation électrique et de fiabilité. Le choix de l'architecture est inspiré par le marché, en particulier par les logiciels applicatifs existants et pour lesquels l'appareil est destiné. La conception d'une architecture matérielle requiert la connaissance d'une large gamme de technologies concernant les compilateurs, les systèmes d'exploitation, les circuits logiques et l'isolation.
L'architecture du jeu d'instruction est le point de rencontre entre le matériel et le logiciel informatique. Selon son architecture, le jeu d'instruction peut être de type register-memory - chaque instruction peut être effectuée sur le contenu d'une adresse mémoire ou d'un registre - ou du type load-store - toutes les instructions sont effectuées sur des registres sauf les instructions load et store qui copient des informations de et vers une certaine adresse mémoire.