Uma Estratégia para Integrar e Testar Agrupamentos de Classes Baseada em Algoritmos Multiobjetivos

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

Download "Uma Estratégia para Integrar e Testar Agrupamentos de Classes Baseada em Algoritmos Multiobjetivos"

Transcrição

1 Uma Estratégia para Integrar e Testar Agrupamentos de Classes Baseada em Algoritmos Multiobjetivos Wesley Klewerton Guez Assunção 1, Thelma Elita Colanzi 1 2, Aurora Trinidad Ramirez Pozo 1, Silvia Regina Vergilio 1 1 DInf, Universidade Federal do Paraná (UFPR) Curitiba, PR Brasil 2 DIN, Universidade Estadual de Maringá (UEM) Maringá, PR Brasil {wesleyk, thelmae, aurora, silvia}@inf.ufpr.br Resumo. Para realizar o teste de software orientado a objetos é necessário determinar uma ordem para integrar e testar as classes que implique em um custo mínimo associado à construção de stubs. Vários trabalhos tratam esse problema, porém nenhum deles considera uma característica presente na maioria dos sistemas, que é o agrupamento de classes (ou modularização). Considerando essa limitação, este artigo apresenta uma estratégia de integração e teste de classes que considera agrupamentos. Esta estratégia é implementada utilizando três algoritmos evolutivos multiobjetivos e diferentes medidas de acoplamento para cálculo do custo associado aos stubs. Os algoritmos são avaliados e comparados experimentalmente. O espaço de busca é analisado em comparação com a estratégia que não considera agrupamentos. Os resultados mostram que o espaço de busca fica restrito, forçando os algoritmos a explorarem novas regiões e fazendo com que soluções sub-ótimas passem a ser soluções aproximadas. Abstract. To perform the test of object-oriented software it is necessary to determine a class integration and test order associated to a minimal stubbing cost. Several works deal with this problem, however, none of them considers a characteristic of most systems: the cluster of classes (or modularization). To overcome this limitation, this paper presents a strategy to integrate and test classes that considers classes clusters. This strategy is implemented by using three multiobjective evolutionary algorithms and several coupling measures to calculate the stubbing cost. The algorithms are evaluated and compared in an experimental study. The search space is analysed in comparison with the strategy that does not consider clusters. Results show that the search space is constrained, forcing the algorithms to explore new regions, and making sub-optimal solutions to become approximate solutions. 1. Introdução O teste é uma atividade essencial dentre as de garantia de qualidade de software, geralmente realizada em etapas. Por exemplo, no teste de software orientado a objetos (OO), o teste de integração tem como objetivo testar a interação entre as classes. Nesta etapa, é comum que algumas classes necessitem de recursos de outras classes que ainda estão em desenvolvimento, o que leva à necessidade de construção de stubs, que são pseudoimplementações que simulam recursos não disponíveis para executar a classe.

2 Para reduzir o custo da construção de stubs é necessário determinar uma ordem com custo mínimo para testar e integrar as classes. Este problema é conhecido como CITO (Class Integration and Test Order Problem) [Abdurazik and Offutt 2006] e tem sido alvo de pesquisa de vários trabalhos. Estes trabalhos propõem soluções baseadas em grafos e podem ser classificados em dois tipos: os tradicionais [Kung et al. 1995, Tai and Daniels 1997, Briand et al. 2003], que usam algoritmos baseados em grafos, e os trabalhos baseados em busca, que utilizam meta-heurísticas. Dentre estes últimos, destacam-se os trabalhos que utilizam algoritmos de otimização multiobjetivo como os mais promissores. Em [Vergilio et al. 2012] três algoritmos multiobjetivos foram utilizados e comparados considerando duas medidas de acoplamento (objetivos) que representam os custos associados à construção de stubs. Neste estudo o algoritmo evolutivo, apresentou um melhor desempenho. Considerando este fato, em [Assunção et al. 2011a], uma estratégia baseada em algoritmos evolutivos multiobjetivos (MOEAs - Multi-Objective Evolutionary Algorithms) foi proposta e avaliada com quatro medidas de acoplamento. Em outro trabalho foram avaliados três diferentes MOEAs: NSGA-II, SPEA2, e PAES, sendo que este último encontrou soluções ligeiramente melhores [Assunção et al. 2011b]. Apesar de existirem vários trabalhos que propõem diferentes estratégias para integrar e testar classes, nenhum deles considera uma característica do desenvolvimento de software: o agrupamento de classes ou modularização [Card et al. 1985, Pressman 2001]. O agrupamento corresponde a várias classes, que são geralmente desenvolvidas em grupos e por isto testadas em conjunto, muitas vezes pela mesma equipe de teste. O agrupamento de classes em pacotes é amplamente utilizado para facilitar a organização, o desenvolvimento e a manutenção do software. Muitas vezes está associado ao desenvolvimento distribuído de software. Por isto é importante estabelecer uma estratégia que considere os grupos de classes que não podem ser separadas na solução (ordem) do problema CITO. O objetivo do presente trabalho é propor e avaliar uma estratégia baseada em MO- EAs que considera o agrupamento de classes. Lidar com o problema CITO considerando que grupos de classes precisam ser testados em conjunto impõe restrições ao espaço de busca e pode influenciar o desempenho dos algoritmos. Portanto, outro objetivo é comparar os três algoritmos evolutivos NSGA-II, SPEA2, e PAES, escolhidos por implementarem diferentes estratégias de evolução, e ver qual apresenta o melhor desempenho para o problema CITO com restrições. Para isto, é conduzido um experimento utilizando quatro sistemas reais, quatro medidas de acoplamento (objetivos) e quatro indicadores de qualidade para comparar os algoritmos: Cobertura, Distância Geracional, Distância Geracional Invertida e Distância Euclidiana da Solução Ideal. Este artigo está organizado como segue: na Seção 2 são descritos os MOEAs utilizados. Na Seção 3 a estratégia de teste e integração de classes que considera agrupamentos é apresentada. Os aspectos da aplicação dos MOEAs no problema são apresentados na Seção 4. A Seção 5 descreve como foi realizado o estudo experimental. A Seção 6 apresenta a análise dos resultados, comparando estratégias e algoritmos. Finalmente, na Seção 7 são apresentadas as conclusões. 2. Algoritmos Multiobjetivos Problemas multiobjetivos estão presentes na maioria das disciplinas. Para solucionar estes problemas, diferentes fatores devem ser considerados. Para estes problemas não é

3 possível encontrar uma solução única, pois em geral os objetivos são conflitantes, ou seja, quando se melhora um objetivo se degrada outro. Então a otimização consiste em encontrar um conjunto de soluções com o melhor balanceamento entre os objetivos. Para avaliar e determinar o grupo dessas soluções, utiliza-se o conceito de dominância de Pareto [Pareto 1927]. O objetivo é descobrir soluções que não são dominadas. Dado um conjunto de possíveis soluções para o problema, uma solução A domina uma solução B, se e somente se, A é melhor que B em pelo menos um dos objetivos, sem ser pior que B nos outros objetivos. O conjunto de soluções não-dominadas forma a fronteira de Pareto. Muitas vezes encontrar a fronteira de Pareto real é NP-difícil [Knowles et al. 2006], então o desafio é encontrar uma aproximação desta fronteira. MOEAs são extensões de algoritmos genéticos para problemas multiobjetivos que aplicam os conceitos de dominância de Pareto para criar estratégias distintas para evoluir e diversificar as soluções. Neste trabalho foram selecionados os MOEAs NSGA- II [Deb et al. 2002], SPEA2 [Zitzler et al. 2001] e PAES [Knowles and Corne 2000]. O NSGA-II (Non-dominated Sorting Genetic Algorithm) [Deb et al. 2002] ordena em cada geração os indivíduos das populações pai e filha com base na relação de nãodominância. Ele cria diversas fronteiras e, depois da ordenação, as soluções com mais baixa dominância são descartadas. As fronteiras representam a estratégia de elitismo adotada pelo NSGA-II. Este algoritmo utiliza também um operador chamado crowding distance que ordena os indivíduos de acordo com a sua distância em relação aos vizinhos da fronteira, visando a garantir maior espalhamento das soluções. Ambas ordenações, de fronteiras e de crowding distance, são usadas pelo operador de seleção. O SPEA2 (Strength Pareto Evolutionary Algorithm) [Zitzler et al. 2001], além de ter sua população regular, possui um arquivo externo que armazena soluções nãodominadas encontradas no processo evolutivo. Para cada solução que está no arquivo e na população é calculado um valor de strength que também é usado no cálculo do fitness do indivíduo. O valor de strength de uma solução i corresponde a quantidade de indivíduos j, do arquivo e da população, dominados por i. Este valor é utilizado durante o processo de seleção. No processo evolutivo, o arquivo externo é utilizado para complementar a nova geração com soluções não dominadas. Como o tamanho do arquivo é fixo, se este tamanho for excedido, um algoritmo de agrupamento é utilizado a fim de reduzi-lo. No processo evolutivo do algoritmo PAES (Pareto Archived Evolution Strategy) [Knowles and Corne 2000] o conceito de população é diferente das estratégias tradicionais, pois apenas uma solução é mantida em cada geração, e a criação de novos indivíduos é feita somente através da aplicação do operador de mutação. Assim como no SPEA2, existe um arquivo externo de soluções que é populado com as soluções não dominadas encontradas durante o processo. A cada geração, o PAES cria uma nova solução filha que é comparada com a solução pai, se a solução filha domina a solução pai, a filha toma o lugar da pai, e a filha é acrescentada ao arquivo externo; se a solução filha é dominada pela pai ou por alguma solução do arquivo externo, a filha é descartada; e caso nenhuma das soluções domine a outra, a escolha da solução que vai permanecer no processo evolutivo é feita considerando a diversidade entre pai, filha e as soluções do conjunto externo. Caso o tamanho do arquivo externo exceda, é aplicada uma estratégia de diversidade sobre este conjunto de soluções, eliminando soluções similares.

