2008-12-17 5 views
0

Quand quelqu'un utilise le terme architecture XXX j'ai tendance à grincer des dents. Cela indique souvent qu'il y a une autre discipline ou perspective architecturale que je ne considère probablement pas. Quelles perspectives d'architecture envisagez-vous et avez-vous de bonnes ressources d'information à leur sujet? J'espère que cela aidera d'autres personnes qui travaillent leur chemin à travers la profession d'architecte.Quelles perspectives architecturales considérez-vous comme faisant partie de la conception globale de votre logiciel?

  • survivabilité
  • Performance Management
  • Surveillance opérationnelle & gestion
  • Orientation vers le service
  • TOGAF définit un certain nombre de qualité de service attribue

Désolé pour le modifier, mais vos réponses étaient sur place et je pense que la question devait être affinée.

+0

I J'ai édité ma réponse pour inclure mon point de vue bottom-up (exigences) ainsi que mon ou point de vue top-down (organisation) original. – RoadWarrior

Répondre

1

Les décisions architecturales et architecturales concernent principalement les exigences «non fonctionnelles» d'un système; pace RoadWarrier, mais chacune des choses qu'il mentionne sont des conséquences des décisions architecturales plus qu'indépendantes en elles-mêmes. (Preuve: ce qui conduit à un choix particulier dans l'un de ces domaines? Il est toujours nécessaire de satisfaire certaines exigences non fonctionnelles.)

Dans cet esprit, c'est un problème en deux parties. Premièrement, vous devez décider quels NFR sont importants. De préférence en les indiquant avec une certaine précision en utilisant une méthode rigoureuse, par exemple, ne dites pas "hautement disponible", dites "le système doit être disponible (MTTF/MTTF + MTTR)) 99,99%, avec la plus longue interruption de 4 minutes." Deuxièmement, vous devez considérer quelles vues vous aideront à concevoir pour satisfaire à ces exigences et justifier vos décisions. Selon la rigueur de vos exigences, il peut s'agir d'un diagramme en tableau blanc ou d'une étude de simulation formelle.

Dans une entreprise domaine, par exemple dans un système informatique disponible sur une interface web, vous pouvez, par exemple, veulent:

  • fiabilité (MMTF)
  • disponibilité (MTTF/(MTTF + MTTR))
  • scaleability (système doit être en mesure d'augmenter la capacité de 10 pct dans les 72 heures au coût X)
  • capacité
  • (système doit maintenir 1 million d'utilisateurs actifs)
  • Thr oughput (système doit traiter 100 transactions par seconde moyenne avec σ = 2,5 tps)
  • temps de réponse (sous utilisateur charge d'essai doit recevoir une pleine page dans ≤ 2 secondes)
  • sécurité (paramètres ici est un sujet pour un article while lui-même)

vous devez également, si vous spécifiez les performances caractéristiques, etc., le volume de travail , à savoir, la taille des données d'un utilisateur, le taux d'arrivée des demandes Web, etc.

+0

Bonne réponse Charlie. Je me rends compte que de telles questions sont susceptibles de solliciter des réponses qui vont bien au-delà de l'espace qui nous est attribué, mais c'est un excellent point de départ. Avez-vous des ressources que vous révisez régulièrement lorsque vous examinez votre architecture pour vérifier qu'elle est complète? – Ajaxx

+0

Non, mais j'écris un livre ;-) –

+0

Charlie, ta réponse est du point de vue bottom-up (exigences), alors que ma réponse est du point de vue top-down (organisation). Bien sûr, les architectes ont besoin de deux points de vue. – RoadWarrior

0
  • testabilité
  • évolutivité
  • la tolérance aux pannes
  • dégradation des performances (grâce, on l'espère)
  • évolutivité (matériel et logiciel)

BTW ce sont toutes les raisons pour lesquelles je comme les bus de service d'entreprise (ESB)!

0

EDIT: Comme la question a changé dans l'emphase, j'ai édité ma réponse comme suit. sont des termes fortement surchargées

architecture et architecte. Pour commencer, vous devez spécifier si vous parlez d'une société de logiciels (où le logiciel est le produit/service) ou d'une société de branche (où le logiciel prend en charge le produit/service). Il y a aussi la vue de haut en bas de l'architecture (ce qui compte du point de vue organisationnel) par rapport à la vue ascendante (ce qui compte du point de vue des exigences du projet).

Dans une grande entreprise ligne de business, l'architecture du haut vers le bas (organisation) point de vue est quelque chose normalement partitionné comme ceci:

  • l'architecture Domain, parfois appelée architecture d'entreprise. Par exemple, comprendre les processus de négociation des marchandises et les systèmes de TI connexes.
  • Data architecture. Par exemple, comprendre les descriptions des données stockées et des données en mouvement; des descriptions de banques de données, de groupes de données et d'éléments de données; et les mappages de ces artefacts de données aux qualités de données, aux applications et aux emplacements.
  • Technical architecture. Par exemple, comprendre la structure et le comportement de l'infrastructure technologique d'une entreprise, d'une solution ou d'un système.

Mes domaines d'architecture du bas vers le haut (exigences) point de vue ressembler à quelque chose comme ceci:

  • utilisation correcte du middleware - couplage lâche, la tolérance aux pannes, des transformations spécifiques à la cible, à point mort point, etc.
  • Identifier et optimiser autant de rapprochements que possible.
  • Identifier et optimiser autant que possible la double saisie.
  • Identifier et concevoir autant de processus manuels que possible.
  • Identification et ingénierie de toutes les solutions informatiques de l'utilisateur final - par ex. Bases de données d'accès, feuilles de calcul Excel.
  • Identification et ingénierie de toute modification de «la réponse» par l'utilisateur final - prendre des informations après que tous les travaux sont terminés, puis les modifier.
  • Étude du cycle de vie complet des données: qui en est le propriétaire, qui l'enrichit, qui le distribue, une version unique de la vérité, en supprimant les rapprochements.
  • Identifier les métriques de performances et d'évolutivité, tester les zones à risque sur plusieurs profils de données.
  • Identification des processus et des interfaces en temps réel par rapport aux traitements par lots, et élimination des dépendances par lots dans la mesure du possible.
  • Consolidation sur une plate-forme unique lorsque cela est possible, et instance unique contre plusieurs instances.
  • Capacité à gérer de nouvelles affaires de vanille rapidement, et de nouvelles affaires complexes dans des délais raisonnables.
  • Identification d'un modèle de support clair, en particulier dans les régions si nécessaire.
  • Maintenance et récupération d'état - dans quelle mesure les défaillances de traitement et d'interface quotidiennes peuvent-elles être récupérées.
  • Exigences et capacités BCP/DR, tolérance de panne générale, dépendances WAN.
  • Où le risque du projet peut-il être réduit?
  • Sécurité, accès utilisateur et développeur, anneau d'acier autour de la production.
  • Quelles sont les installations de reporting MI en place?
  • Mettre l'accent sur la simplicité autant que possible, la mise hors service du système.
+0

Je ne pourrais pas être plus d'accord avec vous sur la surcharge du terme. Je pense que trop souvent, cela mène à un manque de clarté ou à un désalignement. En ce qui concerne la structure, il s'agit vraiment d'un secteur d'activité. Si vous regardez un cadre EA comme Zachman, il capture les 3 des architectures que vous avez décrites. – Ajaxx

Questions connexes