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

  • No labels