4 3. Estratégia de Integração e Teste de Classes Baseada em Agrupamento A estratégia de ordenação de classes proposta consiste em considerar um conjunto de agrupamentos de classes durante o estabelecimento de uma ordem de integração e teste. Um agrupamento corresponde a um conjunto de classes que são agrupadas pelo engenheiro de software e que devem ser desenvolvidas e testadas em conjunto. A Figura 1 ilustra o problema de integração considerando o agrupamento de classes. O sistema contém 12 classes. O problema CITO requer uma ordem (por exemplo Ordens A e B) para que estas classes sejam testadas com um custo mínimo para construção de stubs. Para o problema CITO que não considera agrupamentos ambas ordens são válidas. Mas suponha que o engenheiro de software determine que algumas classes, por exemplo por questão de um desenvolvimento distribuído, sejam agrupadas para serem desenvolvidas e testadas por uma mesma equipe em conjunto, formando os agrupamentos A1, A2 e A3. A Ordem A é válida, pois as classes dos agrupamentos não estão separadas. Na Ordem A as classes de A1 devem ser desenvolvidas e testadas primeiramente, seguidas pelas classes de A3 e pelas classes de A2. Já a Ordem B não é uma sequência válida, pois as classes de A1 e A3 ficaram dispersas, ou seja, as classes dos agrupamentos A1 e A3 não estão agrupadas como definidas. Agrupamento de Classes A1 A2 A Possíveis ordens de testes Ordem A Ordem B Figura 1. Exemplos da Utilização da Estratégia Baseada em Agrupamentos 4. MOEAs aplicados ao problema CITO com Agrupamentos Para aplicar os MOEAs para resolver o problema CITO considerando os agrupamentos é preciso definir uma boa representação para o problema. E esta representação influencia na implementação de todos os estágios dos algoritmos. Para considerar os agrupamentos de classes, foi necessária uma representação diferente das utilizadas nos trabalhos relacionados. Foi implementada uma classe Cluster formada por dois atributos: (i) id do tipo inteiro utilizado para identificar o agrupamento durante o cruzamento e a mutação, e (ii) modules que é uma lista de inteiros, que armazena a ordem das classes do agrupamento, na qual cada inteiro representa uma classe. Um indivíduo é formado por um vetor de objetos da classe Cluster (ArrayList<Cluster>). O tamanho do vetor é igual a quantidade de agrupamentos e a soma de todos os tamanhos dos vetores modules é igual a quantidade de classes do sistema. Para as funções objetivo dos MOEAs foram usadas quatro medidas de acoplamento, que representam o custo da construção de stubs. Considerando-se que c i e c j são duas classes acopladas, essas medidas de acoplamento são definidas como segue:

5 Número de atributos (A) = Número de atributos localmente declarados em c j quando referências ou apontadores para uma instância de c j aparecem na lista de argumentos de alguns métodos de c i. Número de métodos (M) = Número de métodos (inclusive construtores) localmente declarados em c j que são invocados por métodos de c i. Número de tipos de retorno (Rd) = Total de tipos de retorno distintos dos métodos localmente declarados em c j que são invocados por métodos de c i. Número de tipos de parâmetros (Pd) = Total de tipos de parâmetros distintos localmente declarados em métodos de c j que são invocados por métodos de c i. Os dados de entrada de cada MOEA são formados por matrizes, como em [Briand et al. 2002], e são: uma matriz de dependência entre as classes, que define as restrições relativas às dependências de herança que não devem ser quebradas; outras quatro matrizes correspondentes a cada uma das métricas descritas acima; e uma matriz com a definição dos agrupamentos. O fitness de cada solução é calculado através da soma das dependências quebradas entre as classes para cada uma das métricas, que correspondem aos objetivos. Para reduzir o custo dos stubs deve-se minimizar todos os objetivos. Para os operadores genéticos foram implementadas diferentes estratégias a fim de possibilitar o tratamento das restrições dos agrupamentos. Para o cruzamento e mutação foram implementadas estratégias inter-cluster e intra-cluster. No cruzamento inter-cluster os agrupamentos são completamente trocados entre dois indivíduos, já no cruzamento intra-cluster um mesmo agrupamento é selecionado de dois indivíduos diferentes, então é efetuado o cruzamento de dois pontos de corte, sendo que os outros agrupamentos não são afetados. Na mutação inter-cluster os agrupamentos de um indivíduo são trocados completamente de posição dentro da ordem, já na mutação intra-cluster é selecionado um agrupamento do indivíduo, então duas classes são trocadas de posição. 5. Descrição do Estudo Experimetal A seguir a estratégia que não considera os agrupamentos será referenciada pela sigla SA (Sem Agrupamentos) implementada tal como descrito em [Assunção et al. 2011a, Assunção et al. 2011b], enquanto a estratégia proposta que considera os agrupamentos é referenciada pela sigla CA (Com Agrupamentos) tal como descrito anteriormente. Os sistemas utilizados bem como a metodologia adotada são os mesmos descritos nos trabalhos relacionados [Assunção et al. 2011a, Assunção et al. 2011b] Sistemas Utilizados Foram utilizados quatro sistemas desenvolvidos em Java (Tabela 1). São eles: BCEL, JBoss, JHotDraw e MyBatis. O sistema BCEL (Byte Code Engineering Library), é uma biblioteca utilizada para analisar, criar e manipular arquivos binários da linguagem de programação Java. Neste experimento utilizou-se somente o pacote org.apache.bcel.classfile da versão 5.0. O sistema JBoss é um servidor de aplicações Java. Para o experimento utilizou-se o subsistema Management da versão 6.0.0M5. Outro sistema utilizado é um framework de gráficos bidimensionais para editores de desenho estruturado chamado de JHotDraw. Para o experimento utilizou-se o pacote org.jhotdraw.draw da versão O último sistema selecionado foi o My- Batis, que é um framework de mapeamento de classes para aplicações OO que utilizam bancos de dados relacionais. A versão utilizada do sistema MyBatis é a

