Baixo acoplamento. No modelo de projeto, é necessário que as classes de projeto colaborem umas com as outras. No entanto, a colaboração deverá ser mantida em um nível mínimo aceitável. Se um modelo de projeto é altamente acoplado (todas as classes de projeto colaboram com todas as outras classes de projeto), o sistema é difícil de implementar, testar e manter com o decorrer do tempo. Um projeto deve levar a componentes que apresentem características funcionais independentes (baixo acoplamento).
Autonomia controlada. A interface deve facilitar a movimentação do usuário pela WebApp, mas deve fazê-lo de forma que faça valer convenções de navegação estabelecidas para a aplicação. Por exemplo, a navegação em trechos de segurança da WebApp deve ser controlada por meio de identificação e senhas de usuário e não deve existir nenhum mecanismo de navegação que possibilite a um usuário evitar tais controles.
Interoperabilidade. Esforço necessário para integrar um sistema a outro.
Reusabilidade. O quanto um programa [ou partes de um programa] pode ser reutilizado em outras aplicações — relacionado com o empacotamento e o escopo das funções que o programa executa.
Correção. O quanto um programa satisfaz a sua especificação e atende aos objetivos da missão do cliente.
Confiabilidade. O quanto se pode esperar que um programa realize a função pretendida com a precisão exigida.
Eficiência. A quantidade de recursos computacionais e código exigidos por um programa para desempenhar sua função.
Integridade. O quanto o acesso ao software ou dados por pessoas não autorizadas pode ser controlado.
Usabilidade. Esforço necessário para aprender, operar, preparar a entrada de dados e interpretar a saída de um programa.
Facilidade de manutenção. Esforço necessário para localizar e corrigir um erro em um programa. [Trata-se de uma definição muito limitada.]
Flexibilidade. Esforço necessário para modificar um programa em operação.
Testabilidade. Esforço necessário para testar um programa de modo a garantir que ele desempenhe a função destinada.
Portabilidade. Esforço necessário para transferir o programa de um ambiente de hardware e/ou software para outro.
TRABALHA E CONFIA!!