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:
- usability
- reliability
- efficiency
- scalability
- maintainability
Restrictions
Restrictions limit your options.
Restrictions include:
- compliance
- costs
- standards
- time to market
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
- Start with one thing at a time.
- Keep it simple. (KISS)
- Don't over engineer. You ain't gonna need it. (YAGNI)
Software Architecture Patterns
See O'Reillys - Software Architecture Patterns
References
Reference | URL |
---|---|
Software Architecture Patterns | https://github.com/gg-daddy/ebooks/blob/master/software-architecture-patterns.pdf |