Après une réflexion assez longue sur la manière dont divers experts expliquent (établissent) leur compréhension de l'architecture, j'ai décidé qu'ils avaient encore besoin d'aide :) Je
n'ai pas critiqué, mais j'ai quelque chose à offrir.
Architecture et structures du bâtiment
Considérez les concepts originaux de l'architecture et de l'architecte du domaine de la construction:
L'architecture est l'art de concevoir et de construire des bâtiments, des structures et leurs complexes, c'est-à -dire l'art de créer un environnement matériellement organisé.
Un architecte est un spécialiste qui, à titre professionnel, réalise la conception architecturale, y compris la conception de bâtiments, y compris le développement de l'aménagement de l'espace et des solutions intérieures.
Le projet de construction se compose de deux parties principales: l'architecture et la construction et l'ingénierie.
La partie architecture et construction du projet comprend:
- La section architecturale se compose de dessins d'architecture et de construction, qui indiquent les paramètres géométriques exacts du bâtiment, ses structures et leurs éléments: plans d'étage, étages, plan de toit, façades, coupes, visualisation.
- La section de conception contient des données générales, des solutions de conception pour les fondations, les sols, les toits, les dessins d'assemblages et de pièces individuels, les spécifications des produits et des matériaux: fondations, plafonds, linteaux, toiture, assemblages structurels et détails.
La partie ingénierie du projet se compose de schémas détaillés:
- Systèmes d'alimentation en eau et d'assainissement - schéma de câblage d'alimentation en eau, schéma d'alimentation en eau axonométrique, schéma de câblage d'assainissement.
- Chauffage et ventilation - schéma de câblage de chauffage, schéma de câblage de ventilation, tuyauterie de chaudière (le cas échéant).
- Alimentation - câblage d'éclairage, câblage du réseau électrique, circuit ASU, système de mise à la terre.
L'architecte ne s'occupe que de la section architecturale, tandis que les sections structurelles et d'ingénierie sont gérées par les ingénieurs correspondants.
... un endroit pour réfléchir ...
Pour les architectes informatiques qui sont «in the tank» et qui aiment se comparer aux architectes:
, . , , , .
Architecture du système
Voyons maintenant une définition plus proche de l'informatique. Je vais prendre des extraits de l' article comme base .
Architecture - concepts ou propriétés fondamentaux d'un système dans son environnement, incarnés dans ses éléments, relations et principes de sa conception et de son évolution. (De: ISO / IEC / IEEE 42010: 2011)
De telles définitions et des définitions similaires sont couramment utilisées dans les grands cadres architecturaux tels que TOGAF et SAFe. Ces cadres sont assez lourds et consistent en un petit ensemble de pratiques systématisées et diluées avec de nombreuses techniques et techniques différentes. Et tout cela est présenté comme des «bonnes pratiques», même si personne ne les a testées et ne les applique pas sous cette forme dans son ensemble.
– , . ( )
Cependant, il y a une subtilité avec la caractéristique «difficile à changer».
Supposons que vous ayez une solution de conception qui décrit à vos développeurs comment ils doivent structurer leur code Java. Si vous avez beaucoup de code, changer tout ce code d'une structure à une autre demandera beaucoup de travail. En d'autres termes, c'est difficile. Par conséquent, cette solution choisie est «l'architecture», en l'occurrence l'architecture logicielle. Mais un développeur peut facilement ignorer cette décision et écrire du code qui fait les choses différemment. Après tout, apporter des «modifications» au logiciel est facile. Bien que l'ensemble de l'architecture implémentée soit difficile à modifier, il est souvent assez facile de ne modifier que certaines parties de celle-ci.
Il n'y a aucune raison théorique pour laquelle quelque chose est difficile à changer par rapport au logiciel. Si vous choisissez un aspect du logiciel, vous pouvez facilement le changer, mais nous ne savons pas comment tout faire facilement. Faire quelque chose de facile à changer rend le système global un peu plus difficile, et le rendre facile à changer rend l'ensemble du système très complexe. (Ralph Johnson)
On peut soutenir que cela révèle la signification du mot «fondamental» dans la définition de «l'architecture» selon l'ISO, c'est quelque chose qui est difficile à changer.
L'essence de l'architecture est la structuration. La structuration peut signifier transformer la forme en fonction, sortir de l'ordre du chaos ou transformer les idées partiellement formées d'un client en un modèle conceptuel réalisable (Eberhard Rechtin).
La construction d'une architecture est l'activité d'organisation et de maintenance d'un système à partir de ses éléments constitutifs. Et tous les principes architecturaux visent la décomposition et l'organisation des éléments constitutifs du système.
Problème
Le problème avec les définitions ci-dessus, bien qu'elles soient utiles, existe toujours, elles sont séparées de l'idée intégrée dans le système. Il est assez étrange de distinguer l'architecture selon le critère «difficile à changer».
En outre, la définition à travers les composants dans ce cas ne donne pas le sens nécessaire.
... un lieu de réflexion ...
La plupart des architectes système viennent de programmeurs, ce sont tous des technocrates. Ils ont tout inventé. :)
Lorsque vous travaillez avec l'architecture, il est préférable de se concentrer sur l'objectif du système.
L'architecture est une solution de conception qui organise un ensemble de solutions de conception dans un système correspondant à l'objectif visé.
C'est une solution de conception qui organise les roues, le moteur, la carrosserie et la direction dans une voiture.
En d'autres termes,L'architecture est une solution de conception qui produit un effet émergent. Émergence - l'apparition d'un système de propriétés qui ne sont pas inhérentes à ses éléments séparément; irréductibilité des propriétés du système à la somme des propriétés de ses composants.
Il est important de ne pas mélanger les niveaux d'abstraction . Plus tard également, la question peut se poser, qu'est-ce qu'une bonne architecture? L'architecture doit garantir la mise en œuvre des trois principaux attributs de la qualité du système: fiabilité , efficacité , flexibilité . Il y en a d'autres, par exemple l'évolutivité, la testabilité, la maintenabilité, etc., mais ils ne sont pas toujours aussi importants.
Architecture d'entreprise
L'architecture d'entreprise a ses propres spécificités. Premièrement, il y a une architecture de travail qui doit être comprise et décrite. Deuxièmement, l'entreprise a ses propres principes et concepts de base que vous devez connaître. Ce n'est qu'en comprenant les concepts métier et de base que vous pourrez proposer des changements.
Trois aspects sont utilisés pour décrire les fondements d'une architecture d'entreprise, comme toute autre architecture:
- Les sujets sont une structure organisationnelle du personnel.
- Les activités sont des processus, des fonctions et des services commerciaux.
- Les objets sont le résultat d'activités et le matériel pour les activités. Dans ce cas, le résultat et le matériel peuvent être physiques ou informatifs.
Mais encore, cela ne sera pas suffisant pour comprendre cela, vous devez tenir compte des concepts et principes de base.
Concept "Trois types d'activités"
Il existe trois types d'activités:
- Manager - l'activité qui contrôle le fonctionnement du système. Un exemple de processus de gestion est la gouvernance d'entreprise et la gestion stratégique.
- Principale (exploitation) - activités qui sont à la base des activités de l'entreprise et créent le principal flux de revenus. Des exemples de processus opérationnels opérationnels sont l'approvisionnement, la fabrication, le marketing et les ventes.
- Soutien - activités qui servent l'entreprise principale. Par exemple, comptabilité, recrutement, support technique, service administratif.
Les activités de soutien sont souvent externalisées. Les activités indiquées dans l'exemple ci-dessus «comme principales» ne sont pas toujours les principales, car elles peuvent également être sous-traitées. Il y a toujours une activité de gestion, théoriquement il est possible de «sous-traiter» tout sauf le management et rendre l'entreprise virtuelle.
Gestion externalisée:
? outsource. :)
Concept de cycles de Deming
Ainsi, en tant qu'architectes, nous avons divisé les activités de l'entreprise en trois parties. Vous devez maintenant comprendre comment tout cela fonctionne ensemble. Pour ce faire, nous avons besoin d'un autre concept ancien, mais toujours pertinent - le cycle de Deming, alias PDCA:
- Planification
- Acte
- VĂ©rifier
- Ajustement
Vous n'avez pas besoin de le prendre à la lettre, c'est plus une métaphore, et dans différentes entreprises, il est mis en œuvre de différentes manières, mais ces étapes sont toujours là .
Voyons nos travaux de conception spécifiques, la fabrication de produits ou la prestation de services:
- Qui a planifié ce processus?
- Quels sont les documents réglementaires et réglementaires?
- Qui fait l'action?
- Comment se fait la vérification?
- Comment se fait l'ajustement?
Si tout semble clair avec les étapes «Action» et «Vérifier», alors «Planification» et «Ajustement» doivent être examinées de plus près.
Concept de prise de décision
Ici, nous avons besoin d'un troisième concept - la prise de décision. C'est une approche universelle pour résoudre les problèmes de gestion et de gestion de projet.
- Comprendre la tâche
- Situation d'Ă©valuation
- DĂ©veloppement d'options de solutions
- Choisir une solution
Il est important de comprendre toutes les étapes de cette séquence et ce qui est nécessaire pour la terminer. Cette approche est appliquée dans la planification et, selon la situation, dans les ajustements.
Mappons ce concept à nos créations:
- Comment se fait la clarification des tâches?
- Comment la situation est-elle évaluée?
- ...
Passons maintenant au niveau de leadership.
- Comment la direction est-elle informée en termes d'ajustement et d'évaluation de la situation, c'est-à -dire où sont les rapports sur notre projet pour qu'ils comprennent tout ce qui est bon ou mauvais?
Principe "Le but doit déterminer l'architecture"
Ici, il est important de rappeler la définition de l'architecture: L'
architecture est une solution de conception qui organise un ensemble de solutions de conception dans un système correspondant à l' usage prévu .
L'utilisation finale est généralement l'activité principale. L'activité de gestion est centrée sur l'activité principale. Une activité de soutien le fournit.
N'oubliez pas non plus les attributs de qualité ci-dessus: fiabilité, efficacité et flexibilité. L'activité principale est une chose individuelle, mais ici, je pense, vous pouvez vous en occuper vous-même.
Principe "L'architecture doit ĂŞtre conforme aux directives"
Sans le soutien des parties prenantes, l'architecture ne sera pas mise en Ĺ“uvre. Nous devrons Ă©tudier toutes les parties prenantes, leurs motivations et leurs objectifs.
Un conflit interne est possible.
... un endroit pour réfléchir ...
DĂ©finition de l'architecture d'entreprise
Quant à la définition spécialisée, étant donné que le business et l'informatique vont désormais côte à côte, à mon avis, il est préférable de percevoir l'architecture d'entreprise comme un ensemble de solutions au plus haut niveau des abstractions de l' architecture d'entreprise .
Parmi les définitions existantes, j'aime celle donnée par l'Architecture Board Special Interest Group (BASIG) (OMG Architecture Board)
A Blueprint Of The Enterprise That Provides A Common Understanding Of The Organization And Is Used To Align Strategic Objectives And Tactical Demands.
, .
Si nous donnons le concept normal d'architecture, alors le rôle de l'architecte devient très clair.
Le métier de cordonnier est de fabriquer et de réparer des chaussures.
Le travail de l'architecte est de créer et de gérer l'architecture. Il doit créer une solution qui rassemblera toutes les autres solutions dans un système .
Quelles compétences devrait-il avoir?
Un architecte doit connaître les principes et concepts architecturaux au niveau de son entreprise ou de son système, ce sont ses solides compétences .
En outre, un architecte doit être un pilote , décrire l'architecture est la moitié de la bataille, mais convaincre les gens de la mettre en œuvre et de la soutenir constamment est la deuxième tâche, pas moins.
Pour ce faire, l'architecte doit avoir des softskills bien formés ....
Il y a une autre caractéristique qui distingue un architecte d'un analyste et d'un programmeur: il doit maîtriser l' art des opérations .
... un endroit pour réfléchir ...
Liens
- http://www.ovikv.ru/building_project.htm
- pubs.opengroup.org/architecture/togaf9-doc/arch/toc.html
- pubs.opengroup.org/architecture/togaf9-doc/arch/chap20.html
- docs.microsoft.com/ru-ru/dotnet/architecture/modern-web-apps-azure/architectural-principles
- www.omg.org/bawg/business_architecture_overview.htm