Aula 04 Princípios de Modularidade 3 e Introdução à Teste de Software Alessandro Garcia
|
|
- Luciana Henriques
- 4 Há anos
- Visualizações:
Transcrição
1 Aula 04 Princípios de Modularidade 3 e Introdução à Teste de Software Alessandro Garcia LES/DI/PUC-Rio Março 2017
2 Avisos O horário de monitoria será no seguinte horário: 6ª. Feira, 13:00 15:00 (15 alunos podem neste horário) Monitoria: Profs. Alexander e Leonardo s: alopez@inf.puc-rio.br e lsousa@inf.puc-rio.br Local: Pe. Leonel Franca, 9º. Andar, porta de vidro à esquerda segundo horário com agendamento prévio por com os monitores NOTA 2: Vários exemplos usados em aula são parte do arcabouço de teste disponível no website podem executá-los de forma a entender melhor os exemplos NOTA 3: Instale o arcabouço de teste em sua máquina Aba Software do site; arquivo Leiame.pdf tem instruções NOTA 4: Leia a monografia do arcabouço - Aba Publicações Alessandro Garcia LES/DI/PUC-Rio 2 /32
3 Especificação Módulos em C: separação de interfaces providas e implementação como documentar as interfaces e implementações do módulo Introdução a teste de software motivação para os testes definição de teste de software caso de teste e massa de teste Referências básicas: Capítulo 5 do livro texto Monografia: Arcabouço para a Automação de Testes de Programas Redigidos em C; contido no arquivo TesteAutomatizado.zip acessível para download através do site da disciplina, aba: Software Alessandro Garcia LES/DI/PUC-Rio 3 /32
4 Princípios Discutidos até aqui Cada módulo deveria implementar uma única abstração Promover encapsulamento Reduzir acoplamento e aumentar coesão Maximizar a declaração e documentação da interface: sintaxe e semântica Garantir corretude sintática e semântica em conexões entre funções/módulos nomes apropriados para funções e parâmetros o código do módulo cliente e/ou servidor deve checar tal corretude (garantia de contrato) Separação: interface da implementação de um módulo hoje: detalhamento da organização da interface e implementação do módulo 4 /26
5 Exemplo de Módulo em C Módulo árvore implementa uma estrutura genérica de árvores binárias manipuláveis através de um conjunto limitado de funções detalhes internos (organização de dados) não são visíveis para os usuários da estrutura árvore Alessandro Garcia LES - DI/PUC-Rio 5 /26
6 Exemplo de Módulo em C Módulo árvore implementa uma estrutura genérica de árvores binárias manipuláveis através de um conjunto limitado de funções detalhes internos (organização de dados) não são visíveis para os usuários da estrutura árvore Alessandro Garcia LES - DI/PUC-Rio 6 /26
7 Exemplo de Módulo em C Discutindo Estrutura do arquivo ARVORE.h Estrutura do arquivo ARVORE.c Alessandro Garcia LES - DI/PUC-Rio 7 /26
8 Vide exemplo de código distribuído Qual é a declaração de tipo que falta no arquivo da interface provida (header) do módulo ARVORE? Por que isso deveria estar declarado na interface? Alessandro Garcia LES - DI/PUC-Rio 8 /26
9 Interface implícita int ARV_InserirEsquerda( char ValorParm ) int CondRet ; tpnoarvore * pcorr ; tpnoarvore * pno ; /* Tratar vazio, esquerda */ CondRet = CriarNoRaiz( ValorParm ) ; if ( CondRet!= 0 ) return 1 ; } /* if */ /* Criar nó à esquerda de folha */ pcorr = parvore->pnocorr ; if ( pcorr == NULL ) return 2 ; } /* if */ Possíveis valores de retorno indicando eventos para a função/módulo cliente?? if ( pcorr->pnoesq == NULL ) pno = CriarNo( ValorParm ) ; if ( pno == NULL ) return 8 ; } /* if */ pno->pnopai = pcorr ; pcorr->pnoesq = pno ; parvore->pnocorr = pno ; return 0 ; } /* if */ /* Tratar não folha à esquerda */ return 3 ; Ago 2009 Alessandro Garcia LES - DI/PUC-Rio 9 /26???
10 Interface implícita int ARV_InserirEsquerda( char ValorParm ) int CondRet ; tpnoarvore * pcorr ; tpnoarvore * pno ; /* Tratar vazio, esquerda */ CondRet = CriarNoRaiz( ValorParm ) ; if ( CondRet!= 0 ) return 1 ; } /* if */ /* Criar nó à esquerda de folha */ pcorr = parvore->pnocorr ; if ( pcorr == NULL ) return 2 ; } /* if */ if ( pcorr->pnoesq == NULL ) pno = CriarNo( ValorParm ) ; if ( pno == NULL ) return 8 ; } /* if */ pno->pnopai = pcorr ; pcorr->pnoesq = pno ; parvore->pnocorr = pno ; return 0 ; } /* if */ /* Tratar não folha à esquerda */ return 3 ; Possíveis valores de retorno indicando eventos para a função/módulo cliente não criou nó raiz estrutura da árvore está errada faltou memória ao alocar dados inserção foi OK tentou inserir em um nó que nã é folha a esquerda Ago 2009 Alessandro Garcia LES - DI/PUC-Rio 10 /26
11 Passo 2: Indicando os símbolos com ARV_tpCondRet ARV_InserirEsquerda( char ValorParm ) ARV_tpCondRet CondRet ; tpnoarvore * pcorr ; tpnoarvore * pno ; /* Tratar vazio, esquerda */ CondRet = CriarNoRaiz( ValorParm ) ; if ( CondRet!= ARV_CondRetNaoCriouRaiz ) return CondRet ; } /* if */ /* Criar nó à esquerda de folha */ pcorr = parvore->pnocorr ; if ( pcorr == NULL ) return ARV_CondRetErroEstrutura ; } /* if */ significados dos eventos if ( pcorr->pnoesq == NULL ) pno = CriarNo( ValorParm ) ; if ( pno == NULL ) return ARV_CondRetFaltouMemoria ; } /* if */ pno->pnopai = pcorr ; pcorr->pnoesq = pno ; parvore->pnocorr = pno ; return ARV_CondRetOK ; } /* if */ /* Tratar não folha à esquerda */ return ARV_CondRetNaoEhFolha ; Ago 2009 Alessandro Garcia LES - DI/PUC-Rio 11 /26 } /* Fim função: ARV Adicionar filho à esquerda */
12 Passo 1: Tipo com lista de eventos /*********************************************************************** *$TC Tipo de dados: ARV Condicoes de retorno ************************************************************************/ typedef enum ARV_CondRetOK = 0, /* Executou correto */ ARV_CondRetNaoCriouRaiz = 1, /* Não criou nó raiz */ Evento normal Eventos excepcionais ARV_CondRetErroEstrutura = 2, /* Estrutura da árvore está errada */ ARV_CondRetNaoEhFolha = 3, /* Não é folha relativa à direção de inserção desejada */ ARV_CondRetArvoreNaoExiste = 4, /* Árvore não existe */ ARV_CondRetArvoreVazia = 5, /* Árvore está vazia */ ARV_CondRetNohEhRaiz = 6, /* Nó corrente é raiz */ ARV_CondRetNaoPossuiFilho = 7, /* Nó corrente não possui filho na direção desejada */ ARV_CondRetFaltouMemoria = 8 /* Faltou memória ao alocar dados */ } ARV_tpCondRet ; Mar 2009 Alessandro Garcia LES/DI/PUC-Rio 12 /32
13 Passo 2: Indicando os símbolos com ARV_tpCondRet ARV_InserirEsquerda( char ValorParm ) ARV_tpCondRet CondRet ; tpnoarvore * pcorr ; tpnoarvore * pno ; /* Tratar vazio, esquerda */ CondRet = CriarNoRaiz( ValorParm ) ; if ( CondRet!= ARV_CondRetNaoCriouRaiz ) return CondRet ; } /* if */ /* Criar nó à esquerda de folha */ pcorr = parvore->pnocorr ; if ( pcorr == NULL ) return ARV_CondRetErroEstrutura ; } /* if */ significados dos eventos if ( pcorr->pnoesq == NULL ) pno = CriarNo( ValorParm ) ; if ( pno == NULL ) return ARV_CondRetFaltouMemoria ; } /* if */ pno->pnopai = pcorr ; pcorr->pnoesq = pno ; parvore->pnocorr = pno ; return ARV_CondRetOK ; } /* if */ /* Tratar não folha à esquerda */ return ARV_CondRetNaoEhFolha ; Ago 2009 Alessandro Garcia LES - DI/PUC-Rio 13 /26 } /* Fim função: ARV Adicionar filho à esquerda */
14 Tornando eventos explícitos na interface /******************************************************************* **** * * $FC Função: ARV Adicionar filho à esquerda * * $EP Parâmetros * $P ValorParm - valor a ser inserido no novo nó. * * $FV Valor retornado * ARV_CondRetOK * ARV_CondRetNaoCriouRaiz * ARV_CondRetErroEstrutura * ARV_CondRetFaltouMemoria * ARV_CondRetNaoEhFolha - caso não seja folha para a esquerda * ******************************************************************** ***/ ARV_tpCondRet ARV_InserirEsquerda( char ValorParm ) ; Alessandro Garcia LES - DI/PUC-Rio 14 /26
15 Investindo em modularidade... Por que separar interface da implementação de módulos? Alessandro Garcia LES - DI/PUC-Rio 15 /26
16 Módulos em C Módulo de declaração ( x.h) ou header file estabelece a interface externada do módulo documentação da interface código da interface destina-se a programadores clientes do módulo programadores desenvolvedores ou mantenedores do correspondente módulo de implementação testadores usando teste caixa-preta aos redatores da documentação para o usuário ao compilador ao compilar um módulo cliente ao compilar o correspondente módulo de implementação Alessandro Garcia LES/DI/PUC-Rio 16 /32
17 Módulos em C Módulo de implementação ( x.c ) contém a inclusão do módulo de declaração próprio as inclusões de todos módulos de declaração dos quais é cliente especificação e implementação do dados manipulados pelo módulo estruturas de dados (e.g. estrutura do nó e cabeça da árvore) as declarações de elementos encapsulados o código executável do módulo código das funções destinam-se aos programadores desenvolvedores ou mantenedores lêem e interagem inúmeras vezes com o texto ao compilador Alessandro Garcia LES/DI/PUC-Rio 17 /32
18 Até aqui... Princípios de modularidade para programação que levam a programas de qualidade satisfatória por construção Módulos com interfaces bem definidas Garantir corretude em conexões É desnecessário então conduzir um teste sistemático? 18 / 30 LES/DI/PU
19 Até aqui... Princípios de modularidade para programação que levam a programas de qualidade satisfatória por construção Módulos com interfaces bem definidas É desnecessário então conduzir um teste sistemático? Não, mesmo programas modulares por construção contém faltas Objetivo: aplicar sistematicamente execução de testes para maximizar chances de obter software de confiabilidade satisfatória encontrar faltas remanescentes no software 19 / 30 LES/DI/PU
20 Por que testar módulos? Programas podem conter defeitos (ou faltas) que, quando exercitados, provocam erros de funcionamento. Quando observados estes erros passam a ser falhas. defeito: código errado (falta: a mesma coisa que defeito) erro: estado diferente do esperado ou desejado, ainda não observado falha: estado diferente do esperado ou desejado, observado 20 / 30 LES/DI/PU
21 Qualidade do software em execução Resultados Dados Usuário Produtor cria elemento Elemento g Falha c e j a d f h?? Observador de erros Sistema b Engano do produtor introduz defeito Defeito Causa endógena provoca um erro Causa exógena provoca um erro Erro i? k? Lesão (conseqüência de erro não observado) 21 /41
22 Exemplo falta introduzida no uso de cláusulas if... int map( int i ) if( i > 0 ) if( i > 10 ) return 10; else return 1; return 0; } (versão simplicada de uma função de mapeamento) A intenção do programador é a seguinte: i >10 retornar 10 i in retornar 0 i <= 0 retornar 1 Qual é o resultado de chamar a função map com o valor de argumento 11? LES/DI/PUC-Rio 22 / 30
23 Exemplo int map( int i ) if( i > 0 ) if( i > 10 ) return 10; else return 1; return 0; } A intenção do programador é a seguinte: i >10 retornar 10 i in retornar 0 i <= 0 retornar 1 Qual é o resultado de chamar a função map com o valor de argumento 5? -1 LES/DI/PUC-Rio 23 / 30
24 Exemplo associação desejada public int map( int i ) if( i > 0 ) } if( i > 10 ) return 10; else return 1; return 0; Qual é o resultado de chamar a função map com o valor de argumento -3? Qual é a falta introduzida pelo programador? 0 associação real falta ou defeito A intenção do programador é a seguinte: i >10 retornar 10 i in retornar 0 i <= 0 retornar 1 O comportamento real é: i >10 retornar 10 i in retornar -1 i <= 0 retornar 0 O compilador, na prática, associa a cláusula else com o if interno LES/DI/PUC-Rio 24 / 30
25 Exemplo associação desejada public int map( int i ) if( i > 0 ) } if( i > 10 ) return 10; else return 1; return 0; associação real Quais são as possíveis situações de erro? Erros: momento em que tais retornos são gerados falta ou defeito A intenção do programador é a seguinte: i >10 retornar 10 i in retornar 0 i <= 0 retornar 1 O comportamento real é: i >10 retornar 10 i in retornar -1 i <= 0 retornar 0 O compilador, na prática, associa a cláusula else com o if interno LES/DI/PUC-Rio 25 / 30
26 Exemplo associação desejada public int map( int i ) if( i > 0 ) } if( i > 10 ) return 10; else return 1; return 0; associação real Erros: momento em que tais retornos são gerados FALHA: pode ser observada pelo usuário ou administrador... falta ou defeito A intenção do programador é a seguinte: i >10 retornar 10 i in retornar 0 i <= 0 retornar 1 O comportamento real é: i >10 retornar 10 i in retornar -1 i <= 0 retornar 0 O compilador, na prática, associa a cláusula else com o if interno LES/DI/PUC-Rio 26 / 30
27 O que é testar um módulo? Teste é uma das técnicas dinâmicas de controle de qualidade Um teste é um experimento controlado em que se confronta o comportamento observado com o comportamento esperado Como fazer isso? submeter o módulo a dados escolhidos e comparar o resultado obtido com o resultado esperado, calculado a partir da especificação e dos dados fornecidos Ex.: comparação em que o valor obtido não está dentro dos limites de tolerância aceitáveis por exemplo, 0 >= Nota <= / 30 LES/DI/PU
28 Como testar um módulo? Para testar um módulo tornam-se necessários um módulo controlador do teste desenvolvido para testar o módulo sob teste o módulo controlador exercita o módulo sob teste através de sua interface uma massa de teste, isto é um conjunto de casos de teste caso de teste é um conjunto de dados e de ações do usuário que exercitam o programa a testar em uma única ativação deste 28 / 30 LES/DI/PU
29 Exemplos de casos de teste public int map( int i ) if( i > 0 ) if( i > 10 ) return 10; else return 1; return 0; } map 1 10 map 2 10 map 3 10 map LES/DI/PUC-Rio 29 / 30
30 Exemplos de casos de teste public int map( int i ) if( i > 0 ) if( i > 10 ) return 10; else return 1; return 0; } É um boa massa de teste? map 1 10 map 2 10 map 3 10 map LES/DI/PUC-Rio 30 / 30
31 Exemplo de casos de teste associação desejada public int map( int i ) if( i > 0 ) } if( i > 10 ) return 10; else return 1; return 0; Não! Não irá expor o programa ao exercício do código com faltas. associação real Importância: especificação completa da sintaxe e semântica da interface. falta ou defeito A intenção do programador é a seguinte: i >10 retornar 10 i in retornar 0 i <= 0 retornar 1 O comportamento real é: i >10 retornar 10 i in retornar -1 i <= 0 retornar 0 O compilador, na prática, associa a cláusula else com o if interno LES/DI/PUC-Rio 31 / 30
32 Aula 04 Princípios de Modularidade 3 e Introdução à Teste de Software Alessandro Garcia LES/DI/PUC-Rio Março 2017
Aula 5 Introdução à Teste de Módulos. Alessandro Garcia LES/DI/PUC-Rio Agosto 2017
Aula 5 Introdução à Teste de Módulos Alessandro Garcia LES/DI/PUC-Rio Agosto 2017 Avisos Monitoria, horário: Sextas, 11:00 às 13:00 9º. Andar do Prédio Pe. Leonel Franca Próxima aula: exercício (T1) Alessandro
Leia maisAula 02 Conceitos e Princípios de Modularidade 1
Aula 02 Conceitos e Princípios de Modularidade 1 Alessandro Garcia LES/DI/PUC-Rio Agosto 2016 Lembretes Horário das aulas inicio cada aula a partir de 13:15 Sítio (site) da disciplina: www.inf.puc-rio.br/~inf1301
Leia maisAula 02 Conceitos e Princípios de Modularidade 1
Aula 02 Conceitos e Princípios de Modularidade 1 Alessandro Garcia LES/DI/PUC-Rio Março 2017 Lembretes Horário das aulas vamos ter que começar as 13:00 Definição de horário de monitoria Sítio (site) da
Leia maisAula 06 Introdução à Teste de Módulos II e Exercícios. Alessandro Garcia LES/DI/PUC-Rio Março 2014
Aula 06 Introdução à Teste de Módulos II e Exercícios Alessandro Garcia LES/DI/PUC-Rio Março 2014 Princípios Discutidos até aqui Cada módulo deveria implementar uma única abstração similarmente: cada função
Leia maisAula 04 Conceitos e Princípios de Modularidade 3 Alessandro Garcia
Aula 04 Conceitos e Princípios de Modularidade 3 Alessandro Garcia LES/DI/PUC-Rio Agosto 2017 Especificação Objetivo dessa aula Estudar características da interface de módulos Estudar os princípios de
Leia maisAula 17 Revisão. Alessandro Garcia LES/DI/PUC-Rio Abril 2010
Aula 17 Revisão Alessandro Garcia LES/DI/PUC-Rio Abril 2010 Matéria da Prova Todo material dado até o dia de hoje capítulos correspondentes do livro são indicados no início de cada aula material referenciado
Leia maisAula 07 Teste Automatizado Parte II
Aula 07 Teste Automatizado Parte II Prof. Alessandro Garcia Eduardo Fernandes (assistente) LES/DI/PUC-Rio Março 2018 Especificação Objetivo dessa aula Apresentar como sistematicamente instalar e utilizar
Leia maisAula 04 Introdução a Teste Automatizado. Alessandro Garcia LES/DI/PUC-Rio Setembro 2013
Aula 04 Introdução a Teste Automatizado Alessandro Garcia LES/DI/PUC-Rio Setembro 2013 Especificação Objetivo dessa aula Apresentar os uma técnica para a criação testes automatizados e mostrar como desenvolver
Leia maisAula 06 Introdução a Teste Automatizado. Alessandro Garcia LES/DI/PUC-Rio Março 2013
Aula 06 Introdução a Teste Automatizado Alessandro Garcia LES/DI/PUC-Rio Março 2013 Especificação Objetivo dessa aula Apresentar os uma técnica para a criação testes automatizados e mostrar como desenvolver
Leia maisAula 20 Testes 3. Alessandro Garcia Leonardo da Silva Sousa OPUS Group/LES/DI/PUC-Rio Dezembro 2016
Aula 20 Testes 3 Alessandro Garcia Leonardo da Silva Sousa OPUS Group/LES/DI/PUC-Rio Dezembro 2016 Slides adaptados de: Staa, A.v. Notas de Aula em Programacao Modular; 2008. Teste de Caixa Branca O que
Leia maisAula 10 Especificação de Requisitos
Aula 10 Especificação de Requisitos Alessandro Garcia LES/DI/PUC-Rio Setembro 2016 Especificação Objetivos dessa aula Apresentar a importância e o que são especificações de requisitos, bem como conceitos
Leia maisAula 17 Decomposição sucessiva
Aula 17 Decomposição sucessiva Francisco Dantas LES/DI/PUC-Rio Agosto 2008 Especificação Objetivos dessa aula Apresentar o método de desenvolvimento baseado em decomposição sucessiva Apresentar uma técnica
Leia maisAula 12 Modelos Arquitetural e Físico Outros Princípios de Modularidade
Aula 12 Modelos Arquitetural e Físico Outros Princípios de Modularidade Alessandro Garcia LES/DI/PUC-Rio Outubro de 2016 Avisos e Lembretes Exercícios em sala T1 entrega das correções no fim da aula testes
Leia maisProgramação Modular: Prova, Trabalho e Considerações Finais
Programação Modular: Prova, Trabalho e Considerações Finais Alessandro Garcia LES/DI/PUC-Rio Junho 2016 Prova 22/06 Toda matéria Em particular, material após P1 Dicas: Revisem os exercícios dados em sala
Leia maisAula 05 Instalação e Uso do Arcabouço. Alessandro Garcia Alexander Chávez LES/DI/PUC-Rio Março 2016
Aula 05 Instalação e Uso do Arcabouço Alessandro Garcia Alexander Chávez LES/DI/PUC-Rio Março 2016 Sumário Teste automatizado Instalação do arcabouço. Estrutura de diretórios do arcabouço. Como utilizar
Leia maisProgramação Modular: Exercício T4 e Considerações Finais
Programação Modular: Eercício T4 e Considerações Finais Alessandro Garcia LES/DI/PUC-Rio Cronograma Aula 13/6: Eercício do T3 relativo a: critérios de cobertura de teste caia-branca instrumentação para
Leia maisAula 10 Arquitetura de Software e Exercício. Alessandro Garcia LES/DI/PUC-Rio Abril de 2017
Aula 10 Arquitetura de Software e Exercício Alessandro Garcia Abril de 2017 Não Esquecer... Preencher tabela de atividades ao longo do processo. NÃO DEIXE PARA ÚLTIMA HORA, POIS VOCÊ NÃO SE LEMBRARÁ DO
Leia maisLinguagem de Programação I. Aula 10 Funções
Linguagem de Programação I Aula 10 Funções Da Aula Anterior Tipos de dados básicos e operadores em C Declaração de variáveis e modificadores de tipo Estruturas de Controle Arrays unidimensionais Geração
Leia maisAula 20 Instrumentação - Parte 2. Alessandro Garcia LES/DI/PUC-Rio Novembro 2016
Aula 20 Instrumentação - Parte 2 Alessandro Garcia LES/DI/PUC-Rio Novembro 2016 Especificação Objetivo dessa aula Tipos de instrumentação verificadores deturpadores contadores de passagem Referência básica:
Leia maisImplementação da programação modular II
Implementação da programação modular II - 1 Implementação da programação modular II Aula 11 Agenda Declaração e definição de dados Os conceitos relacionados com a ligação de programas Os elementos essenciais
Leia maisAula 19 Instrumentação Parte 1
Aula 19 Instrumentação Parte 1 Alessandro Garcia LES/DI/PUC-Rio Novembro 2016 Hoje... Especificação Objetivo dessa aula Motivar instrumentação de programas Necessidade do controle de espaços dinâmicos
Leia maisProgramação Modular. Alessandro Garcia. DI/PUC-Rio Agosto 2016
Programação Modular Alessandro Garcia DI/PUC-Rio Agosto 2016 Programação Modular Quem sou eu? Quem são vocês? Qual é o problema abordado no curso? Qual é o objetivo do curso? Organização: aulas, avaliação
Leia maisAula 11 Assertivas. Alessandro Garcia LES/DI/PUC-Rio Abril 2016
Aula 11 Assertivas Alessandro Garcia LES/DI/PUC-Rio Abril 2016 Especificação Objetivo dessa aula Discutir como especificar funções Apresentar assertivas de entrada, de saída e estruturais como um instrumento
Leia maisEstruturas de funções I Aula 13
Estrutura de funções I - 1 Estruturas de funções I Aula 13 Agenda Especificação de uma função Estrutura de chamada de funções Condições de retorno Funções de arrumação Objetivo Apresentar os conceitos
Leia maisAula 11. Assertivas. Alessandro Garcia LES/DI/PUC-Rio Setembro 2009
Aula 11 Assertivas Alessandro Garcia LES/DI/PUC-Rio Setembro 2009 Especificação Objetivo dessa aula Apresentar assertivas de entrada, de saída e estruturais como um instrumento de especificação Referência
Leia maisAula 3 Primeiros programas
Aula 3 Primeiros programas FACOM-UFMS 2012 OBJETIVOS DA AULA Introdução ao CodeBlocks; Criação dos primeiros programas; Esta aula foi baseada nos capítulos 3 e 4 da apostila de Programação de Computadores
Leia maisINF 1620 P2-01/11/03 Questão 1 Nome:
INF 1620 P2-01/11/03 Questão 1 Considere a implementação de uma lista encadeada para armazenar as notas dos alunos de uma turma dada pelo tipo abaixo: struct lista { char nome[81]; int mat; float p1, p2,
Leia maisAlgoritmos e Programação
Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes marinagomes@unipampa.edu.br 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;
Leia maisAula 18 Métricas e Anomalias de Modularidade
Aula 18 Métricas e Anomalias de Modularidade Marcos Silva LES/DI/PUC-Rio Maio 2010 Hoje... Introdução à Métricas Tipos de Métricas Métricas de Tamanho Métricas de Complexidade Métricas de Acoplamento Métricas
Leia maisDEM-Sec.Sistemas Tipos Abstractos de Informação 2006 / Programação
Funções DEM-Sec.Sistemas Tipos Abstractos de Informação 2006 / 07 1 Programação modular Programação modular: divir um programa em módulos mais pequenos Função: um conjunto de instruções que desempenham
Leia maisAula 9 Especificação de Requisitos
Aula 9 Especificação de Requisitos Alessandro Garcia LES/DI/PUC-Rio Abril 2016 Especificação Objetivos dessa aula Apresentar a importância e o que são especificações de requisitos, bem como conceitos relacionados
Leia maisProcessos de software
Processos de software 1 Processos de software Conjunto coerente de atividades para especificação, projeto, implementação e teste de sistemas de software. 2 Objetivos Introduzir modelos de processos de
Leia maisÁRVORES BINÁRIAS DE BUSCA. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
ÁRVORES BINÁRIAS DE BUSCA Vanessa Braganholo Estruturas de Dados e Seus Algoritmos REFERÊNCIA Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC. Cap. 4 INSTITUTO DE COMPUTAÇÃO
Leia maisAnhanguera Educacional S.A. Centro Universitário Ibero-Americano
O C++ foi inicialmente desenvolvido por Bjarne Stroustrup durante a década de 1980 com o objetivo de melhorar a linguagem de programação C, mantendo a compatibilidade com esta linguagem. Exemplos de Aplicações
Leia maisAula 14. Modelagem Física (e Exercício)
Aula 14 Modelagem Física (e Exercício) Alessandro Garcia LES/DI/PUC-Rio Maio 2018 Avisos e Lembretes Prova P1: quarta, 09/05, início as 13:00 matéria dada até esta aula com consulta de material impresso
Leia maisAula 12: Funções. CI208 - Programação de Computadores. Prof. MSc. Diego Roberto Antunes
CI208 - Programação de Computadores Aula 12: Funções Prof. MSc. Diego Roberto Antunes diegor@inf.ufpr.br www.inf.ufpr.br/diegor Universidade Federal do Paraná Setor de Ciências Exatas Departamento de Informática
Leia maisCopiar para o ficheiro ArvoreBinaria.h e adaptar as funções associadas às operações sobre árvores binárias (3.1 a 3.12)
Considere as seguintes declarações (NodoArv e PNodoArv), adaptadas dos apontamentos: struct NodoArv { int Elemento; struct NodoArv *Esquerda; struct NodoArv *Direita; ; typedef struct NodoArv *PNodoArv;
Leia maisTESTES DE SOFTWARE Unidade 1 Importância do Teste de Software. Luiz Leão
Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático 1.1 - O teste nas fases de vida e de desenvolvimento de um software. 1.2 - O teste na engenharia de sistemas e na engenharia de
Leia maisClasses e Objetos. Sintaxe de classe em Java
Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados
Leia maisLinguagem C Princípios Básicos (parte 1)
Linguagem C Princípios Básicos (parte 1) Objetivos O principal objetivo deste artigo é explicar alguns conceitos fundamentais de programação em C. No final será implementado um programa envolvendo todos
Leia maisLinguagem de Programação III
Linguagem de Programação III Aula-4 Construtores e Sobrecarga Prof. Esbel Tomás Valero Orellana Até Aqui Modelos e POO Classes e sua implementação em Java Encapsulamento Tipos de dados nativos em Java
Leia maisAula 9 Especificação de Requisitos Exercício
Aula 9 Especificação de Requisitos Exercício Alessandro Garcia LES/DI/PUC-Rio Abril 2017 Exercício Faça a especificação de requisitos do programa do jogo FreeCell com base no que foi apresentado na aula
Leia maisÁrvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura
Árvores B Prof. Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Fonte: Material da Prof a Ana Eliza Lopes Moura Situação Problema Memória Principal Volátil e limitada Aplicações Grandes
Leia maisDAINF - Departamento de Informática
DAINF - Departamento de Informática Algoritmos 2 - Árvore binária de busca Prof. Alex Kutzke ( http://alex.kutzke.com.br/courses ) 30 de Novembro de 2015 Slides adaptados do material produzido pelo Prof.
Leia mais1. Selecione a Estrutura de Dados que melhor representa os diretórios ou pastas de arquivos do computador.
1. Selecione a Estrutura de Dados que melhor representa os diretórios ou pastas de arquivos do computador. 1) Fila 2) Pilha 3) Árvore 4) Lista 5) Grafo 2. Selecione a Estrutura de Dados que melhor representa
Leia maisÁrvore B. Uma Árvore B de ordem m éumaárvore,talque: Cada nó contém no máximo m
Árvore B Uma Árvore B de ordem m éumaárvore,talque: Cada nó contém no máximo m 1valores; Os valores dentro de cada nó estão ordenados; Todos os valores na subárvore esquerda de um valor são menores que
Leia maisAula 5 Instruções Simples Cleverton Hentz
Aula 5 Instruções Simples Cleverton Hentz Sumário de Aula } Instrução de Atribuição } Instrução de Entrada } Instrução de Saída } Comentários 2 Introdução } Instruções são utilizadas para dizer ao computador
Leia maisFabrício J. Barth. BandTec - Faculdade de Tecnologia Bandeirantes
Árvores Fabrício J. Barth BandTec - Faculdade de Tecnologia Bandeirantes Setembro de 2011 Tópicos Introdução Árvores binárias Implementação em Java Ordens de percurso em árvores binárias Altura de uma
Leia maisA Linguagem C. A forma de um programa em C
A Linguagem C Criada em 1972 por D. M. Ritchie e K. Thompson. Tornou-se uma das mais importantes e populares, principalmente pela portabilidade e flexibilidade. Foi projetada para o desenvolvimento de
Leia maisCompiladores Análise Semântica
Compiladores Análise Semântica Fabio Mascarenhas - 2013.1 http://www.dcc.ufrj.br/~fabiom/comp Árvores Sintáticas Abstratas (ASTs) A árvore de análise sintática tem muita informação redundante Separadores,
Leia maisÁRVORE B. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
ÁRVORE B Vanessa Braganholo Estruturas de Dados e Seus Algoritmos INTRODUÇÃO 2 ARQUIVOS DE ACESSO DIRETO Basicamente, duas formas de acesso a um registro: Acesso via cálculo do endereço do registro (hashing)
Leia maisIntrodução à Programação. Conceitos Básicos de Orientação a Objetos
Introdução à Programação Conceitos Básicos de Orientação a Objetos Tópicos da Aula Aprenderemos fundamentos do paradigma orientado a objetos, mas antes veremos o que é paradigma Conceito de paradigma Diferentes
Leia maisDesenvolvimento de Aplicações Desktop
Desenvolvimento de Aplicações Desktop Conceitos Básicos de Programação Professor: Charles Leite O Desenvolvimento de Programas A programação consiste em indicar como o computador (hardware) deve trabalhar
Leia maisEstruturas de Dados. Módulo 17 - Busca. 2/6/2005 (c) Dept. Informática - PUC-Rio 1
Estruturas de Dados Módulo 17 - Busca 2/6/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)
Leia maisPesquisa em Memória Primária Árvores de Busca. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR
Pesquisa em Memória Primária Árvores de Busca David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Árvores de Pesquisa A árvore de pesquisa é uma estrutura de dados muito eficiente para armazenar
Leia maisINF 1620 P4 11/12/06 Questão 1 Nome:
INF 1620 P4 11/12/06 Questão 1 Considere que o cálculo da multa para o pagamento de um determinado imposto varia de acordo com a tabela a seguir: Valor do Imposto Original Multa por mês de atraso até R$
Leia maisComo construir um compilador utilizando ferramentas Java
Como construir um compilador utilizando ferramentas Java p. 1/2 Como construir um compilador utilizando ferramentas Java Aula 1 - Introdução Prof. Márcio Delamaro delamaro@icmc.usp.br Como construir um
Leia maisUniversidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores
Universidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores 2013-2 Compilador para a Linguagem Cafezinho Especificação dos trabalhos: T2 (Geração da Representação Intermediária e Análise
Leia maisTeste de Software. Técnica de Teste Estrutural. Rosemary Silveira Filgueiras Melo
Teste de Software Técnica de Teste Estrutural Rosemary Silveira Filgueiras Melo rosesfmelo@hotmail.com 1 Agenda Casos de Teste e Cenários de Teste Técnicas de Teste Técnica de Teste Estrutural 2 Casos
Leia maisLevantamento de Classes
Levantamento de Classes Conceito de Classe e Objeto Principais primitivas ou elementos de composição de softwares orientados a objetos Objeto elemento componente de um sistema computacional entidade que
Leia mais3. Linguagem de Programação C
Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3. Linguagem de programação C 3.1. Conceitos
Leia maisAula 8 Especificação de Requisitos
Aula 8 Especificação de Requisitos Alessandro Garcia Abril 2017 Recados Enunciado do trabalho prático (T2) já está disponível no sítio da disciplina: http://www.inf.puc-rio.br/~inf1301/ Enviem mensagem
Leia maisGerência de Projetos e Qualidade de Software. Prof. Walter Gima
Gerência de Projetos e Qualidade de Software Prof. Walter Gima 1 OBJETIVO Compreender uma série de técnicas de testes, que são utilizadas para descobrir defeitos em programas Conhecer as diretrizes que
Leia maisLinguagem de Programação
Linguagem de Programação aula 4 Engenharia Elétrica e Engenharia de Automação Introdução à Computação 1.o sem/2013 Profa Suely (e-mail: smaoki@yahoo.com) Programas Programas são seqüências de instruções
Leia maisLinguagem e Técnicas de Programação
Linguagem C Função Prof. Edwar Saliba Júnior Fevereiro de 2011 Unidade 07 Função 1 Conceitos As técnicas de programação dizem que, sempre que possível, evite códigos extensos, separando o mesmo em funções,
Leia maisTeste de Software. Prof. Camila. Pedro de Assis Sobreira Jr.
Teste de Software Prof. Camila Pedro de Assis Sobreira Jr. 2 Técnicas de Testes Técnica de Teste Funcional Técnica de Teste Estrutural 3 Testes Funcionais Teste de Especificação de Requisitos. Teste de
Leia maisÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior
ÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior Árvore Binária de Busca (ABB) o valor associado à raiz é sempre maior que o valor associado a qualquer nó da sub-árvore à esquerda
Leia maisMotivação. Estrutura de Dados. Motivação. Motivação. Por que estudar os tipos de dados? Duas são as principais preocupações em um projeto de software
Estrutura de Dados Aula 01 -Tipos Abstratos de de Dados Prof. Ms. Luiz Alberto Contato: lasf.bel@gmail.com Motivação Por que estudar os tipos de dados? Duas são as principais preocupações em um projeto
Leia maisCapítulo 7. Expressões e Sentenças de Atribuição
Capítulo 7 Expressões e Sentenças de Atribuição Introdução Expressões são os meios fundamentais de especificar computações em uma linguagem de programação Para entender a avaliação de expressões, é necessário
Leia maisConceitos de Linguagens de Programação - Características. Paavo Soeiro
Conceitos de Linguagens de Programação - Características Paavo Soeiro Motivação Para que possa escolher uma linguagem apropriada ao problema. Melhorar o entendimento da linguagem utilizada. Facilitar o
Leia maisAula 01 Algoritmos e lógica de programação e introdução ao C++
Aula 01 Algoritmos e lógica de programação e introdução ao C++ Autor: Max Rodrigues Marques Carga Horária: 2h 21 de julho de 2015 1 Algoritmo e lógica de programação Ementa do curso 1. Definições de algoritmo
Leia maisTeste de Software. Competência: Entender as técnicas e estratégias de testes de Software
Teste de Software Competência: Entender as técnicas e estratégias de testes de Software Conteúdo Programático Introdução O que é teste de software? Por que é necessário testar um software? Qual a causa
Leia maisLinguagens de Programação Funcional
Linguagens de Programação Funcional Conceitos de Linguagens de Programação Pedro Libório Setembro de 2013 2 Roteiro Introdução Funções matemáticas Fundamentos das linguagens de programação funcionais A
Leia maisÁrvores. Prof. César Melo DCC/ICE/UFAM
Árvores Prof. César Melo DCC/ICE/UFAM Introdução As estruturas anteriores são chamadas de unidimensionais (ou lineares) Exemplo são vetores e listas Não podem ser usadas como hierarquias. Exemplo: árvore
Leia maisRPC e RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo
Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta aula
Leia maisTratamento dos Erros de Sintaxe. Adriano Maranhão
Tratamento dos Erros de Sintaxe Adriano Maranhão Introdução Se um compilador tivesse que processar somente programas corretos, seu projeto e sua implementação seriam grandemente simplificados. Mas os programadores
Leia maisAlgoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3
Algoritmos e Estruturas de Dados I Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3 Sub-rotina Sub-rotina (CAPÍTULO 8): Funções e procedimentos Blocos de instruções que realizam
Leia maisTrabalho Linguagem e Programação de Compiladores
Trabalho Linguagem e Programação de Compiladores Responda as questões. Os exercícios deverão ser desenvolvidos utilizando as estruturas apresentadas em aula e adequadas para cada problema. Forma de entrega:
Leia maisProblema do Caminho Hamiltoniano
Universidade de São Paulo Escola de Artes, Ciências e Humanidades Bacharelado em Sistemas de Informação Introdução à Ciência da Computação II Professores Luciano Digiampietri e Fábio Nakano Data de entrega:
Leia maisEdital de Seleção 032/2016 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 032/2016 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua
Leia maisAula 17 Tratamento de Exceções e Assertivas
Aula 17 Tratamento de Exceções e Assertivas Alessandro Garcia LES / DI / PUC-Rio Novembro / 2016 Sumário Definições básicas Como se encerram as funções? Problema: e quando funções não encerram corretamente?
Leia mais4) Defina o que vem a ser um algoritmo, e porque, o mesmo depende do processo.
Lista de Exercício 1 Algoritmo e Programação 29/08/2018 (Solução) 1) Escreva conforme a premissas computacionais, o que vem a ser, lógica. R: São as premissas básicas para se executar instruções, alocadas
Leia maisA figura abaixo representa uma classe denominada Carteira. Esta classe é composta dos métodos depositar(valor) e retirar(valor) e do atributo saldo.
1-Introdução à Programação Orientada a Objetos 1.1. O que é programação orientada a objetos? Programação orientada a objetos é uma metodologia de desenvolvimento de software. Sua principal vantagem é a
Leia maisÁrvores. Prof. César Melo DCC/ICE/UFAM
Árvores Prof. César Melo DCC/ICE/UFAM Introdução As estruturas anteriores são chamadas de unidimensionais (ou lineares) Exemplo são vetores e listas Não adequadas para representar hierarquias. Exemplo:
Leia maisV.2 Especificação Sintática de Linguagens de Programação
V.2 Especificação Sintática de Linguagens de Programação Deve ser baseada: No planejamento da Linguagem / Compilador Objetivos, Filosofia, Potencialidades,... Nos critérios de projeto/avaliação Legibilidade,
Leia maisCompiladores Análise Semântica
Compiladores Análise Semântica Fabio Mascarenhas - 2013.2 http://www.dcc.ufrj.br/~fabiom/comp Árvores Sintáticas Abstratas (ASTs) A árvore de análise sintática tem muita informação redundante Separadores,
Leia maisEstrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB
Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Árvores (parte 2) Estruturas de Dados 2 Organização dos dados: Linear: Listas, pilhas, filas. Relação sequencial.
Leia maisLinguagem de Programação C
Linguagem de Programação C Aula 08 Diogo Pinheiro Fernandes Pedrosa Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais 13 de novembro de 2009 Introdução O que é uma linguagem
Leia maisVisibilidade e Encapsulamento
Visibilidade e Encapsulamento Professor: Ricardo Luis dos Santos IFSUL 2016 Agenda Pacotes Visibilidade Encapsulamento Hands-On 2 Pacotes Em Java, a visibilidade ou grau de acesso a um determinado atributo
Leia maisFundamentos de Programação de Computadores Linguagem C Função Unidade 08 Linguagem C - Função 1/18
Linguagem C Função Instituto Federal de Educação, Ciência e Tecnologia do Triângulo Mineiro Prof. Edwar Saliba Júnior Janeiro de 2018 Unidade 08 Linguagem C - Função 1/18 Conceitos As técnicas de programação
Leia maisMatéria Introdutória. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri
Matéria Introdutória Banco de Dados Motivação Necessidade de armazenar grandes quantidades de dados Necessidade de acessar as informações de maneira eficiente e segura Evolução histórica: desenvolvimento
Leia maisQuinto Trabalho Prático. Este trabalho tem como objetivo indexar arquivos de dados usando um índice árvore-b.
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação Disciplina de Algoritmos e Estruturas de Dados II docente Profa. Dra. Cristina Dutra de
Leia maisFundamentos de Programação
Fundamentos de Programação ET42G Aula 21 Prof. Daniel Cavalcanti Jeronymo Conversão de tipos. Alocação dinâmica de memória. Recursão. Criação de bibliotecas, arquivos de cabeçalhos e variáveis globais.
Leia maisSorting Client. Exemplos de questões da prova 2
Exemplos de questões da prova 2 Polimorfismo na programação orientada a objetos é o princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que têm a mesma identificação
Leia maisAula 27 Testes Caixa Branca. Alessandro Garcia Willian Oizumi LES/DI/PUC-Rio Novembro 2014
Aula 27 Testes Caixa Branca Alessandro Garcia Willian Oizumi LES/DI/PUC-Rio Novembro 2014 Especificação Objetivo dessa aula Apresentar os conceitos básicos utilizados ao testar módulos Apresentar 3 critérios
Leia maisProjeto de Compiladores
Projeto de Compiladores FIR Faculdade Integrada do Recife João Ferreira 12 e 13 de fevereiro de 2007 Questionário 1. Em quais linguagens de programação você já programou? 2. O que você sabe sobre compiladores?
Leia maisÁrvores Binárias de Busca (ABB) 18/11
Árvores Binárias de Busca (ABB) 18/11 Definição Uma Árvore Binária de Busca possui as mesmas propriedades de uma AB, acrescida da seguintes propriedade: Para todo nó da árvore, se seu valor é X, então:
Leia maisIntrodução à Programação
Introdução à Programação Linguagens de Programação: sintaxe e semântica de linguagens de programação e conceitos de linguagens interpretadas e compiladas Engenharia da Computação Professor: Críston Pereira
Leia maisAlessandro Garcia LES/DI/PUC-Rio Junho 2010
Aula 26 Instrumentação 2 Alessandro Garcia LES/DI/PUC-Rio Junho 2010 Hoje... Especificação Objetivo dessa aula Continuar discussão sobre instrumentação de programas Introduzir o uso módulos de instrumentação
Leia mais