Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Architecture and architectural decisions are primarily about the "non-functional" requirements of a system; <em>pace</em> RoadWarrier, but each of the things he mentions are consequences of the architectural decisions more than independent in and of themselves. (Proof: what leads to a particular choice in any of those domains? It's always the need to satisfy some nonfunctional requirement.)</p> <p>With that in mind, it's a two part issue. First, you need to decide what NFRs are important. preferably by stating them with some specificity using a rigorous method, eg, don't just say "highly available", say "the system must be available (MTTF/(MTTF+MTTR)) 99.99 percent, with the longest single duration outage being 4 minutes."</p> <p>Second, you need to consider what views will help you to design to satisfy these requirements <em>and justify your decisions</em>. Depending on the stringency of your requirements, this may be anything from a white board block diagram to a formal simulation study.</p> <p>In a <em>business</em> domain, say in an IT system available over a web interface, you might, for example, want:</p> <ul> <li>reliability (MMTF)</li> <li>availability (MTTF/(MTTF+MTTR))</li> <li>scaleability (system must be able to add 10 pct capacity within 72 hours at X cost)</li> <li>capacity (system must sustain 1 million active users)</li> <li>throughput (system must process 100 transactions per second mean with &sigma;=2.5 tps)</li> <li>response time (under test load user must receive full page in ≤ 2 seconds)</li> <li>security (metrics here is a topic for a while article in itself)</li> </ul> <p>You should also, if you're specifying the performance etc characteristics, describe the <em>workload</em>, ie, the size of a user's data, the arrival rate of web requests, etc.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload