Projecto 1. Data de de entrega: 26 de Abril de Descrição geral 2. 2 Código a testar 2. 3 Falta/erro/falha modelo RIP 2

Tamanho: px
Começar a partir da página:

Download "Projecto 1. Data de de entrega: 26 de Abril de Descrição geral 2. 2 Código a testar 2. 3 Falta/erro/falha modelo RIP 2"

Transcrição

1 Verificação e Validação de Software Projecto 1 Data de de entrega: 26 de Abril de Descrição geral 2 2 Código a testar 2 3 Falta/erro/falha modelo RIP 2 4 Cobertura por caminhos primos 3 5 Cobertura por fluxo de dados 3 6 Testes sobre grafos de chamada 4 7 Testes sobre ArrayQueue 4 8 Testes de interacção e integração 5 9 Sumário de padrões de código de teste 5 1

2 1 Descrição geral Neste projecto deve aplicar critérios e metodologias de testes de software baseados em cobertura de grafos. Para o efeito é fornecido um projecto Eclipse com o código a testar e um esqueleto de organização das classes de testes JUnit. Para alguns dos testes deverá utilizar também a biblioteca Mockito, já configurada no projecto. Para as várias tarefas deverá programar os testes de software e apresentar a sua análise num relatório. Pode usar um documento de texto e/ou uma folha de cálculo para o relatório (poderá ser mais conveniente uma folha de cálculo para as diversas tabelas pedidas no enunciado). O trabalho de cada grupo deverá ser alojado num repositório GIT no servidor acessível via rede FCUL ou VPN-FCUL. O repositório inicial contendo o projecto Eclipse pode ser obtido fazendo fork do repositório 2 Código a testar O código a testar compreende as seguinte classes: 1. Anagrams: contém um método boolean check(string a, String b) que verifica se duas strings formadas apenas por letras ou espaços são anagramas uma da outra. 2. Morse: contém um método String decode(string morsemessage) que descodifica uma mensagem em código Morse. Apenas é suportado o subconjunto do código Morse para as letras A a Z. 3. ArrayQueue: representação de filas implementadas usando um esquema de vector circular. 4. Classes CoffeeMachine, CoinStorage e outras relacionadas para modelar uma máquina de café. Programas utilitários (métodos main) são também fornecidos em conjunto com as classes Anagrams, Morse e ArrayQueue. Gere e veja a documentação Javadoc do código para mais detalhes. 3 Falta/erro/falha modelo RIP O código de Anagrams.check() contém bugs relativamente simples de identificar e detectar. 1. Quais são as faltas? De que forma as poderia corrigir (no entanto não precisa nem deve acertar o código). 2. Para cada falta identifique: (a) se possível, um caso de teste que atinge a falta mas não leva um estado de erro se não for possível explique porquê; (b) se possível, um caso de teste que leva a um estado de erro, mas não uma falha se não for possível explique porquê; (c) um caso de teste que leva a uma falha; 2

3 4 Cobertura por caminhos primos 1. Programe testes que satisfaçam uma cobertura de caminhos primos (PPC: Prime Path Coverage ) para o método Anagrams.check(). Para o efeito considere o CFG obtido pela ferramenta PESTT e respectivos caminhos primos, disponibilizados em formato PDF (na pasta doc do projecto). 2. Para cada método apresente no relatório uma tabela com a caracterização de cada teste em termos de valores de teste ( inputs ), valores esperados, resultado do teste, método JUnit correspondente, e os caminhos primos cobertos. 3. Há requisitos inviáveis? Se sim, identifique-os e explique porquw são inviáveis. 4. Tendo em conta a análise RIP da Secção 3, explique se uma cobertura PPC expõe necessariamente os bugs em causa? Justifique para cada falta a sua resposta. 5 Cobertura por fluxo de dados 1. Identifique os pares-du (du: definição-uso) e caminhos-du para os métodos Anagrams.check() e Morse.decode(). Apresente no relatório tabelas de pares-du e caminhos-du para cada um dos métodos. 2. Para os dois métodos identifique casos de teste que satisfaçam os seguintes critérios de cobertura: (a) Todos-os-caminhos-du (ADUPC: All-Du-Paths Coverage ); (b) Todos-os-usos (AUC: All-Uses Coverage ) mas não ADUPC; (c) Todas-as-definições (ADC All-Defs Coverage ) mas não AUC; No caso de Anagrams.check() não deverá precisar de programar mais testes além dos da Secção 4: o critério PPC subsume ADUPC para o código em questão. 3. Há requisitos inviáveis? Se sim, identifique-os e explique porque são inviáveis. Notas à análise de caminhos-du: Anagrams.check(): Todas as chamadas a métodos de String deverão ser considerados usos. Não precisa de considerar na análise o uso da constante de classe LETTERS IN ALPHABET. Morse.decode(): Cada chamada a StringBuilder. append() deverá ser interpretada como uma definição e um uso da variável sb. A criação do objecto StringBuilder deve ser considerada uma definição e a chamada final a sb. tostring () deve ser considerado um uso. Não precisa de considerar na análise o uso de constantes de classe (TREE, DASH, DOT, PAUSE, INVALID, UNDEFINED). 3

4 6 Testes sobre grafos de chamada Tendo em conta os programas expressos nas classe Anagrams e Morse (métodos main): 1. Para Anagrams, represente o grafo de chamadas ( call graph ) a partir de main, considerando a chamada ao método check, e ainda a métodos das classes Character, String, DataInput (sobre INPUT), e PrintStream (sobre System.out). Para cada chamada deverá definir uma aresta no grafo; poderão existir então várias arestas entre um par de nós. [Nota: temos um multigrafo, uma generalização do conceito de grafo onde é possível definir mais do que uma aresta entre dois nós.] 2. Programe testes para uma cobertura de todas-as-chamadas (arestas do grafo) da alínea anterior. A verificação de resultado esperados deverá incidir sobre o output do programa. Para configurar o I/O do programa use mock objects injectando os mesmos mudando o valor de Anagrams.INPUT e usando o método System.setOut. Apresente no relatório a caracterização dos casos de testes. 3. Para Morse faça uma análise last-def / first-use para a chamada de main a decode. Considere acoplamentos definidos por passagem de parâmetros, valores de retorno, e ainda lançamento/processamento de excepções (throw define uma excepção, referência a uma excepção capturada num bloco catch corresponde a um uso). Para uma análise mais simples identifique cada last-def ou first-use pelo número de linha de código, em vez de definir ou de se referir aos CFGs de main ou decode. 4. Programe testes para cobrir todos os pares last-def / first-use que forem viáveis. Apresente no relatório a caracterização dos testes. Identifique os requisitos inviáveis, caso existam. Use um mock object injectado via System.setOut por forma a validar o comportamento do programa. 7 Testes sobre ArrayQueue Considere uma abstracção de um objecto ArrayQueue na forma de máquina de estados com configurações: EMPTY: quando fila está vazia; NENF: quando vector interno não se encontra cheio; FULL: quando vector interno se encontra cheio e precisará de crescer se adicionarmos mais um elemento; 1. Apresente a sua análise numa tabela identificando as transições da máquina de estado, detalhando: (a) o estado inicial e condição guarda associada à transição; (b) o estado final esperado da fila e comportamento de retorno (valor retornado ou lançamento de excepção); 2. Programe testes para uma cobertura de transições sobre a máquina de estados. Use um teste por transição e identifique-o na tabela referida acima. Para verificar o estado da fila use os métodos observadores e toarray, isempty, isfull, size, capacity, getfirst, e getlast (estes dois últimos apenas quando estado final não for EMPTY). 4

5 8 Testes de interacção e integração Considere as classes CoffeeMachine e CoinStorage que representam respectivamente uma máquina automática de café e um repositório de moedas. É fornecido um pequeno programa de teste (TestProgram) que exemplifica o funcionamento de ambas as classes, bem como o significado de classes auxiliares relacionadas (Coin e InteractionResult ). Tendo em conta uma cobertura de nós (NC Node coverage ) sobre o CFG do método insertcoin () de CoffeeMachine (ver CFG na pasta doc) : 1. Programe testes que usem um mock object para CoinStorage, validando o valor de retorno, estado de CoffeeMachine, e interacções com o mock object. 2. Programe testes de integração que usem um spy object sobre uma instância real de CoinStorage. Em relação à alínea anterior, valide adicionalmente o estado do objecto CoinStorage. Pode usar o método CoinStorage.loadData() para configurar o estado de um objecto CoinStorage a partir de um ficheiro de texto (como exemplificado em TestProgram). Crie ficheiros adicionais de configuração com formato análogo ao exemplo data/cm data1.txt 3. Identifique a correspondência entre métodos JUnit e requisitos de testes no relatório para ambos os tipos de teste. 9 Sumário de padrões de código de teste Identifique os padrões de programação de testes que aplicou. Pode identificar os nomes dos padrões em comentários e contexto em que são usados no comentário de cabeçalho das classes de teste JUnit. 5

Projecto 2. Data de de entrega: 23 de Maio de 2015

Projecto 2. Data de de entrega: 23 de Maio de 2015 Verificação e Validação de Software 2014-15 Projecto 2 Data de de entrega: 23 de Maio de 2015 1 Descrição geral 2 1.1 Repositório GIT..................................... 2 1.2 Código a testar......................................

Leia mais

Teste Estrutural ou Caixa Branca

Teste Estrutural ou Caixa Branca Teste de Estrutura de Controle Os testes dos caminhos básicos (todos os nós) e caminhos independentes (todas as arestas) são simples e eficaz, mas nem sempre são suficientes Outras variações: Teste de

Leia mais

Engenharia de Software

Engenharia de Software UNIVERSIDADE DE LISBOA INSTITUTO SUPERIOR TÉCNICO Engenharia de Software LEIC/LETI, 3 o Ano, 2 o Semestre 1 o Teste, 4 de Abril de 2017 Duração: 60 minutos Nome: Número: Este teste tem um conjunto de 8

Leia mais

U.C Desenvolvimento de Software. 15 de junho de 2016 INSTRUÇÕES PARA A RESOLUÇÃO DA PROVA, ACONSELHA-SE QUE LEIA ATENTAMENTE O SEGUINTE:

U.C Desenvolvimento de Software. 15 de junho de 2016 INSTRUÇÕES PARA A RESOLUÇÃO DA PROVA, ACONSELHA-SE QUE LEIA ATENTAMENTE O SEGUINTE: Ministério da Ciência, Tecnologia e Ensino Superior Exame U.C. 21025 Desenvolvimento de Software 15 de junho de 2016 INSTRUÇÕES PARA A RESOLUÇÃO DA PROVA, ACONSELHA-SE QUE LEIA ATENTAMENTE O SEGUINTE:

Leia mais

Lista de Linguagens de Programação 16

Lista de Linguagens de Programação 16 Lista de Linguagens de Programação 16 Nome: Matrícula: Os exercícios desta lista devem ser todos implementados em Python. 1. Este exercício faz referência às classes implementadas em Python disponíveis

Leia mais

Resolução / Resumo de correção do exame

