Você está na página 1de 18

Projeto de Software

Aula 5 - 2023/2

Profª. Sofia Costa Paiva


sofialarissa@ufg.br
Atividade
1. Identifique diretrizes gerais (boas práticas) de projeto de
software que fazem com que os software construídos sejam
protegidos, seguros, com bom desempenho e confiáveis
a. Coisas que devem estar no código-fonte ou em outros artefatos
para que o software atenda a essas características de qualidade

2
Diretrizes de projeto de sistemas confiáveis
1. Basear as decisões de proteção em uma política explícita de proteção
○ Política de controle de acesso (permissões)
2. Evitar um único ponto de falha - não confiar em um único mecanismo de
proteção (defesa em profundidade)
○ Autenticação com vários fatores (senha, verificação de
identidade/envio de SMS/código)
3. Falhar de maneira protegida
○ Guardar dados no navegador até que sejam enviados para o
servidor
4. Equilibrar a proteção e a usabilidade
○ Múltiplas senhas é contraditório com usabilidade
5. Registrar ações de usuários
○ Registrar logs dos usuários 3
Diretrizes de projeto de sistemas confiáveis
6. Usar redundância e diversidade para reduzir os riscos
○ Dados no servidor e no cliente. Servidores com sistemas
operacionais diferentes
7. Validar todas as entradas
○ Nunca aceitar uma entrada sem aplicar algumas verificações
8. Compartimentar seus ativos
○ Organizar as informações em compartimentos - níveis de acesso
9. Projetar para implantação
○ Configurar software com detalhes de ambiente (login genérico,
senhas, etc)
10. Projetar para recuperabilidade
○ Backup de autenticação, restaurar o sistema para um estado anterior
○ Projetar o sistema para negar o acesso até que todos tenham
4
alterado a senha
Diretrizes de projeto de sistemas confiáveis
11. Fornecer um tratador para todas as exceções
○ Relatar o erro e encerrar a execução
12. Minimizar o uso de construções propensas a erros
○ Recursão, paralelismo, interrupções, ponteiros, números de ponto
flutuante, alocação dinâmica de memória, herança, construções do
tipo ‘alias’, vetores não limitados e processamento de entradas
default
■ Devem ser usados o mínimo possível
13. Fornecer recursos de reiniciação
○ Reiniciar com os dados salvos e permitir erros dos usuários e que
voltem a um ponto anterior
14. Incluir timeouts ao chamar componentes externos
○ Definir um período para receber resposta do componente
15. Nomear todas as constantes que representam valores do mundo real
5
Questões Fundamentais
de Projeto

6
Como medir a qualidade de software?
● ISO/IEC 25010 define um conjunto de 8 características internas e
externas de produto de software
○ Adequação funcional
○ Confiabilidade
○ Usabilidade
○ Eficiência de desempenho
○ Segurança
○ Compatibilidade
○ Capacidade de manutenção
○ Portabilidade

7
Como medir a qualidade de software?
● ISO/IEC 25010 define um conjunto de 8 características internas e
externas de produto de software
○ Adequação funcional
○ Confiabilidade
○ Usabilidade
○ Eficiência de desempenho
○ Segurança
○ Compatibilidade
○ Capacidade de manutenção
○ Portabilidade

8
Usabilidade
● Avalia o grau no qual o produto tem atributos que permitem que seja
entendido, aprendido, usado e que seja atraente ao usuário, quando
usado sob condições especificadas.
● Subcaracterísticas
○ Apropriação reconhecível: grau em que os usuários reconhecem
que o produto é apropriado para suas necessidades
○ Intelegibilidade: grau de facilidade com que um usuário tem
para entender os conceitos-chave do software e tornar-se
competente no seu uso
○ Operabilidade: grau no qual o produto é fácil de usar e controlar

9
Usabilidade
● Avalia o grau no qual o produto tem atributos que permitem que seja
entendido, aprendido, usado e que seja atraente ao usuário, quando
usado sob condições especificadas.
● Subcaracterísticas
○ Proteção contra erro de usuário: grau em que o produto foi
projetado para evitar que o usuário cometa erros
○ Estética de interface com usuário: grau em que a interface com
o usuário proporciona prazer e uma interação satisfatória
○ Acessibilidade: grau em que o produto foi projetado para
atender a usuários com necessidades especiais

10
Usabilidade
● A interface do usuário é o elemento mais importante de um
produto ou sistema computacional
○ Se for mal projetada, pode afetar a capacidade do usuário de
aproveitar o conteúdo e processamento do software
○ Se for fraca, pode fazer com que a aplicação falhe

11
Atividade
1. Descreva a pior interface de usuário com a qual você já tenha
trabalhado até hoje e critique-a.
a. Pense em possíveis soluções para esses problemas

12
As regras de ouro
● Três importantes princípios orientam o projeto de interfaces do usuário
eficazes:
○ Deixar o usuário no comando
○ Reduzir a carga de memória do usuário
○ Tornar a interface consistente

13
As regras de ouro
● Três importantes princípios orientam o projeto de interfaces do usuário
eficazes:
○ Deixar o usuário no comando
■ “O que eu realmente gostaria é de um sistema que leia minha
mente. Ele saberia o que quero fazer antes mesmo de eu ter
de fazê-lo…”
● Usuário deseja controlar o computador e não que o
computador o controle

14
As regras de ouro
● Três importantes princípios orientam o projeto de interfaces do usuário
eficazes:
○ Deixar o usuário no comando
■ Princípios:
● Defina modos de interação para não forçar o usuário a realizar
ações desnecessárias ou indesejadas
● Proporcione interação flexível
● Possibilite que a interação de usuário possa ser interrompida e
desfeita
● Simplifique a interação à medida que os níveis de competência
avançam e permita que a interação possa ser personalizada
● Oculte os detalhes técnicos de funcionamento interno do usuário
casual
● Projete para interação direta com objetos que aparecem na tela 15
As regras de ouro
● Três importantes princípios orientam o projeto de interfaces do usuário
eficazes:
○ Deixar o usuário no comando
○ Reduzir a carga de memória do usuário
■ O sistema deve “se lembrar” de informações e auxiliar o
usuário
■ Princípios
● Reduza a demanda de memória recente
● Estabeleça defaults significativos
● Defina atalhos intuitivos
● O layout visual da interface deve se basear na metáfora do mundo
real
● Revele as informações de maneira progressiva
16
As regras de ouro
● Três importantes princípios orientam o projeto de interfaces do
usuário eficazes:
○ Deixar o usuário no comando
○ Reduzir a carga de memória do usuário
○ Tornar a interface consistente
■ Permita ao usuário inserir a tarefa atual em um contexto
significativo
■ Mantenha a consistência em uma linha de produtos
completa
■ Se modelos interativos anteriores tiverem criado
expectativa nos usuários, não faça alterações a menos que
haja uma forte razão para isso
17
As regras de ouro
● Três importantes princípios orientam o projeto de interfaces do
usuário eficazes:
○ Deixar o usuário no comando
○ Reduzir a carga de memória do usuário
○ Tornar a interface consistente
● Para obter uma interface de usuário com estes princípios é
necessário fazer um projeto organizado

18

Você também pode gostar