Architectural Services

  • Top-down Architecture
  • Bottom-up Architecture
  • Reverse Engineering

For software, architecture is all about analyzing the requirements and producing the necessary design diagrams and associated documentation.  Exactly what is required can vary widely depending on what you want to accomplish and who the target audience is.  But at the end of the day, it must communicate to all the necessary parties a clear picture of either what currently exists, or what will be built.

What I refer to as "Top-down Architecture" is when you do your design work _before_ you build.  Sounds like a no-brainer, but you'd probably be surprised at how often this is not done.  It's lack is certainly a contributing factor to the high failure rate of software development projects.

"Bottom-up Architecture" is when you go in after the fact, and have to focus on just a limited part of the overall system.  The purpose can be to either customize, integrate, or fix problems in an existing system.

Occasionally, I'm asked to reverse engineer a system for a customer.  You may have aquired the software through a business deal, or it may be a legacy system that nobody really understands but has been determined to be important to the business.