Capabilities
1. Communicate precisely between developers and stakeholders
2. Communicate precisely among developers
3. Design human-computer interfaces
4. Design and maintain multi-version software
Identify and separate changeable concerns
Document to ease revision
Use parameterization
Design software that can be moved to many platforms
Design software that is easily extended or contracted
Design and maintain products that will be offered in many versions
5. Design software for reuse
6. Ensure that software products meet quality standards
7. Develop secure software
8. Create and use models in system development
9. Specify, predict, analyze and evaluate performance
10. Be disciplined in development and maintenance
11. Use metrics in system development
12. Manage complex projects