6 Tabela 1. Sistemas Utilizados no Experimento Sistema Versão LOC Classes Disponível em Agrupamentos BCEL JBoss 6.0.0M JHotDraw MyBatis As estratégias de integração e teste devem ser aplicadas durante o projeto do sistema a ser desenvolvido, uma vez que estabelecem uma ordem para desenvolvimento e teste de classes. Porém, é difícil obter documentação da arquitetura de sistemas complexos, então para o experimento utilizou-se engenharia reversa para obter informações de acoplamento. A ferramenta utilizada foi um parser baseado na ferramenta AJATO 1 (AspectJ and Java Assessment Tool). Este parser tem como entrada o código fonte Java e retorna uma arvore sintática, usada para construir as matrizes de dependência. Para cada um dos sistemas, foi necessário definir os agrupamentos de classes. Para tal, utilizou-se uma regra a fim de padronizar a definição dos agrupamentos. O procedimento consiste em montar um grafo direcionado utilizando somente as dependências de herança, considerando assim apenas as dependências que não podem ser quebradas. A partir deste grafo, foram separados os componentes conectados, ou seja, separadas as classes que têm relação, formando subgrafos. A partir dos subgrafos, as classes dos subgrafos de tamanho um, formaram um agrupamento, os subgrafos de tamanho dois formaram outro agrupamento, os subgrafos de tamanho três formaram outro agrupamento. Os subgrafos de tamanho igual ou superior a quatro deram origem, cada um deles a um agrupamento correspondente. Esta regra foi utilizada para todos os sistemas. O total de agrupamentos para cada sistema é apresentado na última coluna da Tabela Configuração de Parâmetros dos MOEAs Os parâmetros para os MOEAs foram ajustados a fim de que cada algoritmo executasse com seu processo evolutivo específico, mas diante de um ambiente similar. A base para este ajuste foram os trabalhos que utilizam os mesmos algoritmos e os mesmos sistemas utilizados neste experimento [Assunção et al. 2011a, Assunção et al. 2011b]. Os valores adotados são apresentados na Tabela 2. O número de avaliações de fitness é utilizado como critério de parada. Cada MOEA foi executado trinta vezes para cada sistema, para verificar o seu comportamento padrão. Tabela 2. Valores dos Parâmetros Utilizados pelos MOEAs CA SA Parâmetro NSGA-II PAES SPEA2 NSGA-II PAES SPEA2 Tamanho da População Taxa de Cruzamento 0,95-0,95 0,95-0,95 Taxa de Cruzamento Inter-Cluster 1,0-1, Taxa de Cruzamento Intra-Cluster 1,0-1, Taxa de Mutação 0,02 1 0,02 0,02 1 0,02 Taxa de Mutação Inter-Cluster 0,5 0,5 0, Taxa de Mutação Intra-Cluster 0,5 0,5 0, Tamanho do Arquivo Externo Número de Avaliações de Fitness AJATO disponível em:

7 6. Resultados e Análises A seguir são apresentados os resultados da aplicação dos MOEAs com as estratégias SA e CA, com objetivo de analisar a diferença com relação ao espaço de busca considerando ambas estratégias. Posteriormente os MOEA são comparados para verificar qual tem melhor o comportamento para solucionar o problema utilizando a estratégia CA. Para as análises é necessário utilizar diferentes conjuntos de soluções encontradas, conjuntos estes obtidos de diferentes maneiras. Os conjuntos utilizados foram: (i) P F approx : este conjunto é obtido em cada execução de cada algoritmo, portanto, como cada algoritmo é executado trinta vezes para cada problema, ao final das execuções obtêmse trinta conjuntos P F approx ; (ii) P F known : este conjunto é formado através da união de todas as soluções dos trinta conjuntos P F approx, eliminando-se as soluções dominadas e repetidas. Já que os algoritmos têm aleatoriedade em seu processo evolutivo, então cada execução pode encontrar soluções diferentes; (iii) P F true : este conjunto é obtido através da união de todas as soluções dos conjuntos P F known de todos os MOEAs utilizados no experimento, eliminando-se as soluções dominadas e repetidas [Zitzler et al. 2003], pois uma vez que o conjunto P F known tem as melhores soluções de determinado MOEA, então juntar todas estas soluções implica em ter todas as melhores soluções conhecidas. Para comparação entre os MOEAs, foram utilizados quatro indicadores de qualidade, assim como em [Assunção et al. 2011b]: Cobertura (C), Distância Geracional (GD), Distância Geracional Invertida (IGD) e Distância Euclididana da Solução Ideal (ED). O indicador de qualidade C é usado para medir a dominância entre dois conjuntos. Este indicador é um valor entre 0 e 1 referente a quanto um conjunto é dominado por outro. O indicador GD é usado para calcular a distância entre o conjunto P F approx em relação ao conjunto P F true. Já o indicador IGD observa o inverso do GD, pois tem o objetivo de calcular a distância do conjunto P F true em relação ao conjunto P F approx. Tanto para GD quanto para IGD deseja-se obter valores próximos a 0. O indicador Distância Euclidiana da Solução Ideal (ED) tem como objetivo encontrar a solução que mais se aproxima dos objetivos ótimos. Este indicador consiste em determinar os melhores valores para cada um dos objetivos entre todas as soluções de P F true, encontrando um ponto considerado como o custo de uma solução ideal, então calcula-se a partir deste ponto a distância euclidiana em relação a todas as soluções de P F known Comparação entre as estratégias SA e CA As estratégias SA e CA são duas propostas diferenciadas para solucionar o problema CITO, portanto seus resultados não podem ser comparados assumindo que deveriam ter valores similares. O objetivo deste trabalho é analisar o impacto no espaço de busca. A Tabela 3 apresenta o número de soluções encontradas e o tempo de execução. Na terceira e na sexta colunas é apresentada a cardinalidade do conjunto P F true. Na quarta e na sétima colunas são apresentadas a média da quantidade de soluções dos conjuntos P F approx e, entre parênteses, a cardinalidade do conjunto P F known. Na quinta e na oitava colunas são apresentados, respectivamente, a média do tempo de execução, em segundos, utilizados para obter cada P F approx e o desvio padrão entre parênteses. Através do tamanho do conjunto P F true verifica-se que para os sistemas BCEL e MyBatis o número de soluções encontradas pela estratégia CA foi menor que o número de soluções encontradas pela estratégia SA. Já para os sistemas JBoss e JHotDraw o número

8 Sistema BCEL JBoss JHotDraw MyBatis Tabela 3. Número de Soluções e Tempo de Execução SA CA MOEA # Número de Tempo de # Número de Tempo de P F true Soluções Execução P F true Soluções Execução NSGA-II 37,43 (37) 5,91 (0,05) 7,57 (11) 8,61 (0,11) PAES 37 39,30 (37) 6,58 (1,25) 15 3,40 (8) 29,89 (22,25) SPEA2 36,70 (37) 123,07 (18,84) 8,53 (19) 3786,79 (476,23) NSGA-II 1,00 (1) 18,73 (0,20) 1,97 (2) 42,50 (0,47) PAES 1 1,13 (1) 10,69 (0,62) 2 2,87 (2) 56,15 (12,50) SPEA2 1,00 (1) 2455,35 (612,18) 2,17 (2) 3536,01 (335,97) NSGA-II 8,40 (10) 29,85 (0,34) 45,80 (110) 71,90 (0,45) PAES 11 10,47 (19) 24,29 (1,50) ,47 (143) 51,18 (2,82) SPEA2 9,63 (9) 922,99 (373,98) 49,17 (102) 532,83 (81,93) NSGA-II 276,37 (941) 74,03 (0,87) 72,60 (103) 189,91 (0,83) PAES ,60 (679) 104,30 (7,91) ,43 (200) 132,37 (3,91) SPEA2 248,77 (690) 128,88 (2,65) 64,33 (144) 517,52 (67,52) de soluções encontradas pela CA foi maior do que encontradas pela SA. Observa-se que para os sistemas que apresentam várias soluções, menos soluções são encontradas quando se considera os agrupamentos, e o contrário para sistemas com poucas soluções. Em relação ao tempo de processamento (Tabela 3), observa-se que apesar do esforço ser o mesmo (número de avaliações de fitness), existe grande diferença de tempo entre as estratégias. Em todos os sistemas, o NSGA-II e o PAES demoraram mais na estratégia CA. O SPEA2 na estratégia CA foi mais rápido que na SA para o sistema JHot- Draw, já para os outros sistemas a estratégia CA demorou mais para executar. Dos três MOEAs, o SPEA2 foi o único que teve comportamento diferenciado para um sistema e também foi o que mais demorou para finalizar as execuções. A Figura 2 apresenta as soluções no espaço de busca. Como só é possível a apresentação de três medidas no gráfico, foram escolhidas as medidas que possibilitaram a melhor visualização das soluções no espaço de busca. No gráfico do JHotDraw (Figura 2(a)) observa-se que as soluções da estratégia SA estão próximas dos objetivos mínimos (A=0,O=0,Rd=0,Pd=0), entretanto as restrições dos agrupamentos não permitem esta solução, então os MOEAs encontram soluções em outras regiões do espaço de busca, onde um maior número de soluções é possível. Para o sistema MyBatis (Figura 2(b)) pode-se verificar que as soluções da estratégia SA estão localizadas em uma mesma região do gráfico, mais próximas aos objetivos mínimos. Entretanto na estratégia CA estas soluções não são possíveis, forçando os MOEAs a explorarem novas regiões do espaço de busca. Mas neste caso as restrições dificultam a obtenção de soluções, diminuindo a quantidade das mesmas. Fica claro que a utilização da estratégia CA nestes casos deixa a busca por soluções mais complexa, limitando o espaço de busca Comparação entre os MOEAs utilizando a estratégia CA A Tabela 4 apresenta os valores do indicador C para os conjuntos P F known. A leitura da tabela é feita por linha/coluna, no qual o MOEA da linha domina em determinado valor o MOEA da coluna. Os valores estão em um intervalo de 0 a 1, onde 0 indica que não existe dominância e 1 indica que todo o conjunto é dominado. Só são significantes os valores acima de 0,5, o que indica que mais de 50% do conjunto é dominado. Os resultados deste indicador demonstram diferença dentre os MOEAS para dois sistemas: BCEL e MyBatis. Através da análise da Tabela 4 verifica-se que para o sistema

