1.Desenvolver software iterativamente. Planejar os incrementos do sistema com base nas prioridades do cliente e
desenvolver os recursos de alta prioridade no início do processo de desenvolvimento.
2. Gerenciar os requisitos. Documentar explicitamente os requisitos do cliente e acompanhar suas mudanças. Ana
lisar o impacto das mudanças no sistema antes de aceitá-las.
3. Usar arquiteturas baseadas em componentes. Estruturar a arquitetura do sistema em componentes, conforme
discutido anteriormente neste capítulo.
4. Modelar o software visualmente. Usar modelos gráficos da UML para apresentar visões estáticas e dinâmicas do
software.
5. Verificar a qualidade do software. Assegurar que o software atenda aos padrões de qualidade organizacional.
6. Controlar mudanças do software. Gerenciar as mudanças do software, usando um sistema de gerenciamento
de mudanças e procedimentos e ferramentas de gerenciamento de configuração.
Fonte: Ian Sommerville - 9°edição