Che cosa dovrebbe essere incluso in una lista di controllo Application Architecture?

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

  •  06-09-2019
  •  | 
  •  

Domanda

Sto cercando di trovare una lista di controllo o una serie di domande / criteri per valutare e valutare le proposte o le architetture emergenti (eseguire riviste di architettura). Quali sono le domande più importanti si chiede quando si cerca di pianificare, valutare o rivedere un'architettura?

So che questo è un grande argomento così mi piacerebbe vincolarlo ad un unico sistema end-to-end e non l'architettura per un'intera organizzazione.

codice completo fornisce un punto di partenza decente:

  

Architettura

     
      
  • L'organizzazione generale del programma chiaro, tra cui una buona   Panoramica architettonico e   giustificazione?
  •   
  • sono moduli ben definiti, tra cui la loro funzionalità e   le loro interfacce verso altri moduli?
  •   
  • sono tutte le funzioni elencate nei requisiti coperto sensibilmente, da   né troppi o troppo pochi moduli?
  •   
  • è l'architettura progettata per ospitare le probabili modifiche?
  •   
  • sono necessari buy-vs-costruire decisioni incluso?
  •   
  • Fa l'architettura descrivono come riutilizzati codice sarà messa a conformarsi alle   altri obiettivi architettonici?
  •   
  • Sono tutte le principali strutture di dati nascosti dietro le routine di accesso?
  •   
  • è l'organizzazione e il contenuto del database è giustificata?
  •   
  • Sono tutti gli algoritmi a chiave descritto e giustificato?
  •   
  • sono tutti i principali oggetti descritti e giustificati?
  •   
  • è una strategia per la gestione dell'input dell'utente descritto?
  •   
  • è una strategia per la gestione I / O descritto e giustificato?
  •   
  • Sono aspetti chiave dell'interfaccia utente definito?
  •   
  • è l'interfaccia utente modularizzati modo che le modifiche in esso non influirà sul   resto del programma?
  •   
  • sono la memoria uso di stime e di una strategia per la gestione della memoria   descritto e giustificato?
  •   
  • Fa l'architettura set spazio e velocità bilanci per ciascun modulo?
  •   
  • è una strategia per la gestione di stringhe descritte, e sono delle stringhe di caratteri   stime di storage forniti?
  •   
  • è una strategia di gestione degli errori coerente fornito?
  •   
  • sono i messaggi di errore gestiti come un insieme di presentare un'interfaccia utente pulita?
  •   
  • è un livello di robustezza specificato?
  •   
  • è qualsiasi parte sovra o sotto-architettato? Sono le aspettative in   questa zona enunciato esplicitamente?
  •   
  • sono i principali obiettivi del sistema detto chiaramente?
  •   
  • Fa tutta l'architettura appendere insieme concettualmente?
  •   
  • è il top-level design indipendente della macchina e   la lingua che verrà utilizzata per   attuarlo?
  •   
  • sono le motivazioni per tutte le principali decisioni di?
  •   
  • Sei, come un programmatore che implementerà il sistema, confortevole, con   l'architettura?
  •   

Sto cercando la conoscenza pratica con esempi, per esempio, quali sono stati i punti più dolorosi di un'architettura che hai creato?

È stato utile?

Soluzione

Sulla base della mia ricerca, qui ci sono alcune liste di controllo di architettura che ho trovato che fanno questa domanda un po 'più di giustizia, e di fornire qualche informazione su ciò che una revisione architettura. (Sembra essere un po 'di confusione su di esso qui.)

Ognuno di questi potenziali candidati comprendono un certo numero di categorie diverse. L'importanza globale di queste categorie varierà leggermente a seconda delle esigenze aziendali. IMHO, va bene. E 'molto meno costoso per fare un'altra domanda quando si passa attraverso una lista di controllo per una revisione e lo escludo che è di perdere una domanda o una categoria del tutto, perché non sembrava abbastanza importante includere in una lista di controllo inizialmente.

Ci sembra anche essere un white-paper scritto su questo argomento, anche se io non l'ho letto. Si tenta di rispondere a questa domanda nel corso di circa 11 pagine.

Inoltre, un collega raccomandato una serie di libri da Springer, anche se non ho controllato uno di questi fuori me stesso:

  • Il Enterprise Series Ingegneria da Springer

Altri suggerimenti

Alcuni altri punti da considerare:

  • identificazione di tutte le parti interessate? (Esempi:. Clienti, utenti finali, analisti di business, progettisti di interfacce utente, sviluppatori, tester, manutentori)? È l'architettura verificato con gli stakeholder
  • Come funziona la sicurezza dell'architettura indirizzo?
  • sono i requisiti per la disponibilità e l'affidabilità specificati? In che modo l'architettura affrontare questi? (Esempi:. Mean Time Between Failures, tempo di riparare media)
  • Come viene gestito il ripristino di emergenza?

Due buoni libri per più idee:

Come hai intenzione di testarlo

La usa solidi principi?

è l'architettura in linea con la guidance e tabella di marcia dei fornitori di tecnologia?

Si desidera ottenere supporto dalla tua piattaforma scelta, non combatterlo.

es. Per le soluzioni Microsoft centric significa documentare dove e perché le scelte si discostano dalla rel="nofollow Microsoft Architettura guida .

C'è una sola persona che può essere responsabile per l'architettura con abbastanza (1) conoscenze tecniche di architettura proposta, (2) esperienza nella gestione di cose, (3) in piedi nella società in modo che le sue decisioni non possono essere sostituite da una gestione che non sa nulla.

Dal momento che (2) e (3) in realtà non dipendono l'architettura, avrei trovato la persona e chiedergli cosa gli piacerebbe fare.

Ora supponendo che si sta quella persona (e che non è evidente dalla tua domanda - che si applica solo se si pensa ci si può comunque con l'essere un architetto capo di questa cosa per un po '), mi piacerebbe prendere un consiglio di Joel On Software blog e scrivere una specifica di progetto, con i piani, gli obiettivi, i clienti, spiegano scelte progettuali, tutto. Questo dovrebbe cancellare la vista.

pensieri successivi

Ho cercato di pensare un po 'come per i quali domande esatto si potrebbe chiedere se stessi dopo aver scritto la specifica, come 'E 'facile per aggiornare il vostro progetto', 'Ha permette flessibilità nella obiettivi finali', 'Volontà rendere le cose facili per sostenere', 'ci sono problemi di sicurezza', ecc, ma, mentre vale la pena di porre domande come queste, io semplicemente non vedo alcun modo potevano essere utilizzati per qualsiasi 'valutazione', perché diverso da quello con il filtraggio gli errori evidenti non credo che nessuna specifica questione aiuterebbe molto a 'valutare l'architettura'. Forse la tua domanda trarrebbe beneficio da riformulare?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top