Software architecture and Design Patterns

June 14, 2022
New Kids on the Block in 1989


Although other sections of the software guidebook describe the overall architecture of the
software, often you’ll want to present lower level details to explain how things work. This is
what the code section is for. Some software architecture documentation templates call this
the “implementation view” or the “development view”.

The purpose of the code section is to describe the implementation details for parts of the software system that are important, complex, significant, etc. For example If you use Java, I’ve written about the following for software projects that I’ve been involved in:

  • Generating/rendering HTML: a short description of an in-house framework that was created for generating HTML, including the major classes and concepts.
  • Data binding: our approach to updating business objects as the result of HTTP POST requests.
  • Multi-page data collection: a short description of an in-house framework we used for building forms that spanned multiple web pages.
  • Web MVC: an example usage of the web MVC framework that was being used.
  • Security: our approach to using Windows Identity Foundation (WIF) for authentication and authorisation.
  • Domain model: an overview of the important parts of the domain model.
  • Component framework: a short description of the framework that we built to allow components to be reconfigured at runtime.
  • Configuration: a short description of the standard component configuration mechanism in use across the codebase.
  • Architectural layering: an overview of the layering strategy and the patterns in use to implement it.
  • Exceptions and logging: a summary of our approach to exception handling and logging across the various architectural layers.
  • Patterns and principles: an explanation of how patterns and principles are implemented.
See also:
Share this Post
latest post
follow us