...
Use-case Driven - defining, developing, and refining software design(s) to meet known and emerging use cases enable software solutions to meet critical real-world needs.
Architecture-centric - formally documenting the “layers” of capabilities that a software system may have enables developers to identify dependencies between layers and thus allowing for shared responsibility of reducing functional complexity across the entire software solution.
Iterative and Incremental - similar to agile the Agile mindset, software solutions should be developed in small iterative and incremental ways thus affording for time to perform adequate IV&V.
...