Engenharia de Software

Começar. É Gratuito
ou inscrever-se com seu endereço de e-mail
Engenharia de Software por Mind Map: Engenharia de Software

1. LGPD

1.1. Lei Geral de Proteção de Dados Pessoais (LGPD) A Lei Geral de Proteção de Dados Pessoais (LGPD), Lei n° 13.709/2018, foi promulgada para proteger os direitos fundamentais de liberdade e de privacidade, e a livre formação da personalidade de cada indivíduo. A Lei fala sobre o tratamento de dados pessoais, dispostos em meio físico ou digital, feito por pessoa física ou jurídica de direito público ou privado, englobando um amplo conjunto de operações que podem ocorrer em meios manuais ou digitais. No âmbito da LGPD, o tratamento dos dados pessoais pode ser realizado por dois agentes de tratamento – o Controlador e o Operador. Além deles, há a figura do Encarregado, que é a pessoa indicada pelo Controlador para atuar como canal de comunicação entre o Controlador, o Operador, os(as) titulares dos dados e a Autoridade Nacional de Proteção de Dados (ANPD). https://www.gov.br/esporte/pt-br/acesso-a-informacao/lgpd/classificacao-dos-dados

1.1.1. Glossário de Termos Técnicos da LGPD

1.1.2. Classificação dos Dados

1.1.2.1. Dados Sensíveis

1.1.2.1.1. Dentre os dados pessoais, há aqueles que exigem maior atenção no tratamento: aqueles relacionados a crianças e adolescentes; e os “sensíveis”, que são os que revelam origem racial ou étnica, convicções religiosas ou filosóficas, opiniões políticas, filiação sindical, questões genéticas, biométricas e sobre a saúde ou a vida sexual de uma pessoa. Quando o dado corresponder a menores de idade, é imprescindível obter o consentimento específico e em destaque dado por pelo menos um dos pais ou responsável legal e se limitar a pedir apenas o conteúdo estritamente necessário, sem repasse a terceiros. Poderão ser coletados dados pessoais de menores sem o consentimento, apenas, quando a coleta for necessária para contatar os pais ou o(a) responsável legal, podendo ser utilizados uma única vez e sem armazenamento, ou para sua proteção, e em nenhum caso poderão ser repassados a terceiros sem o consentimento dado por pelo menos um dos pais ou pelo(a) responsável legal. Sobre os dados sensíveis, o tratamento depende do consentimento explícito do(a) titular dos dados e para um fim definido. E, sem esse consentimento do(a) titular, a LGPD define que somente será possível, quando a informação for indispensável em situações relacionadas a uma obrigação legal; a políticas públicas; a estudos via órgão de pesquisa; ao exercício regular de direitos; à preservação da vida e da integridade física de uma pessoa; à tutela de procedimentos feitos por profissionais das áreas da saúde ou sanitária; à prevenção de fraudes contra o(a) titular.

1.1.2.2. Dados Pessoais

1.1.2.2.1. A partir da Lei n.º 13.709/2018 a proteção de dados passou a ser um compromisso dos(as) cidadãos(ãs), da administração pública e das empresas que utilizam esses dados. O dado pessoal é aquele que possibilita a identificação, direta ou indireta, da pessoa natural. São exemplos de dados pessoais: - nome e sobrenome; - data e local de nascimento; - RG; - CPF; - retrato em fotografia; - endereço residencial; - endereço de e-mail; - número de cartão bancário; - renda; - histórico de pagamentos; - hábitos de consumo; - dados de localização, como por exemplo, a função de dados de localização no celular; - endereço de IP (protocolo de internet); - testemunhos de conexão (cookies); - número de telefone.

1.1.2.3. Dados Públicos

1.1.2.3.1. O tratamento de dados pessoais públicos deve considerar a finalidade, a boa-fé e o interesse público que justificaram a sua disponibilização. A LGPD define que uma organização pode, sem precisar pedir novo consentimento, tratar dados tornados públicos pelo(a) titular em momento anterior e de forma evidente. Porém, se a organização quiser compartilhar esses dados com outras organizações, necessariamente ela deverá pedir outro consentimento para esse fim - resguardadas as hipóteses de dispensa previstas na Lei. É importante destacar que a LGPD também se relaciona com a Lei de Acesso à Informação (LAI), Lei nº 12.527/11, e com princípios constitucionais, a exemplo do inciso XXXIII, do artigo 5º: “todos têm direito a receber dos órgãos públicos informações de seu interesse particular, ou de interesse coletivo ou geral, ressalvadas aquelas cujo sigilo seja imprescindível à segurança da sociedade e do Estado”.

1.1.2.4. Dados Anonimizados

1.1.2.4.1. A anonimização é uma técnica de processamento de dados que remove ou modifica informações que possam identificar a pessoa, garantindo sua desvinculação. Nestes casos, a LGPD não se aplicará ao dado. Ressalta-se que o dado somente é considerado anonimizado se não permitir que, por meios técnicos ou outros, seja reconstruído o caminho para revelar quem é o(a) titular do dado. Se a identificação ocorrer, não se tratará de dado anonimizado, mas sim de dado pseudonimizado, e estará sujeito à LGPD.

1.1.3. Direitos do(a) Titular

1.1.3.1. O que significa ser titular de dados pessoais e quais são os seus direitos? Nos termos do art. 17 da Lei Geral de Proteção de Dados Pessoais, toda pessoa natural tem assegurada a titularidade de seus dados pessoais e garantidos os direitos fundamentais de liberdade, de intimidade e de privacidade. O(A) titular de dados é toda pessoa natural a quem se referem os dados que são objeto de tratamento. Conforme o art. 18 da LGPD, ao(à) titular estão garantidos os direitos de: confirmação da existência de tratamento; acesso aos dados; correção de dados incompletos, inexatos ou desatualizados; anonimização, bloqueio ou eliminação de dados desnecessários, excessivos ou tratados em desconformidade com o disposto na LGPD; portabilidade dos dados a outro fornecedor de serviço ou produto, mediante requisição expressa, de acordo com a regulamentação da Autoridade Nacional, observados os segredos comercial e industrial; eliminação dos dados pessoais tratados com o consentimento do(a) titular, exceto nas hipóteses previstas no art. 16 da Lei; informação das entidades públicas e privadas com as quais o Controlador realizou uso compartilhado de dados; informação sobre a possibilidade de não fornecer consentimento e sobre consequências da negativa; revogação do consentimento, nos termos do § 5.º do art. 8.º da Lei. Para solicitar acesso a dados pessoais tratados, clique aqui.

1.1.4. Princípios da LGPD

1.1.4.1. Conheça os princípios que estruturam a Lei Geral de Proteção de Dados. As atividades de tratamento de dados pessoais deverão observar a boa-fé e os seguintes princípios: Finalidade: a realização do tratamento deve ocorrer para propósitos legítimos, específicos, explícitos e informados ao(à) titular, sem possibilidade de tratamento posterior de forma incompatível com essas finalidades; Adequação: a compatibilidade do tratamento deve ocorrer conforme as finalidades informadas ao(à) titular, de acordo com o contexto do tratamento; Necessidade: o tratamento deve se limitar à realização de suas finalidades, com abrangência dos dados pertinentes, proporcionais e não excessivos em relação às finalidades do tratamento de dados; Livre acesso: é a garantia dada aos(às) titulares de consulta livre, de forma facilitada e gratuita, à forma e à duração do tratamento, bem como à integralidade de seus dados pessoais; Qualidade dos dados: é a garantia dada aos(às) titulares de exatidão, clareza, relevância e atualização dos dados, de acordo com a necessidade e para o cumprimento da finalidade de seu tratamento; Transparência: é a garantia dada aos(às) titulares de que terão informações claras, precisas e facilmente acessíveis sobre a realização do tratamento e os respectivos agentes de tratamento, observados os segredos comercial e industrial; Segurança: trata-se da utilização de medidas técnicas e administrativas qualificadas para proteger os dados pessoais de acessos não autorizados e de situações acidentais ou ilícitas de destruição, perda, alteração, comunicação ou difusão; Prevenção: compreende a adoção de medidas para prevenir a ocorrência de danos por causa do tratamento de dados pessoais; Não discriminação: sustenta que o tratamento dos dados não pode ser realizado para fins discriminatórios, ilícitos ou abusivos; Responsabilização e prestação de contas: demonstração, pelo Controlador ou pelo Operador, de todas as medidas eficazes e capazes de comprovar o cumprimento da lei e a eficácia das medidas aplicadas.

2. Heuristicas de Usabilidade

2.1. 1. Visibilidade do Status do Sistema

2.1.1. No geral o ser humano é muito dependente da visão, ainda assim, quando estamos em um ambiente físico temos outros sentidos que nos informam o que está acontecendo, quando falamos de um sistema, software ou interface essa história muda um pouco. Em ambientes digitais a dependência da visão é ainda maior e por conta disso é essencial que a interface forneça ao usuário o status em relação à sua posição dentro do sistema, ou seja, informar o usuário sobre qual ambiente ele estava, em qual ele está e para quais outros ambientes ele poderá se dirigir a partir de sua localização.

2.1.1.1. Na prática, é pensar em dar orientação, como um GPS, onde está e o que está sendo processando no ambiente de tela. Quando estamos assistindo uma playlist no Youtube, por exemplo, temos ao lado direito um indicador de qual vídeo estamos assistindo, quais os vídeos anteriores e quais os seguintes.

2.2. 2. Compatibilidade entre o sistema e o mundo real

2.2.1. Imagine que um jovem húngaro e um senhor sueco estejam trocando cartas entre si, a conversa entre ambos seria um tanto complicada considerando que eles não possuem um idioma em comum. O que quero dizer com essa analogia é que um sistema precisa falar a mesma linguagem do usuário, não estou falando apenas do idioma em si, mas da linguagem que o usuário utiliza no dia-a-dia.

2.2.1.1. Outro aspecto da compatibilidade entre sistema e mundo real são os símbolos utilizados em uma interface. Parece algo sem muita importância, mas escolher corretamente quais ícones serão utilizados para colocar em uma interface pode facilitar ou prejudicar a compreensão das informações.

2.2.1.1.1. Na prática, seria usar o ícone de salvar, que é representado por um disquete e em outra tela ao invês de salvar a ação de sair do sistema.

2.3. 3. Controle e liberdade para o usuário

2.3.1. Aquele momento em que você acaba deletando um e-mail que tinha um documento importante anexado sem querer e fica desesperado, mas ao ir até a lixeira você o encontra e fica aliviado.

2.3.1.1. O ponto aqui é que quando o usuário realiza ações por engano, algo que é frequente, o sistema deve apresentar ao usuário uma “saída de emergência” daquele estado no qual ele entrou para o estado de segurança em que estava, em outras palavras, dê ao usuário o “Ctrl+Z”, pois essa possibilidade de reverter ações remove a insegurança do usuário ao utilizar o aplicativo, site, etc.

2.4. 4. Consistência e Padronização

2.4.1. Essa heurística é um tanto simples, mas muitas vezes não aplicada na construção de interfaces. Manter consistência entre as telas de uma aplicação é essencial para não ser necessário o entendimento de vários padrões e formas de interações diferentes para cada tela, uma vez aprendido será algo replicável em outros contextos.

2.4.1.1. Além disso, a experiência de uso se torna muito mais interessante, pois não existirá aquela sensação de estar perdido. Muitas vezes o motivo pelo qual usuários não interagem com as aplicações é essa sensação causada pela falta de consistência e padronização. Um grande exemplo de consistência e padronização é o Google (Material Design).

2.5. 5. Prevenção de erros

2.5.1. Existem dois tipos de erros que os usuários normalmente cometem: o deslize e o engano. Pode até parecer a mesma coisa, mas são sutilmente diferentes. O deslize é quando um usuário pretende realizar uma ação, mas acaba realizando outra, isso acontece tipicamente quando ele não está totalmente focado em sua ação dentro da aplicação. Já o engano é quando a compreensão de alguma informação é equivocada ou entendida de outra forma.

2.5.1.1. Portanto, melhor do que mensagens dizendo que o usuário cometeu algum erro é prevenir que o mesmo não cometa esse erro. Caixas de confirmação, como as que aparecem quando você deleta um arquivo, são um exemplo de como evitar erros.

2.6. 6. Reconhecimento em vez de memorização

2.6.1. O cérebro é ótimo em reconhecer padrões e na medida em que objetos, ações e opções ficam expostos para o usuário, mais dicas chegam ao cérebro tornando certas ações familiares, ou seja, é preferível dar ao usuário formas de reconhecer padrões do que ter que obrigá-lo a memorizar várias informações na medida que ele navega pela aplicação.

2.6.1.1. A grande diferença entre reconhecer e memorizar é a quantidade de dicas fornecidas para que um conhecimento seja acessado, reconhecer padrões fornece muito mais dicas do que tentar acessar memórias. Tente lembrar de uma senha (memorização) ou tente salvar um arquivo no Excel (reconhecimento).

2.6.1.1.1. Na prática, refere-se a ambientação do usuário a tela. Seja com os labels, ícones, posicionamento de campos e etc... Ou seja, a interface não deve sobrecarregar o usuário com a carga de memorizar um novo fluxo de uso a cada tela, dificulta a UX para o usúario.

2.7. 7. Eficiência e flexibilidade de uso

2.7.1. O ideal é que a interface seja útil tanto para usuários leigos como para experientes.

2.7.1.1. Na prática, leigos precisam de informações mais detalhadas para poderem realizar tarefas, mas na medida que crescem em conhecimento sobre a interface, a necessidade de formas mais rápidas de interação para realizar uma tarefa começam a surgir. “Alt+Tab ou Ctrl+C e Crtl+V ou Windows+D” são exemplos de atalhos que permitem ao usuário mais experiente realizar tarefas mais rapidamente.

2.8. 8. Estética e design minimalista

2.8.1. Quanto maior a quantidade de informação maior será a quantidade de informações que serão analisadas e decisões que o usuário precisará tomar.

2.8.1.1. Por isso, é crucial manter apenas as informações que são realmente necessárias, as informações secundárias podem ser deixadas em segundo plano (menus, abas, etc.) assim a aplicação se torna muito eficiente no quesito transmitir informação aos usuários. Um exemplo bem bacana é o próprio Medium.

2.9. 9. Ajude os usuários a reconhecerem, diagnosticarem e recuperarem-se de erros

2.9.1. O ponto aqui é ajudá-lo a reparar um erro depois de ele ter cometido caso o “Ctrl+Z” não tenha funcionado.

2.9.1.1. Na prática, Um exemplo são aqueles avisos de formulários nos campos que não foram preenchidos corretamente. É uma forma simples de mostrar para o usuário que ele cometeu um erro, onde errou e o que precisa ser feito para corrigir tal erro.

2.10. 10. Ajuda e documentação

2.10.1. Normalmente essas são as áreas menos acessadas, mas ainda assim elas são importantes dentro de um sistema, pois nunca se sabe quando um usuário irá precisar de uma ajudinha.

2.10.1.1. É como se fosse uma maneira “faça você mesmo” do usuário resolver suas dúvidas de quais ações tomar dentro da aplicação, tornando-o mais independente do suporte.

3. Segurança da Informação