Requirements

Function Requirements

These are your use-cases. For example, for a e-commerce site, you may need to offer functionality like: search inventory, place order and review past orders.

Non-Functional Requirements

How should the system behave.

These are requirements like:

Restrictions

Restrictions limit your options.

Restrictions include: 

Priorities

We need to prioritize functional and non-functional requirements based on restrictions.

For example: may not prioritize portability if we control where the solution is to be deployed.

Implementation

Key Concepts


Software Architecture Patterns

See O'Reillys - Software Architecture Patterns

References

ReferenceURL
Software Architecture Patternshttps://github.com/gg-daddy/ebooks/blob/master/software-architecture-patterns.pdf