Ce qui devrait être inclus dans une liste de contrôle Application Architecture?

StackOverflow https://stackoverflow.com/questions/929133

  •  06-09-2019
  •  | 
  •  

Question

Je suis en train de trouver une liste de contrôle ou un ensemble de questions / critères pour évaluer et évaluer les propositions d'architectures ou émergentes (effectuer des revues d'architecture). Quelles sont les questions les plus importantes que vous demanderez en essayant de planifier, évaluer ou revoir une architecture?

Je sais que c'est un grand sujet donc je voudrais limiter à un seul système de bout en bout et non l'architecture d'une organisation.

code complet fournit un point de départ décent:

  

Architecture

     
      
  • L'organisation générale du programme clair, y compris un bon   Vue d'ensemble architectural et   justification?
  •   
  • Les modules sont bien définis, y compris leur fonctionnalité et   leurs interfaces avec d'autres modules?
  •   
  • Est-ce que toutes les fonctions énumérées dans les exigences sensiblement couvertes par   ni trop ou trop peu de modules?
  •   
  • L'architecture conçue pour tenir compte des changements probables?
  •   
  • nécessaires buy-contre-construire des décisions incluses?
  •   
  • Est-ce que l'architecture décrit comment le code Réutilisés sera fait pour se conformer aux   d'autres objectifs architecturaux?
  •   
  • sont toutes les principales structures de données cachées derrière des routines d'accès?
  •   
  • L'organisation de base de données et le contenu justifié?
  •   
  • Est-ce que tous les algorithmes clés décrits et justifiés?
  •   
  • Est-ce que tous les principaux objets décrits et justifiés?
  •   
  • Est-ce une stratégie de traitement des entrées utilisateur décrit?
  •   
  • Est-ce une stratégie de gestion des E / S décrit et justifié?
  •   
  • sont les principaux aspects de l'interface utilisateur défini?
  •   
  • L'interface utilisateur modularisé afin que les changements dans ce ne sera pas une incidence sur la   reste du programme?
  •   
  • sont des estimations de l'utilisation de la mémoire et une stratégie de gestion de la mémoire   décrit et justifié?
  •   
  • Est-ce que les budgets de l'espace et l'architecture vitesse réglée pour chaque module?
  •   
  • Est-ce une stratégie pour gérer les chaînes décrites et sont chaîne de caractères   estimations de stockage fournies?
  •   
  • Une stratégie de gestion des erreurs cohérente fournie?
  •   
  • Ce sont des messages d'erreur gérés comme un ensemble pour présenter une interface utilisateur propre?
  •   
  • Un degré de robustesse spécifié?
  •   
  • Est-ce une partie sur ou sous-architecturé? Les attentes en   ce domaine défini explicitement?
  •   
  • sont les principaux objectifs du système clairement?
  •   
  • Est-ce que toute l'architecture conceptuelle tenir ensemble?
  •   
  • est-il indépendant de conception de haut niveau de la machine et   la langue qui sera utilisée pour   mettre en œuvre?
  •   
  • sont les motivations pour toutes les décisions importantes fournies?
  •   
  • Êtes-vous, en tant que programmeur qui mettra en œuvre le système, à l'aise avec   l'architecture?
  •   

Je cherche des connaissances pratiques avec des exemples, par exemple, quels sont les points les plus douloureux dans une architecture que vous avez créé?

Était-ce utile?

La solution

D'après mes recherches, voici quelques listes de contrôle d'architecture que j'ai trouvé que cette question font un peu plus de justice, et de fournir des renseignements généraux sur ce que l'examen de l'architecture est. (Semble être un peu de confusion à ce sujet ici.)

Chacun de ces candidats potentiels comprennent un certain nombre de différentes catégories. L'importance globale de ces catégories varie quelque peu en fonction des besoins des entreprises. À mon humble avis, c'est OK. Il est beaucoup moins coûteux de poser une autre question lorsque vous passez par une liste de contrôle pour un examen et la règle dehors que de manquer une question ou d'une catégorie tout à fait, car il ne semble pas assez important d'inclure sur une liste de contrôle au départ.

Il semble également être un livre blanc écrit sur ce sujet, même si je l'ai pas lu. Il tente de répondre à cette question au cours d'environ 11 pages.

En outre, un collègue a recommandé un ensemble de livres de Springer, bien que je n'ai pas vérifié l'un de ces moi-même:

Autres conseils

D'autres points à considérer:

  • sont toutes les parties prenantes identifiées? (Exemples:. Clients, utilisateurs finaux, les analystes d'affaires, les concepteurs d'interface utilisateur, les développeurs, les testeurs, mainteneurs)? Est l'architecture vérifiée avec les parties prenantes
  • Comment la sécurité adresse de l'architecture?
  • sont les exigences de disponibilité et la fiabilité spécifiées? Comment l'adresse l'architecture de ces? (Exemples:. Le temps moyen entre pannes, temps moyen de réparation)
  • Comment est gérée la reprise après incident?

Deux bons livres pour plus d'idées:

Comment allez-vous tester

Est-il utiliser des principes solides?

est l'architecture conforme aux indications données par des fournisseurs de technologie et feuille de route?

Vous voulez obtenir le soutien de votre plate-forme choisie, pas le combattre.

par exemple. Pour des solutions centrées sur Microsoft, cela signifie la documentation où et pourquoi votre choix dévient de la conseils Microsoft architecture .

Y at-il une seule personne qui peut être responsable de l'architecture avec suffisamment de (1) les connaissances techniques de l'architecture proposée, (2) expérience dans la gestion des choses, (3) debout dans la société afin que ses décisions ne peuvent pas être remplacées par une direction qui ne sait pas une chose.

Depuis (2) et (3) ne pas vraiment dépendre de l'architecture, je trouverais la personne et lui demander ce qu'il aimerait faire.

Maintenant, vous êtes en supposant que personne (et ce n'est pas évident de votre question - ne sont appliquées que si vous pensez que vous serez toujours d'être un architecte en chef de cette chose pendant un certain temps), je prendrais un conseils de Joel sur blog du logiciel et écrire une spécification de conception, les plans, les objectifs, les clients, expliquant les choix de conception, tout. Cela devrait effacer la vue.

pensées ultérieures

J'ai essayé de penser un peu comme pour quelles questions exacte que vous pourriez vous demander après avoir écrit la spécification, comme « Est-il facile de mettre à jour votre projet », « Est-ce qu'il permet une certaine souplesse dans les objectifs finaux », « Est-ce qu'il rendre les choses faciles à soutenir », « y a-t-il des problèmes de sécurité », etc., mais, alors qu'il vaut la peine de poser des questions comme celles-ci, je ne vois pas simplement comme ils pourraient être utilisés pour toute « évaluation » parce autre que le filtrage les erreurs claires, je ne pense pas que toute question spécifique contribuerait beaucoup à «évaluer l'architecture. Peut-être que votre question bénéficierait de reformulant?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top