Aula 11: Análise Dinâmica - 2a. parte
|
|
- Gabriel Henrique Cruz Medina
- 8 Há anos
- Visualizações:
Transcrição
1 Aula 11: Análise Dinâmica - 2a. parte Nesta aula, continuaremos nossa discussão a respeito da análise dinâmica, focando na atividade de teste. Iremos dar uma breve olhada em algumas das noções básicas sobre as quais a atividade de teste está baseada, iremos analisar também as técnicas mais utilizadas na prática. No final, iremos reunir algumas diretrizes para lhe ajudar em seu próprio trabalho de testes Testando Os testes são muito mais efetivos, e menos dolorosos, se você utilizar uma abordagem sistemática. Antes de você começar, pense a respeito dos seguintes itens: quais propriedades você quer testar e para quê; quais módulos você quer testar, e em qual ordem você os irá testar; como você vai gerar casos de teste; como você irá checar os resultados; quando você vai saber que o trabalho está terminado. Para se decidir quais propriedades testar, e quais testes executar sobre estas propriedades, será necessário conhecimento a respeito do domínio do problema, visando compreender quais tipos de falhas serão consideradas as mais sérias, e será necessário também, conhecimento do programa, visando entender qual será a dificuldade em se detectar a variedade dos erros. A escolha dos módulos é direta. Você deve testar, especialmente, os módulos que são críticos, que são complexos, ou que foram escritos pelo pior dos seus programadores (ou por aquele que mais adora utilizar truquezinhos dentro do código). Ou, talvez, o módulo que foi escrito tarde da noite, ou em cima da data de lançamento... O diagrama de dependência modular ajuda a determinar a ordem. Se o seu módulo depende de um módulo que ainda não foi implementado, você precisará escrever um stub (o esqueleto de um módulo, que no máximo simula seu funcionamento) que irá fazer o papel do módulo que está faltando durante os testes. O stub fornece comportamento suficiente para os testes a serem realizados. Ele pode, por exemplo, procurar respostas em uma tabela ao invés de realizar a computação verdadeira. A checagem dos resultados pode ser difícil. Alguns programas - como o Foliotracker que você estará construindo nos exercícios 5 e 6 - nem mesmo possuem comportamento repetitivo. Para outros programas, os resultados são apenas a ponta do iceberg, e para se certificar que as coisas estão realmente funcionando, você terá que checar estruturas internas. Mais adiante, iremos discutir 118
2 questões sobre como gerar casos de teste e como saber quando o trabalho está completo Testes de Regressão É muito importante ser capaz de reexecutar seus testes quando você modificar seu código. Por esta razão, não é uma idéia muito boa realizar testes específicos que não podem ser repetidos. Pode parecer um trabalho árduo, mas em longo prazo, é muito menos trabalhoso construir um conjunto prático de testes, isto é, um suíte de testes que podem ser reexecutados a partir de um arquivo. Tais testes são conhecidos como testes de regressão. Uma abordagem de testes conhecida pelo nome de 'test first programming', e que é parte do novo tratado de desenvolvimento conhecido como 'extreme programming', encoraja a construção de testes de regressão antes mesmo de se escrever qualquer código da aplicação. JUnit, oframework de testes que você tem utilizado, foi projetado para a isto. A construção de testes de regressão para um sistema grande é um ótimo negócio. É possível que a execução dos scripts de testes leve até uma semana. Por conta disto, uma área de pesquisas de muito interesse atualmente é a que tenta descobrir quais testes de regressão podem ser omitidos. Se você souber quais casos de teste testam quais partes do código, você pode ser capaz de determinar que uma alteração local em uma parte do código não exige que todos os casos sejam reexecutados Normas Para se compreender como os testes são gerados e avaliados, podemos pensar de maneira abstrata a respeito do propósito e da natureza das atividades de teste. Suponha que temos um programa P que, espera-se, satisfaça a uma especificação S. Vamos assumir, por simplicidade, que P é uma função que transforma entradas de dados em saídas de dados, e S é uma função que recebe uma entrada de dados e uma saída de dados, retornando um tipo boolean. Nosso objetivo na realização dos testes é encontrar um caso de teste t tal que S (t, P(t)) é falso: ou seja, P produz um resultado para a entrada t quenãoépermitidopors. Iremos denominar t como um 'caso de teste falho', apesar de se tratar, na verdade, de um caso de teste de sucesso, pois nosso objetivo é encontrar erros! UmsuítedetestesT é um conjunto de casos de teste. Fazemos, então, a seguinte pergunta: quando um suíte pode ser considerado bom o suficiente? Ao invés de tentamos avaliar cada suíte de testes 119
3 de uma forma dependente da situação, podemos aplicar uma norma geral. Você pode pensar em uma norma como uma função: C: Suite, Program, Spec Boolean que recebe um suíte de testes, um programa, e uma especificação, retornando true ou false de acordo com o fato do suíte de testes ser bom o suficiente para avaliar o programa e a especificação fornecidos, o que deve ser feito de maneira sistemática. A maioria das normas não envolve, ambos, o programa e a especificação. Uma norma que envolve apenas o programa é denominada norma program-based (baseada em programa). Outros termos também são usados como 'whitebox', 'clearbox', 'glassbox', ou 'structural testing' para se descrever testes que utilizam as normas do tipo program-based. Uma norma que envolve apenas a especificação é denominada norma specification-based (baseada em especificação). O termo 'blackbox testing' é utilizado em associação com o termo specificationbased, para sugerir que os testes são julgados sem que se possa analisar a parte interna do programa. Você pode escutar também o termo 'functional testing' Subdomínios Normas práticas tendem a ter uma estrutura particular e propriedades. Por exemplo, elas podem aceitar um suíte de testes T, mas rejeitar um suíte de testes T' queéigualat, possuindo apenas alguns casos de teste extras. As normas práticas também tendem a não ser sensíveis a quais combinações de testes são escolhidas. Estas características não são, necessariamente, boas propriedades; elas apenas surgiram a partir da maneira simples a partir da qual as normas são definidas. O domínio de dados de entrada é dividido em regiões normalmente chamadas de subdomínios, cada um dos quais contendo um conjunto de entradas. Os subdomínios juntos englobam todo o domínio de dados de entrada - ou seja, toda entrada está em pelo menos um subdomínio. Uma divisão do domínio de dados de entrada em subdomínios define uma norma implícita: que define que deva existir pelo menos um caso de teste para cada subdomínio. Subdomínios, normalmente, não são disjuntos, portanto, um único caso de teste pode estar em vários subdomínios. A intuição por trás dos subdomínios pode ser compreendida em duas partes. Primeiro, é uma maneira fácil (pelo menos conceitualmente) de se determinar se um suíte de testes é bom o suficiente. Segundo, esperamos que, ao exigir um caso de teste de cada subdomínio, faremos com 120
4 que os testes sejam orientados às regiões mais propensas a revelar bugs. Intuitivamente, cada subdomínio representa um conjunto de casos de teste similares; desejamos maximizar o benefício de nossa atividade de teste escolhendo casos de teste que não sejam similares - ou seja, casos de teste de diferentes subdomínios. No melhor caso, um subdomínio pode ser considerado revelador. Isto significa que todo caso de teste pertencente a este subdomínio faz com que o programa ou falhe ou tenha sucesso. O subdomínio, portanto, agrupa casos de teste verdadeiramente equivalentes. Se todos os subdomínios são reveladores, um suíte de testes que satisfaz à norma implícita estará completo, pois teremos a certeza de que o suíte irá encontrar qualquer bug. Na prática, no entanto, é muito difícil conseguir subdomínios reveladores, mas através de uma escolha cuidadosa dos subdomínios é possível ter-se, no mínimo, alguns subdomínios cuja taxa de erros - a proporção de entradas de dados que levam a saídas de dados erradas - é bem maior que a média de erros do domínio de dados de entrada como um todo Norma de Subdomínio A norma padrão e mais amplamente utilizada para a atividade de teste do tipo program-based é denominada 'statement coverage', ou 'cobertura das sentenças': que define que toda a sentença de um programa deve ser executada pelo menos uma vez. Você pode perceber, através da definição da norma, por que ela é considerada uma norma de subdomínio: defina para cada sentença do programa um conjunto de entradas que fazem com que esta sentença seja executada, e escolha no mínimo um caso de teste para cada subdomínio. Obviamente, o subdomínio nunca é, explicitamente, construído; trata-se de uma noção conceitual. Ao invés disso, tipicamente, executase uma versão instrumentada do programa que registra cada sentença executada. Deve-se continuar acrescentando casos de teste até que todas as sentenças sejam executadas. Existem outras normas ainda mais trabalhosas do que o statement coverage. A norma denominada 'decision coverage', por exemplo, requer que todas as arestas do gráfico do fluxo de controle do programa sejam executadas - é como exigir que todos os ramos de um programa sejam executados. Não é tão óbvio o porquê desta abordagem ser considerada mais trabalhosa do que o statement coverage. Pois, então, considere aplicar esta norma a um procedimento que retorna o menor de dois números: static int minimum (int a, int b) { if (a b) return a; else return b; 121
5 Para este código, statement coverage, irá exigir entradas com a menor do que b evice-versa.no entanto, para o código static int minimum (int a, int b) { intresult=b; if (b a) result = b; return result; um único caso de teste com b menor do que a irá satisfazer a norma statement coverage, masnão poderíamos identificar o bug que está presente no código. Para satisfazer à norma decision coverage seria exigido um caso (um ramo) no qual o comando if não seja executado, expondo, desta forma, o bug. Existem muitas formas de 'condition coverage' que exigem, de diversas formas, que as expressões boolenas testadas como condição sejam avaliadas tanto para true como para false. Uma forma particular de condition coverage conhecida como MCDC, é exigida por um padrão denominado DoD específico para softwares de segurança crítica, como os da aviação. Este padrão, o DO-178B, classifica as falhas em três níveis, e requer um diferente nível de cobertura para cada nível: Nível C: a falha reduz a margem de segurança Exemplo: link de dados via rádio Requer: statement coverage Nível B: a falha reduz a capacidade da aeronave ou da tripulação Exemplo: GPS Requer: decision coverage Nível A: a falha causa a perda da aeronave Exemplo: sistema de gerenciamento de vôo Requer: MCDC coverage Uma outra forma de norma de subdomínio do tipo program-based é utilizada em testes denominados boundary testing, ou testes limite. Estes tipos de testes exigem que os casos extremos para toda sentença condicional sejam avaliados. Por exemplo, se o seu programa testa x<n, seriam necessários casos de teste que produzissem x=n, x=n-1, ex=n
6 Normas do tipo specification-based são, também, muitas vezes moldadas em termos de subdomínios. Pelo fato de que as especificações são, normalmente, informais - ou seja, não são escritas em nenhuma notação muito precisa - as normas tendem a ser um tanto vagas. A abordagem mais comum é definir subdomínios de acordo com a estrutura da especificação e de acordo com os valores dos tipos de dados subjacentes. Por exemplo, os subdomínios de um método que insere um elemento em um conjunto podem ser: o conjunto é vazio o conjunto é não vazio e o elemento não está no conjunto oconjuntoénãovazioeoelementoestánoconjunto. Você pode, também, utilizar na especificação qualquer estrutura condicional para guiá-lo na divisão do domínio de dados de entrada em subdomínios. Além disso, na prática, as pessoas incumbidas de realizar os testes utilizam seu conhecimento a respeito dos tipos de erros que muitas vezes surgem no código. Por exemplo, se você estiver testando um procedimento que encontra um elemento em um array, você, provavelmente, irá colocar o elemento de teste no início, no meio e no fim, simplesmente porque estes casos são propensos a ser manipulados diferentemente no código Viabilidade Cobertura total é raramente possível. De fato, mesmo que se alcance 100% das sentenças do código, é normalmente impossível alcançar a cobertura total. No mínimo, esta impossibilidade ocorre em razão de código decorrente de programação defensiva, código que, em grande parte, nunca é executado. As operações de um tipo abstrato de dado, que não possuem nenhum cliente, também não serão testadas pelos casos de teste, independente do rigor aplicado; no entanto, estes testes podem ser executados por testes de unidade. Uma norma é considerada viável se for possível satisfazê-la. Na prática, as normas normalmente não são viáveis. Em termos de subdomínio, elas contêm subdomínios vazios. A questão prática é determinar se um subdomínio particular é vazio ou não; se for vazio, não há razão em se procurar um caso de teste que o satisfaça. Falando de forma geral, quanto mais elaborada a norma, mais difícil é a sua determinação. Por exemplo, a norma denominada path coverage exige que todos os caminhos do programa sejam executados. Suponha que o programa se pareça com isto: 123
7 if C1 then S1; if C2 then S2; então, para se determinar se o caminho S1;S2 é viável, precisamos determinar se as condições C1 e C2 podem, ambas, serem verdadeiras. Para um programa complexo, esta não é uma tarefa trivial e, no pior caso, não é mais fácil do que determinar seu programa está correto, ou não, através do raciocínio! A despeito destes problemas, a idéia de se cobrir as possibilidades do programa é muito importante na prática. Se existe um número significante de partes do seu programa que nunca foram executadas, não há como se ter muita certeza que este programa está correto! 11.7 Diretrizes Práticas Deve estar claro porque nem as normas program-based, nem as normas specification-based são, se utilizadas isoladamente, boas o suficiente. Se você apenas olhar o programa, você não identificará erros por ser omisso. Se você olhar apenas a especificação, você não irá identificar os erros que surgem em decorrência de problemas de implementação, como, por exemplo, quando os limites de um determinado recurso computacional são alcançados, ocasião quando um procedimento de compensação é necessário. Na implementação da classe ArrayList do Java, por exemplo, o array da representação é substituído quando fica cheio. Para se testar este comportamento, será necessário inserir uma quantidade suficiente de elementos para que o array fique cheio. A experiência sugere que a melhor forma de se desenvolver um suíte de testes é utilizando-se normas do tipo specification-based para guiar o desenvolvimento do suíte e, para testar o suíte, é melhor que se utilizem normas do tipo program-based. Assim, você será capaz de examinar a especificação, e capaz de definir subdomínios de entrada. Baseando-se nessas premissas, você pode escrever os casos de teste. Então, você executa os casos de teste, e mede a cobertura dos testes em relação ao código. Se a cobertura não for adequada, basta que se adicionem novos casos de teste. Nos padrões industriais, você utilizaria uma ferramenta especial para medir a cobertura dos testes em relação ao código. No curso 6170, não exigiremos que você aprenda a utilizar qualquer ferramenta. Ao invés disso, você deve apenas escolher casos de teste suficientemente elaborados para que possa argumentar que alcançou uma cobertura considerável do código. As certificações em tempo de execução, especialmente as que representam checagens de invariante, irão dramaticamente aumentar o poder dos seus testes. Você irá encontrar mais bugs e poderá solucioná-los mais facilmente. 124
Processos de Desenvolvimento de Software
Processos de Desenvolvimento de Software Gerenciamento de Projetos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e
Leia maisComo melhorar a Qualidade de Software através s de testes e nua. Cláudio Antônio de Araújo 22/11/2008
Como melhorar a Qualidade de Software através s de testes e integração contínua. nua. Cláudio Antônio de Araújo 22/11/2008 Objetivos Fornecer uma visão geral da área de testes de software, com ênfase em
Leia maisAnálise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)
Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem
Leia maisComo Processos Criam Valor?
Como Processos Criam Valor? Eu comecei este Advisor há um mês. Li um artigo sobre processos e valor que pensei estar inadequado e decidi ver se eu poderia disponibilizar uma descrição mais clara e compreensível.
Leia maisOrientação a Objetos
1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou
Leia maisa 1 x 1 +... + a n x n = b,
Sistemas Lineares Equações Lineares Vários problemas nas áreas científica, tecnológica e econômica são modelados por sistemas de equações lineares e requerem a solução destes no menor tempo possível Definição
Leia maisPROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software
PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às
Leia maisImportância da normalização para as Micro e Pequenas Empresas 1. Normas só são importantes para as grandes empresas...
APRESENTAÇÃO O incremento da competitividade é um fator decisivo para a maior inserção das Micro e Pequenas Empresas (MPE), em mercados externos cada vez mais globalizados. Internamente, as MPE estão inseridas
Leia maisa) Teste das funções do sistema com outros sistemas b) Teste de componentes que em conjunto compõem a função do sistema
Simulado CTFL- BSTQB Tempo de duração: 60 minutos 1. Considerando as seguintes afirmações: I. 100% de cobertura de sentença (comando) garante 100% de cobertura de desvio II. 100% de cobertura de desvio
Leia maisPodemos encontrar uma figura interessante no PMBOK (Capítulo 7) sobre a necessidade de organizarmos o fluxo de caixa em um projeto.
Discussão sobre Nivelamento Baseado em Fluxo de Caixa. Item aberto na lista E-Plan Podemos encontrar uma figura interessante no PMBOK (Capítulo 7) sobre a necessidade de organizarmos o fluxo de caixa em
Leia maisPONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas CMP1132 Processo e qualidade de software II Prof. Me. Elias Ferreira Sala: 402 E Quarta-Feira:
Leia maisTabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008
Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,
Leia maisAlgoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br
(Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução
Leia maisGARANTIA DA QUALIDADE DE SOFTWARE
GARANTIA DA QUALIDADE DE SOFTWARE Fonte: http://www.testexpert.com.br/?q=node/669 1 GARANTIA DA QUALIDADE DE SOFTWARE Segundo a NBR ISO 9000:2005, qualidade é o grau no qual um conjunto de características
Leia maisAula 4 Estatística Conceitos básicos
Aula 4 Estatística Conceitos básicos Plano de Aula Amostra e universo Média Variância / desvio-padrão / erro-padrão Intervalo de confiança Teste de hipótese Amostra e Universo A estatística nos ajuda a
Leia maisDisciplina: Unidade III: Prof.: E-mail: Período:
Encontro 08 Disciplina: Sistemas de Banco de Dados Unidade III: Modelagem Lógico de Dados Prof.: Mario Filho E-mail: pro@mariofilho.com.br Período: 5º. SIG - ADM Relembrando... Necessidade de Dados Projeto
Leia maisGuia de utilização da notação BPMN
1 Guia de utilização da notação BPMN Agosto 2011 2 Sumário de Informações do Documento Documento: Guia_de_utilização_da_notação_BPMN.odt Número de páginas: 31 Versão Data Mudanças Autor 1.0 15/09/11 Criação
Leia maisTecnologia em Gestão Pública Desenvolvimento de Projetos - Aula 9 Prof. Rafael Roesler
Tecnologia em Gestão Pública Desenvolvimento de Projetos - Aula 9 Prof. Rafael Roesler Introdução Objetivos da Gestão dos Custos Processos da Gerência de Custos Planejamento dos recursos Estimativa dos
Leia maisMÓDULO 6 INTRODUÇÃO À PROBABILIDADE
MÓDULO 6 INTRODUÇÃO À PROBBILIDDE Quando estudamos algum fenômeno através do método estatístico, na maior parte das vezes é preciso estabelecer uma distinção entre o modelo matemático que construímos para
Leia maisFATEC Cruzeiro José da Silva. Ferramenta CRM como estratégia de negócios
FATEC Cruzeiro José da Silva Ferramenta CRM como estratégia de negócios Cruzeiro SP 2008 FATEC Cruzeiro José da Silva Ferramenta CRM como estratégia de negócios Projeto de trabalho de formatura como requisito
Leia maisENGENHARIA DE SOFTWARE I
ENGENHARIA DE SOFTWARE I Prof. Cássio Huggentobler de Costa [cassio.costa@ulbra.br] Twitter: www.twitter.com/cassiocosta_ Agenda da Aula (002) Metodologias de Desenvolvimento de Softwares Métodos Ágeis
Leia maisDiagrama de transição de Estados (DTE)
Diagrama de transição de Estados (DTE) O DTE é uma ferramenta de modelação poderosa para descrever o comportamento do sistema dependente do tempo. A necessidade de uma ferramenta deste tipo surgiu das
Leia mais1.6. Tratamento de Exceções
Paradigmas de Linguagens I 1 1.6. Tratamento de Exceções Uma exceção denota um comportamento anormal, indesejado, que ocorre raramente e requer alguma ação imediata em uma parte do programa [GHE 97, DER
Leia maisBatalha Naval Algoritmos de Busca. Correlações curriculares Matemática: Números: maior que, menor que, iguais a.
Atividade 6 Batalha Naval Algoritmos de Busca Sumário Computadores são freqüentemente requisitados a encontrar informação em grandes coleções de dados. Estes precisam desenvolver métodos rápidos e eficientes
Leia maisExercícios Teóricos Resolvidos
Universidade Federal de Minas Gerais Instituto de Ciências Exatas Departamento de Matemática Exercícios Teóricos Resolvidos O propósito deste texto é tentar mostrar aos alunos várias maneiras de raciocinar
Leia maisARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.
Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 8 ARRAYS Introdução Até agora, utilizamos variáveis individuais. Significa que uma variável objeto
Leia maisCasos de teste semânticos. Casos de teste valorados. Determinar resultados esperados. Gerar script de teste automatizado.
1 Introdução Testes são importantes técnicas de controle da qualidade do software. Entretanto, testes tendem a ser pouco eficazes devido à inadequação das ferramentas de teste existentes [NIST, 2002].
Leia mais3 Qualidade de Software
3 Qualidade de Software Este capítulo tem como objetivo esclarecer conceitos relacionados à qualidade de software; conceitos estes muito importantes para o entendimento do presente trabalho, cujo objetivo
Leia maisMódulo 4. Construindo uma solução OLAP
Módulo 4. Construindo uma solução OLAP Objetivos Diferenciar as diversas formas de armazenamento Compreender o que é e como definir a porcentagem de agregação Conhecer a possibilidade da utilização de
Leia maisFeature-Driven Development
FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por
Leia maisProf. Antonio Torres antonioctorres@gmail.com @_antonioctorres. Fundamentos de Sistemas Operacionais UNIP/2015
Prof. Antonio Torres antonioctorres@gmail.com @_antonioctorres Fundamentos de Sistemas Operacionais UNIP/2015 Disciplinas FUNDAMENTOS DE SISTEMAS OPERACIONAIS Horários Quarta-feira Fundamentos de Sistemas
Leia maisCapítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1
Capítulo 2 Processos de Software slide 1 Tópicos apresentados Modelos de processo de software. Atividades de processo. Lidando com mudanças. Rational Unified Process (RUP). Um exemplo de um processo de
Leia maisEngenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios
Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Cronograma das Aulas. Hoje você está na aula Semana
Leia maisGovernança de TI. ITIL v.2&3. parte 1
Governança de TI ITIL v.2&3 parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR ITIL 1 1 ITIL Gerenciamento de Serviços 2 2 Gerenciamento de Serviços Gerenciamento de Serviços 3 3 Gerenciamento de Serviços
Leia maisMódulo 15 Resumo. Módulo I Cultura da Informação
Módulo 15 Resumo Neste módulo vamos dar uma explanação geral sobre os pontos que foram trabalhados ao longo desta disciplina. Os pontos abordados nesta disciplina foram: Fundamentos teóricos de sistemas
Leia maisMEDIDA E ANÁLISE DE DESEMPENHO AULA 14 Arquitetura de Computadores Gil Eduardo de Andrade
MEDIDA E ANÁLISE DE DESEMPENHO AULA 14 Arquitetura de Computadores Gil Eduardo de Andrade O conteúdo deste documento é baseado no livro Princípios Básicos de Arquitetura e Organização de Computadores Linda
Leia maisInventario de produtos
Inventario de produtos Parar o TAC. Gerar o inventario. Informações de erros na importação de produtos. Produtos sem código tributário associado. A posse de produtos no Thotau. Como corrigir as posses
Leia maisVisite o hotsite do livro: http://bit.ly/1ysv0da
Este ebook possui 5 dicas práticas avançadas de Facebook Ads que foram retiradas do novo livro que estamos escrevendo, chamado Facebook Marketing Avançado, que vai possuir muitas outras dicas práticas,
Leia maisCAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES
CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:
Leia maisBCC202 - Estrutura de Dados I
BCC202 - Estrutura de Dados I Aula 04: Análise de Algoritmos (Parte 1) Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Ciência da Computação, DECOM Website: www.decom.ufop.br/reifortes
Leia maisTÉCNICAS DE PROGRAMAÇÃO
TÉCNICAS DE PROGRAMAÇÃO (Adaptado do texto do prof. Adair Santa Catarina) ALGORITMOS COM QUALIDADE MÁXIMAS DE PROGRAMAÇÃO 1) Algoritmos devem ser feitos para serem lidos por seres humanos: Tenha em mente
Leia maisMicrosoft Access XP Módulo Um
Microsoft Access XP Módulo Um Neste primeiro módulo de aula do curso completo de Access XP vamos nos dedicar ao estudo de alguns termos relacionados com banco de dados e as principais novidades do novo
Leia maisNotas da Aula 17 - Fundamentos de Sistemas Operacionais
Notas da Aula 17 - Fundamentos de Sistemas Operacionais 1. Gerenciamento de Memória: Introdução O gerenciamento de memória é provavelmente a tarefa mais complexa de um sistema operacional multiprogramado.
Leia maisUnidade VI. Validação e Verificação de Software Teste de Software. Conteúdo. Técnicas de Teste. Estratégias de Teste
Unidade VI Validação e Verificação de Software Teste de Software Profa. Dra. Sandra Fabbri Conteúdo Técnicas de Teste Funcional Estrutural Baseada em Erros Estratégias de Teste Teste de Unidade Teste de
Leia maisConteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos
Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de
Leia maisIntrodução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3
Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3 A LEGO Education tem o prazer de trazer até você a edição para tablet do Software LEGO MINDSTORMS Education EV3 - um jeito divertido
Leia maisCálculo utilizando variáveis do tipo DATA
Cálculo utilizando variáveis do tipo DATA Pré requisitos: Elaboração de questionário Análise de resultados Visões: relatórios multimídia Publicação de questionário na internet O uso de variáveis do tipo
Leia maisSistemas Operacionais
Sistemas Operacionais Aula 13 Gerência de Memória Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso Sumário
Leia maisUm jogo de preencher casas
Um jogo de preencher casas 12 de Janeiro de 2015 Resumo Objetivos principais da aula de hoje: resolver um jogo com a ajuda de problemas de divisibilidade. Descrevemos nestas notas um jogo que estudamos
Leia maisEstrutura de Dados Básica
Estrutura de Dados Básica Professor: Osvaldo Kotaro Takai. Aula 7: Recursividade O objetivo desta aula é apresentar o conceito de recursão para solução de problemas. A recursão é uma técnica de programação
Leia maisAula 05 Raciocínio Lógico p/ INSS - Técnico do Seguro Social - Com Videoaulas
Aula 05 Raciocínio Lógico p/ INSS - Técnico do Seguro Social - Com Videoaulas Professor: Arthur Lima AULA 05: RESUMO Caro aluno, Para finalizar nosso curso, preparei um resumo de toda a teoria vista nas
Leia maisADM041 / EPR806 Sistemas de Informação
ADM041 / EPR806 Sistemas de Informação UNIFEI Universidade Federal de Itajubá Prof. Dr. Alexandre Ferreira de Pinho 1 Sistemas de Apoio à Decisão (SAD) Tipos de SAD Orientados por modelos: Criação de diferentes
Leia maisEngenharia de Software
Engenharia de Software Roteiro Inspeção Defeitos dos Software Classificação dos Erros Técnica de Leitura Ad-hoc Checklist Exercício Inspeção Inspeção de Software Definição É um método de análise estática
Leia maisNa medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.
1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade
Leia maisColeções. Conceitos e Utilização Básica. c Professores de ALPRO I 05/2012. Faculdade de Informática PUCRS
Coleções Conceitos e Utilização Básica c Professores de ALPRO I Faculdade de Informática PUCRS 05/2012 ALPRO I (FACIN) Coleções: Básico 05/2012 1 / 41 Nota Este material não pode ser reproduzido ou utilizado
Leia maisCurso de Graduação em Administração. Administração da Produção e Operações I
Curso de Graduação em Administração Administração da Produção e Operações I 22º Encontro - 11/05/2012 18:50 às 20:30h COMO SERÁ NOSSO ENCONTRO HOJE? - ABERTURA - CAPACIDADE E TURNOS DE TRABALHO. 02 Introdução
Leia maisIntrodução a Java. Hélder Nunes
Introdução a Java Hélder Nunes 2 Exercício de Fixação Os 4 elementos básicos da OO são os objetos, as classes, os atributos e os métodos. A orientação a objetos consiste em considerar os sistemas computacionais
Leia maisCapítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho
20 Capítulo 3 Avaliação de Desempenho Este capítulo aborda como medir, informar e documentar aspectos relativos ao desempenho de um computador. Além disso, descreve os principais fatores que influenciam
Leia maisValidando dados de páginas WEB
Validando dados de páginas WEB Para que validar os dados? Validar os dados informados pelo usuário garante que sua aplicação funcione corretamente e as informações contidas nela tenha algum sentido. Outro
Leia maisPROFESSOR: CRISTIANO MARIOTTI
PROFESSOR: CRISTIANO MARIOTTI Conjunto de atividades, parcialmente ordenadas, com a finalidade de obter um produto de software; Considerado um dos principais mecanismos para se obter software de qualidade
Leia maisProf. Raul Sidnei Wazlawick UFSC-CTC-INE. Fonte: Análise e Projeto de Sistemas de Informação Orientados a Objetos, 2ª Edição, Elsevier, 2010.
Casos de Uso de Alto Nível Prof. Raul Sidnei Wazlawick UFSC-CTC-INE 2010 Fonte: Análise e Projeto de Sistemas de Informação Orientados a Objetos, 2ª Edição, Elsevier, 2010. Contexto Na fase de concepção
Leia maisEspecificação do 3º Trabalho
Especificação do 3º Trabalho I. Introdução O objetivo deste trabalho é abordar a prática da programação orientada a objetos usando a linguagem Java envolvendo os conceitos de classe, objeto, associação,
Leia maisPROGRAMAÇÃO ESTRUTURADA. CC 2º Período
PROGRAMAÇÃO ESTRUTURADA CC 2º Período PROGRAMAÇÃO ESTRUTURADA Aula 07: Funções O comando return Protótipo de funções O tipo void Arquivos-cabeçalho Escopo de variáveis Passagem de parâmetros por valor
Leia maisO papel do CRM no sucesso comercial
O papel do CRM no sucesso comercial Escrito por Gustavo Paulillo Você sabia que o relacionamento com clientes pode ajudar sua empresa a ter mais sucesso nas vendas? Ter uma equipe de vendas eficaz é o
Leia maisLógica de Programação
Lógica de Programação Softblue Logic IDE Guia de Instalação www.softblue.com.br Sumário 1 O Ensino da Lógica de Programação... 1 2 A Ferramenta... 1 3 Funcionalidades... 2 4 Instalação... 3 4.1 Windows...
Leia maisQ-Acadêmico. Módulo CIEE - Estágio. Revisão 01
Q-Acadêmico Módulo CIEE - Estágio Revisão 01 SUMÁRIO 1. VISÃO GERAL DO MÓDULO... 2 1.1 PRÉ-REQUISITOS... 2 2. ORDEM DE CADASTROS PARA UTILIZAÇÃO DO MÓDULO CIEE... 3 2.1 CADASTRANDO EMPRESAS... 3 2.1.1
Leia maisMemórias Prof. Galvez Gonçalves
Arquitetura e Organização de Computadores 1 s Prof. Galvez Gonçalves Objetivo: Compreender os tipos de memória e como elas são acionadas nos sistemas computacionais modernos. INTRODUÇÃO Nas aulas anteriores
Leia maisCENTRO DE CIÊNCIAS TECNOLÓGICAS CCT
UNIVERSIDADE DO ESTADO DE SANTA CATARINA CENTRO DE CIÊNCIAS TECNOLÓGICAS CCT CURSO DE TECNOLOGIA EM SISTEMAS DE INFORMAÇÃO ENGENHARIA DO PRODUTO FABIANO RAMOS DOS SANTOS SERGIO DA COSTA FERREIRA JOELSON
Leia maisMANUAL TISS Versão 3.02.00
MANUAL TISS Versão 3.02.00 1 INTRODUÇÃO Esse manual tem como objetivo oferecer todas as informações na nova ferramenta SAP que será utilizada pelo prestador Mediplan, a mesma será responsável para atender
Leia maisACOMPANHAMENTO GERENCIAL SANKHYA
MANUAL DE VISITA DE ACOMPANHAMENTO GERENCIAL SANKHYA Material exclusivo para uso interno. O QUE LEVA UMA EMPRESA OU GERENTE A INVESTIR EM UM ERP? Implantar um ERP exige tempo, dinheiro e envolve diversos
Leia mais1) MANUAL DO INTEGRADOR Este documento, destinado aos instaladores do sistema, com informações de configuração.
O software de tarifação é uma solução destinada a rateio de custos de insumos em sistemas prediais, tais como shopping centers. O manual do sistema é dividido em dois volumes: 1) MANUAL DO INTEGRADOR Este
Leia maisTeste de Software. Objetivos e Limites. Objetivos e Limites. Objetivos e Limites. Objetivos e Limites. Objetivos e Limites
Teste de Software Prof. Avelino F. Zorzo PUCRS Elaborado inicialmente pelo prof. Bernardo Copstein Teste é uma coisa óbvia? Qual a complexidade da questão? tá pronto, profi, é só testar... ué, mas pra
Leia maisProgramação de Computadores - I. Profª Beatriz Profº Israel
Programação de Computadores - I Profª Beatriz Profº Israel Ambiente de Desenvolvimento Orientação a Objetos É uma técnica de desenvolvimento de softwares que consiste em representar os elementos do mundo
Leia maisOCOMON PRIMEIROS PASSOS
OCOMON PRIMEIROS PASSOS O OCOMON ainda não possui um arquivo de Help para atender a todas questões relacionadas ao sistema. Esse arquivo serve apenas para dar as principais instruções para que você tenha
Leia maisMINERAÇÃO DE DADOS APLICADA. Pedro Henrique Bragioni Las Casas pedro.lascasas@dcc.ufmg.br
MINERAÇÃO DE DADOS APLICADA Pedro Henrique Bragioni Las Casas pedro.lascasas@dcc.ufmg.br Processo Weka uma Ferramenta Livre para Data Mining O que é Weka? Weka é um Software livre do tipo open source para
Leia maisCapacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB
Calculando a capacidade de disco: Capacidade = (# bytes/setor) x (méd. # setores/trilha) x (# trilhas/superfície) x (# superfícies/prato) x (# pratos/disco) Exemplo 01: 512 bytes/setor 300 setores/trilha
Leia maisEsta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi
5 Conclusão Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi permitir que scripts Lua instanciem e usem
Leia maisSeção 2/E Monitoramento, Avaliação e Aprendizagem
Seção 2/E Monitoramento, Avaliação e Aprendizagem www.bettercotton.org Orientação Text to go here O documento Monitoramento, Avaliação e Aprendizagem da BCI proporciona uma estrutura para medir as mudanças
Leia maisImplementando uma Classe e Criando Objetos a partir dela
Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 04 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 2 Prof. Cristóvão Cunha Implementando uma Classe
Leia maisTeste de Software. Ricardo Argenton Ramos ricargentonramos@gmail.com. Engenharia de Software I 2012.2
Teste de Software Ricardo Argenton Ramos ricargentonramos@gmail.com Engenharia de Software I 2012.2 O que diferencia teste de software OO de testes Convencionais? Técnicas e abordagens são normalmente
Leia maisDadas a base e a altura de um triangulo, determinar sua área.
Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares
Leia maisANALISE COMBINATORIA Um pouco de probabilidade
ANALISE COMBINATORIA Um pouco de probabilidade Programa Pró-Ciência Fapesp/IME-USP-setembro de 1999 Antônio L. Pereira -IME USP (s. 234A) tel 818 6214 email:alpereir@ime.usp.br 1 Um carro e dois bodes
Leia maisQuais são as organizações envolvidas no SASSMAQ?
PERGUNTAS MAIS FREQÜENTES AVALIAÇÃO SASSMAQ (P.COM.26.00) O SASSMAQ é um Sistema de Avaliação de Segurança, Saúde, Meio Ambiente e Qualidade, elaborado pela Comissão de Transportes da ABIQUIM, dirigido
Leia mais04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.
MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 2 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Revisão sobre Banco de Dados e SGBDs Aprender as principais
Leia maisAPOSTILA DE EXEMPLO. (Esta é só uma reprodução parcial do conteúdo)
APOSTILA DE EXEMPLO (Esta é só uma reprodução parcial do conteúdo) 1 Índice Aula 1 - Área de trabalho e personalizando o sistema... 3 A área de trabalho... 3 Partes da área de trabalho.... 4 O Menu Iniciar:...
Leia maisA lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.
INTRODUÇÃO A lógica de programação é extremamente necessária para as pessoas que queiram trabalhar na área de programação, seja em qualquer linguagem de programação, como por exemplo: Pascal, Visual Basic,
Leia maisMRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior
MRP II Introdução A lógica de cálculo das necessidades é conhecida há muito tempo Porém só pode ser utilizada na prática em situações mais complexas a partir dos anos 60 A partir de meados da década de
Leia maisTécnicas de Caixa Preta de Teste de Software
Técnicas de Caixa Preta de Teste de Software Na maioria de projetos de teste, o tempo para a realização dos mesmos sempre é curto e os números de testes a serem realizados nas aplicações são inúmeros.
Leia maisAlgoritmos e Estrutura de Dados III. Árvores
Algoritmos e Estrutura de Dados III Árvores Uma das mais importantes classes de estruturas de dados em computação são as árvores. Aproveitando-se de sua organização hierárquica, muitas aplicações são realizadas
Leia maisObjetivos. Apresentar as superfícies regradas e superfícies de revolução. Analisar as propriedades que caracterizam as superfícies regradas e
MÓDULO 2 - AULA 13 Aula 13 Superfícies regradas e de revolução Objetivos Apresentar as superfícies regradas e superfícies de revolução. Analisar as propriedades que caracterizam as superfícies regradas
Leia maisProjeto da Disciplina Parte1: Estudo de Viabilidade. Um Estudo de Viabilidade
Projeto da Disciplina Parte1: Estudo de Viabilidade ENTREGA: 09/04/09 Professor: Carlos José Maria Olguin Um Estudo de Viabilidade Você deve fazer um estudo de viabilidade para um projeto de sistema de
Leia maisCAP. I ERROS EM CÁLCULO NUMÉRICO
CAP. I ERROS EM CÁLCULO NUMÉRICO 0. Introdução Por método numérico entende-se um método para calcular a solução de um problema realizando apenas uma sequência finita de operações aritméticas. A obtenção
Leia maisLição 1 - Criação de campos calculados em consultas
1 de 5 21-08-2011 22:15 Lição 1 - Criação de campos calculados em consultas Adição de Colunas com Valores Calculados: Vamos, inicialmente, relembrar, rapidamente alguns conceitos básicos sobre Consultas
Leia maisFACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>
FACULDADE DE ENGENHARIA DE COMPUTAÇÃO PROJETO FINAL I e II PLANO DE TRABALHO O Trabalho de Conclusão de Curso (TCC) a ser desenvolvido
Leia maisSERVIÇO DE ANÁLISE DE REDES DE TELECOMUNICAÇÕES APLICABILIDADE PARA CALL-CENTERS VISÃO DA EMPRESA
SERVIÇO DE ANÁLISE DE REDES DE TELECOMUNICAÇÕES APLICABILIDADE PARA CALL-CENTERS VISÃO DA EMPRESA Muitas organizações terceirizam o transporte das chamadas em seus call-centers, dependendo inteiramente
Leia mais)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR
6LPXODomR GH6LVWHPDV )HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR #5,6. Simulador voltado para análise de risco financeiro 3RQWRV IRUWHV Fácil de usar. Funciona integrado a ferramentas já bastante conhecidas,
Leia maisMemória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos
TUTORIAL Memória Flash Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br contato@maxwellbohr.com.br
Leia mais