| Document { |
| Chapter Functional { |
| Section Context { |
| What is this all about ? |
| How does this fit in the existing environment ? |
| You may include *rough and simple* block diagram describing the system and how |
| it interfaces with all the other system. |
| } |
| |
| Section System purpose { |
| What does the system do ? |
| } |
| |
| Section Key Functions { |
| What are the key functions of the system ? |
| } |
| |
| Section Related Business Processes { |
| Does the software implement a given business process ? How does it |
| integrates with other business processes. |
| } |
| |
| Section Actor and Roles { |
| Who are they and how the system caters their need ? |
| } |
| |
| Section Significant Scenarios { |
| What are the use and functions which are significant for the architecture |
| ? |
| Those should be described as scenarios in the form of "Given |
| [CONTEXT], then |
| } |
| } |
| Chapter Non-functional { |
| Section { } |
| } |
| Chapter Architecture { |
| Section Constraints { |
| If you have constraints, how do they affect the architecture? |
| Constraints might be related to Time, budget, resource, approved |
| technology lists, standards, skill profile of the development team. |
| } |
| Section Principles { |
| What principles do you want to adopt ? |
| |
| Example principles include; architectural layering, use of frameworks |
| and libraries, common design patterns and templates for |
| building components and common approaches (e.g. error handling, |
| logging, etc) |
| } |
| Section Logical { |
| This section purpose is to describe your software big picture. |
| |
| Typically, you should document here major components, |
| interfaces or models. |
| } |
| Section Key Internal Interfaces { |
| Synchronous or asynchronous, who has the ownership of the interfaces? |
| } |
| Section Key External Interfaces { |
| Synchronous or asynchronous, who has the ownership of the interfaces? |
| |
| Is the interface always available or do you (e.g.) need to cache data |
| locally? |
| } |
| Section Evolutions and Versioning { |
| How often does the interface change and how is versioning handled? |
| } |
| } |
| Chapter Design Guidelines { |
| } |
| Chapter Operational { |
| } |
| Chapter Architecture Justification { |
| } |
| } |