9 Parâmetro Retorno SA CA Atributo (a) Sistema JHotDraw Parâmetro Retorno SA CA Atributo (b) Sistema MyBatis 3000 Figura 2. P F true s no Espaço de Busca Tabela 4. Valores do Indicador C Sistema MOEA NSGA-II PAES SPEA2 Sistema NSGA-II PAES SPEA2 NSGA-II - 0,75 0, , , BCEL PAES 0-0 JHotDraw 0, ,45098 SPEA2 0, ,75-0, , NSGA-II , JBoss PAES 0-0 MyBatis 1-1 SPEA , BCEL, as soluções do NSGA-II dominam 75% das soluções do PAES e aproximadamente 60% das soluções do SPEA2. As soluções do SPEA2 também dominam 75% das soluções do PAES. Para o sistema MyBatis, as soluções do PAES dominam todas as soluções do NSGA-II e do SPEA2, e as soluções do NSGA-II dominam aproximadamente 73% das soluções do SPEA2. Baseado no indicador C verifica-se que o NSGA-II teve os melhores resultados, seguido pelo SPEA2 e por fim o PAES. A Tabela 5 apresenta os resultados dos indicadores GD e IGD. Estes resultados correspondem à média e ao desvio padrão dos valores de GD e IGD obtidos na comparação de cada um dos trinta P F approx em relação ao conjunto P F true de cada sistema. Para verificar a diferença significativa entre os resultados dos MOEAs, utilizou-se o teste estatístico de Friedman [Gárcia et al. 2009] utilizando α = 0, 05. Tabela 5. Média e Desvio Padrão de GD e IGD NSGA-II PAES SPEA2 Indicador Sistema Média Desvio Média Desvio Média Desvio Padrão Padrão Padrão GD IGD BCEL 0,1334 0,0349 1,9266 1,2256 0,1257 0,0387 JBoss 0,7956 1,6492 1,1045 1,9222 0,5147 1,2308 JHotDraw 0,0132 0,0039 0,0076 0,0021 0,0126 0,0026 MyBatis 0,0444 0,0125 0,0082 0,0026 0,0479 0,0160 BCEL 0,2205 0,0420 0,9239 1,2194 0,2024 0,0345 JBoss 0,6312 1,2291 0,8242 1,4220 0,4361 0,9378 JHotDraw 0,0254 0,0102 0,0135 0,0054 0,0229 0,0069 MyBatis 0,0512 0,0223 0,0104 0,0034 0,0578 0,0191 Para o indicador GD, o teste de Friedman apontou diferença significativa entre os sistemas: BCEL, JHotDraw e MyBatis. Para o sistema BCEL, o NSGA-II e SPEA2 são melhores e não apresentam diferença entre si. Para os sistemas JHotDraw e MyBatis, o

10 PAES é melhor que o NSGA-II e o SPEA2, e estes últimos não apresentam diferença. Para o indicador IGD os sistemas JHotDraw e MyBatis apresentaram diferença estatística, na qual o PAES é melhor que o NSGA-II e SPEA2, e estes últimos não apresentam diferença. A Tabela 6 apresenta os valores do indicador ED. Na segunda coluna são apresentados os custos das soluções ideais, obtidos considerando os menores valores de cada um dos objetivos, independentemente de estarem na mesma solução, de todas as soluções do conjunto P F true de cada sistema. Nas outras colunas são apresentados os custos (A,O,Rd,Pd) da solução mais próxima da ideal e os valores obtidos por cada algoritmo. Tabela 6. Custo da Solução Ideal e Menores ED Encontradas NSGA-II PAES SPEA2 Solução Sistema Menor Custo da Menor Custo da Menor Custo da Ideal ED Solução ED Solução ED Solução BCEL (40,54, (57,59, (51,59, (45,63, 24, , , ,59) 50,60) 34,132) 52,68) JBoss (25,17, (25,17, (25,17, (25,17, 2,0000 2,0000 2,0000 4,14) 6,14) 6,14) 6,14) JHotDraw (283,258, (301,274, (301,274, (301,274, 63, , , ,140) 105,197) 105,197) 105,197) MyBatis (259,148, 203,2855 (1709,204, 147,5263 (282,235, 221,4746 (386,267, 57,145) 81,191) 78,260) 97,276) Por meio dos resultados verifica-se que para os sistemas JBoss e JHotDraw, todos os MOEAs encontraram uma mesma solução com o menor valor de ED. Para o sistema BCEL, o SPEA2 encontrou a solução com o melhor valor de ED. Para o sistema MyBatis, o PAES encontrou a solução com menor valor de ED Discussão dos Resultados Para comparar os MOEAs utilizando todos os indicadores, considerou-se qual o melhor MOEA para cada um dos quatro indicadores de qualidade. Para o sistema BCEL, o melhor MOEA foi o SPEA2, seguido com pouca diferença pelo NSGA-II e distante dos dois o PAES. Para o sistema JBoss, todos os MOEAs apresentaram o mesmo comportamento. Para o sistema JHotDraw, o PAES foi o melhor, seguido pelo NSGA-II e SPEA2. Para o sistema MyBatis, o PAES foi o melhor com bastante diferença, seguido pelo NSGA-II. Diante desta análise, verifica-se que o PAES, considerando a maioria dos casos, obteve os melhores resultados para três sistemas: JBoss, JHotDraw, MyBatis. Estes três sistemas são os que têm maior número de classes e maior número de agrupamentos (Tabela 1). Portanto, em casos que se deve estabelecer ordens de integração e teste para sistemas grandes e com vários agrupamentos, o PAES é a melhor opção dentre os MO- EAs analisados. O SPEA2 e o NSGA-II apresentaram comportamento similar, obtendo os melhores resultados para dois sistemas: BCEL, JBoss. Tanto o SPEA2 quanto o NSGA-II são melhores para sistemas com poucas classes e poucos agrupamentos (Tabela 1). Uma vez que o PAES foi melhor para os sistemas com maior número de agrupamentos, podese inferir que o operador de mutação, o único operador evolutivo aplicado pelo PAES, é o mais apropriado para obter melhores soluções. Ou seja, para sistemas com muitos agrupamentos, parece que o operador de cruzamento não apresenta boa performance Exemplo de Uso das Soluções - Seleção de Uma Ordem Os MOEAs encontram um conjunto de diversas soluções, porém só uma vai ser utilizada. Uma recomendação para selecionar uma ordem é utilizar a solução com melhor ED, pois

11 esta está mais próxima dos objetivos ótimos. Como exemplo, na Tabela 7 é apresentada a solução com menor ED obtida pelo PAES para o sistema JHotDraw. Custo da Solução (301,274,105,197) Tabela 7. Solução do PAES para o Sistema JHotDraw Ordem das Classes {138, 29, 108, 15, 33, 154, 153}, {187, 87, 9, 196, 185, 67}, {24, 116, 93, 82, 25, 190, 49, 91, 30, 99, 170, 104, 105, 26, 115, 173, 191, 164, 121, 86, 50, 189, 46, 69, 186, 134, 38, 48, 155, 102, 100, 188, 117, 89, 23, 118, 157, 68}, {101, 96, 114, 12, 53, 180, 123, 62, 182, 16, 156, 140, 107, 103, 145, 45, 75, 144, 34, 36, 146, 11, 97, 3, 152, 158, 95, 73, 2, 122, 179, 176, 47, 28, 27, 31, 5, 165, 54, 77, 4, 57, 159, 113, 150, 52, 129, 166, 192, 83, 110, 32, 137, 135, 1, 8, 151, 65, 132, 130}, {128, 147, 124, 125, 169, 181, 61}, {131, 13, 141, 120, 194}, {58, 84, 66, 0, 7, 98, 111, 85, 79}, {10, 81, 78, 88, 195, 90, 183}, {133, 51, 14, 148, 109, 21}, {56, 6, 139, 42, 40, 39, 44, 43, 172, 41}, {136, 60, 94, 171}, {184, 76, 160, 119, 18, 64, 55, 74, 59, 35, 70, 126, 178, 175, 177, 71, 174, 167, 72}, {17, 161, 163, 20, 63, 142, 168, 19, 149, 106, 112, 193, 22, 143, 37, 127, 92, 162, 80} Por da ordem selecionada é possível observar que as classes devem ser desenvolvidas, integradas e testadas na seguinte sequência: {138, 29, 108,...},..., {..., 92, 162, 80}. Utilizando esta ordem, para realização do teste de integração de todo o sistema será necessário construir stubs para simular 301 atributos, 274 métodos, 105 tipos distintos de retornos e 197 tipos distintos de parâmetros. Outra possibilidade de regra para selecionar uma ordem de classes é priorizar determinada medida de acoplamento. Por exemplo, caso o sistema em desenvolvimento apresente atributos complexos de serem construídos, então a solução com menor valor para A deve ser utilizada; ou caso o sistema apresente parâmetros dos métodos difíceis de serem simulados, a solução com menor Pd deve ser utilizada. 7. Conclusão Este trabalho tratou do problema CITO propondo uma estratégia que considera agrupamento de classes durante o estabelecimento de ordens de teste e integração. O objetivo do trabalho foi avaliar o impacto no espaço de busca quando restrições relativas a agrupamentos são consideradas, além de verificar qual algoritmo apresenta melhor desempenho para resolver o problema CITO com agrupamento. Por meio da análise dos resultados, comparando o comportamento da estratégia SA em relação à estratégia CA, é possível verificar que considerar agrupamentos de classes durante a resolução do problema CITO eleva a complexidade para se encontrar soluções, limitando o espaço de busca a determinadas regiões. Em relação ao comportamento dos MOEAs na estratégia CA, todos encontraram boas soluções, e com bom tradeoff entre as medidas de acoplamento. Através dos indicadores de qualidade é possível observar que o PAES obteve melhores resultados, principalmente nos casos de sistemas mais complexos com um maior número de classes, seguido pelo SPEA2 e NSGA-II que não apresentam diferença. Este resultado é similar aos reportados na literatura [Assunção et al. 2011b] para a estratégia SA. Como trabalhos futuros pretende-se: explorar algoritmos de clustering para estabelecer os agrupamentos de classes; avaliar a estratégia CA em outros contextos, tais como software orientado a aspectos, a componentes e serviços; considerar restrições reais de um contexto de desenvolvimento distribuído de software; além de utilizar outras metaheurísticas como otimização por colônia de formigas, por nuvem de partículas, etc.

12 Referências Abdurazik, A. and Offutt, J. (2006). Coupling-based class integration and test order. In International Workshop on Automation of Software Test, Shanghai, China. ACM. Assunção, W. K. G., Colanzi, T. E., Pozo, A. T. R., and Vergilio, S. R. (2011a). Reduzindo o custo do teste de integração com algoritmos evolutivos multiobjetivos e diferentes medidas de acoplamento. In Encontro Nacional de Inteligência Artificial (ENIA 2011). Assunção, W. K. G., Colanzi, T. E., Vergilio, S. R., and Pozo, A. T. R. (2011b). Estabelecendo sequências de teste de integração de classes: Um estudo comparativo da aplicação de três algoritmos evolutivos multiobjetivos. In Workshop de Teste e Tolerância a Falhas (WTF 2011). Briand, L. C., Feng, J., and Labiche, Y. (2002). Experimenting with genetic algorithms and coupling measures to devise optimal integration test orders. Technical report. Briand, L. C., Labiche, Y., and Wang, Y. (2003). An investigation of graph-based class integration test order strategies. IEEE Transactions on Software Engineering, 29(7): Card, D. N., Page, G. T., and McGarry, F. E. (1985). Criteria for software modularization. In 8th International Conference on Software Engineering (ICSE 1985), pages Deb, K., Pratap, A., Agarwal, S., and Meyarivan, T. (2002). A fast and elitist multiobjective genetic algorithm: NSGA-II. IEEE Trans. on Evolutionary Computation, 6(2): Gárcia, S., Molina, D., Lozano, M., and Herrera, F. (2009). A study on the use of non-parametric tests for analyzing the evolutionary algorithms behaviour: a case study on the CEC 2005 Special Session on Real Parameter Optimization. Journal of Heuristics, 15(6): Knowles, J., Thiele, L., and Zitzler, E. (2006). A tutorial on the performance assessment of stochastic multiobjective optimizers. Technical report, Computer Engineering and Networks Laboratory (TIK), ETH Zurich, Switzerland. Revised version. Knowles, J. D. and Corne, D. W. (2000). Approximating the nondominated front using the pareto archived evolution strategy. Evolutionary Computation, 8: Kung, D. C., Gao, J., Hsia, P., Lin, J., and Toyoshima, Y. (1995). Class firewall, test order and regression testing of object-oriented programs. J. of Object-Oriented Program, 8(2): Pareto, V. (1927). Manuel D Economie Politique. Ams Press, Paris. Pressman, R. S. (2001). Software Engineering : A Practitioner s Approach. McGraw Hill, NY. Tai, K.-C. and Daniels, F. J. (1997). Test order for inter-class integration testing of object-oriented software. In 21st Inter. Computer Software and Applications Conference, pages Vergilio, S., Pozo, A., Árias, J., Cabral, R., and Nobre, T. (2012). Multi-objective optimization algorithms applied to the class integration and test order problem. International Journal on Software Tools for Technology Transfer, 14(4): Zitzler, E., Laumanns, M., and Thiele, L. (2001). SPEA2: Improving the Strength Pareto Evolutionary Algorithm. Technical Report 103, Gloriastrasse 35, CH-8092 Zurich, Switzerland. Zitzler, E., Thiele, L., Laumanns, M., Fonseca, C. M., and da Fonseca, V. G. (2003). Performance assessment of multiobjective optimizers: An analysis and review. IEEE Transactions on Evolutionary Computation, 7:

IW10. Rev.: 02. Especificações Técnicas

IW10. Rev.: 02. Especificações Técnicas IW10 Rev.: 02 Especificações Técnicas Sumário 1. INTRODUÇÃO... 1 2. COMPOSIÇÃO DO IW10... 2 2.1 Placa Principal... 2 2.2 Módulos de Sensores... 5 3. APLICAÇÕES... 6 3.1 Monitoramento Local... 7 3.2 Monitoramento

Leia mais

Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução. Prof. Humberto Brandão humberto@dcc.ufmg.br

Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução. Prof. Humberto Brandão humberto@dcc.ufmg.br Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução Prof. Humberto Brandão humberto@dcc.ufmg.br aula disponível no site: http://www.bcc.unifal-mg.edu.br/~humberto/ Universidade Federal de

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: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar

Leia mais

PLANEJAMENTO DA MANUFATURA

PLANEJAMENTO DA MANUFATURA 58 FUNDIÇÃO e SERVIÇOS NOV. 2012 PLANEJAMENTO DA MANUFATURA Otimizando o planejamento de fundidos em uma linha de montagem de motores (II) O texto dá continuidade à análise do uso da simulação na otimização

Leia mais

Dadas a base e a altura de um triangulo, determinar sua área.

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

Otimização de Funções Não Lineares por Meio do Algoritmo Árvore da Montanha

Otimização de Funções Não Lineares por Meio do Algoritmo Árvore da Montanha Otimização de Funções Não Lineares por Meio do Algoritmo Árvore da Montanha Amarildo de Vicente Colegiado do Curso de Matemática Centro de Ciências Exatas e Tecnológicas da Universidade Estadual do Oeste

Leia mais

Complemento IV Introdução aos Algoritmos Genéticos

Complemento IV Introdução aos Algoritmos Genéticos Complemento IV Introdução aos Algoritmos Genéticos Esse documento é parte integrante do material fornecido pela WEB para a 2ª edição do livro Data Mining: Conceitos, técnicas, algoritmos, orientações e

Leia mais

APLICAÇÃO DE MÉTODOS HEURÍSTICOS EM PROBLEMA DE ROTEIRIZAÇÃO DE VEICULOS

APLICAÇÃO DE MÉTODOS HEURÍSTICOS EM PROBLEMA DE ROTEIRIZAÇÃO DE VEICULOS APLICAÇÃO DE MÉTODOS HEURÍSTICOS EM PROBLEMA DE ROTEIRIZAÇÃO DE VEICULOS Bianca G. Giordani (UTFPR/MD ) biancaggiordani@hotmail.com Lucas Augusto Bau (UTFPR/MD ) lucas_bau_5@hotmail.com A busca pela minimização

Leia mais

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 SUMÁRIO 1 Conceitos Básicos... 3 1.1 O que é Software?... 3 1.2 Situações Críticas no desenvolvimento

Leia mais

5. EXPERIÊNCIAS E ANÁLISE DOS RESULTADOS. 5.1 - Os Programas de Avaliação

5. EXPERIÊNCIAS E ANÁLISE DOS RESULTADOS. 5.1 - Os Programas de Avaliação 36 5. EXPERIÊNCIAS E ANÁLISE DOS RESULTADOS 5.1 - Os Programas de Avaliação Programas de avaliação convencionais foram utilizados para análise de diversas configurações da arquitetura. Estes programas

Leia mais

ISO/IEC 12207: Gerência de Configuração

ISO/IEC 12207: Gerência de Configuração ISO/IEC 12207: Gerência de Configuração Durante o processo de desenvolvimento de um software, é produzida uma grande quantidade de itens de informação que podem ser alterados durante o processo Para que

Leia mais

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos Programação Estruturada e Orientada a Objetos Fundamentos Orientação a Objetos 2013 O que veremos hoje? Introdução aos fundamentos de Orientação a Objetos Transparências baseadas no material do Prof. Jailton

Leia mais

6 Construção de Cenários

6 Construção de Cenários 6 Construção de Cenários Neste capítulo será mostrada a metodologia utilizada para mensuração dos parâmetros estocásticos (ou incertos) e construção dos cenários com respectivas probabilidades de ocorrência.

Leia mais

Orientação a Objetos

Orientaçã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 mais

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA RESUMO Ricardo Della Libera Marzochi A introdução ao Service Component Architecture (SCA) diz respeito ao estudo dos principais fundamentos

Leia mais

MINERAÇÃ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 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 mais

Universidade Tecnológica Federal do Paraná UTFPR Programa de Pós-Graduação em Computação Aplicada Disciplina de Mineração de Dados

Universidade Tecnológica Federal do Paraná UTFPR Programa de Pós-Graduação em Computação Aplicada Disciplina de Mineração de Dados Universidade Tecnológica Federal do Paraná UTFPR Programa de Pós-Graduação em Computação Aplicada Disciplina de Mineração de Dados Prof. Celso Kaestner Poker Hand Data Set Aluno: Joyce Schaidt Versão:

Leia mais

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves CAP 254 CAP 254 Otimização Combinatória Professor: Dr. L.A.N. Lorena Assunto: Metaheurísticas Antonio Augusto Chaves Conteúdo C01 Simulated Annealing (20/11/07). C02 Busca Tabu (22/11/07). C03 Colônia

Leia mais

Ajuste dos Parâmetros de um Controlador PI em uma Coluna de Destilação Binária

Ajuste dos Parâmetros de um Controlador PI em uma Coluna de Destilação Binária Ajuste dos Parâmetros de um Controlador PI em uma Coluna de Destilação Binária Marina Roberto Martins 1*, Fernando Palú 1 (1) Universidade Estadual do Oeste do Paraná, Curso de Engenharia Química. e-mail:

Leia mais

Busca Estocástica Baseada em Planejamento para Maximizar Metas em Jogos de RTS

Busca Estocástica Baseada em Planejamento para Maximizar Metas em Jogos de RTS Busca Estocástica Baseada em Planejamento para Maximizar Metas em Jogos de RTS Autor:Thiago França Naves 1, Orientador: Carlos Roberto Lopes 1 1 Programa de Pós-Graduação em Ciência da Computação Universidade

Leia mais

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

Leia mais

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

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

Otimização a Múltiplos Objetivos de Dispositivos Eletromagnéticos pelo Método dos Elementos Finitos. Luiz Lebensztajn

Otimização a Múltiplos Objetivos de Dispositivos Eletromagnéticos pelo Método dos Elementos Finitos. Luiz Lebensztajn Otimização a Múltiplos Objetivos de Dispositivos Eletromagnéticos pelo Método dos Elementos Finitos Luiz Lebensztajn Otimização a Múltiplos Objetivos Quando há necessidade de Otimização a Múltiplos Objetivos?

Leia mais

Possui como idéia central a divisão de um universo de dados a ser organizado em subconjuntos mais gerenciáveis.

Possui como idéia central a divisão de um universo de dados a ser organizado em subconjuntos mais gerenciáveis. 3. Tabelas de Hash As tabelas de hash são um tipo de estruturação para o armazenamento de informação, de uma forma extremamente simples, fácil de se implementar e intuitiva de se organizar grandes quantidades

Leia mais

Cálculo de volume de objetos utilizando câmeras RGB-D

Cálculo de volume de objetos utilizando câmeras RGB-D Cálculo de volume de objetos utilizando câmeras RGB-D Servílio Souza de ASSIS 1,3,4 ; Izadora Aparecida RAMOS 1,3,4 ; Bruno Alberto Soares OLIVEIRA 1,3 ; Marlon MARCON 2,3 1 Estudante de Engenharia de

Leia mais

GARANTIA DA QUALIDADE DE SOFTWARE

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

Lista de Exercícios 01: ITIL Prof. Fernando Pedrosa

Lista de Exercícios 01: ITIL Prof. Fernando Pedrosa Lista de Exercícios 01: ITIL Prof. Fernando Pedrosa Canais: fpedrosa@gmail.com http://tinyurl.com/ycekmjv INMETRO - Infraestrutura - (CESPE 2009) 81 Gerenciamento de nível de serviço é uma forma de entrega

Leia mais

ADM041 / EPR806 Sistemas de Informação

ADM041 / 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 mais

Podemos encontrar uma figura interessante no PMBOK (Capítulo 7) sobre a necessidade de organizarmos o fluxo de caixa em um projeto.

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

PONTIFÍ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 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 mais

Algoritmos Genéticos

Algoritmos Genéticos UNIVERSIDADE PRESBITERIANA MACKENZIE Laboratório de Computação Natural LCoN I ESCOLA DE COMPUTAÇÃO NATURAL Algoritmos Genéticos Rafael Xavier e Willyan Abilhoa Outubro/2012 www.computacaonatural.com.br

Leia mais

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

Leia mais

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Capí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 mais

Cálculo Aproximado do número PI utilizando Programação Paralela

Cálculo Aproximado do número PI utilizando Programação Paralela Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Cálculo Aproximado do número PI utilizando Programação Paralela Grupo 17 Raphael Ferras Renan Pagaiane Yule Vaz SSC-0143 Programação

Leia mais

Módulo 4. Construindo uma solução OLAP

Mó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 mais

SIMULADO: Simulado 3 - ITIL Foundation v3-40 Perguntas em Português

SIMULADO: Simulado 3 - ITIL Foundation v3-40 Perguntas em Português 1 de 7 28/10/2012 16:47 SIMULADO: Simulado 3 - ITIL Foundation v3-40 Perguntas em Português RESULTADO DO SIMULADO Total de questões: 40 Pontos: 0 Score: 0 % Tempo restante: 55:07 min Resultado: Você precisa

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Aritmética Computacional Slide 1 Sumário Unidade Lógica e Aritmética Representação de Números Inteiros Aritmética de Números Inteiros Representação de Números

Leia mais

Capítulo 7 Medidas de dispersão

Capítulo 7 Medidas de dispersão Capítulo 7 Medidas de dispersão Introdução Para a compreensão deste capítulo, é necessário que você tenha entendido os conceitos apresentados nos capítulos 4 (ponto médio, classes e frequência) e 6 (média).

Leia mais

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido Arquitetura Roteiro Arquitetura Tipos de Arquitetura Centralizado Descentralizado Hibrido Questionário 2 Arquitetura Figura 1: Planta baixa de uma casa 3 Arquitetura Engenharia de Software A arquitetura

Leia mais

4 Um Exemplo de Implementação

4 Um Exemplo de Implementação 4 Um Exemplo de Implementação Neste capítulo será discutida uma implementação baseada na arquitetura proposta. Para tanto, será explicado como a arquitetura proposta se casa com as necessidades da aplicação

Leia mais

Estudo de Casos 57. 5.1. Estudo de Caso 1: Velocidade Intervalar e Espessura da Camada

Estudo de Casos 57. 5.1. Estudo de Caso 1: Velocidade Intervalar e Espessura da Camada Estudo de Casos 57 5 Estudo de Casos Neste capítulo são relatados três estudos de caso com sismogramas de referência sintéticos que têm como objetivo avaliar o modelo proposto. Na descrição dos estudos

Leia mais

Tabela 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. 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 mais

COMPARAÇÃO DOS MÉTODOS DE SEGMENTAÇÃO DE IMAGENS OTSU, KMEANS E CRESCIMENTO DE REGIÕES NA SEGMENTAÇÃO DE PLACAS AUTOMOTIVAS

COMPARAÇÃO DOS MÉTODOS DE SEGMENTAÇÃO DE IMAGENS OTSU, KMEANS E CRESCIMENTO DE REGIÕES NA SEGMENTAÇÃO DE PLACAS AUTOMOTIVAS COMPARAÇÃO DOS MÉTODOS DE SEGMENTAÇÃO DE IMAGENS OTSU, KMEANS E CRESCIMENTO DE REGIÕES NA SEGMENTAÇÃO DE PLACAS AUTOMOTIVAS Leonardo Meneguzzi 1 ; Marcelo Massoco Cendron 2 ; Manassés Ribeiro 3 INTRODUÇÃO

Leia mais

3 Arquitetura do Sistema

3 Arquitetura do Sistema 3 Arquitetura do Sistema Este capítulo irá descrever a arquitetura geral do sistema, justificando as decisões de implementação tomadas. Na primeira seção iremos considerar um conjunto de nós interagindo

Leia mais

Semântica para Sharepoint. Busca semântica utilizando ontologias

Semântica para Sharepoint. Busca semântica utilizando ontologias Semântica para Sharepoint Busca semântica utilizando ontologias Índice 1 Introdução... 2 2 Arquitetura... 3 3 Componentes do Produto... 4 3.1 OntoBroker... 4 3.2 OntoStudio... 4 3.3 SemanticCore para SharePoint...

Leia mais

Persistência e Banco de Dados em Jogos Digitais

Persistência e Banco de Dados em Jogos Digitais Persistência e Banco de Dados em Jogos Digitais Prof. Marcos Francisco Pereira da Silva Especialista em Engenharia de Software Jogos Digitais - Computação Gráfica 1 Agenda Vantagens de usar a abordagem

Leia mais

Estudo comparativo entre dois tradicionais algoritmos de roteamento: vetor distância e estado de enlace.

Estudo comparativo entre dois tradicionais algoritmos de roteamento: vetor distância e estado de enlace. Estudo comparativo entre dois tradicionais algoritmos de roteamento: vetor distância e estado de enlace. Ederson Luis Posselt 1, Geovane Griesang 1 1 Instituto de Informática Universidade de Santa Cruz

Leia mais

Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA

Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008 3º PERÍODO - 5º MÓDULO AVALIAÇÃO A4 DATA 23/04/2009 ENGENHARIA DE SOFTWARE Dados de identificação do Acadêmico: Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA

Leia mais

A Otimização Colônia de Formigas

A Otimização Colônia de Formigas A Otimização Colônia de Formigas Estéfane G. M. de Lacerda Departamento de Engenharia da Computação e Automação UFRN 22/04/2008 Índice A Inspiração Biológica O Ant System Aplicado ao PCV O Ant System Aplicado

Leia mais

DESENVOLVIMENTO DE UM SOFTWARE NA LINGUAGEM R PARA CÁLCULO DE TAMANHOS DE AMOSTRAS NA ÁREA DE SAÚDE

DESENVOLVIMENTO DE UM SOFTWARE NA LINGUAGEM R PARA CÁLCULO DE TAMANHOS DE AMOSTRAS NA ÁREA DE SAÚDE DESENVOLVIMENTO DE UM SOFTWARE NA LINGUAGEM R PARA CÁLCULO DE TAMANHOS DE AMOSTRAS NA ÁREA DE SAÚDE Mariane Alves Gomes da Silva Eliana Zandonade 1. INTRODUÇÃO Um aspecto fundamental de um levantamento

Leia mais

Conceitos de Banco de Dados

Conceitos de Banco de Dados Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir

Leia mais

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Tópicos em Engenharia de Software (Optativa III) AULA 2 Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Engenharia de Software Objetivo da aula Depois desta aula você terá uma revisão sobre o

Leia mais

Capítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1

Capí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 mais

ANÁLISE DE DIFERENTES MODELOS DE ATRIBUIÇÃO DE NOTAS DA AVALIAÇÃO INTEGRADORA (AVIN) DO CURSO DE ENGENHARIA CIVIL DO UNICENP

ANÁLISE DE DIFERENTES MODELOS DE ATRIBUIÇÃO DE NOTAS DA AVALIAÇÃO INTEGRADORA (AVIN) DO CURSO DE ENGENHARIA CIVIL DO UNICENP ANÁLISE DE DIFERENTES MODELOS DE ATRIBUIÇÃO DE NOTAS DA AVALIAÇÃO INTEGRADORA (AVIN) DO CURSO DE ENGENHARIA CIVIL DO UNICENP Flavia Viviani Tormena ftormena@unicenp.edu.br Júlio Gomes jgomes@unicenp.edu.br

Leia mais

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

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

2 Desenvolvimento de Software Orientado a Aspectos

2 Desenvolvimento de Software Orientado a Aspectos 2 Desenvolvimento de Software Orientado a Aspectos Separação de concerns é um princípio bem estabelecido da engenharia de software que diz que, para se dominar a complexidade do desenvolvimento de software,

Leia mais

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart. Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart. Versão 1.6 15/08/2013 Visão Resumida Data Criação 15/08/2013 Versão Documento 1.6 Projeto Responsáveis

Leia mais

Programação Não Linear Otimização Univariada E Multivariada Sem Restrições

Programação Não Linear Otimização Univariada E Multivariada Sem Restrições Programação Não Linear Otimização Univariada E Multivariada Sem Restrições A otimização é o processo de encontrar a melhor solução (ou solução ótima) para um prolema. Eiste um conjunto particular de prolemas

Leia mais

1 http://www.google.com

1 http://www.google.com 1 Introdução A computação em grade se caracteriza pelo uso de recursos computacionais distribuídos em várias redes. Os diversos nós contribuem com capacidade de processamento, armazenamento de dados ou

Leia mais

Inteligência Computacional Aplicada a Engenharia de Software

Inteligência Computacional Aplicada a Engenharia de Software Inteligência Computacional Aplicada a Engenharia de Software Estudo de caso III Prof. Ricardo de Sousa Britto rbritto@ufpi.edu.br Introdução Em alguns ambientes industriais, pode ser necessário priorizar

Leia mais

Ciclo de Vida Clássico ou Convencional CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS. Ciclo de Vida Clássico ou Convencional. Enfoque Incremental

Ciclo de Vida Clássico ou Convencional CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS. Ciclo de Vida Clássico ou Convencional. Enfoque Incremental CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS Elicitação Ciclo de Vida Clássico ou Convencional O Modelo Cascata Análise Ana Paula Terra Bacelo Blois Implementação Material Adaptado do Prof. Marcelo Yamaguti

Leia mais

Sistema Banco de Preços Manual do Usuário OBSERVATÓRIO

Sistema Banco de Preços Manual do Usuário OBSERVATÓRIO Sistema Banco de Preços Manual do Usuário OBSERVATÓRIO da Despesa Pública 1 Sumário O Banco de Preços... 3 Acessando o Banco de Preços... 4 Funções do Banco de Preços... 5 Gerar Preço de Referência...

Leia mais

CONCURSO PÚBLICO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI ANALISTA DE GESTÃO RESPOSTAS ESPERADAS PRELIMINARES

CONCURSO PÚBLICO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI ANALISTA DE GESTÃO RESPOSTAS ESPERADAS PRELIMINARES CELG DISTRIBUIÇÃO S.A EDITAL N. 1/2014 CONCURSO PÚBLICO ANALISTA DE GESTÃO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI RESPOSTAS ESPERADAS PRELIMINARES O Centro de Seleção da Universidade Federal de Goiás

Leia mais

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS ATRIBUTOS PRIVADOS Podemos usar o modificador private, para tornar um atributo privado, obtendo um controle centralizado Definimos métodos para implementar todas as lógicas que utilizam ou modificam o

Leia mais

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

CAPÍ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 mais

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR

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

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

5 Resultados. 1 Os resultados apresentados foram obtidos com 1 rodada do simulador.

5 Resultados. 1 Os resultados apresentados foram obtidos com 1 rodada do simulador. 5 Resultados A dificuldade em modelar analiticamente o comportamento de sistemas celulares hierarquizados faz com que grande parte dos estudos de desempenho destes sistemas seja baseada em simulações.

Leia mais

3. Fase de Planejamento dos Ciclos de Construção do Software

3. Fase de Planejamento dos Ciclos de Construção do Software 3. Fase de Planejamento dos Ciclos de Construção do Software A tarefa de planejar os ciclos de construção do software pode partir de diretrizes básicas. Estas diretrizes visam orientar que os ciclos de

Leia mais

INTELIGÊNCIA ARTIFICIAL Data Mining (DM): um pouco de prática. (1) Data Mining Conceitos apresentados por

INTELIGÊNCIA ARTIFICIAL Data Mining (DM): um pouco de prática. (1) Data Mining Conceitos apresentados por INTELIGÊNCIA ARTIFICIAL Data Mining (DM): um pouco de prática (1) Data Mining Conceitos apresentados por 1 2 (2) ANÁLISE DE AGRUPAMENTOS Conceitos apresentados por. 3 LEMBRE-SE que PROBLEMA em IA Uma busca