Resolução / Resumo de correção do exame Ministério da Ciência, Tecnologia e Ensino Superior Resolução / Resumo de correção do exame U.C. 21025 Desenvolvimento de Software 12 de julho de 2017 1.ª Parte (4 Valores) 1. a) Linhas do código de referência

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro Variáveis e Métodos de Classe Em Java, quer as classes quer as instâncias das classes são objectos. Onde está o estado da classe? Com que operações é manipulado? UBI, Departamento de Informática T04-1

Leia mais

Sistema Rodoviário Tabajara

Sistema Rodoviário Tabajara Universidade Federal do Espírito Santo Departamento de Informática Est. de Informação (INF02827) & Est. de Dados (INF01906) 2 o Trabalho Prático Período: 2008/2 Prof a Patrícia Dockhorn Costa Email: pdcosta@inf.ufes.br

Leia mais

Objetos Dublês. Mariana Bravo AgilCoop Cursos de Verão 2009

Objetos Dublês. Mariana Bravo AgilCoop Cursos de Verão 2009 Objetos Dublês Mariana Bravo marivb@agilcoop.org.br AgilCoop Cursos de Verão 2009 Motivação Testes de unidade focam em uma unidade Mas as unidades do sistema têm dependências entre si Dublês oferecem uma

Leia mais

Diagramas de Package

Diagramas de Package 190 Diagramas de Package À medida que os sistemas software se tornam mais complexos e o número de classes aumenta: Torna-se difícil efectuar a gestão das diversas classes A identificação de uma classe

Leia mais

Teste de Software. Técnica de Teste Estrutural. Rosemary Silveira Filgueiras Melo

Teste 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 mais

Encriptação de Mensagens

Encriptação de Mensagens Instituto Superior Técnico Fundamentos da Programação 2016/2017 Enunciado do 1 o Projecto Data de entrega: 4 de Novembro de 2016 às 23h59 Encriptação de Mensagens Pretende-se com este trabalho a implementação

Leia mais

Engenharia de Software

Engenharia de Software Prof. M.Sc. Ronaldo C. de Oliveira ronaldooliveira@facom.ufu.br FACOM - 2011 Verificação e Validação (V&V) S.L.Pfleeger (Cap.8 & 9) R.Pressman (Cap.13 & 14) I.Sommerville (Cap.22 & 23) Introdução Verificação

Leia mais

O AMBIENTE DE DESENVOLVIMENTO

O AMBIENTE DE DESENVOLVIMENTO Módulo 9 O AMBIENTE DE DESENVOLVIMENTO P S I 1 1 - C P T G P S I SUMÁRIO Instalação do Java JDK - Kit de Desenvolvimento Java Download do JDK Instalação do JDK Configuração da Variável de ambiente (Path)

Leia mais

CLIENTE. Manual de Utilização. Integrador ERP Primavera - E-Schooling. Versão 1.0

CLIENTE. Manual de Utilização. Integrador ERP Primavera - E-Schooling. Versão 1.0 CLIENTE Manual de Utilização Integrador ERP Primavera - E-Schooling Versão 1.0 16-03-2012 ÍNDICE MANUAL DE UTILIZAÇÃO... 1 INTEGRADOR ERP PRIMAVERA - E-SCHOOLING... 1 1. ÂMBITO... 3 2. OBJECTIVO... 3 3.

Leia mais

Departamento de Ciência de Computadores Estruturas de Dados (CC114)

Departamento de Ciência de Computadores Estruturas de Dados (CC114) 1. Cotação de cada pergunta: 1. 30 / 2. 40 / 3. 30 (Total: 100 pontos) 2. Responda às questões de forma clara e concisa nas folhas de exame distribuídas. 1. (Valorização: 30%) Responda às seguintes questões:

Leia mais

Genéricos. Profa. Thienne Johnson EACH/USP

Genéricos. Profa. Thienne Johnson EACH/USP Genéricos Profa. Thienne Johnson EACH/USP Java, como programar, 6ª edição Deitel & Deitel Capítulo 18 Material complementar http://wps.prenhall.com/br_deitel_comoprogra_6/ Todas as classes em Java herdam,

Leia mais

Objetos Dublês. AgilCoop Cursos de Verão Mariana Bravo IME/USP

Objetos Dublês. AgilCoop Cursos de Verão Mariana Bravo IME/USP Objetos Dublês AgilCoop Cursos de Verão 2010 Mariana Bravo IME/USP Motivação Testes de unidade focam em uma unidade Mas as unidades do sistema têm dependências entre si Dublês oferecem uma maneira de isolar

Leia mais

Teste de Funções por Partição do Espaço de Entrada

Teste de Funções por Partição do Espaço de Entrada Teste de Funções por Partição do Espaço de Entrada Programação II Universidade de Lisboa Faculdade de Ciências Departamento de Informática Licenciatura em Tecnologias da Informação Vasco Thudichum Vasconcelos

Leia mais

Treinamento Nota Fiscal Eletrônica

Treinamento Nota Fiscal Eletrônica GEO Treinamento Nota Fiscal Eletrônica Foi Implementado em Janeiro/2011 a Nota Fiscal Eletrônica de Serviços e disponibilizado o site da Prefeitura para Geração e Envio da NFs-e,. O envio pelo site gera

Leia mais

Introdução a Testes de Software. Ricardo Argenton Ramos

Introdução a Testes de Software. Ricardo Argenton Ramos Introdução a Testes de Software Ricardo Argenton Ramos ricargentonramos@gmail.com Agenda da Aula Introdução sobre Testes; Testes Funcionais de software; Testes Estruturais de Software; Teste de Software

Leia mais

PRIMAVERA SQL Repair Tool v2.0

PRIMAVERA SQL Repair Tool v2.0 PRIMAVERA SQL Repair Tool v2.0 Versão 2.0 Janeiro de 2016 Índice Índice... 2 Introdução... 3 Intruções de utilização... 3 Passo 1 Início...3 Passo 2 Escolha da instância PRIMAVERA...4 Passo 3 Escolha a

Leia mais

Prof. Rogério Albuquerque de Almeida. Programação Orientada a Objetos II JAVA Décima Segunda Aula

Prof. Rogério Albuquerque de Almeida. Programação Orientada a Objetos II JAVA Décima Segunda Aula Prof. Rogério Albuquerque de Almeida Programação Orientada a Objetos II JAVA Décima Segunda Aula 1 Prof. Rogério Albuquerque de Almeida Programação Orientada a Objeto II Vetores Tratamento de Exceções

Leia mais

Testes de software - Teste funcional

Testes de software - Teste funcional Testes de software - Teste funcional Vitor Alcântara de Almeida Universidade Federal do Rio Grande do Norte Natal, Brasil 30 de outubro de 2014 Alcântara (UFRN) Testes de software - Testes funcionais 30

Leia mais

MAC 0425/ Inteligência Artificial

MAC 0425/ Inteligência Artificial MAC 0425/5739 - Inteligência Artificial Exercício-Programa 4 - Clasificação Prazo limite de entrega: 23:59 07/12/2016 1 Introdução Neste exercício-programa estudaremos o problema de aprendizagem supervisionado

Leia mais

Computação e Programação

Computação e Programação Computação e Programação MEMec, LEAN - 1º Semestre 2015-2016 Aula Teórica 10 Exemplo de desenvolvimento de Programa Modular: Máquina de venda de bilhetes D.E.M. Área Científica de Controlo Automação e

Leia mais

Computação e Programação. Exame Época Normal

Computação e Programação. Exame Época Normal Nome : Número : Computação e Programação 2015-2016 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame Época Normal 6 de janeiro de 2016 Exame sem

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ - UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ - UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 15 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir conceitos relacionados a Testes de Software. DESENVOLVIMENTO

Leia mais

U.C Desenvolvimento de Software. 12 de julho de 2017 INSTRUÇÕES PARA A RESOLUÇÃO DA PROVA, ACONSELHA-SE QUE LEIA ATENTAMENTE O SEGUINTE:

U.C Desenvolvimento de Software. 12 de julho de 2017 INSTRUÇÕES PARA A RESOLUÇÃO DA PROVA, ACONSELHA-SE QUE LEIA ATENTAMENTE O SEGUINTE: Ministério da Ciência, Tecnologia e Ensino Superior Exame U.C. 21025 Desenvolvimento de Software 12 de julho de 2017 INSTRUÇÕES PARA A RESOLUÇÃO DA PROVA, ACONSELHA-SE QUE LEIA ATENTAMENTE O SEGUINTE:

Leia mais

Exercício de Estrutura de dados. Java Fila

Exercício de Estrutura de dados. Java Fila Exercício de Estrutura de dados Java Fila Obs.: Esse projeto foi um exercício realizado em sala de aula da matéria de Estrutura de dados com o Profº Frederico Augusto Siqueira Gentil Aqui está sendo relatado

Leia mais

U.C Desenvolvimento de Software. 12 de julho de 2017 INSTRUÇÕES PARA A RESOLUÇÃO DA PROVA, ACONSELHA-SE QUE LEIA ATENTAMENTE O SEGUINTE:

U.C Desenvolvimento de Software. 12 de julho de 2017 INSTRUÇÕES PARA A RESOLUÇÃO DA PROVA, ACONSELHA-SE QUE LEIA ATENTAMENTE O SEGUINTE: Ministério da Ciência, Tecnologia e Ensino Superior p-fólio U.C. 21025 Desenvolvimento de Software 12 de julho de 2017 INSTRUÇÕES PARA A RESOLUÇÃO DA PROVA, ACONSELHA-SE QUE LEIA ATENTAMENTE O SEGUINTE:

Leia mais

4. Listas, Pilhas, e Filas

4. Listas, Pilhas, e Filas 4. Listas, Pilhas, e Filas Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 4. Listas, Pilhas, e Filas Estruturas de Dados 1 / 49 Definição de Lista (1) Uma lista é uma sequência finita

Leia mais

4. Listas, Pilhas, e Filas

4. Listas, Pilhas, e Filas 4. Listas, Pilhas, e Filas Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 4. Listas, Pilhas, e Filas Estruturas de Dados 1 / 49 Definição de Lista (1) Uma lista é uma sequência finita

Leia mais

Universidade Lusófona de Humanidades e Tecnologias Fundamentos de Programação 2014/2015 primeira época v.1.0.0

Universidade Lusófona de Humanidades e Tecnologias Fundamentos de Programação 2014/2015 primeira época v.1.0.0 Cálculo de salários Introdução e objectivos O Tio Manuel abriu um novo negócio: um restaurante dedicado exclusivamente a entregas de comida ao domicilio. Para apoiar a gestão deste seu novo negócio, contratou

Leia mais

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas Nome: Número: Computação e Programação 2017-2018 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame Época Normal 10 de janeiro de 2018 Exame sem

Leia mais

PROJECTO DE UM SISTEMA DE FECHADURA ELECTRÓNICA

PROJECTO DE UM SISTEMA DE FECHADURA ELECTRÓNICA TRABALHO DE LABORATÓRIO V PROJECTO DE UM SISTEMA DE FECHADURA ELECTRÓNICA 1. INTRODUÇÃO Pretende-se com este trabalho que os alunos projectem um sistema de fechadura electrónica. Este trabalho é considerado

Leia mais

Um sistema de difusão de informação a nível da aplicação

Um sistema de difusão de informação a nível da aplicação Um sistema de difusão de informação a nível da aplicação Projecto de Redes de Computadores I - 2008/2009 LEIC IST, Tagus Park 21 de Setembro de 2008 1. Sumário O projecto pretende desenvolver um sistema

Leia mais

4 Uma Linguagem Baseada em Máquinas de Estado 4.1. A Linguagem

4 Uma Linguagem Baseada em Máquinas de Estado 4.1. A Linguagem 4 Uma Linguagem Baseada em Máquinas de Estado 4.1. A Linguagem Acredita-se nesse trabalho que características reativas e fortemente baseadas em modelos tornam necessária a criação de uma linguagem específica

Leia mais

Abaixo seguem os comandos e suas particularidades, bem como exemplos para o indicador de linha

Abaixo seguem os comandos e suas particularidades, bem como exemplos para o indicador de linha Trabalho II de CI067 - Oficina de Computação 2º Semestre - 2018 Tema: Editor compactador de arquivos Data de Entrega: 1. Introdução O editor a ser implementado edit([arquivo]) edita arquivos de texto ASCII.

Leia mais

Informática Básica. Licenciatura em Ciência da Informação. Tito Carlos S. Vieira. Tito Carlos S. Vieira

Informática Básica. Licenciatura em Ciência da Informação. Tito Carlos S. Vieira.   Tito Carlos S. Vieira Informática Básica Licenciatura em Ciência da Informação Tito Carlos S. Vieira E-mail: tito@fe.up.pt 1 Parte II Sistemas Operativos (Utilização do Windows) 2 Sumário O que é um Sistema Operativo (SO)?

Leia mais

Algoritmos e Estrutura de Dados I Conceitos de Algoritmos. Prof. Elyssandro Piffer

Algoritmos e Estrutura de Dados I Conceitos de Algoritmos. Prof. Elyssandro Piffer Algoritmos e Estrutura de Dados I Conceitos de Algoritmos Prof. Elyssandro Piffer CONCEITO DE ALGORITMO O computador pode auxiliar em muitas tarefas, contudo ele não possui independência, não é inteligente,

Leia mais

Introdução. Surge em 1995 (Brendan Eich, programador da Netscape) com o nome de Livescript

Introdução. Surge em 1995 (Brendan Eich, programador da Netscape) com o nome de Livescript Surge em 1995 (Brendan Eich, programador da Netscape) com o nome de Livescript É uma linguagem de programação (linguagem de script) Javascript e Java Torna a sua página HTML: Atraente; Interactiva; Inteligente.

Leia mais

Figura 1: Modelo de interação para a autenticação do utente com o seu Cartão de Cidadão.

Figura 1: Modelo de interação para a autenticação do utente com o seu Cartão de Cidadão. Segurança Informa tica e nas Organizaço es Autenticaça o do Utente em Aplicaço es Web com o Carta o de Cidada o (v1.0) 1 Introdução Com este trabalho pretende-se estudar um modelo de interação entre um

Leia mais

Introdução à linguagem C

Introdução à linguagem C Introdução à linguagem C Luís Charneca luis.charneca@gmail.com Introdução ao C O C nasceu na década de 70. O seu inventor, Dennis Ritchie, implementou-o pela primeira vez usando um DEC PDP-11 correndo

Leia mais

JUnit. Facilitando o desenvolvimento e execução de testes unitários em código java. Peterson Rodrigues

JUnit. Facilitando o desenvolvimento e execução de testes unitários em código java. Peterson Rodrigues JUnit Facilitando o desenvolvimento e execução de testes unitários em código java. Peterson Rodrigues Roteiro Teste Unitário: O que? Por quê? Quando? Quem? O que testar? Teste Funcional: O que é? JUnit:

Leia mais

Introdução a classes e objetos. Copyright 2006 by Pearson Education

Introdução a classes e objetos. Copyright 2006 by Pearson Education 3 Introdução a classes e objetos 3.1 Introdução Programas do Capítulo 2 Todas as instruções estavam localizadas na função main. Em geral Os programas consistirão Na função main e Em uma ou mais classes

Leia mais

Prof. Natalia Castro Fernandes Mestrado em Telecomunicações UFF 2º semestre/2012

Prof. Natalia Castro Fernandes Mestrado em Telecomunicações UFF 2º semestre/2012 Prof. Natalia Castro Fernandes Mestrado em Telecomunicações UFF 2º semestre/2012 Ementa do Curso Conceitos básicos de programação Orientação a objetos Linguagem Python Simulação com o NS-3 Programação

Leia mais

Apêndice 1. Recomendações para testes de módulos

Apêndice 1. Recomendações para testes de módulos Recomendações para testes de módulos - 1 Apêndice 1. Recomendações para testes de módulos O presente conjunto de recomendações tem por objetivo definir um conjunto mínimo de critérios de seleção de casos

Leia mais

Orientação a Objetos AULA 09

Orientação a Objetos AULA 09 Orientação a Objetos AULA 09 Prof. Fabrício Martins Mendonça Conteúdo da Aula ü Coleções ü Coleções lista de objetos ü Coleções conjuntos 2 Coleções Podemos armazenar vários objetos em um array e este

Leia mais

Fundamentos da Programação

Fundamentos da Programação Fundamentos da Programação Segundo Teste 10 de Janeiro de 2014 09:00 10:30 Nome: Número: Esta prova, individual e sem consulta, tem 8 páginas com 12 perguntas. A cotação de cada pergunta está assinalada

Leia mais

Exceções AULA 13. Ricardo Massa F. Lima Sérgio C. B. Soares

Exceções AULA 13. Ricardo Massa F. Lima Sérgio C. B. Soares Introdução a Programação IF669 http://www.cin.ufpe.br/~if669 Exceções AULA 13 Ricardo Massa F. Lima rmfl@cin.ufpe.br Sérgio C. B. Soares scbs@cin.ufpe.br Exceções Objetivo Depois desta aula você será capaz

Leia mais

Engenharia de Software Aula 21. Revisão da Prova 2. Eduardo Figueiredo.

Engenharia de Software Aula 21. Revisão da Prova 2. Eduardo Figueiredo. Engenharia de Software Aula 21 Revisão da Prova 2 Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo dcc603@dcc.ufmg.br 16 Maio 2018 Aula 16: POO Um programa OO é geralmente constituído de várias classes

Leia mais

Teste de Software. Técnica de Teste Estrutural. Rosemary Silveira Filgueiras Melo

Teste 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 Técnica de Teste Estrutural Critérios de Teste 2 Casos de Teste Diante da impossibilidade

Leia mais

Teste de Software Orientado a Objeto. Ricardo Argenton Ramos

Teste de Software Orientado a Objeto. Ricardo Argenton Ramos Teste de Software Orientado a Objeto Ricardo Argenton Ramos O que diferencia teste de software OO de testes Convencionais? Técnicas e abordagens são normalmente semelhantes, porém novos desafios são apresentados

Leia mais

J820. Mock objects. Testes de código com dependências. argonavis.com.br. Helder da Rocha

J820. Mock objects. Testes de código com dependências. argonavis.com.br. Helder da Rocha J820 Mock objects Testes de código com dependências Helder da Rocha (helder@acm.org) Como lidar com testes difíceis Testes devem ser simples e suficientes Comece com testes mais importantes Sempre pode-se

Leia mais

Computação e Programação

Computação e Programação Computação e Programação MEMec, LEAN - 1º Semestre 2015-2016 Aula Teórica 9 Abordagem ao projecto de programas s, Abordagem Top-Down, Modularidade Processo de Desenvolvimento Tipos de Erros e Casos de

Leia mais

Configurando uma regra de descoberta de rede

Configurando uma regra de descoberta de rede 2018/02/15 10:14 1/6 Configurando uma regra de descoberta de rede Configurando uma regra de descoberta de rede Visão geral As regras de descoberta de rede são utilizadas pelo Zabbix para descobrir hosts

Leia mais

A classe ArrayList. IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli

A classe ArrayList. IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli A classe ArrayList Java oferece uma classe chamada ArrayList, que permite a criação e manipulação de objetos; Um objeto ArrayList é semelhante a um vetor de objetos, mas oferece inúmeras vantagens em relação

Leia mais

VIVADO TUTORIAL 101: CADEADO DIGITAL

VIVADO TUTORIAL 101: CADEADO DIGITAL VIVADO TUTORIAL 101: CADEADO DIGITAL VERSÃO 1.0 - SISTEMAS DIGITAIS - Este tutorial inclui notas adicionais na margem esquerda da página (do tipo G(X.X)). Estas notas referram-se ao(s) passo(s) X.X do

Leia mais

1. Estude e implemente a classe Exemplo1 apresentada abaixo:

1. Estude e implemente a classe Exemplo1 apresentada abaixo: P. Fazendeiro & P. Prata POO FP09/1 Exceções Uma exceção (Exception) é um sinal gerado pela máquina virtual de Java em tempo de execução indicando uma situação de erro da qual é possível recuperar. O objectivo

Leia mais

Problema 2 (1 valor) M = [50:2:248 ; 249:-2:51] Problema 3 (1 valor)

Problema 2 (1 valor) M = [50:2:248 ; 249:-2:51] Problema 3 (1 valor) Nome : Número : Computação e Programação 2015-2016 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame Época de Recurso 27 de janeiro de 2015 Exame

Leia mais

Agosto de 2018 GUIA DE INSTALAÇÃO E UTILIZAÇÃO DA APLICAÇÃO LOCAL GCE

Agosto de 2018 GUIA DE INSTALAÇÃO E UTILIZAÇÃO DA APLICAÇÃO LOCAL GCE Agosto de 2018 GUIA DE INSTALAÇÃO E UTILIZAÇÃO DA APLICAÇÃO LOCAL GCE Índice de conteúdos Requisitos técnicos das máquinas clientes... 4 Obtenção do SETUP da aplicação... 4 Instalação... 5 Atualizações...

Leia mais

JAVA. Professor: Bruno Toledo

JAVA. Professor: Bruno Toledo JAVA Professor: Bruno Toledo Funcionamento de uma LP Em uma Linguagem de Programação (LP) como C e Pascal, temos o seguinte quadro quando vamos compilar um programa. Código fonte em c Teste.c Gera código

Leia mais

Configurando uma regra de descoberta de rede

Configurando uma regra de descoberta de rede 2017/10/28 02:04 1/6 Configurando uma regra de descoberta de rede Configurando uma regra de descoberta de rede Visão geral As regras de descoberta de rede são utilizadas pelo Zabbix para descobrir hosts

Leia mais

Configurando uma regra de descoberta de rede

Configurando uma regra de descoberta de rede 2017/10/15 08:20 1/6 Configurando uma regra de descoberta de rede Configurando uma regra de descoberta de rede Visão geral As regras de descoberta de rede são utilizadas pelo Zabbix para descobrir hosts

Leia mais

3 Ferramenta Proposta 3.1. Objetivos

3 Ferramenta Proposta 3.1. Objetivos 3 Ferramenta Proposta 3.1. Objetivos O objetivo deste trabalho é a criação de um framework de testes que incorpore algumas das novas idéias encontradas na literatura. Sua principal característica deve

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 6 Exceções Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção. Uma exceção é um erro recuperável O controlo da execução do programa

Leia mais

LEIC/LERC 2011/12-1º Exame de Sistemas Operativos 16/Janeiro/2012

LEIC/LERC 2011/12-1º Exame de Sistemas Operativos 16/Janeiro/2012 Número: Nome: LEIC/LERC 2011/12-1º Exame de Sistemas Operativos 16/Janeiro/2012 Identifique todas as folhas. Responda no enunciado, apenas no espaço fornecido. Justifique todas as respostas. Duração: 2h30m

Leia mais

Engenharia de Software

Engenharia de Software UNIVERSIDADE DE LISBOA INSTITUTO SUPERIOR TÉCNICO Engenharia de Software LEIC/LETI, 3 o Ano, 2 o Semestre Repescagem do 1 o Teste, 1 de Julho de 2016 Nome: Número: Este teste tem um conjunto de 10 perguntas

Leia mais

Engenharia de Software

Engenharia de Software UNIVERSIDADE DE LISBOA INSTITUTO SUPERIOR TÉCNICO Engenharia de Software LEIC/LETI, 3 o Ano, 2 o Semestre 1 o Teste, 4 de Abril de 2017 Duração: 90 minutos Nome: Número: Este teste tem um conjunto de 8

Leia mais

EA975 - Laboratório de Engenharia de Software

EA975 - Laboratório de Engenharia de Software EA975 - Laboratório de Engenharia de Software Turmas K/L - 2017 Aula 8 Vamos inicialmente especificar com mais detalhes o termo "recurso" utilizado no estilo arquitetural REST. Em REST, recursos são uma

Leia mais

Mestrado Integrado em Engenharia Electrotécnica e de Computadores 2006/2007. Programação 2. Trabalho Prático P2B

Mestrado Integrado em Engenharia Electrotécnica e de Computadores 2006/2007. Programação 2. Trabalho Prático P2B Mestrado Integrado em Engenharia Electrotécnica e de Computadores 2006/2007 Programação 2 2º Semestre Trabalho Prático P2B Efectue as tarefas de programação descritas abaixo, usando a linguagem C++ em

Leia mais

Análise de Sistemas. Aula 5

Análise de Sistemas. Aula 5 Análise de Sistemas Aula 5 Prof. Emerson Klisiewicz CONTEXTUALIZAÇÃO Aula 5 Análise Orientada a Objetos Introdução a UML Histórico e Visão Geral Ferramentas CASE O Sucesso... Clientes satisfeitos Eles

Leia mais

2 Vectores de objectos

2 Vectores de objectos 2 Vectores de objectos Agenda de contactos 3 Objectivo Manipular uma agenda de contactos. Descrição e Funcionalides Cada contacto na agenda caracteriza-se por um nome, um telefone e um e-mail. Na agenda,

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 3 Classes e instanciação de objectos (em Java) Suponhamos que queremos criar uma classe que especifique a estrutura e o comportamento de objectos do tipo Contador. As instâncias da classe Contador devem

Leia mais

UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos

UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos joao.queiroz@ifrn.edu.br Roteiro A importância da UML para projetar sistemas. Principais características do diagrama de classes e de sequência.

Leia mais

Funções Compostas. Fundamentos de Algoritmos. Projeto de programas complexos. Roteiro. Um programa é composto por definições de funções e variáveis

Funções Compostas. Fundamentos de Algoritmos. Projeto de programas complexos. Roteiro. Um programa é composto por definições de funções e variáveis Funções Compostas 1 Fundamentos de Algoritmos CIC/UFRGS 2006/1 Um programa é composto por definições de funções e variáveis Funções auxiliares são definidas para processar dependências Nesta seção funções

Leia mais

Teste de Software. Teste Funcional Teste Estrutural. Teste Baseado em Erros (Análise de Mutantes)

Teste de Software. Teste Funcional Teste Estrutural. Teste Baseado em Erros (Análise de Mutantes) Teste de Software Teste Funcional Teste Estrutural Teste Baseado em Erros (Análise de Mutantes) Profa Rosana T. V. Braga Material adaptado do material dos profs. Ellen Francine Barbosa e José Carlos Maldonado

Leia mais

U.C Laboratório de Desenvolvimento de Software. 6 de julho de 2018 INSTRUÇÕES

U.C Laboratório de Desenvolvimento de Software. 6 de julho de 2018 INSTRUÇÕES Ministério da Ciência, Tecnologia e Ensino Superior p-fólio U.C. 279 Laboratório de Desenvolvimento de Software 6 de julho de 208 INSTRUÇÕES PARA A RESOLUÇÃO DA PROVA, ACONSELHA-SE QUE LEIA ATENTAMENTE

Leia mais

Teste estrutural. Teste baseado na estrutura do código Mais precisamente, Critério de adequação baseia-se no código!

Teste estrutural. Teste baseado na estrutura do código Mais precisamente, Critério de adequação baseia-se no código! Teste Estrutural Teste estrutural Teste baseado na estrutura do código Mais precisamente, Critério de adequação baseia-se no código! 2 Teste estrutural Estrutura de um programa é um grafo Exemplos: Organização

Leia mais

Net Business. Introdução. Procedimentos I - Recolha do ficheiro

Net Business. Introdução. Procedimentos I - Recolha do ficheiro Introdução Tal como anunciado estamos a lançar uma rotina que permite conciliar os documentos lançados na contabilidade com as faturas declaradas pelos fornecedores e que se encontram disponíveis no site

Leia mais

Linguagens de Domínio Específico

Linguagens de Domínio Específico Linguagens de Domínio Específico Fabio Mascarenhas 2017.1 http://www.dcc.ufrj.br/~fabiom/dsl Por que DSLs? Melhorar a produtividade dos programadores input =~ /\d{3}-\d{3}-\d{4}/ Facilitar a escrita e

Leia mais

BioJava. Análise e breve comparação com outras Bio* frameworks. Rui Marques. Bioinformática - MIERSI. Faculdade de Ciências da Universidade do Porto

BioJava. Análise e breve comparação com outras Bio* frameworks. Rui Marques. Bioinformática - MIERSI. Faculdade de Ciências da Universidade do Porto BioJava Análise e breve comparação com outras Bio* frameworks Rui Marques Bioinformática - MIERSI Faculdade de Ciências da Universidade do Porto up030307060@alunos.dcc.fc.up.pt BioJava Criado em 1999 por

Leia mais

Fundamentos da Programação

Fundamentos da Programação Fundamentos da Programação Solução do segundo exame 29 de Janeiro de 2016 18:30 20:30 1. Indique se cada uma das seguintes afirmações é verdadeira ou falsa. No caso de ser falsa, justifique de forma sucinta.

Leia mais

Serviç os da Web de distribuiç ã o digital (DDWS) GetMyPrice - Serviço manual

Serviç os da Web de distribuiç ã o digital (DDWS) GetMyPrice - Serviço manual Serviç os da Web de distribuiç ã o digital (DDWS) GetMyPrice - Serviço manual ÍNDICE Histórico de revisão... 2 1 Introdução... 3 1.1 Visão geral... 3 1.2 Documentos de suporte... 3 2 Introdução... 3 3

Leia mais

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas Nome: Número: Computação e Programação 2017-2018 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame Época de Recurso 31 de janeiro de 2018 Exame

Leia mais

Configuração dos Comandos à Distância do KDE. Michael Zanetti Tradução: José Pires

Configuração dos Comandos à Distância do KDE. Michael Zanetti Tradução: José Pires Configuração dos Comandos à Distância do KDE Michael Zanetti Tradução: José Pires 2 Conteúdo 1 Introdução 5 1.1 Requisitos.......................................... 5 2 Utilização 6 2.1 Comandos à Distância

Leia mais

JUnit. Alexandre Menezes Silva Eduardo Manuel de Freitas Jorge

JUnit. Alexandre Menezes Silva Eduardo Manuel de Freitas Jorge JUnit Alexandre Menezes Silva alexandre_crvg@hotmail.com Eduardo Manuel de Freitas Jorge emjorge1974@gmail.com 0 Sumário O que é?... 2 Pra que serve?... 2 Arquitetura... 2 Método de comparação assertequals...

Leia mais

Computadores e Programação Engª Biomédica Departamento de Física Faculdade de Ciências e Tecnologia da Universidade de Coimbra Ano Lectivo 2003/2004

Computadores e Programação Engª Biomédica Departamento de Física Faculdade de Ciências e Tecnologia da Universidade de Coimbra Ano Lectivo 2003/2004 Computadores e Programação Engª Biomédica Departamento de Física Faculdade de Ciências e Tecnologia da Universidade de Coimbra Ano Lectivo 2003/2004 FICHA 8 CLASSES E OBJECTOS 8. Objectivos Objectivos

Leia mais

Linguagem de Programação Visual

Linguagem de Programação Visual Linguagem de Programação Visual Unidade 4 - Introdução à API Swing - JOptionPane Curso Técnico em Informática SUMÁRIO INTRODUÇÃO... 3 API SWING... 3 A CLASSE JOPTIONPANE... 3 PRINCIPAIS MÉTODOS DA CLASSE

Leia mais

Daikon Invariant Detector. Bárbara dos Santos Flores Fernanda Sant Anna Pimenta

Daikon Invariant Detector. Bárbara dos Santos Flores Fernanda Sant Anna Pimenta Daikon Invariant Detector Bárbara dos Santos Flores Fernanda Sant Anna Pimenta Introdução Daikon sistema capaz de detectar possíveis invariantes a partir do rastreamento da execução de um programa. Características

Leia mais

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA Pilhas Estrutura de Dados A Estrutura de Dados Pilha Pilha é uma estrutura de dados usada em programação, que tem uma regra

Leia mais

Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação. Estruturas de Dados

Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação. Estruturas de Dados Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação Estruturas de Dados Tópicos Especiais em Programação Site: http://jeiks.net E-mail: jacsonrcsilva@gmail.com

Leia mais

REDES DE COMPUTADORES

REDES DE COMPUTADORES REDES DE COMPUTADORES Jonas Willian R Aureliano Resumo prático Professor: Jonas Willian ROTEIRO Arquivo sources.list; Comando apt-get; Arquivo hostname; Arquivo interfaces; ARQUIVO SOURCES.LIST Este é

Leia mais

SSC 0721 Teste e Validação de Software

SSC 0721 Teste e Validação de Software SSC 0721 Teste e Validação de Software Conceitos básicos Prof. Marcio E. Delamaro delamaro@icmc.usp.br SSC 0721 Teste e Validação de Software ICMC/USP p. 1 O que é teste Atividade de executar um programa

Leia mais

4 Caso de Uso no Ambiente Oracle

4 Caso de Uso no Ambiente Oracle 4 Caso de Uso no Ambiente Oracle No capítulo anterior foi definido o processo para definição de uma estratégia de rastreabilidade. Neste capítulo será realizada uma instanciação do processo em um ambiente

Leia mais

Sped Contábil G - Diário Geral; R - Diário com Escrituração Resumida (vinculado a livro auxiliar); A - Diário Auxiliar; Z - Razão Auxiliar;

Sped Contábil G - Diário Geral; R - Diário com Escrituração Resumida (vinculado a livro auxiliar); A - Diário Auxiliar; Z - Razão Auxiliar; Sped Contábil Informações: Podem ser incluídos todos os livros da escrituração contábil, em suas diversas formas. O diário e o razão são, para o Sped Contábil, um livro digital único (consulte a Resolução

Leia mais