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 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.
Situações habituais No nosso dia a dia temos alguns exemplos dessa seqüência lógica quando queremos executar uma tarefa. Como por exemplo: 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.
Exemplos ilustrativos Existem alguns exemplos que servem para ilustração, dentre eles: Como colocar um elefante uma geladeira? E como se coloca uma girafa numa geladeira?
O que são variáveis?! Variável é toda e qualquer posição definida na memória do computador. Com alguns tipos: Numérica: que guarda dados numéricos. Alfanumérica: que guarda dados alfanuméricos. Lógicas: que guarda dados lógicos.
O que são variáveis?! Quando queremos que o computador faça alguma operação, temos que pegar os dados, lê-los e ‘guardá-los’ variáveis. Ao lado temos: Armazene o valor 25 na posição de memória de endereço 5
O que é um processo?! PROCESSO: é todo calculo capaz de transformar dados. Ex: A=2 B=3 faça C=A+B=5 simples assim.
Operadores Operadores aritméticos:
Operadores Operadores relacionais:
Operadores Operadores lógicos:  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.
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
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 Como o próprio nome sugere, é uma linguagem utilizada para descrever um algoritmo Essa linguagem pode ser de duas formas:  gráfica ou escrita
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
Linguagem de descrição de algoritmo A linguagem gráfica não costuma ser utilizada por apresentar os seguintes problemas: Dificuldade na escrita, entendimento e alterações Muito distante da realidade computacional (implementação) A LDA largamente utilizada é a escrita chamada: (Portugol)
Portugol É importante salientar que não existe um padrão em relação a sintaxe a ser seguido pelo Portugol. Ex: A sintaxe na declaração das variáveis, ou para que um dado saia em algum periférico de saída. A semântica(sentido), porém, tem que ser a mesma
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.
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.
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 Etapas de Análise   Objetivo:   obter uma descrição completa sobre  o quê  o produto de software deve fazer Resultado:   descrição textual detalhada conhecida como  especificação funcional Formatos possíveis: Manual do usuário Casos de uso (descrição de uma seqüência de ações que trazem benefício para o usuário do sistema)
Descrição Textual - Análise Especificação funcional  (características): Define completamente as tarefas que devem ser executadas. Está livre de contradições internas. Pode ser lida tanto por especialistas no domínio do problema como por profissionais da computação. Pode ser revisada pelas diversas partes interessadas. Pode ser testada contra a realidade.
Descrição Textual - Projeto Etapa de projeto Objetivos: Identificar as classes Identificar as responsabilidades das classes Identificar os relacionamentos entre as classes Resultados: Descrição textual das classes e suas responsabilidades Diagramas de relacionamento entre classes Diagramas de cenários de uso importantes Diagramas de estado (para objetos cujo comportamento é fortemente dependente de estados)
Descrição Textual - Projeto O que são classes? Ex.: O que gostaria de fazer? 1- Sacar dinheiro 2- Depositar 3- Consultar Extrato
Descrição Textual - Projeto Não é objetivo da etapa de projeto : Definição de estruturas de dados Definição da linguagem de programação A etapa de projeto pode consumir mais tempo que a etapa de implementação Um bom projeto reduz o tempo de implementação e testes
Descrição Textual - UML O que é UML? U nified  M odeling  L anguage  (Linguagem de Modelagem Unificada) É uma linguagem para a modelagem de sistemas orientados a objetos. Um conjunto de métodos (técnicas gráficas, diagramas, e textuais) para a especificação de software
Descrição Textual - UML A UML é uma linguagem destinada a:   visualizar especificar construir documentar os artefatos de um sistema de software.
Descrição Textual - UML
Descrição Textual - UML Técnica de análise. São narrativas de texto amplamente utilizadas para descobrir e registrar requisitos. Um caso de uso: Foca um cenário específico. Um cenário indica os passos (interação atores x sistema) necessários. Deve levar a um resultado que tenha valor para um ator. Pode incluir variações, usualmente indicando fracassos. Casos de Uso
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. 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.
Linguagem 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. Classificação da  ACM   Linguagens aplicativas, ou de aplicação  Linguagens concorrentes, distribuídas e paralelas  Linguagens de fluxo de dados  Linguagens de projeto  Linguagens estensíveis
Linguagem Linguagens de montagem e de macro  Linguagens de microprogramação  Linguagens não determinísticas  Linguagens não procedurais  Linguagens orientadas a objetos  Linguagens de aplicação especializada  Linguagens de altíssimo nível  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.
Teste de Performance 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. 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 . Um Projeto bem feito reduz muito o tempo do teste de performance.
Teste de performance O teste de software pode ser visto como processo de qualidade de software. 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 .
Teste de performance Técnicas de testes: 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 . 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.
Teste de Performance 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. 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.
Teste de performance Fases de teste: Teste de unidade -   é a fase do processo de teste em que se testam as menores unidades de software desenvolvidas  ( pequenos trechos de código) . Teste de integração –  tem o  objetivo de encontrar falhas provenientes da integração interna dos componentes de um sistema . 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. Teste de sistema –   tem o   objetivo de executar o sistema sob ponto de vista de seu usuário final .
Teste de performance Teste de aceitação -  Fase de Teste em que o teste é conduzido por usuários finais do sistema. 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. 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 . Testes alpha, beta, gama
Teste de performance Versões Candidatas (Release Candidates) 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. As RC, como são chamadas, são um passo além do teste beta. Recursos Humanos Líder do Projeto de Testes (ou Gerente de Testes) Arquiteto ou engenheiro de Teste Analista de Teste Analista de Ambiente
Teste de performance Testador Automatizador de teste Papéis e Pessoas 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.
Fundamentos da Computação
Estruturas de Dados Definição Tipos Listas Pilhas Filas
Listas Listas Lineares Não Lineares Seqüencial Encadeada Estática Estática Dinâmicas
Lista linear seqüencial Definição Exemplos Lista de Compras Lista Telefônica Etc.
Lista linear seqüencial Ordenação Algoritmos de Ordenação Método da Bolha
Lista linear seqüencial Operações Busca Remoção Inserção Consulta
Lista linear seqüencial Busca Seqüencial: Binária:
Lista linear seqüencial Busca Seqüencial Algoritmo  BuscaSeq(dados) Inicio Vá para o início da lista  enquanto  (não encontrar dados)  e  (não for o fim da lista)  faça se  dados = elemento da lista na posição corrente  então retorne a posicao saia da repetição senão passe para a próxima posição Se  não encontrou então retorne -1 Fim .
Lista linear seqüencial Busca Binária Algoritmo  BuscaBin(dados) Declare  LI, LS, DV :  numérico Inicio LI  Indice do Primeiro elemento da lista LS  Indice do Ultimo elemento da lista DV  (LI+LS)/2 enquanto  (não encontrar os dados)  e  (LI < LS) faça se  dados < elemento da posição DV  então LS    DV-1 senão   se  dados> elemento da posição DV  então LI  DV+1 senão retorne a posicao saia da repetição  se (LI > LS) então retorne -1 Fim
Lista linear seqüencial Remoção: 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
Lista linear seqüencial Remoção Algoritmo  Remoção(dados) Inicio Busca(dados) Se  encontrou dados  então Copie os dados subseqüentes uma posição à frente Senão Informe que os dados não existem na estrutura Fim
Lista linear seqüencial Inserção Em lista não ordenada Em lista ordenad
Lista linear seqüencial Inserção em listas não ordenadas Algoritmo  InsercNOrd Inicio Vá para o final da lista Insira os dados na lista Fim
Lista linear seqüencial Inserção em listas ordenadas Algoritmo  InsereOrd Declare  pos, cont :  numerico Inicio pos    BuscaBinParaPosic(dados) Para  cont  de  1  ate  pos-1  faça grave em uma lista auxiliar os registro da lista original da posicao cont Grave os dados na lis auxiliar na posicao pos Para  cont  de  pos+1  ate  final da lista+1  faça grave na lista auxiliar os registros restantes da lista original da posição cont  Fim
Lista linear seqüencial Consulta Exibir dados
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
Lista linear encadeada Simplesmente encadeada
Lista linear encadeada Duplamente Encadeada
Lista linear encadeada Com nó cabeça
Lista linear encadeada Lista Circular
Lista lineares especiais Pilhas Definição Filas Definição Filas Duplas Fila dupla de entrada restrita Fila dupla de saída restrita
Filas
Pilhas
Árvores Elementos de uma Árvore Raiz Galhos(ou Filhos) Folha (ou Nó)
Árvores Binárias  Percursos em Árvore 3.1 Em-Ordem  3.2 Pré-Ordem  3.3 Pós-Ordem
Árvore de Busca Binária Operações Busca  Inserção  Exclusão  Exclusão na folha  Exclusão de um nó com um filho  Exclusão de um nó com dois filhos  Transversal  Percurso Pré-ordem  Ordem Simetrica Pós-ordem Ordenação
Busca
Exclusão
Exclusão de nó com um filho
Exclusão de um nó com dois filhos
Árvore AVL(Adelson Velsky e Landis)  Operações Inserção Remoção Pesquisa Rotação Rotação à esquerda Rotação à direita
Árvores Rubro-Negras
Árvore B
Arvores 2-3-4-B São árvores B de ordem 4 São também chamadas de árvores 24B São usadas como alternativas para as árvores binárias como mecanismos de organização interna de dados
Árvore B+
Teoria dos Grafos 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. E cada ramo da árvore é um vértice dirigido, sem peso, que parte do pai e vai o filho.
ATÉ A APRESENTAÇÃO À VERA!
ATÉ A APRESENTAÇÃO À VERA!

FC-Logic

  • 1.
    GRUPO FC LOGICCOMPONENTES: JOÃO RIBEIRO ADAM CASSIANI BRUNNO AUGUSTO JÚLIO REIS INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO
  • 2.
    Introdução à lógicade programação
  • 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.
    Situações habituais Nonosso dia a dia temos alguns exemplos dessa seqüência lógica quando queremos executar uma tarefa. Como por exemplo: 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.
  • 5.
    Exemplos ilustrativos Existemalguns exemplos que servem para ilustração, dentre eles: Como colocar um elefante uma geladeira? E como se coloca uma girafa numa geladeira?
  • 6.
    O que sãovariáveis?! Variável é toda e qualquer posição definida na memória do computador. Com alguns tipos: Numérica: que guarda dados numéricos. Alfanumérica: que guarda dados alfanuméricos. Lógicas: que guarda dados lógicos.
  • 7.
    O que sãovariáveis?! Quando queremos que o computador faça alguma operação, temos que pegar os dados, lê-los e ‘guardá-los’ variáveis. Ao lado temos: Armazene o valor 25 na posição de memória de endereço 5
  • 8.
    O que éum processo?! PROCESSO: é todo calculo capaz de transformar dados. Ex: A=2 B=3 faça C=A+B=5 simples assim.
  • 9.
  • 10.
  • 11.
    Operadores Operadores lógicos: 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.
  • 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.
    Operadores O NÃONEGA A PROPOSIÇÃO SEGUINTE! NÃO COND. RESPOSTA NÃO V F NÃO F V
  • 14.
    Linguagem de descriçãode algoritmo Como o próprio nome sugere, é uma linguagem utilizada para descrever um algoritmo Essa linguagem pode ser de duas formas: gráfica ou escrita
  • 15.
    Linguagem de descriçãode 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.
    Linguagem de descriçãode algoritmo A linguagem gráfica não costuma ser utilizada por apresentar os seguintes problemas: Dificuldade na escrita, entendimento e alterações Muito distante da realidade computacional (implementação) A LDA largamente utilizada é a escrita chamada: (Portugol)
  • 17.
    Portugol É importantesalientar que não existe um padrão em relação a sintaxe a ser seguido pelo Portugol. Ex: A sintaxe na declaração das variáveis, ou para que um dado saia em algum periférico de saída. A semântica(sentido), porém, tem que ser a mesma
  • 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.
    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.
  • 21.
  • 22.
    Descrição Textual análiseInvestigação do problema projeto Solução lógica
  • 23.
    Descrição Textual -Análise Etapas de Análise Objetivo: obter uma descrição completa sobre o quê o produto de software deve fazer Resultado: descrição textual detalhada conhecida como especificação funcional Formatos possíveis: Manual do usuário Casos de uso (descrição de uma seqüência de ações que trazem benefício para o usuário do sistema)
  • 24.
    Descrição Textual -Análise Especificação funcional (características): Define completamente as tarefas que devem ser executadas. Está livre de contradições internas. Pode ser lida tanto por especialistas no domínio do problema como por profissionais da computação. Pode ser revisada pelas diversas partes interessadas. Pode ser testada contra a realidade.
  • 25.
    Descrição Textual -Projeto Etapa de projeto Objetivos: Identificar as classes Identificar as responsabilidades das classes Identificar os relacionamentos entre as classes Resultados: Descrição textual das classes e suas responsabilidades Diagramas de relacionamento entre classes Diagramas de cenários de uso importantes Diagramas de estado (para objetos cujo comportamento é fortemente dependente de estados)
  • 26.
    Descrição Textual -Projeto O que são classes? Ex.: O que gostaria de fazer? 1- Sacar dinheiro 2- Depositar 3- Consultar Extrato
  • 27.
    Descrição Textual -Projeto Não é objetivo da etapa de projeto : Definição de estruturas de dados Definição da linguagem de programação A etapa de projeto pode consumir mais tempo que a etapa de implementação Um bom projeto reduz o tempo de implementação e testes
  • 28.
    Descrição Textual -UML O que é UML? U nified M odeling L anguage (Linguagem de Modelagem Unificada) É uma linguagem para a modelagem de sistemas orientados a objetos. Um conjunto de métodos (técnicas gráficas, diagramas, e textuais) para a especificação de software
  • 29.
    Descrição Textual -UML A UML é uma linguagem destinada a: visualizar especificar construir documentar os artefatos de um sistema de software.
  • 30.
  • 31.
    Descrição Textual -UML Técnica de análise. São narrativas de texto amplamente utilizadas para descobrir e registrar requisitos. Um caso de uso: Foca um cenário específico. Um cenário indica os passos (interação atores x sistema) necessários. Deve levar a um resultado que tenha valor para um ator. Pode incluir variações, usualmente indicando fracassos. Casos de Uso
  • 32.
  • 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.
    Linguagem 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. Classificação da ACM Linguagens aplicativas, ou de aplicação Linguagens concorrentes, distribuídas e paralelas Linguagens de fluxo de dados Linguagens de projeto Linguagens estensíveis
  • 35.
    Linguagem Linguagens demontagem e de macro Linguagens de microprogramação Linguagens não determinísticas Linguagens não procedurais Linguagens orientadas a objetos Linguagens de aplicação especializada Linguagens de altíssimo nível 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.
  • 36.
    Teste de PerformanceO 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. 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 . Um Projeto bem feito reduz muito o tempo do teste de performance.
  • 37.
    Teste de performanceO teste de software pode ser visto como processo de qualidade de software. 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 .
  • 38.
    Teste de performanceTécnicas de testes: 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 . 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.
  • 39.
    Teste de PerformanceCaixa-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. 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.
  • 40.
    Teste de performanceFases de teste: Teste de unidade - é a fase do processo de teste em que se testam as menores unidades de software desenvolvidas ( pequenos trechos de código) . Teste de integração – tem o objetivo de encontrar falhas provenientes da integração interna dos componentes de um sistema . 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. Teste de sistema – tem o objetivo de executar o sistema sob ponto de vista de seu usuário final .
  • 41.
    Teste de performanceTeste de aceitação - Fase de Teste em que o teste é conduzido por usuários finais do sistema. 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. 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 . Testes alpha, beta, gama
  • 42.
    Teste de performanceVersões Candidatas (Release Candidates) 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. As RC, como são chamadas, são um passo além do teste beta. Recursos Humanos Líder do Projeto de Testes (ou Gerente de Testes) Arquiteto ou engenheiro de Teste Analista de Teste Analista de Ambiente
  • 43.
    Teste de performanceTestador Automatizador de teste Papéis e Pessoas 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.
  • 44.
  • 45.
    Estruturas de DadosDefinição Tipos Listas Pilhas Filas
  • 46.
    Listas Listas LinearesNão Lineares Seqüencial Encadeada Estática Estática Dinâmicas
  • 47.
    Lista linear seqüencialDefinição Exemplos Lista de Compras Lista Telefônica Etc.
  • 48.
    Lista linear seqüencialOrdenação Algoritmos de Ordenação Método da Bolha
  • 49.
    Lista linear seqüencialOperações Busca Remoção Inserção Consulta
  • 50.
    Lista linear seqüencialBusca Seqüencial: Binária:
  • 51.
    Lista linear seqüencialBusca Seqüencial Algoritmo BuscaSeq(dados) Inicio Vá para o início da lista enquanto (não encontrar dados) e (não for o fim da lista) faça se dados = elemento da lista na posição corrente então retorne a posicao saia da repetição senão passe para a próxima posição Se não encontrou então retorne -1 Fim .
  • 52.
    Lista linear seqüencialBusca Binária Algoritmo BuscaBin(dados) Declare LI, LS, DV : numérico Inicio LI  Indice do Primeiro elemento da lista LS  Indice do Ultimo elemento da lista DV  (LI+LS)/2 enquanto (não encontrar os dados) e (LI < LS) faça se dados < elemento da posição DV então LS  DV-1 senão se dados> elemento da posição DV então LI  DV+1 senão retorne a posicao saia da repetição se (LI > LS) então retorne -1 Fim
  • 53.
    Lista linear seqüencialRemoção: 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.
    Lista linear seqüencialRemoção Algoritmo Remoção(dados) Inicio Busca(dados) Se encontrou dados então Copie os dados subseqüentes uma posição à frente Senão Informe que os dados não existem na estrutura Fim
  • 55.
    Lista linear seqüencialInserção Em lista não ordenada Em lista ordenad
  • 56.
    Lista linear seqüencialInserção em listas não ordenadas Algoritmo InsercNOrd Inicio Vá para o final da lista Insira os dados na lista Fim
  • 57.
    Lista linear seqüencialInserção em listas ordenadas Algoritmo InsereOrd Declare pos, cont : numerico Inicio pos  BuscaBinParaPosic(dados) Para cont de 1 ate pos-1 faça grave em uma lista auxiliar os registro da lista original da posicao cont Grave os dados na lis auxiliar na posicao pos Para cont de pos+1 ate final da lista+1 faça grave na lista auxiliar os registros restantes da lista original da posição cont Fim
  • 58.
    Lista linear seqüencialConsulta Exibir dados
  • 59.
    5 1 Marcia3216-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.
    Lista linear encadeadaSimplesmente encadeada
  • 61.
    Lista linear encadeadaDuplamente Encadeada
  • 62.
    Lista linear encadeadaCom nó cabeça
  • 63.
    Lista linear encadeadaLista Circular
  • 64.
    Lista lineares especiaisPilhas Definição Filas Definição Filas Duplas Fila dupla de entrada restrita Fila dupla de saída restrita
  • 65.
  • 66.
  • 67.
    Árvores Elementos deuma Árvore Raiz Galhos(ou Filhos) Folha (ou Nó)
  • 68.
    Árvores Binárias Percursos em Árvore 3.1 Em-Ordem 3.2 Pré-Ordem 3.3 Pós-Ordem
  • 69.
    Árvore de BuscaBinária Operações Busca Inserção Exclusão Exclusão na folha Exclusão de um nó com um filho Exclusão de um nó com dois filhos Transversal Percurso Pré-ordem Ordem Simetrica Pós-ordem Ordenação
  • 70.
  • 71.
  • 72.
    Exclusão de nócom um filho
  • 73.
    Exclusão de umnó com dois filhos
  • 74.
    Árvore AVL(Adelson Velskye Landis) Operações Inserção Remoção Pesquisa Rotação Rotação à esquerda Rotação à direita
  • 75.
  • 76.
  • 77.
    Arvores 2-3-4-B Sãoárvores B de ordem 4 São também chamadas de árvores 24B São usadas como alternativas para as árvores binárias como mecanismos de organização interna de dados
  • 78.
  • 79.
    Teoria dos GrafosEm 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. E cada ramo da árvore é um vértice dirigido, sem peso, que parte do pai e vai o filho.
  • 80.
  • 81.