Leia mais

2. Representação Numérica

2. Representação Numérica 2. Representação Numérica 2.1 Introdução A fim se realizarmos de maneira prática qualquer operação com números, nós precisamos representa-los em uma determinada base numérica. O que isso significa? Vamos

Leia mais

ALGORITMOS GENÉTICOS: UMA VISÃO EXPLANATÓRIA

ALGORITMOS GENÉTICOS: UMA VISÃO EXPLANATÓRIA 136 ALGORITMOS GENÉTICOS: UMA VISÃO EXPLANATÓRIA FILITTO, Danilo 1 Resumo: Os algoritmos Genéticos inspiram-se no processo de evolução natural e são utilizados para resolver problemas de busca e otimização

Leia mais

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas Processamento e Otimização de Consultas Banco de Dados Motivação Consulta pode ter sua resposta computada por uma variedade de métodos (geralmente) Usuário (programador) sugere uma estratégia para achar

Leia mais

Arquiteturas RISC. (Reduced Instructions Set Computers)

Arquiteturas RISC. (Reduced Instructions Set Computers) Arquiteturas RISC (Reduced Instructions Set Computers) 1 INOVAÇÕES DESDE O SURGIMENTO DO COMPU- TADOR DE PROGRAMA ARMAZENADO (1950)! O conceito de família: desacoplamento da arquitetura de uma máquina

Leia mais

Especificação do 3º Trabalho

Especificaçã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 mais

15/03/2010. Análise por pontos de função. Análise por Pontos de Função. Componentes dos Pontos de Função. Componentes dos Pontos de Função

15/03/2010. Análise por pontos de função. Análise por Pontos de Função. Componentes dos Pontos de Função. Componentes dos Pontos de Função Análise por pontos de função Análise por Pontos de Função Referência: Manual de práticas de contagem IFPUG Versão 4.2.1 Técnica que permite medir a funcionalidade de um software ou aplicativo, sob a visão

Leia mais

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

Modelagem e Simulação Material 02 Projeto de Simulação

Modelagem e Simulação Material 02 Projeto de Simulação Modelagem e Simulação Material 02 Projeto de Simulação Prof. Simão Sirineo Toscani Projeto de Simulação Revisão de conceitos básicos Processo de simulação Etapas de projeto Cuidados nos projetos de simulação

Leia mais

A Grande Importância da Mineração de Dados nas Organizações

A Grande Importância da Mineração de Dados nas Organizações A Grande Importância da Mineração de Dados nas Organizações Amarildo Aparecido Ferreira Junior¹, Késsia Rita da Costa Marchi¹, Jaime Willian Dias¹ ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil

Leia mais

Algoritmos e Estrutura de Dados III. Árvores

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

Técnicas para Programação Inteira e Aplicações em Problemas de Roteamento de Veículos 14

Técnicas para Programação Inteira e Aplicações em Problemas de Roteamento de Veículos 14 1 Introdução O termo "roteamento de veículos" está relacionado a um grande conjunto de problemas de fundamental importância para a área de logística de transportes, em especial no que diz respeito ao uso

Leia mais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

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

Métodos Os métodos de uma classe podem ser classificados como construtores, destrutores, funções ou procedimentos.

Métodos Os métodos de uma classe podem ser classificados como construtores, destrutores, funções ou procedimentos. Métodos Os métodos de uma classe podem ser classificados como construtores, destrutores, funções ou procedimentos. Construtor: método executado por uma CLASSE (e não por um objeto, instância da classe)

Leia mais

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu 1 Programação Não Linear Aula 25: Programação Não-Linear - Funções de Uma única variável Mínimo; Mínimo Global; Mínimo Local; Optimização Irrestrita; Condições Óptimas; Método da Bissecção; Método de Newton.

Leia mais

MRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior

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

DIMENSIONANDO PROJETOS DE WEB-ENABLING. Uma aplicação da Análise de Pontos de Função. Dimensionando projetos de Web- Enabling

DIMENSIONANDO PROJETOS DE WEB-ENABLING. Uma aplicação da Análise de Pontos de Função. Dimensionando projetos de Web- Enabling DIMENSIONANDO PROJETOS DE WEB-ENABLING Uma aplicação da Análise de Pontos de Função Dimensionando projetos de Web- Enabling Índice INTRODUÇÃO...3 FRONTEIRA DA APLICAÇÃO E TIPO DE CONTAGEM...3 ESCOPO DA

Leia mais

18º Congresso de Iniciação Científica IMPLEMENTAÇÃO DE UM MODELO DE TESTE DE APLICAÇÕES WEB

18º Congresso de Iniciação Científica IMPLEMENTAÇÃO DE UM MODELO DE TESTE DE APLICAÇÕES WEB 18º Congresso de Iniciação Científica IMPLEMENTAÇÃO DE UM MODELO DE TESTE DE APLICAÇÕES WEB Autor(es) HARLEI MIGUEL DE ARRUDA LEITE Orientador(es) PLÍNIO ROBERTO SOUZA VILELA Apoio Financeiro PIBIC/CNPQ

Leia mais

APLICACAÇÃO DE METRICAS E INDICADORES NO MODELO DE REFERENCIA CMMI-Dev NIVEL 2

APLICACAÇÃO DE METRICAS E INDICADORES NO MODELO DE REFERENCIA CMMI-Dev NIVEL 2 APLICACAÇÃO DE METRICAS E INDICADORES NO MODELO DE REFERENCIA CMMI-Dev NIVEL 2 Renan J. Borges 1, Késsia R. C. Marchi 1 1 Universidade Paranaense (UNIPAR) Paranavaí, PR Brasil renanjborges@gmail.com, kessia@unipar.br

Leia mais

6. Geometria, Primitivas e Transformações 3D

6. Geometria, Primitivas e Transformações 3D 6. Geometria, Primitivas e Transformações 3D Até agora estudamos e implementamos um conjunto de ferramentas básicas que nos permitem modelar, ou representar objetos bi-dimensionais em um sistema também

Leia mais

7 Trabalhos Relacionados A idéia é tentar dar todas as informações que ajudem os outros a julgar o valor da sua contribuição; não apenas as informações que levem o julgamento a uma direção em particular.

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

ProgramaTchê Programação OO com PHP

ProgramaTchê Programação OO com PHP Roteiro 1 Objetivos: * Apresentar conceitos de orientação a objetos; * Representar classes e objetos usando UML; Este roteiro tem como objetivo abordar os conceitos básicos de orientação a objetos. 1 Introdução

Leia mais

Sistemas de Informação I

Sistemas de Informação I + Sistemas de Informação I Dimensões de análise dos SI Ricardo de Sousa Britto rbritto@ufpi.edu.br + Introdução n Os sistemas de informação são combinações das formas de trabalho, informações, pessoas

Leia mais

QualiQuantiSoft Versão 1.3c

QualiQuantiSoft Versão 1.3c QualiQuantiSoft Versão 1.3c Qualiquantisoft v1.3c Pág.: 1/15 Índice Apresentação do programa... 3 Funções operacionais do programa... 3 Itens de menu... 6 Teclas de atalho... 6 Instrumento de Análise de

Leia mais

Ciência da Computação ENGENHARIA DE SOFTWARE. Análise dos Requisitos de Software

Ciência da Computação ENGENHARIA DE SOFTWARE. Análise dos Requisitos de Software Ciência da Computação ENGENHARIA DE SOFTWARE Análise dos Requisitos de Software Prof. Claudinei Dias email: prof.claudinei.dias@gmail.com Roteiro Introdução Tipos de requisitos Atividades Princípios da

Leia mais

Localização dos inquéritos de rua para Arroios e Gulbenkian

Localização dos inquéritos de rua para Arroios e Gulbenkian Project IAAPE Pedestrian Accessibility and Attractiveness Indicators: Tool for Urban Walkability Assessment and Management Working Paper No. WP-8 Localização dos inquéritos de rua para Arroios e Gulbenkian

Leia mais

UML - Unified Modeling Language

UML - Unified Modeling Language UML - Unified Modeling Language Casos de Uso Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 24 de abril

Leia mais

Aula 8 Circuitos Integrados

Aula 8 Circuitos Integrados INTRODUÇÃO À ENGENHRI DE COMPUTÇÃO PONTIFÍCI UNIVERSIDDE CTÓLIC DO RIO GRNDE DO SUL FCULDDE DE ENGENHRI ula Circuitos Integrados Introdução Portas Lógicas em Circuitos Integrados Implementação de Funções

Leia mais