Geeks With Blogs
Pounding Code technological rantings and code samples
Architectural Checklist
  • Is the overall organization of the program clear, including good architectural overview and justification?
  • Are major building blocks well defined including their area of responsibility and their interface to other building blocks?
  • Are the functions listed in the requirements covered sensibly by neither too few or two many building blocks?
  • Are the most crucial classes described and justified?
  • Is the data design clearly defined and justified?
  • Is the database organization and content specified?
  • Are all key business rules identified and their impact on the system described?
  • Is a strategy for the user interface design described?
  • Is the user interface modularized so that changes won't affect the rest of the program?
  • Is the strategy for handling I/O described and justified?
  • Are resource-use estimates and a strategy for resource management described and justified for scare resources like threads, database connections, handles, network bandwidth and so on?
  • Are the architectural security requirements described?
  • Does the architecture describe how scalability will be achieved?
  • Does the architecture address interoperability?
  • Is a strategy or internationalization/localization described?
  • Is a coherent error handling strategy provided?
  • Is the approach to fault tolerance defined (if any is needed)?
  • Has the technical feasibility of all parts been established?
  • Is an approach to over-engineering specified?
  • Are necessary buy vs. build decisions included?
  • Does the architecture describe how reused code will be made to conform to other architectural objectives?
  • Is the architecture designed to accommodate likely changes?
  • Does the architecture account for all of the requirements?
  • Is any part over-architected or under architected? Are expectations in this area set out explicitly?
  • Does the whole architecture come together conceptually?
  • Is the top-level design independent of the machine and language that will be used to implement it?
  • Are the motivations for all major decisions provided?
  • Are the programmers who will be implementing the system comfortable with the architecture?
  • Have classic design patterns been considered where they might be incorporated into the architecture?
Posted on Saturday, September 18, 2010 2:55 PM | Back to top

Comments on this post: Software Architectural Checklist

No comments posted yet.
Your comment:
 (will show your gravatar)

Copyright © James Fleming | Powered by: