web-dev-qa-db-fra.com

Quelle est la différence entre les modèles architecturaux et les styles architecturaux?

Dans Architecture logicielle - Fondements, théorie et pratique , je peux trouver des définitions pour les deux. Le problème est que je ne comprends pas ce que chacun d’entre eux signifie en clair:

Modèle architectural

Un modèle architectural est une collection nommée de décisions de conception architecturale applicables à un problème de conception récurrent paramétré pour prendre en compte différents contextes de développement logiciel dans lesquels ce problème apparaît.

Style architectural

Un style architectural est un ensemble nommé de décisions de conception architecturale qui (1) sont applicables dans un contexte de développement donné, (2) limitent les décisions de conception architecturale spécifiques à un système particulier dans ce contexte, et (3) dégagent des qualités bénéfiques dans chaque contexte. système résultant.

Que signifie chacun et quelles sont les différences entre eux?

33
devoured elysium

Un motif architectural est un moyen de résoudre un problème architectural récurrent. MVC, par exemple, résout le problème de la séparation de l'interface utilisateur du modèle. Capteur-Contrôleur-Actionneur est un modèle qui vous aidera à résoudre le problème de l'activation face à plusieurs sens d'entrée. 

Un style architectural, par contre, n’est qu’un nom donné à une conception architecturale récurrente. Contrairement à un modèle, il n’existe pas de solution à un problème. 

Pipe & Filter ne résout aucun problème spécifique, c'est juste une façon d'organiser votre code. Client/serveur, programme principal & sous-routine et types de données abstraites/OO, les mêmes.

En outre, une architecture unique peut contenir plusieurs styles architecturaux, et chaque style architectural peut utiliser plusieurs modèles architecturaux.

43
devoured elysium

Franchement, j'ai toujours considéré ces deux termes comme synonymes! Et la littérature profane (relativement parlant) les traite définitivement comme tels. Reportez-vous MSDN ou Wikipedia

Cependant, votre question m'a un peu intriguée, j'ai donc creusé un peu plus et franchement ... je n'ai pas trouvé grand chose à part une référence à Un guide pratique de l'architecture d'entreprise (The Coad Series) , dont je cite: -

An architectural style (Base et al. 1997) and an architectural pattern 
(Buschmann et al. 1996) are essentially synonymous. 

Basé sur un peu plus googler , voici ce que je pense pourrait être un moyen possible de différencier les deux

  • Un style architectural est une manière conceptuelle de la façon dont le système sera créé/fonctionnera
  • Un modèle architectural décrit une solution permettant de mettre en œuvre un style au niveau De sous-systèmes ou de modules et de leurs relations.

Comment un modèle architectural différera-t-il d'un modèle de conception, c'est-à-dire un adaptateur, l'observateur correspond essentiellement au niveau de granularité auquel ils sont appliqués (je sais que cela ne fait pas partie de la question mais correspond, je pense)

10
Jagmag

En termes très simples:

  • Un style architectural

    Est un concept, une théorie (et comment elle est mise en œuvre, cela dépend de vous). Cela peut aussi s'appliquer à l'extérieur du monde des logiciels.

    Par exemple: REST ( Representational State Transfer ) est un style architectural basé sur certains principes utilisant les principes de base "Web" actuels.

  • Un motif architectural

    Décrit une solution au niveau du système logiciel (ou du module). En d'autres termes, comment il interagit, par exemple vue avec modèle et modèle avec contrôleur.

  • Un design patterns

    Est une solution au niveau de base, il parle de classes, de fonctions et de la façon dont la logique s'écoule.

7
kenorb

Le style architectural est abstrait, c'est-à-dire conceptuel. 

+---------------+--------------------------------------------------------+
|   Category    |                  Architecture styles                   |
+---------------+--------------------------------------------------------+
| Communication | SOA, ROA, Message Bus                                  |
| Deployment    | Client/Server                                          |
| Domain        | Domain Driven Design,Monolithic application            |
| Structure     | Component-Based, Object-Oriented, Layered, Plug-ins    |
+---------------+--------------------------------------------------------+

Un motif architectural est concret, c’est-à-dire qu’il s’applique à un style architectural. 

  • Par exemple: 3 tiers, N tiers, MVC, REST

Un modèle de conception est une solution générale réutilisable à un problème récurrent de la conception de logiciels au niveau architectural. 

  • Par exemple: Factory, Singleton, Prototype. 

Analogie: Style d'architecture des temples pour différentes religions: 

 enter image description here

5
Premraj

À mon avis, les modèles et les styles architecturaux sont des mécanismes complémentaires pour encapsuler l'expertise en conception. Un style architectural fournit une collection d'éléments de conception de blocs de construction, des règles et des contraintes pour la composition des blocs de construction, ainsi que des outils d'analyse et de manipulation des conceptions créées dans le style. Les styles fournissent généralement des conseils et des analyses pour la construction d’une vaste classe d’architectures dans un domaine spécifique, tandis que les modèles se concentrent sur la résolution de problèmes plus petits et plus spécifiques dans un style donné (ou peut-être plusieurs styles). 

3
F. Farjaminejad

Pour les modèles architecturaux, identifiez des méthodes spécifiques pour styliser votre code comme décrit par le GoF like; Adaptateur, stratégie, constructeur, médiateur, etc.

Pour le style architectural, pensez au système global; I.E., utilisant MVC pour la présentation, DDD pour modéliser la couche de gestion, WCF (si vous êtes dans .NET) pour Interop, SOA pour l'intégration, etc.

2
Kane

Les modèles de conception architecturale sont plus spécifiques à un domaine, tandis que les styles architecturaux sont plus génériques et utilisables dans un large éventail d'applications. En raison de cela, les modèles architecturaux nécessitent davantage de connaissances du domaine.

2
Malinga

Schémas architecturaux - définissent un ensemble général de types d'éléments et leurs interactions . Pipes et filtres, Modèle – Vue – Contrôleur et Réflexion sont des exemples de motifs architecturaux.

Style architectural - le terme a été inventé par Garlan et Shaw. Il s’agit d’un modèle Idiomatique d’organisation du système. Par exemple, un système client-serveur Est un style architectural. 

p.s: Beaucoup de styles architecturaux originaux ont été reformulés sous forme de motifs.

0
user3109062

Modèle d'architecture: contexte + problème -> solution

Style d'architecture: partie de solution du motif d'architecture

Le style d'architecture est donc analogue à la partie solution du modèle d'architecture. Il est souvent utilisé dans les ouvrages traitant de la documentation d'architecture où l'accent est mis sur la solution et non sur la manière dont le contexte et le problème sont apparus. 

0
Balazs Sipos