GRUPO FC LOGIC COMPONENTES:  JOÃO RIBEIRO   ADAM CASSIANI   BRUNNO AUGUSTO   JÚLIO REIS INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO
Introdução à lógica de programação
Conceito de Algoritmo - Dicionário da língua portuguesa: processo de cálculo em que um certo número de regras formais reso...
Situações habituais <ul><li>No nosso dia a dia temos alguns exemplos dessa seqüência lógica quando queremos executar uma t...
Exemplos ilustrativos <ul><ul><li>Existem alguns exemplos que servem para ilustração, dentre eles: </li></ul></ul><ul><ul>...
O que são variáveis?! <ul><li>Variável é toda e qualquer posição definida na memória do computador. Com alguns tipos: </li...
O que são variáveis?! <ul><li>Quando queremos que o computador faça alguma operação, temos que pegar os dados, lê-los e ‘g...
O que é um processo?! <ul><li>PROCESSO: é todo calculo capaz de transformar dados. Ex: A=2 B=3 faça C=A+B=5 simples assim....
Operadores <ul><li>Operadores aritméticos: </li></ul>
Operadores <ul><li>Operadores relacionais: </li></ul>
Operadores <ul><li>Operadores lógicos:  </li></ul><ul><li>Temos que ter em mente dois tipos de resposta, verdadeiro ou fal...
Operadores V- IR À PRAIA F-NÃO IR À PRAIA Cond1: se fizer sol Comd2: se tiver dinheiro. COND.1 E COND.2 RESPOSTA V E V V F...
Operadores O NÃO NEGA  A PROPOSIÇÃO SEGUINTE! NÃO COND. RESPOSTA NÃO  V F NÃO F V
Linguagem de descrição de algoritmo <ul><li>Como o próprio nome sugere, é uma linguagem utilizada para descrever um algori...
Linguagem de descrição de algoritmo   início/fim  processamento  Entrada/Saída  Decisão Imprima  média Início Leia Nota1, ...
Linguagem de descrição de algoritmo <ul><li>A linguagem gráfica não costuma ser utilizada por apresentar os seguintes prob...
Portugol <ul><li>É importante salientar que não existe um padrão em relação a sintaxe a ser seguido pelo Portugol. </li></...
Portugol Algoritmo  nome_do_algoritmo ‘ Aqui você da o nome ao algoritmo, é sempre bom dar um nome relacionado ao que ele ...
Portugol Ex:  Algoritmo  media_e_aprovado Var n1,n2,n3,m : numerica nome  :  literal Início Escreva(‘Qual o nome do aluno?...
Fundamentos da Computação
Projetos de Algoritmos
Descrição Textual análise Investigação do problema projeto Solução lógica
Descrição Textual - Análise <ul><li>Etapas de Análise   </li></ul><ul><ul><li>Objetivo:   obter uma descrição completa sob...
Descrição Textual - Análise <ul><ul><li>Especificação funcional  (características): </li></ul></ul><ul><ul><ul><li>Define ...
Descrição Textual - Projeto <ul><li>Etapa de projeto </li></ul><ul><ul><li>Objetivos: </li></ul></ul><ul><ul><ul><li>Ident...
Descrição Textual - Projeto <ul><li>O que são classes? </li></ul><ul><li>Ex.: O que gostaria de fazer? </li></ul><ul><li>1...
Descrição Textual - Projeto <ul><ul><li>Não é objetivo da etapa de projeto : </li></ul></ul><ul><ul><ul><li>Definição de e...
Descrição Textual - UML <ul><li>O que é UML? </li></ul><ul><ul><li>U nified  M odeling  L anguage  (Linguagem de Modelagem...
Descrição Textual - UML <ul><li>A UML é uma linguagem destinada a:   </li></ul><ul><ul><li>visualizar </li></ul></ul><ul><...
Descrição Textual - UML
Descrição Textual - UML <ul><li>Técnica de análise. </li></ul><ul><li>São narrativas de texto amplamente utilizadas para d...
Descrição Textual - UML
Descrição Textual - UML Exemplo:(sistema de conta corrente) Caso de Uso: Sacar dinheiro 1. Cliente informa número da conta...
Linguagem <ul><li>Uma  linguagem de programação  é um método padronizado para expressar instruções para um computador. É u...
Linguagem <ul><li>Linguagens de montagem e de macro  </li></ul><ul><li>Linguagens de microprogramação  </li></ul><ul><li>L...
Teste de Performance <ul><li>O  teste do performance  ou teste de software é um processo realizado pelo testador de softwa...
Teste de performance <ul><li>O teste de software pode ser visto como processo de qualidade de software. </li></ul><ul><li>...
Teste de performance <ul><li>Técnicas de testes: </li></ul><ul><li>Caixa Branca   –  também chamado de teste estrutural, a...
Teste de Performance <ul><li>Caixa-Preta  -  também chamado de Teste Funcional, onde não se considera o comportamento inte...
Teste de performance <ul><li>Fases de teste: </li></ul><ul><li>Teste de unidade -   é a fase do processo de teste em que s...
Teste de performance <ul><li>Teste de aceitação -  Fase de Teste em que o teste é conduzido por usuários finais do sistema...
Teste de performance <ul><li>Versões Candidatas (Release Candidates) </li></ul><ul><li>Ultimamente, e principalmente na co...
Teste de performance <ul><li>Testador </li></ul><ul><li>Automatizador de teste </li></ul><ul><li>Papéis e Pessoas </li></u...
Fundamentos da Computação
Estruturas de Dados <ul><li>Definição </li></ul><ul><li>Tipos </li></ul><ul><ul><li>Listas </li></ul></ul><ul><ul><li>Pilh...
Listas Listas Lineares Não Lineares Seqüencial Encadeada Estática Estática Dinâmicas
Lista linear seqüencial <ul><li>Definição </li></ul><ul><li>Exemplos </li></ul><ul><ul><li>Lista de Compras </li></ul></ul...
Lista linear seqüencial <ul><li>Ordenação </li></ul><ul><ul><li>Algoritmos de Ordenação </li></ul></ul><ul><ul><ul><li>Mét...
Lista linear seqüencial <ul><li>Operações </li></ul><ul><ul><li>Busca </li></ul></ul><ul><ul><li>Remoção </li></ul></ul><u...
Lista linear seqüencial <ul><li>Busca </li></ul><ul><ul><li>Seqüencial: </li></ul></ul><ul><ul><li>Binária: </li></ul></ul>
Lista linear seqüencial <ul><li>Busca Seqüencial </li></ul><ul><li>Algoritmo  BuscaSeq(dados) </li></ul><ul><li>Inicio </l...
Lista linear seqüencial <ul><li>Busca Binária </li></ul><ul><li>Algoritmo  BuscaBin(dados) </li></ul><ul><li>Declare  LI, ...
Lista linear seqüencial <ul><li>Remoção: </li></ul>A  B  C  D  E  _  G  H  I  J  L  M  N  O  P  Q  R  S  T  U  V  X  Z A  ...
Lista linear seqüencial <ul><li>Remoção </li></ul><ul><li>Algoritmo  Remoção(dados) </li></ul><ul><li>Inicio </li></ul><ul...
Lista linear seqüencial <ul><li>Inserção </li></ul><ul><ul><li>Em lista não ordenada </li></ul></ul><ul><ul><li>Em lista o...
Lista linear seqüencial <ul><li>Inserção em listas não ordenadas </li></ul><ul><li>Algoritmo  InsercNOrd </li></ul><ul><li...
Lista linear seqüencial <ul><li>Inserção em listas ordenadas </li></ul><ul><li>Algoritmo  InsereOrd </li></ul><ul><li>Decl...
Lista linear seqüencial <ul><li>Consulta </li></ul><ul><ul><li>Exibir dados </li></ul></ul>
5 1 Marcia 3216-9685 4 2 Tarcisio 3217-8541 -1 3 Eleonora 3217-8542 8 4 Roberto 3217-9652 6 5 Ana 3219-8541 7 6 Taís 32198...
Lista linear encadeada <ul><li>Simplesmente encadeada </li></ul>
Lista linear encadeada <ul><li>Duplamente Encadeada </li></ul>
Lista linear encadeada <ul><li>Com nó cabeça </li></ul>
Lista linear encadeada <ul><li>Lista Circular </li></ul>
Lista lineares especiais <ul><li>Pilhas </li></ul><ul><ul><li>Definição </li></ul></ul><ul><li>Filas </li></ul><ul><ul><li...
Filas
Pilhas
Árvores <ul><li>Elementos de uma Árvore </li></ul><ul><ul><li>Raiz </li></ul></ul><ul><ul><li>Galhos(ou Filhos) </li></ul>...
Árvores Binárias  <ul><li>Percursos em Árvore </li></ul><ul><ul><li>3.1 Em-Ordem  </li></ul></ul><ul><ul><li>3.2 Pré-Ordem...
Árvore de Busca Binária <ul><li>Operações </li></ul><ul><ul><li>Busca  </li></ul></ul><ul><ul><li>Inserção  </li></ul></ul...
Busca
Exclusão
Exclusão de nó com um filho
Exclusão de um nó com dois filhos
Árvore AVL(Adelson Velsky e Landis)  <ul><li>Operações </li></ul><ul><ul><li>Inserção </li></ul></ul><ul><ul><li>Remoção <...
Árvores Rubro-Negras
Árvore B
Arvores 2-3-4-B <ul><li>São árvores B de ordem 4 </li></ul><ul><li>São também chamadas de árvores 24B </li></ul><ul><li>Sã...
Árvore B+
Teoria dos Grafos <ul><li>Em teoria dos grafos, uma árvore binária é definida como  um grafo acíclico, conexo, dirigido e ...
ATÉ A APRESENTAÇÃO À VERA!
ATÉ A APRESENTAÇÃO À VERA!
Próximos SlideShares
Carregando em…5
×

FC-Logic

1.602 visualizações

Publicada em

Publicada em: Tecnologia, Turismo
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
1.602
No SlideShare
0
A partir de incorporações
0
Número de incorporações
132
Ações
Compartilhamentos
0
Downloads
22
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide
  • FC-Logic

    1. 1. GRUPO FC LOGIC COMPONENTES: JOÃO RIBEIRO ADAM CASSIANI BRUNNO AUGUSTO JÚLIO REIS INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO
    2. 2. Introdução à lógica de programação
    3. 3. Conceito de Algoritmo - Dicionário da língua portuguesa: processo de cálculo em que um certo número de regras formais resolvem, na generalidade e sem exceções, problemas da mesma natureza. Nós temos duas vertentes: - Lógica elementar: um conjunto de instruções que devem ser executadas em determinada ordem para atingir seu objetivo. E para que essa ordem possa ser definida, é preciso entender a seqüência lógica pensada para a execução das instruções.
    4. 4. Situações habituais <ul><li>No nosso dia a dia temos alguns exemplos dessa seqüência lógica quando queremos executar uma tarefa. Como por exemplo: </li></ul><ul><li>Para entrar em casa, precisamos encontrar a chave, colocá-la na fechadura e abrir a porta. Já dentro de casa, devemos fechar a porta atrás de nós e trancá-la novamente. Não conseguiríamos entrar sem antes usamos a chave. </li></ul>
    5. 5. Exemplos ilustrativos <ul><ul><li>Existem alguns exemplos que servem para ilustração, dentre eles: </li></ul></ul><ul><ul><li>Como colocar um elefante uma geladeira? </li></ul></ul><ul><ul><li>E como se coloca uma girafa numa geladeira? </li></ul></ul>
    6. 6. O que são variáveis?! <ul><li>Variável é toda e qualquer posição definida na memória do computador. Com alguns tipos: </li></ul><ul><li>Numérica: que guarda dados numéricos. </li></ul><ul><li>Alfanumérica: que guarda dados alfanuméricos. </li></ul><ul><li>Lógicas: que guarda dados lógicos. </li></ul>
    7. 7. O que são variáveis?! <ul><li>Quando queremos que o computador faça alguma operação, temos que pegar os dados, lê-los e ‘guardá-los’ variáveis. </li></ul>Ao lado temos: Armazene o valor 25 na posição de memória de endereço 5
    8. 8. O que é um processo?! <ul><li>PROCESSO: é todo calculo capaz de transformar dados. Ex: A=2 B=3 faça C=A+B=5 simples assim. </li></ul>
    9. 9. Operadores <ul><li>Operadores aritméticos: </li></ul>
    10. 10. Operadores <ul><li>Operadores relacionais: </li></ul>
    11. 11. Operadores <ul><li>Operadores lógicos: </li></ul><ul><li>Temos que ter em mente dois tipos de resposta, verdadeiro ou falso. Pegamos como exemplo ‘ir à praia’, se a resposta for verdadeiro iremos se não, não. Com duas condições, se não chover e se eu tiver dinheiro. </li></ul>
    12. 12. Operadores V- IR À PRAIA F-NÃO IR À PRAIA Cond1: se fizer sol Comd2: se tiver dinheiro. COND.1 E COND.2 RESPOSTA V E V V F E V F V E F F F E F F COND.1 OU COND.2 RESPOSTA V OU V V F OU V V V OU F V F OU F F
    13. 13. Operadores O NÃO NEGA A PROPOSIÇÃO SEGUINTE! NÃO COND. RESPOSTA NÃO V F NÃO F V
    14. 14. Linguagem de descrição de algoritmo <ul><li>Como o próprio nome sugere, é uma linguagem utilizada para descrever um algoritmo </li></ul><ul><li>Essa linguagem pode ser de duas formas: </li></ul><ul><li>gráfica ou escrita </li></ul>
    15. 15. Linguagem de descrição de algoritmo início/fim processamento Entrada/Saída Decisão Imprima média Início Leia Nota1, Nota2, Nota3 Média = (Nota1 + Nota2 + Nota3) / 3
    16. 16. Linguagem de descrição de algoritmo <ul><li>A linguagem gráfica não costuma ser utilizada por apresentar os seguintes problemas: </li></ul><ul><ul><li>Dificuldade na escrita, entendimento e alterações </li></ul></ul><ul><ul><li>Muito distante da realidade computacional (implementação) </li></ul></ul><ul><li>A LDA largamente utilizada é a escrita chamada: (Portugol) </li></ul>
    17. 17. Portugol <ul><li>É importante salientar que não existe um padrão em relação a sintaxe a ser seguido pelo Portugol. </li></ul><ul><ul><li>Ex: A sintaxe na declaração das variáveis, ou para que um dado saia em algum periférico de saída. </li></ul></ul><ul><li>A semântica(sentido), porém, tem que ser a mesma </li></ul>
    18. 18. Portugol Algoritmo nome_do_algoritmo ‘ Aqui você da o nome ao algoritmo, é sempre bom dar um nome relacionado ao que ele faz e o mais claro possível para melhor identificação ’ Var ‘ Aqui vão ser declaradas todas as variáveis envolvidas no algoritmo, dando seus nomes e seus tipos respectivamente’ Início ‘ Aqui vai a seqüência de todos os comandos do algoritmo que devem ser utilizados para solucionar o problema proposto’ Fim.
    19. 19. Portugol Ex: Algoritmo media_e_aprovado Var n1,n2,n3,m : numerica nome : literal Início Escreva(‘Qual o nome do aluno?’) Leia(nome) Escreva(‘Qual a 1ºnota ?’) Leia(n1) Escreva(‘Qual a 2ºnota ?’) Leia(n2) Escreva(‘Qual a 3ºnota ?’) Leia(n3) m := (n1+n2+n3)/3 se m>=6 então Escreva(nome,’APROVADO’) senão Escreva(nome,’REPROVADO’) Fim.
    20. 20. Fundamentos da Computação
    21. 21. Projetos de Algoritmos
    22. 22. Descrição Textual análise Investigação do problema projeto Solução lógica
    23. 23. Descrição Textual - Análise <ul><li>Etapas de Análise </li></ul><ul><ul><li>Objetivo: obter uma descrição completa sobre o quê o produto de software deve fazer </li></ul></ul><ul><ul><li>Resultado: descrição textual detalhada conhecida como especificação funcional </li></ul></ul><ul><ul><li>Formatos possíveis: </li></ul></ul><ul><ul><ul><li>Manual do usuário </li></ul></ul></ul><ul><ul><ul><li>Casos de uso (descrição de uma seqüência de ações que trazem benefício para o usuário do sistema) </li></ul></ul></ul>
    24. 24. Descrição Textual - Análise <ul><ul><li>Especificação funcional (características): </li></ul></ul><ul><ul><ul><li>Define completamente as tarefas que devem ser executadas. </li></ul></ul></ul><ul><ul><ul><li>Está livre de contradições internas. </li></ul></ul></ul><ul><ul><ul><li>Pode ser lida tanto por especialistas no domínio do problema como por profissionais da computação. </li></ul></ul></ul><ul><ul><ul><li>Pode ser revisada pelas diversas partes interessadas. </li></ul></ul></ul><ul><ul><ul><li>Pode ser testada contra a realidade. </li></ul></ul></ul>
    25. 25. Descrição Textual - Projeto <ul><li>Etapa de projeto </li></ul><ul><ul><li>Objetivos: </li></ul></ul><ul><ul><ul><li>Identificar as classes </li></ul></ul></ul><ul><ul><ul><li>Identificar as responsabilidades das classes </li></ul></ul></ul><ul><ul><ul><li>Identificar os relacionamentos entre as classes </li></ul></ul></ul><ul><ul><li>Resultados: </li></ul></ul><ul><ul><ul><li>Descrição textual das classes e suas responsabilidades </li></ul></ul></ul><ul><ul><ul><li>Diagramas de relacionamento entre classes </li></ul></ul></ul><ul><ul><ul><li>Diagramas de cenários de uso importantes </li></ul></ul></ul><ul><ul><ul><li>Diagramas de estado (para objetos cujo comportamento é fortemente dependente de estados) </li></ul></ul></ul>
    26. 26. Descrição Textual - Projeto <ul><li>O que são classes? </li></ul><ul><li>Ex.: O que gostaria de fazer? </li></ul><ul><li>1- Sacar dinheiro </li></ul><ul><li>2- Depositar </li></ul><ul><li>3- Consultar Extrato </li></ul>
    27. 27. Descrição Textual - Projeto <ul><ul><li>Não é objetivo da etapa de projeto : </li></ul></ul><ul><ul><ul><li>Definição de estruturas de dados </li></ul></ul></ul><ul><ul><ul><li>Definição da linguagem de programação </li></ul></ul></ul><ul><ul><li>A etapa de projeto pode consumir mais tempo que a etapa de implementação </li></ul></ul><ul><ul><li>Um bom projeto reduz o tempo de implementação e testes </li></ul></ul>
    28. 28. Descrição Textual - UML <ul><li>O que é UML? </li></ul><ul><ul><li>U nified M odeling L anguage (Linguagem de Modelagem Unificada) </li></ul></ul><ul><ul><li>É uma linguagem para a modelagem de sistemas orientados a objetos. </li></ul></ul><ul><ul><li>Um conjunto de métodos (técnicas gráficas, diagramas, e textuais) para a especificação de software </li></ul></ul>
    29. 29. Descrição Textual - UML <ul><li>A UML é uma linguagem destinada a: </li></ul><ul><ul><li>visualizar </li></ul></ul><ul><ul><li>especificar </li></ul></ul><ul><ul><li>construir </li></ul></ul><ul><ul><li>documentar </li></ul></ul><ul><li>os artefatos de um sistema de software. </li></ul>
    30. 30. Descrição Textual - UML
    31. 31. Descrição Textual - UML <ul><li>Técnica de análise. </li></ul><ul><li>São narrativas de texto amplamente utilizadas para descobrir e registrar requisitos. </li></ul><ul><li>Um caso de uso: </li></ul><ul><ul><li>Foca um cenário específico. </li></ul></ul><ul><ul><li>Um cenário indica os passos (interação atores x sistema) necessários. </li></ul></ul><ul><ul><li>Deve levar a um resultado que tenha valor para um ator. </li></ul></ul><ul><ul><li>Pode incluir variações, usualmente indicando fracassos. </li></ul></ul>Casos de Uso
    32. 32. Descrição Textual - UML
    33. 33. Descrição Textual - UML Exemplo:(sistema de conta corrente) Caso de Uso: Sacar dinheiro 1. Cliente informa número da conta. 2. Cliente informa senha. 3. Sistema valida conta corrente e senha (Validar Conta). 4. Cliente informa o valor do saque. 5. Sistema autoriza o saque e lança o débito na conta corrente. Variação: cliente inválido 3.1 Sistema não reconhece conta corrente e senha como válida. 3.2 Operação é cancelada. Variação: saldo insuficiente 5.1 Sistema não autoriza o saque do valor solicitado pelo cliente. 5.2 Operação é cancelada.
    34. 34. Linguagem <ul><li>Uma linguagem de programação é um método padronizado para expressar instruções para um computador. É um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador. </li></ul><ul><li>Classificação da ACM </li></ul><ul><li>Linguagens aplicativas, ou de aplicação </li></ul><ul><li>Linguagens concorrentes, distribuídas e paralelas </li></ul><ul><li>Linguagens de fluxo de dados </li></ul><ul><li>Linguagens de projeto </li></ul><ul><li>Linguagens estensíveis </li></ul>
    35. 35. Linguagem <ul><li>Linguagens de montagem e de macro </li></ul><ul><li>Linguagens de microprogramação </li></ul><ul><li>Linguagens não determinísticas </li></ul><ul><li>Linguagens não procedurais </li></ul><ul><li>Linguagens orientadas a objetos </li></ul><ul><li>Linguagens de aplicação especializada </li></ul><ul><li>Linguagens de altíssimo nível </li></ul><ul><li>A escolha de determinada linguagem de programação varia muito de acordo com o problema que se tem em mãos e principalmente de programador para programador. </li></ul>
    36. 36. Teste de Performance <ul><li>O teste do performance ou teste de software é um processo realizado pelo testador de software onde envolve ações que vão do levantamento de requisitos (necessidades) até a execução do teste propriamente dito. </li></ul><ul><li>Objetivo: encontrar defeitos nos produtos, para que estes possam ser corrigidos pela equipe de programadores, antes da entrega final. Encontrar o número máximo de erros dispondo do mínimo de esforço, ou seja, mostrar aos que desenvolvem se os resultados estão ou não de acordo com os padrões estabelecidos . </li></ul><ul><li>Um Projeto bem feito reduz muito o tempo do teste de performance. </li></ul>
    37. 37. Teste de performance <ul><li>O teste de software pode ser visto como processo de qualidade de software. </li></ul><ul><li>A qualidade da aplicação pode, e normalmente, varia significativamente de sistema para sistema mas sempre com os mesmos atributos qualitativos previstos na norma ISO 9126 que são: funcionalidade, confiabilidade, usabilidade, eficiência, manutenibilidade e portabilidade . </li></ul>
    38. 38. Teste de performance <ul><li>Técnicas de testes: </li></ul><ul><li>Caixa Branca – também chamado de teste estrutural, avalia o comportamento interno do componente de software. Essa técnica trabalha diretamente sobre o código-fonte do componente de software para avaliar aspectos tais como: teste de condição, teste de fluxo de dados, teste de ciclos e teste de caminhos lógicos. Um exemplo bem prático desta técnica de teste é o uso da ferramenta livre JUnit para desenvolvimento de classes de teste (test cases) para testar classes ou métodos desenvolvidos em Java . </li></ul><ul><li>Enfim este tipo de teste é desenvolvido analisando-se o código fonte e elaborando-se casos de teste que cubram todas as possibilidades do componente de software. </li></ul>
    39. 39. Teste de Performance <ul><li>Caixa-Preta - também chamado de Teste Funcional, onde não se considera o comportamento interno do software, ou seja, dados de entrada são fornecidos, o teste é executado e o resultado obtido é comparado a um resultado esperado previamente conhecido. </li></ul><ul><li>Outras Técnicas - outras técnicas de teste podem e devem ser utilizadas de acordo com necessidades de negócio ou restrições tecnológicas. Destacam-se as seguintes técnicas: Teste de Usabilidade, Teste de Carga, Teste de Stress, Teste de Confiabilidade e Teste de Recuperação. </li></ul>
    40. 40. Teste de performance <ul><li>Fases de teste: </li></ul><ul><li>Teste de unidade - é a fase do processo de teste em que se testam as menores unidades de software desenvolvidas ( pequenos trechos de código) . </li></ul><ul><li>Teste de integração – tem o objetivo de encontrar falhas provenientes da integração interna dos componentes de um sistema . </li></ul><ul><li>Ex.: um objeto A pode estar aguardando o retorno de um valor X ao executar um método do objeto B, porém este objeto B pode retornar um valor Y, desta forma gerando uma falha. </li></ul><ul><li>Teste de sistema – tem o objetivo de executar o sistema sob ponto de vista de seu usuário final . </li></ul>
    41. 41. Teste de performance <ul><li>Teste de aceitação - Fase de Teste em que o teste é conduzido por usuários finais do sistema. </li></ul><ul><li>Teste de operação - Fase de Teste em que o teste é conduzido pelos administradores do ambiente final onde o sistema ou software entrará em ambiente produtivo . Envolve teste de dados e testes de instalação, simulações com backup e restore das bases de dados, etc. </li></ul><ul><li>Teste de regressão - é uma fase de teste aplicável a uma nova versão de software ou à necessidade de se executar um novo ciclo de teste durante o processo de desenvolvimento . </li></ul><ul><li>Testes alpha, beta, gama </li></ul>
    42. 42. Teste de performance <ul><li>Versões Candidatas (Release Candidates) </li></ul><ul><li>Ultimamente, e principalmente na comunidade de software livre, é comum utilizar o termo release candidate para indicar uma versão que é candidata a ser a versão final, em função da quantidade de erros encontradas. </li></ul><ul><li>As RC, como são chamadas, são um passo além do teste beta. </li></ul><ul><li>Recursos Humanos </li></ul><ul><li>Líder do Projeto de Testes (ou Gerente de Testes) </li></ul><ul><li>Arquiteto ou engenheiro de Teste </li></ul><ul><li>Analista de Teste </li></ul><ul><li>Analista de Ambiente </li></ul>
    43. 43. Teste de performance <ul><li>Testador </li></ul><ul><li>Automatizador de teste </li></ul><ul><li>Papéis e Pessoas </li></ul><ul><li>Uma pessoa pode acumular mais de um dos papéis citados acima, de acordo com características e restrições de projetos de desenvolvimento de software nas quais estejam inseridas. </li></ul>
    44. 44. Fundamentos da Computação
    45. 45. Estruturas de Dados <ul><li>Definição </li></ul><ul><li>Tipos </li></ul><ul><ul><li>Listas </li></ul></ul><ul><ul><li>Pilhas </li></ul></ul><ul><ul><li>Filas </li></ul></ul>
    46. 46. Listas Listas Lineares Não Lineares Seqüencial Encadeada Estática Estática Dinâmicas
    47. 47. Lista linear seqüencial <ul><li>Definição </li></ul><ul><li>Exemplos </li></ul><ul><ul><li>Lista de Compras </li></ul></ul><ul><ul><li>Lista Telefônica </li></ul></ul><ul><ul><li>Etc. </li></ul></ul>
    48. 48. Lista linear seqüencial <ul><li>Ordenação </li></ul><ul><ul><li>Algoritmos de Ordenação </li></ul></ul><ul><ul><ul><li>Método da Bolha </li></ul></ul></ul>
    49. 49. Lista linear seqüencial <ul><li>Operações </li></ul><ul><ul><li>Busca </li></ul></ul><ul><ul><li>Remoção </li></ul></ul><ul><ul><li>Inserção </li></ul></ul><ul><ul><li>Consulta </li></ul></ul>
    50. 50. Lista linear seqüencial <ul><li>Busca </li></ul><ul><ul><li>Seqüencial: </li></ul></ul><ul><ul><li>Binária: </li></ul></ul>
    51. 51. Lista linear seqüencial <ul><li>Busca Seqüencial </li></ul><ul><li>Algoritmo BuscaSeq(dados) </li></ul><ul><li>Inicio </li></ul><ul><li>Vá para o início da lista </li></ul><ul><li>enquanto (não encontrar dados) e (não for o fim da lista) faça </li></ul><ul><li>se dados = elemento da lista na posição corrente então </li></ul><ul><li>retorne a posicao </li></ul><ul><li>saia da repetição </li></ul><ul><li>senão </li></ul><ul><li>passe para a próxima posição </li></ul><ul><li>Se não encontrou então </li></ul><ul><li>retorne -1 </li></ul><ul><li>Fim . </li></ul>
    52. 52. Lista linear seqüencial <ul><li>Busca Binária </li></ul><ul><li>Algoritmo BuscaBin(dados) </li></ul><ul><li>Declare LI, LS, DV : numérico </li></ul><ul><li>Inicio </li></ul><ul><li>LI  Indice do Primeiro elemento da lista </li></ul><ul><li>LS  Indice do Ultimo elemento da lista </li></ul><ul><li>DV  (LI+LS)/2 </li></ul><ul><li>enquanto (não encontrar os dados) e (LI < LS) faça </li></ul><ul><li>se dados < elemento da posição DV então </li></ul><ul><li>LS  DV-1 </li></ul><ul><li>senão </li></ul><ul><li> se dados> elemento da posição DV então </li></ul><ul><li>LI  DV+1 </li></ul><ul><li>senão </li></ul><ul><li>retorne a posicao </li></ul><ul><li>saia da repetição </li></ul><ul><li>se (LI > LS) então </li></ul><ul><li>retorne -1 </li></ul><ul><li>Fim </li></ul>
    53. 53. Lista linear seqüencial <ul><li>Remoção: </li></ul>A B C D E _ G H I J L M N O P Q R S T U V X Z A B C D E G H I J L M N O P Q R S T U V X Z A B C D E F G H I J L M N O P Q R S T U V X Z
    54. 54. Lista linear seqüencial <ul><li>Remoção </li></ul><ul><li>Algoritmo Remoção(dados) </li></ul><ul><li>Inicio </li></ul><ul><li>Busca(dados) </li></ul><ul><li>Se encontrou dados então </li></ul><ul><li>Copie os dados subseqüentes uma posição à frente </li></ul><ul><li>Senão </li></ul><ul><li>Informe que os dados não existem na estrutura </li></ul><ul><li>Fim </li></ul>
    55. 55. Lista linear seqüencial <ul><li>Inserção </li></ul><ul><ul><li>Em lista não ordenada </li></ul></ul><ul><ul><li>Em lista ordenad </li></ul></ul>
    56. 56. Lista linear seqüencial <ul><li>Inserção em listas não ordenadas </li></ul><ul><li>Algoritmo InsercNOrd </li></ul><ul><li>Inicio </li></ul><ul><li>Vá para o final da lista </li></ul><ul><li>Insira os dados na lista </li></ul><ul><li>Fim </li></ul>
    57. 57. Lista linear seqüencial <ul><li>Inserção em listas ordenadas </li></ul><ul><li>Algoritmo InsereOrd </li></ul><ul><li>Declare pos, cont : numerico </li></ul><ul><li>Inicio </li></ul><ul><li>pos  BuscaBinParaPosic(dados) </li></ul><ul><li>Para cont de 1 ate pos-1 faça </li></ul><ul><li>grave em uma lista auxiliar os registro da lista original da posicao cont </li></ul><ul><li>Grave os dados na lis auxiliar na posicao pos </li></ul><ul><li>Para cont de pos+1 ate final da lista+1 faça </li></ul><ul><li>grave na lista auxiliar os registros restantes da lista original da posição cont </li></ul><ul><li>Fim </li></ul>
    58. 58. Lista linear seqüencial <ul><li>Consulta </li></ul><ul><ul><li>Exibir dados </li></ul></ul>
    59. 59. 5 1 Marcia 3216-9685 4 2 Tarcisio 3217-8541 -1 3 Eleonora 3217-8542 8 4 Roberto 3217-9652 6 5 Ana 3219-8541 7 6 Taís 32198653 2 7 Carlos 3216-1781 3 8 Felipe 3214-2432 10 9 Lucas 3216-8574 1 10 Igor 3215-9341 9
    60. 60. Lista linear encadeada <ul><li>Simplesmente encadeada </li></ul>
    61. 61. Lista linear encadeada <ul><li>Duplamente Encadeada </li></ul>
    62. 62. Lista linear encadeada <ul><li>Com nó cabeça </li></ul>
    63. 63. Lista linear encadeada <ul><li>Lista Circular </li></ul>
    64. 64. Lista lineares especiais <ul><li>Pilhas </li></ul><ul><ul><li>Definição </li></ul></ul><ul><li>Filas </li></ul><ul><ul><li>Definição </li></ul></ul><ul><li>Filas Duplas </li></ul><ul><ul><li>Fila dupla de entrada restrita </li></ul></ul><ul><ul><li>Fila dupla de saída restrita </li></ul></ul>
    65. 65. Filas
    66. 66. Pilhas
    67. 67. Árvores <ul><li>Elementos de uma Árvore </li></ul><ul><ul><li>Raiz </li></ul></ul><ul><ul><li>Galhos(ou Filhos) </li></ul></ul><ul><ul><li>Folha (ou Nó) </li></ul></ul>
    68. 68. Árvores Binárias <ul><li>Percursos em Árvore </li></ul><ul><ul><li>3.1 Em-Ordem </li></ul></ul><ul><ul><li>3.2 Pré-Ordem </li></ul></ul><ul><ul><li>3.3 Pós-Ordem </li></ul></ul>
    69. 69. Árvore de Busca Binária <ul><li>Operações </li></ul><ul><ul><li>Busca </li></ul></ul><ul><ul><li>Inserção </li></ul></ul><ul><ul><li>Exclusão </li></ul></ul><ul><ul><li>Exclusão na folha </li></ul></ul><ul><ul><ul><li>Exclusão de um nó com um filho </li></ul></ul></ul><ul><ul><ul><li>Exclusão de um nó com dois filhos </li></ul></ul></ul><ul><ul><li>Transversal </li></ul></ul><ul><ul><li>Percurso </li></ul></ul><ul><ul><ul><li>Pré-ordem </li></ul></ul></ul><ul><ul><ul><li>Ordem Simetrica </li></ul></ul></ul><ul><ul><ul><li>Pós-ordem </li></ul></ul></ul><ul><ul><li>Ordenação </li></ul></ul>
    70. 70. Busca
    71. 71. Exclusão
    72. 72. Exclusão de nó com um filho
    73. 73. Exclusão de um nó com dois filhos
    74. 74. Árvore AVL(Adelson Velsky e Landis) <ul><li>Operações </li></ul><ul><ul><li>Inserção </li></ul></ul><ul><ul><li>Remoção </li></ul></ul><ul><ul><li>Pesquisa </li></ul></ul><ul><ul><li>Rotação </li></ul></ul><ul><ul><ul><li>Rotação à esquerda </li></ul></ul></ul><ul><ul><ul><li>Rotação à direita </li></ul></ul></ul>
    75. 75. Árvores Rubro-Negras
    76. 76. Árvore B
    77. 77. Arvores 2-3-4-B <ul><li>São árvores B de ordem 4 </li></ul><ul><li>São também chamadas de árvores 24B </li></ul><ul><li>São usadas como alternativas para as </li></ul><ul><li>árvores binárias como mecanismos de </li></ul><ul><li>organização interna de dados </li></ul>
    78. 78. Árvore B+
    79. 79. Teoria dos Grafos <ul><li>Em teoria dos grafos, uma árvore binária é definida como um grafo acíclico, conexo, dirigido e que cada nó não tem grau maior que 3 . Assim sendo, só existe um caminho entre dois nós distintos. </li></ul><ul><li>E cada ramo da árvore é um vértice dirigido, sem peso, que parte do pai e vai o filho. </li></ul>
    80. 80. ATÉ A APRESENTAÇÃO À VERA!
    81. 81. ATÉ A APRESENTAÇÃO À VERA!

    ×