Engenharia de software

pcbsytem
Mind Map by pcbsytem, updated more than 1 year ago
pcbsytem
Created by pcbsytem over 5 years ago
292
4

Description

Mind Map on Engenharia de software, created by pcbsytem on 06/04/2014.

Resource summary

Engenharia de software
1 Testes de Software
1.1 Qual é a importância dos testes de software?
1.1.1 Certificar que o software esta funcionando corretamente.
1.2 As atividades fundamentais para testes são:
1.2.1 Testes de componentes (teste de partes do sistema).
1.2.1.1 Os testes de componentes objetivam descobrir defeitos, testando componentes individuais do programa (funções, objetos, componentes reusáveis).
1.2.2 Teste de sistema (teste do sistema como um todo)
1.2.2.1 O teste de sistema integra esses componentes, para formar subsistemas ou sistemas completos, com o objetivo de verificar se o sistema atende aos requisitos funcionais e não funcionais, além de verificar, também, se o sistema não se comporta de maneira inesperada.
1.3 Metas do processo de testes de software
1.3.1 Demonstrar ao desenvolvedor e ao cliente que o software atende aos requisitos (testar cada requisito nos documentos de usuário e de sistema).
1.3.2 Descobrir falhas ou defeitos no software que apresenta comportamento incorreto, não desejável ou em não conformidade com sua especificação.
1.3.2.1 O teste de defeitos está relacionado à remoção de todos os tipos de comportamentos indesejáveis de sistema, como travamentos, interações indesejáveis com outros sistemas, cálculos incorretos e corrompimento de dados.
1.3.3 Para o teste de validação: um teste bem sucedido é aquele em que o sistema funciona corretamente.
1.3.4 Para o teste de dPara o teste de defeitos: um teste bem sucedido é o que expõe um defeito que causa o funcionamento incorreto do sistema.
1.3.5 Os testes não podem demonstrar que um software é livre de defeitos ou que se comportará conforme o especificado, em todas as circunstâncias.
1.3.6 -A meta do teste de software é convencer os desenvolvedores e clientes do sistema de que o software é bom o suficiente para o uso operacional.
1.3.7 -O teste é um processo com o objetivo de se atingir a confiabilidade do software.
1.4 Quem realiza os testes
1.4.1 Os programadores têm a responsabilidade de testar os componentes que desenvolveram.
1.4.2 Na próxima etapa, uma equipe é responsável por integrar os módulos de diferentes desenvolvedores e testar o sistema como um todo.
1.4.3 Para sistemas críticos, pode-se utilizar um processo mais formal, onde testadores independentes são responsáveis por todos os estágios do processo de teste.
1.5 Tipos de testes
1.5.1 1.Integração
1.5.2 2.Componentes
1.5.3 3.Projeto de casos de teste
1.5.4 4.Automação de testes
1.6 Os testes podem mostrar somente a presença de erros em um programa. Eles não podem demonstrar que não existam defeitos remanescentes.
1.7 O teste de componentes é de responsabilidade do desenvolvedor de componentes. Outra equipe de testes geralmente executa os testes do sistema.
1.8 Ao testar sistemas, deve-se tentar “quebrar” o sistema usando experiência e diretrizes para escolher os tipos de casos de teste eficazes na descoberta de defeitos em outros sistemas.
1.9 O teste de interfaces tenta descobrir defeitos nas interfaces dos componentes compostos. Defeitos de interface podem surgir devido a erros de leitura da especificação, má interpretação da especificação ou erros ou suposições inválidas de timming.
1.10 O teste estrutural baseia-se na análise de um programa para determinar seus caminhos, e no uso dessa análise para ajudar na seleção dos casos de teste.
1.11 A automação reduz os custos de teste pelo apoio ao processo de teste com uma variedade de ferramentas de software.
2 Verificação e Validação
2.1 Qual é a importância dos processos de Verificação e Validação?
2.2 É o nome dado aos processos de verificação e análise, a fim de assegurar que o software cumpra com suas especificações e atenda às necessidades dos clientes que estão pagando por ele.
2.3 Incluem as tarefas:
2.3.1 1.revisões dos requisitos;
2.3.2 2.revisões de projeto;
2.3.3 3.inspeções de código;
2.3.4 4.testes de produto.
2.4 Valição:
2.4.1 Assegurar que o software atenda às expectativas do cliente, garantindo que ele faça o que o cliente espera que faça.
2.5 Verificação:
2.5.1 Checar se o software cumpre com suas especificações, ou seja, se o sistema cumpre com seus requisitos funcionais e não funcionais.
2.6 Nível de confiabilidade depende de:
2.6.1 Função do software: o quão crítico o software é para a organização (objetivo para o qual ele foi desenvolvido).
2.6.2 Expectativas do usuário: usuário vem se tornando mais exigente e, hoje, é menos aceitável entregar sistemas não confiáveis, o que implica em maior dedicação aos processos.
2.6.3 Ambiente de mercado: o esforço a ser empregado neste processo depende de vários fatores, tais como: concorrência, preço que o cliente está disposto a pagar, cronograma.
2.7 Abordagens para a verificação e análise de sistemas neste processo
2.7.1 Inspeções de software ou revisões por pares: analisam e verificam as representações do sistema (documento de requisitos, diagramas de projeto, código-fonte do programa). Podem ser aplicadas em todos os estágios do processo. São técnicas estáticas, pois não requerem que o sistema seja executado.
2.7.2 •Testes de software: executam uma implementação do software com os dados de teste, a fim de examinar as saídas e o comportamento operacional, verificando-se, assim, se o sistema se comporta conforme o esperado. São técnicas dinâmicas.
2.8 Estrutura do plano de testes
2.8.1 1.Processo de teste: descrição das fases principais do processo de teste.
2.8.2 2.Rastreabilidadede requisitos: todos os requisitos devem ser individualmente testados.
2.8.3 3.Itens testados: especificação dos produtos do processo de software.
2.8.4 4. Cronograma de testes: apresentar um cronograma geral de testes e alocação de recursos para ele.
2.8.5 5. Procedimentos de registro de testes: trata-se do registro dos resultados dos testes. O processo de teste deve ser auditado para verificar que foi conduzido corretamente.
2.8.6 6.Requisitos de hardware e de software: ferramentas de software necessárias e a utilização estimada de hardware.
2.8.7 7.Restrições: o que afeta o processo de teste (por exemplo: falta de pessoal, falta de recursos).
2.9 Principais vantagens da Verificação e Validação em relação aos testes:
2.9.1 1.Inspeções
2.9.2 2.Revisões
2.10 Análise estática automatizada
2.10.1 12Análise estática automatizadaAnalisadores estáticos de programa são ferramentas de software que analisam o código-fonte de um programa e detectam possíveis defeitos e anomalias.
2.10.2 Não requerem que o programa seja executado.Percorrem o texto do programa e reconhecem os diferentes tipos de declarações.
2.10.3 Detecção de anomalias no programa (variáveis sem iniciação, varáveis não utilizadas, dados com valores excedidos, etc.), podendo resultar em erros de programação e de omissões).
2.10.4 Análise estática automatizada é mais bem utilizada com as inspeções de software.
2.11 Os estágios envolvidos incluem:
2.11.1 Análise do fluxo de controle: destaca loops com múltiplos pontos de saída ou de entrada e código inacessível.
2.11.2 Análise da utilização de dados: detecta variáveis que são utilizadas sem prévia iniciação, variáveis declaradas mas nunca utilizadas, etc.
2.11.3 Análise de interface: verifica a consistência das declarações de rotinas e procedimentos e seu uso; funções e procedimentos que são declarados e nunca chamados ou resultados de funções que nunca são utilizados.
2.11.4 Análise do fluxo de informações: identifica as dependências entre as variáveis de entrada e as de saída.
2.11.5 Análise de caminho: identifica todos os caminhos possíveis no programa, e exibe as declarações executadas nesse caminho.
3 Gerenciamento de Qualidade
3.1 Por que a qualidade de software é tão importante?
3.2 Qualidade de Software
3.2.1 Aprimoramento nos último anos (adoção de novas técnicas e tecnologias).
3.2.2 Conscientização da importância do gerenciamento de qualidade de software.
3.2.3 Adoção de técnicas de gerenciamento de qualidade provenientes da manufatura de software.
3.2.4 Noção de qualidade é diferente em produtos manufaturados e em sistemas de software.
3.3 Por que a qualidade de software é diferente da qualidade de produtos manufaturados?
3.3.1 A especificação deve ser orientada para as características do produto que o cliente deseja. Mas, o desenvolvedor também pode ter requisitos que não são incluídos na especificação.
3.3.2 Dificuldade em especificar determinadas características de qualidade de maneira não ambígua.
3.3.3 A dificuldade em escrever especificações de software completas pode fazer com que um produto não seja considerado de alta qualidade, por não corresponder às expectativas do cliente.
3.3.4 Alguns atributos de software como facilidade de manutenção, proteção ou eficiência não podem ser especificados explicitamente, mas são percebidos no sistema
3.3.5 “Cultura de qualidade”: desenvolvida pelos gerentes de qualidade.
3.3.6 A criação de padrões e procedimentos são a base do gerenciamento de qualidade. Entretanto, é reconhecido que existem aspectos que não podem ser incorporados em padrões (aspectos intangíveis –elegância do software, capacidade de leitura).
3.4 Documentação de qualidade
3.4.1 Documentar o gerenciamento da qualidade significa registrar o que cada equipe dentro do projeto faz.
3.4.2 Técnica utilizada principalmente no desenvolvimento de sistemas de grande porte e complexos.
3.4.3 Ajuda a verificar se tarefas não foram “esquecidas”.
3.4.4 É um meio de comunicação ao longo da existência de um sistema.
3.4.5 Permite que os responsáveis pela evolução do sistema acompanhem o que a equipe de desenvolvimento está fazendo.
3.5 O que é qualidade?
3.5.1 “Grau de conformidade de um sistema, componente ou processo com os respectivos requisitos.” (Glossário do IEEE).
3.5.2 “Grau de conformidade de um sistema, componente ou processo com as necessidades e expectativas de clientes ou usuários.”
3.5.3 A qualidade é definida por uma coleção de atributos, tais como funcionalidade, confiabilidade, satisfação do usuário e desempenho, considerados importantes, mas parciais.
3.6 Garantia de qualidade
3.6.1 “Conjunto planejado e sistemático de ações necessárias para estabelecer um nível adequado de confiança de que um item ou produto está em conformidade com seus requisitos técnicos.” (Glossário do IEEE).
3.6.2 “Conjunto planejado e sistemático de meios para garantir à gerência que os padrões, métodos, práticas e procedimentos definidos por um processo são aplicados.” (definição constante do CMMI).
3.7 Gerenciamento de qualidade de software
3.7.1 Garantia de qualidade: estabelecimento de um framework de procedimentos organizacionais e padrões que conduzem a um software de alta qualidade.
3.7.2 Planejamento de qualidade: seleção de procedimentos e padrões apropriados deste framework, adaptados para um projeto de software específico.
3.7.3 Controle de qualidade: definição e aprovação de processos que assegurem que a equipe de desenvolvimento de software tenha seguido os procedimentos e os padrões de qualidade de projeto.
3.8 Gerenciamento de qualidade de processo envolve...
3.8.1 1.Definição de padrões de processo (como e quando as revisões devem ser conduzidas).
3.8.2 2.Monitoração do processo de desenvolvimento para assegurar que os padrões estão sendo seguidos.
3.8.3 3.Relato do processo de software para a gerência de projeto e para o comprador do software.
3.9 15Importância dos padrões de software
3.9.1 São baseados no conhecimento sobre as melhores e as mais apropriadas práticas para a empresa.
3.9.2 Eles provêem um framework para a implementação do processo de garantia de qualidade.
3.9.3 Eles ajudam na continuidade (adoção das mesmas práticas), reduzindo o esforço do aprendizado quando se inicia um novo trabalho.
3.9.4 Principais instituições nacionais e internacionais que desenvolvem padrões de projetos:
3.9.5 US DoD (United States Department of Defense).
3.9.6 ANSI (American National Standards Institute).
3.9.7 BSI (British Standards Institution).
3.9.8 NATO (North Atlantic Treaty Organization).
3.9.9 IEEE (Institute of Electrical and Eletronic Engineers).
3.9.10 MPS-BR (Melhoria de Processo de Software Brasileiro)
3.9.11 As equipes de garantia de qualidade que desenvolvem padrões para uma empresa devem tomar como base os padrões nacionais e internacionais. Prover ferramentas de software para apoiar os padrões.
3.9.12 Conjunto internacional de padrões que pode ser usado no desenvolvimento de um sistema de gerenciamento de qualidade em todas as indústrias.
3.9.13 Prover ferramentas de software para apoiar os padrões.
Show full summary Hide full summary

Similar

Questões Fundamentos Eng de Software
Jamil Yahuza Felippe
12. Eng de Software:Modelo Processo Unificado
Jamil Yahuza Felippe
07. Eng de Software: Processo Evolucionário: Modelo: Concorrente
Jamil Yahuza Felippe
Engenharia de Software
Gabriel Alexandre
Quiz sobre Tecnologia no Ensino
camilafragoso
Tecnologia e Administração
Erika Lots
Tecnologia na Educação
Alessandra S.
13 motivos para usar Tecnologia na Educação
Alessandra S.
10 DICAS SOBRE TECNOLOGIA EDUCATIVA
Cristinamba
Mapa Mental de Revisão de Algoritmos e Programação I
José Toniazzo