APLICAÇÃO DO ALGORITMO GRASP REATIVO PARA O PROBLEMA DO PRÓXIMO RELEASE
|
|
- Washington Coradelli di Castro
- 8 Há anos
- Visualizações:
Transcrição
1 APLICAÇÃO DO ALGORITMO GRASP REATIVO PARA O PROBLEMA DO PRÓXIMO RELEASE Gabriela Rosa Machado Linhares Universidade Estadual do Ceará (UECE) Av. Paranjana, Fortaleza - CE gabrielarosalinhares@gmail.com Fabrício Gomes de Freitas Universidade Estadual do Ceará (UECE) Av. Paranjana, Fortaleza - CE fabriciogf@uece.br Rafael Augusto Ferreira do Carmo Universidade Estadual do Ceará (UECE) Av. Paranjana, Fortaleza - CE carmorafael@gmail.com Camila Loiola Brito Maia Universidade Estadual do Ceará (UECE) Av. Paranjana, Fortaleza - CE camila.maia@gmail.com Jerffeson Teixeira de Souza Universidade Estadual do Ceará (UECE) Av. Paranjana, Fortaleza - CE jeff@larces.uece.br RESUMO Search-Based Software Engineering, ou SBSE, é uma nova area de pesquisa com o objetivo de aplicar técnicas de otimização na construção de soluções para problemas complexos da engenharia de software. Este trabalho avalia o uso da metaheurística GRASP Reativo, uma adaptação da metaheurística GRASP, para solucionar um problema conhecido da engenharia de software, o Next Release Problem (NRP). O problema NRP consiste em selecionar um conjunto de requisitos que satisfaça as dependências entre eles e o orçamento disponível. Neste trabalho usamos os resultados encontrados pelo GRASP Reativo para uma análise comparatória entre esta metaheurística e outras já utilizadas na resolução deste problema. PALAVRAS-CHAVE. Engenharia de requisitos, Search based software engineering, GRASP Reativo. TEL & SI - PO em Telecomunicações e Sistemas de Informações. ABSTRACT The SBSE field, Search-Based Software Enginnering, is a recent research field with the aim of applying optimisation techniques in the construction of solutions to complex software engineering problems. This work studies the use of the metaheuristic Reactive GRASP, an adaption of the GRASP metaheuristic, to solve a known requirement s engineering problem, the Next Release Problem (NRP). The NRP problems concerns on the selection of a set of requirements to both satisfy dependencies required for the clients and respect the budget. In this work we use the results found by the Reactive GRASP to perform a comparison analysis among this metaheuristic and others already used to solve this problem. KEYWORDS. Requirements engineering, Search based software engineering, Reactive Grasp.
2 1. Introdução A SBSE (Search-Based Software Engineering), Otimização em Engenharia de Software, é uma área recente da Engenharia de Software cujo objetivo é utilizar técnicas de busca para automatizar a construção de soluções para problemas da engenharia de software. Os primeiros artigos a aplicarem técnicas de otimização para resolver problemas da engenharia de software foram escritos no início da década de Contudo, nos últimos dez anos, a área demonstrou um crescimento bastante acentuado com o desenvolvimento de trabalhos em diversas áreas como geração de dados de testes (CHEN e ZHONG, 2008), seleção de casos de testes (MAIA et al., 2009) (YOO e HARMAN, 2007), alocações em projetos (ANTONIOL; PENTA; HARMAN, 2004), requisitos que formarão uma release (BAGNALL; RAYWARD- SMITH; WHITTLEY, 2001), entre outros. Conforme um sistema computacional cresce, torna-se mais distribuído, mais dinâmico e mais crítico, e o árduo trabalho realizado para buscar uma boa configuração entre requisitos funcionais e não-funcionais torna-se o limite fundamental para que se atinja o maior objetivo: alcançar uma solução ótima. O desenvolvimento, a operabilidade e a manutenção de sistemas no modelo tradicional são bastante prejudicados caso não exista esforços por parte da comunidade de engenharia de software para automatizar, pelo menos em parte, a busca por soluções ótimas (HARMAN, 2007). Um problema para empresas envolvidas com desenvolvimento e manutenção de grandes e complexos sistemas de software vendidos a diversos clientes é decidir o que será implementado na próxima release do software. Uma release é o termo em inglês que se refere a uma liberação de software, ou seja, ao lançamento de uma nova versão oficial de um produto de software. A cada vez que um produto de software é modificado, os programadores e a empresa que executam o trabalho decidem sobre como distribuir as modificações ou o produto modificado às pessoas que o utilizam. Em geral, a empresa se depara com: a demanda de seus clientes por várias melhorias no software; uma situação onde algumas melhorias solicitadas são pré-requisitos de outras melhorias; clientes que representam um valor de mercado maior do que outros clientes; requisitos que necessitarão de diferentes quantidades de tempo e esforço para serem atendidos. O Next Release Problem (NRP), termo em inglês dado ao Problema do Próximo Release, foi proposto por Bagnall (BAGNALL; RAYWARD-SMITH; WHITTLEY, 2001). O NRP aborda a dificuldade de encontrar uma release que satisfaça todos os requisitos exigidos pelo cliente, atingindo seu objetivo, mas sem exceder o orçamento previsto. Uma das contribuições deste trabalho é mostrar o GRASP Reativo como metaheurística de importante aplicação em SBSE, especialmente neste problema da engenharia de requisitos (NRP), com novas análises comparativas, cujos estudos podem ajudar a entender melhor o quanto o aprofundamento nesta área de pesquisa é capaz de melhorar o desempenho dos algoritmos utilizados para resolver problemas de otimização em engenharia de software. O restante do trabalho está dividido da seguinte maneira: a seção 2 apresenta trabalhos relacionados à aplicação de técnicas de otimização no contexto da engenharia de requisitos e também trabalhos relacionados ao GRASP; a seção 3 apresenta a modelagem matemática do problema NRP (Next Release Problem). Na seção 4 são apresentados sucintamente os algoritmos utilizados para resolver o problema, na seção 5 os dados, resultados e análise dos experimentos realizados são apresentados, e, finalmente, na seção 6 a conclusão e trabalhos futuros são indicados.
3 2. Trabalhos Relacionados A engenharia de requisitos é parte vital do processo de engenharia de software. Em Bagnall (BAGNALL; RAYWARD-SMITH; WHITTLEY, 2001) encontra-se formulado o Problema do Próximo Release, cujo objetivo é encontrar o conjunto ideal de requisitos que equilibram: pedidos dos clientes, limitações de recursos e interdependência dos requisitos. Esse problema é ilustrado na Figura 1, mostrando que as dependências do conjunto de requisitos r 1 a r 7 são representadas pelas arestas, onde diferentes clientes solicitam diferentes conjuntos de requisitos. Figura 1: Exemplo do NRP (Adaptada de [BAGNALL; RAYWARD-SMITH; WHITTLEY, 2001]) Em tal artigo algumas técnicas, incluindo algoritmos gulosos e metaheurísticas, foram aplicadas em dados criados para modelar recursos da próxima release e os relacionamentos entre eles. Também foi aplicada programação linear na tentativa de se obter uma solução exata para o problema. Porém, ela se mostrou ineficiente para instâncias com valores muito altos. Dentre as metaheurísticas, a têmpera simulada foi a de melhor desempenho. Greer e Ruhe (GREER; RUHE, 2004) propuseram uma abordagem baseada em algoritmos genéticos para planejar todas as releases de um software. No artigo de Zhang (ZHANG; FINKELSTEIN; HARMAN, 2008) um survey da área é apresentado, onde critérios utilizados em técnicas de otimização que podem ser aplicadas durante a fase de análise de requisitos são discutidos. Neste artigo são referenciados trabalhos que mostram técnicas de otimização com metaheurísticas que poderiam ser usadas para balancear custos e benefícios associados a um conjunto de requisitos. Os autores listam algumas vantagens oferecidas por essas técnicas, como buscar por soluções escaláveis e robustas, realizar análise de sensibilidade e priorizar requisitos que atendam de fato as necessidades do cliente, observando a interdependência entre eles e seu valor de negócio. A escolha do GRASP, além do fato de ele ainda não ter sido analisado nessa área, foi feita com base em alguns estudos que mostram sua eficiência em outros problemas de otimização. Outros trabalhos relacionados ao NRP, porém com abordagem multi-objetiva são (ZHANG; HARMAN; MANSOURI, 2007), onde a versão multi-objetiva do problema fora apresentada, e (COLARES et al., 2009), no qual é apresentada uma nova abordagem multiobjetiva para o problema de Planejamento de Releases, o qual foi formulado levando em consideração diversos fatores como custo, prazo, esforços, riscos, satisfação dos clientes e interdependência entre os requisitos. No procedimento GRASP básico, existe um parâmetro, α, cujo valor é fixo, ou seja, não muda ao longo do tempo. Em (MAURICIO; THOMAS, 1989) encontra-se a primeira referência ao GRASP - Greedy Randomized Adaptive Search Procedure. Já em outra publicação sobre o assunto (FEO; RESENDE, 1995), todo o conhecimento sobre GRASP até então é sumarizado e também é apresentada uma vasta lista de problemas aos quais este algoritmo foi aplicado com sucesso.
4 Prais e Ribeiro (PRAIS; RIBEIRO, 2000) mostraram que com isso ele deixa de usar a seu favor informações valiosas a respeito de suas escolhas em iterações anteriores, que poderiam ajudá-lo a encontrar melhores soluções mais rapidamente. Eles propuseram uma modificação de GRASP chamada Reactive GRASP, ou GRASP Reativo, no qual o valor de α é adaptado segundo a qualidade das últimas soluções obtidas. Trabalhos que utilizam a abordagem de GRASP Reativo podem ser encontrados na área de automação de testes, como apresentado em (FREITAS et al., 2010). Em especial, em (MAIA et al., 2010) os autores fazem uso das características dessa metaheurística para automatizar a priorização de casos de testes de um software. Também pode ser encontrada referência sobre o assunto no survey (FREITAS et al., 2009), onde é feito um apanhado geral sobre o estado da arte da SBSE atualmente. Exemplos que mostram a validade de uso do GRASP podem ser encontrados na literatura. Em (ROBLEDO-AMOZA; CANCELA; RUBINO, 2010) é apresentado GRASP para projetar topologias de baixo custo para o modelo STNSNP (Steiner Two-Node-Survivable Network Problem), um problema de verificar se numa rede de fibras óticas existem pelo menos dois nós separados que formam um caminho entre pares de nós distintos. Os resultados obtidos foram altamente satisfatórios, obtendo em todos os casos soluções locais de boa qualidade. Já no artigo (LARA-VELÁZQUEZ et al., 2010), a abordagem GRASP foi proposta para resolver o problema GRCP (Generalized Robust Colouring Problem), que trata da problemática de uma cor sólida colorir um grafo dado com um número fixo de cores, não necessariamente o número cromático, e considera a distância entre as cores como a penalização de arestas complementares. Esse problema constitui uma forma de resolver a problemática de horários que consideram restrições de intervalos entre eventos. Como esse problema é NP-difícil, uma abordagem heurística é necessária para produzir boas soluções em um período de tempo razoável para instâncias grandes. GRASP foi aplicado nesse problema e atingiu valores próximos à solução ótima em quase todos os testes. 3. Modelagem do NRP Seja R o conjunto de todos os requisitos de um sistema possíveis de serem selecionados para a próxima release. Cada cliente i terá um conjunto de requisitos tal que R i R, e existe um peso w i Z+, o qual representa o grau de importância do cliente i para a empresa. Associado ao conjunto R está um grafo acíclico e direto G = (R,E), onde (r,r ) E, se e somente se r é um prérequisito de r. G não é apenas acíclico, mas também é transitivo, pois se (r,r ) E e (r,r ) E, então (r,r ) E. Dessa forma, caso se decida satisfazer todos os requisitos do cliente i, não se deve somente desenvolver os requisitos R i, mas também os seus pré-requisitos, representados por parents(r i ) = {r R (r,r ) E e r Ri}. Observamos que sendo G transitivo, o conjunto inclui todos os requisitos para os quais existe um caminho em G maior ou igual a zero terminando num vértice em R i. Desse modo, i contempla todas as melhorias de software a serem desenvolvidas para satisfazer o cliente i. Cada r R tem um custo associado, cost(r) Z+, que é o custo de desenvolvimento daquele requisito. Se R R, então definimos que cost(r ) = {cost(r) r R }. Assumindo que a empresa tem n clientes, o desafio é encontrar um subconjunto de clientes S {1, 2, 3, } cujos requisitos serão satisfeitos. O custo para satisfazer os clientes em S é o resultado do somatório dos custos dos requisitos e dos pré-requisitos do cliente i, ou seja, o somatório dos custos de. Assim, a empresa deve encontrar um subconjunto S {1, 2,, n}, tal que é maximizado, sujeito às restrições de custo e precedência dos requisitos.
5 Sabendo que, percebe-se que uma expressão alternativa para é igual à expressão: onde X é o conjunto dos requisitos do cliente i: No caso especial onde nenhum requisito possui pré-requisito, ou seja, o conjunto E é vazio, o Next Release Problem é básico. Nesse caso, para qualquer conjunto; então a empresa precisa somente encontrar S para maximizar, sujeito às restrições de custo e precedência de requisitos. Claramente, qualquer NRP pode ser formulado como básico, somente pré-processando cada R i e redefinindo-o como. Um caso ainda mais especial surge quando os requisitos de um cliente não são apenas básicos mas também independentes, isto é,, sempre que. Nesse caso especial, temos:. Assim, no caso básico independente, a empresa deseja maximizar, sujeito a, onde c i = cost(r i ) e B é o orçamento disponível para o desenvolvimento dos requisitos. Para tanto, é preciso encontrar uma variável booleana x i {0,1}, para cada cliente {i 1 i n}, tal que. será maximizado, sujeito a.. A variável x i será igual a 1, se o cliente i tiver seus requisitos satisfeitos. Caso contrário, x i será igual a 0. Este problema pode ser visto como o conhecido Problema da Mochila 0/1 e, dessa forma, se apresenta como um problema NP-Completo. 4. Algoritmos No artigo de Bagnall (BAGNALL; RAYWARD-SMITH; WHITTLEY, 2001), são citadas três técnicas que vem sendo desenvolvidas para solucionar o NRP: 1. Técnicas exatas, representadas por um algoritmo de Branch &Bound. 2. Três algoritmos gulosos. 3. Algoritmos de buscas locais. Descreveremos sucintamente os algoritmos Têmpera Simulada, Algoritmo Genético e GRASP, utilizados no trabalho origem acima e também neste trabalho, e o GRASP Reativo, aqui proposto para a resolução do problema NRP Têmpera Simulada A Têmpera Simulada é uma técnica de otimização baseada em uma analogia a um processo da Termodinâmica. Tal analogia é em relação a um processo térmico utilizado em metalurgia para obtenção de estados de baixa energia num sólido. O algoritmo de têmpera simulada substitui a solução atual por uma solução próxima (na vizinhança), escolhida de acordo com uma função objetivo e uma variável T (Temperatura). A função objetivo deve ser minimizada. Esta técnica começa sua busca a partir de uma solução inicial qualquer. O procedimento principal consiste em um laço que gera aleatoriamente, a cada iteração, um vizinho da solução corrente. A cada geração de um novo vizinho s 0 de s, é testada a variação do valor da função objetivo, isto é, = f (s 0 ) f (s), onde temos as seguintes situações:
6 < 0: Há uma redução de energia, a qual implica que a nova solução é melhor que a anterior. O método aceita a solução e s 0 passa a ser a nova solução corrente. = 0: Caso de estabilidade, não havendo redução de energia. A aceitação da solução é indiferente. > 0: Houve um aumento do estado de energia. A aceitação desse tipo de solução depende de uma função conhecida como fator de Boltzmann:, onde T é a temperatura. Gera-se um número aleatório e ele é comparado com p. Caso o número aleatório seja menor que p, a solução é aceita. A temperatura T assume inicialmente um valor elevado. Depois ela é gradativamente diminuída para que no início exista maior probabilidade de aceitação de soluções piores, e esta probabilidade vai diminuindo à medida que a temperatura é diminuída Algoritmo Genético Algoritmos genéticos são uma classe particular de algoritmos evolutivos que usam técnicas inspiradas pela biologia evolutiva como hereditariedade, mutação, seleção natural e recombinação (ou crossing-over). A evolução geralmente se inicia a partir de um conjunto de soluções criado aleatoriamente e é realizada por meio de gerações. A cada geração, a adaptação de cada solução na população é avaliada, onde alguns indivíduos são selecionados para a próxima geração e recombinados ou mutados para formar uma nova população. A nova população então é utilizada como entrada para a próxima iteração do algoritmo. Nessa abordagem, os indivíduos são portadores do seu código genético, e a relação com a otimização trata dessa como uma representação do espaço de busca do problema a ser resolvido, em geral na forma de sequências de bits. A recombinação, ou crossing-over é um processo que imita o processo biológico homônimo. Os descendentes recebem em seu código genético parte do código genético dos genitores. Esta recombinação garante que os melhores indivíduos sejam capazes de trocar entre si as informações que os levam a ser mais aptos a sobreviver, e assim gerar descendentes ainda mais aptos. Finalmente, as mutações, que são feitas de forma aleatória, tem como objetivo permitir maior variabilidade genética na população, impedindo que a busca permaneça estagnada em um mínimo local. (GOLDBERG, 1989) 4.3. GRASP O processo de busca adaptativa gulosa e randômica trata de um processo iterativo para problemas de otimização combinatória (FEO; RESENDE, 1995). Cada iteração é composta de duas fases: Construção, na qual a solução é gerada, elemento a elemento. Nessa fase é realizada a diversificação, na qual é possível que o procedimento escape dos ótimos locais. Busca local, que melhora a solução anterior em busca de soluções vizinhas mais aprimoradas, ou seja, realiza-se aqui a intensificação. Na primeira fase de GRASP, uma solução vai ser gerada a partir de uma solução vazia através de escolha de candidatos. Um candidato é qualquer elemento e E que não quebre a viabilidade da solução parcial, onde E é o espaço de busca do problema. O coração do método construtivo que compõe a primeira fase da metaheurística GRASP reside na construção de uma lista restrita de candidatos (RCL), de onde será escolhido o próximo elemento a incorporar a solução. Um fator α, fixo, define quais soluções farão parte da RCL.
7 4.4. GRASP Reativo No artigo de Prais e Ribeiro, (PRAIS; RIBEIRO, 2000), os autores mostram que com o fato de o parâmetro α ser fixo, o GRASP deixa de usar a seu favor informações valiosas a respeito de suas escolhas em iterações anteriores, que poderiam ajudar a encontrar melhores soluções mais rapidamente. Eles propuseram uma modificação do GRASP chamada GRASP Reativo, no qual o valor de α é adaptado segundo a qualidade das últimas soluções obtidas. Em tal abordagem, a probabilidade de um determinado valor de α é diretamente proporcional à qualidade das soluções obtidas através dele. Com isso, a probabilidade de um valor de α associado a soluções de alta qualidade irá aumentar a cada reavaliação, aumentando então as chances de ele ser utilizado nas futuras iterações. Existem duas vantagens em se usar essa técnica: maior robustez, devido a uma menor dependância do acerto de valores de parâmetros, principalmente de α, e melhor qualidade das soluções. Esta última se deve ao fato da diversificação com GRASP Reativo ser feita de uma forma mais racional, pois utiliza informações a respeito de soluções encontradas anteriormente. 5. Experimentos Nesta seção serão descritos os dados utilizados nos experimentos, parâmetros dos algoritmos, e os resultados Dados A partir do estudo dos tipos de instâncias propostas no artigo original onde o Problema do Próximo Release (NRP) fora apresentado, realizou-se a geração aleatória de novas instâncias. Segundo Bagnall (BAGNALL; RAYWARD-SMITH; WHITTLEY, 2001), foi utilizada a abordagem multi-nível em cada instância do problema, onde os clientes, representados pelo último nível da Figura 1, solicitam requisitos do penúltimo nível, ou seja, o primeiro nível dos requisitos. Dessa forma, ele limita a relação direta cliente versus requisitos apenas ao primeiro nível, enquanto que a relação requisitos versus pré-requisitos fica contemplada nas ligações presentes a partir do segundo nível com o primeiro, i.e., tudo o que está do segundo nível de requisitos (3ª linha) acima são níveis de requisitos, possivelmente pré-requisitos. Esse tipo de abordagem multi-nível, contudo, não impede que um pré-requisito esteja diretamente ligado a um cliente. Fazendo um paralelismo com possíveis cenários reais de modelagem do NRP, um cliente A pode solicitar o requisito 1 e este ter como pré-requisito o requisito 2, mas é possível que outro cliente B solicite apenas o requisito 2. Considerando tal fato, observa-se que somente alguns critérios de aleatoriedade do artigo de Bagnall foram utilizados para gerar dados que não seguem a abordagem multi-nível, apenas elegem dentro de um universo de requisitos quais serão aqueles que se interligam sem ter dependência circular a requisitos de outros níveis, ou seja, A depende de B para ser satisfeito e B depende de A, fato que também não ocorre na abordagem utilizada neste trabalho. O conjunto de instâncias utilizadas nesse trabalho consiste em 3 instâncias geradas aleatoriamente. A menor delas, M 1, tem 10 clientes e 20 requisitos, já M 2 tem 20 clientes e 40 requisitos, enquanto a maior, M 3, tem 30 clientes e 60 requisitos. Para cada instância, o total de recursos necessários para satisfazer todos os clientes foi calculado e experimentos foram estimados utilizando limites de 30, 50 e 70% desse total para simulação de diferentes situações de disponibilidade de recursos. Para a geração dos dados foi utilizado um parâmetro chamado density que determina a quantidade de ligações entre clientes e requisitos e entre requisitos e pré-requisitos. Tal parâmetro está no formato de porcentagem, ou seja, numa proporção de ligações que um nó faz com outro. Nas tabelas a seguir, é exemplificado apenas os valores de density para cada instância considerada, servindo de parâmetro para as análises comparativas exibidas a seguir.
8 Tabela 1: Parâmentros de densidade de ligações por tipo de instância gerada. Tipo de Instância Density M 1 0,05 M 2 0,03 M 3 0,03 Esclarecendo o conceito do NRP quanto às instâncias geradas, temos por exemplo, para a instância de 10 clientes e 20 requisitos, um custo máximo de 30% para o somatório de clientes a serem selecionados. Isto significa que ao selecionar um conjunto de clientes, o algoritmo da metaheurística deve levar em consideração que o somatório dos custos para implementar os requisitos de todos os clientes selecionados não pode ultrapassar um custo máximo de 30% do valor total necessário para implementar todos os requisitos existentes Parâmetros de Calibragem das Metaheurísticas As metaheurísticas Algoritmo Genético, Têmpera Simulada, GRASP e GRASP Reativo foram implemetadas com base no framework EasyMeta (CARMO; CAMPOS; SOUZA, 2008). Para cada algoritmo, a seguinte parametrização foi utilizada: Algoritmo Genético: Quantidade de iterações = 35; População = 20; Mutação de 20%; Têmpera Simulada: Taxa de Decrescimento T = 0.95; Critério de Parada = T menor que ; GRASP: Quantidade máxima de iterações = 50; α = 0.3; GRASP Reativo: Quantidade máxima de iterações = 60; Quantidade de α= 9; Valores de α= 0.1 a Resultados Nesta seção estão detalhados os resultados obtidos na aplicação de cada algoritmo nas instâncias do Problema do Próximo Release. Uma análise comparativa entre os algoritmos também é realizada considerando que estes foram calibrados de forma a manter o tempo de execução similares. Os identificadores das instâncias foram definidos da seguinte maneira: termo data seguido do número de clientes ( 10, 20 ou 30 ), e em seguida do número de requisitos ( 20, 40 ou 60 ) e do percentual máximo de recursos ( 30, 50 ou 70 ). A Tabela 2 exibida a seguir mostra os valores das médias e desvios-padrão dos custos de 100 execuções para cada instância, considerando no máximo 30% do valor total disponível pelo cliente.
9 Tabela 2: Resultados com 30% do custo total. Instâncias GA GRASP GRASP Reativo Têmpera Média Desvio Média Desvio Média Desvio Média Desvio data ,40 7,66 38,06 5,22 39,32 5,24 38,65 6,41 data ,88 16,43 66,98 7,30 72,81 7,93 49,97 7,06 data ,90 14,63 166,47 37,97 177,54 40,55 66,38 12,32 O menor desvio-padrão foi o de GRASP, de apenas 5.22, enquanto o desvio de GRASP Reativo teve pequena diferença em relação a este, computando Por ser uma especialização do GRASP, a calibração dos parâmetros α no GRASP Reativo, agregado às mesmas características de construção e busca local que os dois algoritmos realizam, explicam também porque o GRASP Reativo obteve melhor média de custo, 39.32, em relação ao GRASP que obteve média um pouco menor, de Na segunda instância, data204030, observa-se que para o Algoritmo Genético (GA) obteve-se um desvio-padrão de mais de 50% em relação aos desvios dos outros algoritmos, mesmo tendo encontrado uma média de custos avaliados bem próxima das médias de GRASP, GRASP Reativo e Têmpera Simulada (SA). Como o tempo de execução foi similar para todos os algoritmos, GA não conseguiu gerar populações suficientes para selecionar seus melhores indivíduos em tempo hábil e atingir uma solução mais otimizada. Ainda para a instância em questão, observa-se que novamente GRASP Reativo obteve a maior média dos custos, 72.81, mas dessa vez o algoritmo SA foi quem apresentou o menor desvio-padrão e a menor média de custos. Isso pode ser explicado pela característica pouco elitista de SA, que busca a cada iteração soluções que podem ser piores do que um ótimo local já encontrado, dentro do tempo fixado para execução. Já o GRASP Reativo, como dito anteriormente, usa busca e construção local de forma gulosa, atingindo uma boa solução após o descarte das piores. Para a última instância de custo máximo 30%, data306030, GRASP Reativo continuou apresentando melhor resultado, de foma semelhante ao ocorrido na segunda instância. Tabela 3: Resultados com 50% do custo total. Instâncias GA GRASP GRASP Reativo Têmpera Média Desvio Média Desvio Média Desvio Média Desvio data ,07 2,46 36,86 2,24 38,16 1,95 36,10 2,09 data ,85 4,12 63,60 8,39 69,84 8,22 46,82 4,21 data ,11 9,50 121,16 39,11 129,34 39,60 60,96 10,44 Analisando a Tabela 3, novamente o GRASP Reativo obteve melhor média de custo para todas as instâncias, e seu desvio-padrão é ainda o melhor na instância do tipo M 1. Tal comportamento pode ser explicado pois uma instância com poucos elementos beneficia os algortimos GRASP já que a possibilidade de construir soluções locais torna-se limitada pelo pequeno universo de boas soluções a serem visitadas.. Tabela 4: Resultados com 70% do custo total Instâncias GA GRASP GRASP Reativo Têmpera Média Desvio Média Desvio Média Desvio Média Desvio data ,74 6,15 42,56 9,72 41,62 8,72 39,77 8,93 data ,76 5,25 55,09 7,95 59,15 8,34 43,91 6,09 data ,01 12,21 80,99 9,80 89,19 10,23 59,99 11,04
10 Para a Tabela 4, observa-se que apesar do GA ter obtido o menor desvio-padrão para duas instâncias, ainda assim não obteve melhor média de custos, sendo do algoritmo GRASP a maior média para a instância do tipo M 1 e do GRASP Reativo a maior média para as instâncias de tipos M 2 e M 3. Desta análise comparativa de desempenho das instâncias do NRP estudadas, pode-se concluir que a metaheurística GRASP Reativo, foco de estudo deste trabalho, se mostra melhor do que o Algoritmo Genético e Têmpera Simulada e um pouco melhor do que o GRASP. Deste modo, o parâmetro α utilizado para construir as soluções vizinhas foi fator determinante para a melhora de desempenho do GRASP Reativo Discussão dos Resultados Análise Comparativa entre Metaheurísticas em Cenário Real Traduzindo os resultados encontrados para um cenário real, com a ocorrência do Problema do Próximo Release em uma empresa de desenvolvimento de software, podemos destacar que a escolha do Algoritmo Genético e Têmpera Simulada para encontrar um conjunto ótimo de clientes que tivessem todos os seus requisitos satisfeitos não seriam as melhores decisões. Isso é indicado pois com tempo de execução similar para todas as metaheurísticas os resultados indicaram que GA e SA não otimizaram a solução de cada instância ao máximo possível. O GRASP é uma boa escolha de implementação, visto que o mesmo chegou a resultados bons em alguns cenários. De modo semelhante, o GRASP Reativo aparece como a melhor opção de escolha para um gestor avaliar a próxima release. Por esta razão, esta última metaheurística deve ser observada como boa alternativa para estudos mais aprofundados em cenários reais da problemática abordada Análise Comparativa entre Tipos de Instâncias No artigo de Bagnal (BAGNALL; RAYWARD-SMITH; WHITTLEY, 2001) a abordagem multi-nível restrige as instâncias a uma hierarquia entre requisitos e pré-requisitos que não se observa comumente em cenários reais. O fato de um pré-requisito não ser frequentemente exigido por um cliente não traduz de forma abrangente as situações cotidianas de desenvolvimento de software nas organizações. Pelo contrário, muitas vezes, clientes que possuem Fábricas de Software, ou seja, vários mini-projetos que se intregarão em um sistema maior ao final do desenvolvimento, e assim solicitam a produção de determinados requisitos em uma parte do projeto maior e outros requisitos que dependem destes primeiros, em outras partes do mesmo projeto. 6. Conclusão e Trabalhos Futuros Este trabalho propôs-se a estudar a utilização de técnicas de otimização na área de engenharia de requisitos, através do Problema do Próximo Release ou NRP, especificamente a validade do uso da metaheurística GRASP Reativo. As instâncias do NRP estudadas utilizadas simulam a dificuldade de encontrar um release que satisfaça todos os requisitos exigidos pelo cliente, atingindo seu objetivo, mas sem exceder o orçamento disponível. Observou-se que Bagnall (BAGNALL; RAYWARD-SMITH; WHITTLEY, 2001) em seu artigo original, utiliza-se da abordagem multi-nível das instâncias geradas pelos autores, não abrangendo completamente cenários reais. Dessa forma, uma das contribuições deste trabalho foi oferecer tipos de instâncias mais coerentes com os cenários reais das empresas de desenvolvimento, sem violar a interdependência entre os requisitos dos clientes. O GRASP Reativo obteve desempenho melhor do que outras três metaheurísticas analisadas, o que chama a atenção para um estudo mais aprofundado de suas propriedades, a fim de obter soluções mais otimizadas com este algoritmo. Seguindo essa linha, os resultados obtidos
11 evidenciaram a superioridade do GRASP Reativo em relação ao Algoritmo Genético, por exemplo, mostrando que aquele já se configura como boa opção de otimização do problema de engenharia de requisitos abordado, mas que fora pouco explorado por outros estudiosos da área. Como trabalhos futuros, destacam-se os seguintes: O estudo de instâncias mais complexas do NRP, com maior número de clientes e requisitos, aproximando-se cada vez mais de cenários reais de empresas que desenvolvem sistemas de grande porte, incluindo as instâncias do artigo original; Aplicação de outras metaheurísticas como Scatter Search, Tabu Search, VNS, BLS e ILS ao Next Release Problem, pois tais algoritmos foram pouco abordados por outros autores nesse contexto. Referências Antoniol, G., Penta, M. di, Harman, M., Search-based Techniques for Optimizing Software Project Resource Allocation. Proceedings of the 2004 Conference on Genetic and Evolutionary Computation (GECCO '04), Vol. 3103/2004, pp , Seattle Washington USA, 26-30, Bagnall, A.; Rayward-Smith, V.; Whittley, I., The next release problem, Information and Software Technology, Elsevier, v. 43, n. 14, pp , Carmo, R. A. F.; Campos G. A. L.; Souza, J. T., Easymeta: A framework of metaheuristics for mono-objective optimization problems. In: Anais do XL Simpósio Brasileiro de Pesquisa Operacional (SBPO 2008), Chen, Y., Zhong, Y., Automatic Path-Oriented Test Data Generation Using a Multipopulation Genetic Algorithm. Proceedings of the 4th International Conference on Natural Computation (ICNC '08), pp , Colares, F.,Souza, J., Carmo, R., Pádua, C., Mateus, G.R., A New Approach to the Software Release Planning. XXIII Brazilian Symposium on Software Engineering, pp , 2009 Feo, T.; Resende, M., Greedy randomized adaptive search procedures. Journal of Global Optimization, Springer, v. 6, n. 2, pp , Freitas, F. G., Maia, C. L. B., Coutinho, D. P., Campos, G. A. L., Souza, J. T., Aplicação de metaheurísticas em problemas de engenharia de software: Revisão de literatura. II Congresso Tecnológico Infobrasil, Freitas, F. G., Maia, C. L. B., Campos, G. A. L., Souza, J. T., Otimização em Teste de Software com Aplicação de Metaheurísticas, Revista Sistemas de Informação, Edição 5, Goldberg, D., Genetic Algorithms in Search and Optimization. Addison-wesley, Greer, D.; Ruhe, G., Software release planning: an evolutionary and iterative approach. Information and Software Technology, Elsevier, v. 46, n. 4, pp , Harman, M.,The current state and future of search based software engineering. In: IEEE, Future of Software Engineering, pp , 2007 Lara-Velázquez, P, López-Bracho, R., Ramírez-Rodríguez, J., Yáñez, J., A model for timetabling problems with period spread constraints. Journal of the Operational Research Society, Nature Publishing Group, 2010.
12 Maia, C. L. B., Carmo, R. A. F., Freitas, F. G., Campos, G. A. L., Souza, J. T., A Multi-Objective Approach For the Regression Test Case Selection Problem. Simpósio Brasileiro de Pesquisa Operacional (XLI SBPO), pp , Maia, C. L. B., Carmo, R. A. F., Freitas, F. G., Campos, G. A. L., Souza, J. T., Automated test case prioritization with reactive GRASP. Advances in Software Engineering, vol. 2010, Hindawi Publishing Corporation, Mauricio, G. F., Thomas, A., A probabilistic heuristic for a computationally difficult set covering problem. Operations Research Letters, Elsevier, v. 8, n. 2, p , Prais, M., Ribeiro C., Reactive GRASP: An application to a matrix decomposition problem in TDMA traffic assignment. INFORMS Journal on Computing, v. 12, n. 3, pp , Robledo-Amoza, F., Cancela H.; Rubino, G., Solving the Steiner Two-Node- Survivable Network Problem. International Journal of Logistics Systems and Management, Inderscience, vol 6, n. 2, pp , Yoo, S., Harman, M., Pareto Efficient Multi-Objective Test Case Selection. Proceedings of the 2007 International Symposium on Software Testing and Analysis (ISSTA '07), pp , Zhang, Y., Finkelstein, A., Harmn, M., Search based requirements optimisation: existing work and challenges. Lecture Notes in Computer Science, Springer, v. 5025, pp , Zhang, Y., Harman, M., Mansouri, S., The multi-objective next release problem. In: ACM. Proceedings of the 9th annual conference on Genetic and evolutionary computation, pp , 2007.
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 maisInteligê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 maisMeta-heurísticas. Métodos Heurísticos José António Oliveira zan@dps.uminho.pt. meta-heurísticas
Meta-heurísticas 105 meta-heurísticas Propriedades e Características: são estratégias que guiam o processo de pesquisa; - o objectivo a atingir é a exploração eficiente do espaço de pesquisa de modo a
Leia maisBRANCH-AND-BOUND APLICADO NA SELEÇÃO MULTIOBJETIVA DE REQUISITOS DE SOFTWARE COM DEPENDÊNCIA
BRANCH-AND-BOUND APLICADO NA SELEÇÃO MULTIOBJETIVA DE REQUISITOS DE SOFTWARE COM DEPENDÊNCIA Fabrício Gomes de Freitas Grupo de Otimização em Engenharia de Software (GOES.UECE) Universidade Estadual do
Leia maisAlgoritmos 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 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 maisDisciplina: Suprimentos e Logística II 2014-02 Professor: Roberto Cézar Datrino Atividade 3: Transportes e Armazenagem
Disciplina: Suprimentos e Logística II 2014-02 Professor: Roberto Cézar Datrino Atividade 3: Transportes e Armazenagem Caros alunos, Essa terceira atividade da nossa disciplina de Suprimentos e Logística
Leia maisPESQUISA OPERACIONAL: UMA ABORDAGEM À PROGRAMAÇÃO LINEAR. Rodolfo Cavalcante Pinheiro 1,3 Cleber Giugioli Carrasco 2,3 *
PESQUISA OPERACIONAL: UMA ABORDAGEM À PROGRAMAÇÃO LINEAR 1 Graduando Rodolfo Cavalcante Pinheiro 1,3 Cleber Giugioli Carrasco 2,3 * 2 Pesquisador - Orientador 3 Curso de Matemática, Unidade Universitária
Leia maisComplemento 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 maisCapí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 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 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 maisBUSCA LOCAL ITERADA (ILS ITERATED LOCAL SEARCH)
BUSCA LOCAL ITERADA (ILS ITERATED LOCAL SEARCH) Francisco A. M. Gomes 1º sem/2009 MT852 Tópicos em pesquisa operacional Iterated local search (ILS) Método que gera uma sequência de soluções obtidas por
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 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 maisO Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no
1.1 RATIONAL UNIFIED PROCESS (RUP) O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no processo que atende pelo nome de Processo Unificado (ou UP do inglês Unified
Leia maisSistemas Distribuídos
Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor
Leia maisALGORITMOS 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 maisUNIVERSIDADE 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 maisEngenharia de Software III
Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,
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 mais4 Avaliação Econômica
4 Avaliação Econômica Este capítulo tem o objetivo de descrever a segunda etapa da metodologia, correspondente a avaliação econômica das entidades de reservas. A avaliação econômica é realizada a partir
Leia maisUMA HEURÍSTICA GRASP PARA O PROBLEMA ESTENDIDO DE SEQUENCIAMENTO DE CARROS
UMA HEURÍSTICA GRASP PARA O PROBLEMA ESTENDIDO DE SEQUENCIAMENTO DE CARROS Lucas Middeldorf Rizzo Universidade Federal de Minas Gerais Av. Antônio Carlos, 6627 - Pampulha - Belo Horizonte - MG CEP 31270-901
Leia maisArquitetura 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 maisBusca 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 maisPós-Graduação em Gerenciamento de Projetos práticas do PMI
Pós-Graduação em Gerenciamento de Projetos práticas do PMI Planejamento do Gerenciamento das Comunicações (10) e das Partes Interessadas (13) PLANEJAMENTO 2 PLANEJAMENTO Sem 1 Sem 2 Sem 3 Sem 4 Sem 5 ABRIL
Leia maisOtimização em Teste de Software com Aplicação de Metaheurísticas
Revista de Sistemas de Informação da FSMA n. 5 (2010) pp. 3-13 http://www.fsma.edu.br/si/sistemas.html Otimização em Teste de Software com Aplicação de Metaheurísticas Fabrício Gomes de Freitas 1, Camila
Leia maisMetodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi
Metodologias de Desenvolvimento de Sistemas Analise de Sistemas I UNIPAC Rodrigo Videschi Histórico Uso de Metodologias Histórico Uso de Metodologias Era da Pré-Metodologia 1960-1970 Era da Metodologia
Leia maisTabela de roteamento
Existem duas atividades que são básicas a um roteador. São elas: A determinação das melhores rotas Determinar a melhor rota é definir por qual enlace uma determinada mensagem deve ser enviada para chegar
Leia mais6 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 maisA 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 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 maisProjeto 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 maisProjeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro. Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br
Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br Laboratório de Pesquisa e Desenvolvimento Universidade Federal de Alfenas versão
Leia mais2 Atualidade de uma base de dados
2 Atualidade de uma base de dados Manter a atualidade de uma base de dados é um problema que pode ser abordado de diferentes maneiras. Cho e Garcia-Molina [CHO] definem esse problema da seguinte forma:
Leia maisEntendendo como funciona o NAT
Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços
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 maisUML - 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 maisFaculdade 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 maisGerenciamento de Projetos no Marketing Desenvolvimento de Novos Produtos
Gerenciamento de Projetos no Marketing Desenvolvimento de Novos Produtos Por Giovanni Giazzon, PMP (http://giazzon.net) Gerenciar um projeto é aplicar boas práticas de planejamento e execução de atividades
Leia maisTé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 maisSUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2
SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2 1.1 Introdução... 2 1.2 Estrutura do IP... 3 1.3 Tipos de IP... 3 1.4 Classes de IP... 4 1.5 Máscara de Sub-Rede... 6 1.6 Atribuindo um IP ao computador... 7 2
Leia maisSISTEMAS DE GESTÃO São Paulo, Janeiro de 2005
SISTEMAS DE GESTÃO São Paulo, Janeiro de 2005 ÍNDICE Introdução...3 A Necessidade do Gerenciamento e Controle das Informações...3 Benefícios de um Sistema de Gestão da Albi Informática...4 A Ferramenta...5
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 maisSimulação Transiente
Tópicos Avançados em Avaliação de Desempenho de Sistemas Professores: Paulo Maciel Ricardo Massa Alunos: Jackson Nunes Marco Eugênio Araújo Dezembro de 2014 1 Sumário O que é Simulação? Áreas de Aplicação
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 mais2 Diagrama de Caso de Uso
Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa
Leia mais1. Avaliação de impacto de programas sociais: por que, para que e quando fazer? (Cap. 1 do livro) 2. Estatística e Planilhas Eletrônicas 3.
1 1. Avaliação de impacto de programas sociais: por que, para que e quando fazer? (Cap. 1 do livro) 2. Estatística e Planilhas Eletrônicas 3. Modelo de Resultados Potenciais e Aleatorização (Cap. 2 e 3
Leia maisARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.
ARCO - Associação Recreativa dos Correios Sistema para Gerenciamento de Associações Recreativas Versão Histórico da Revisão Data Versão Descrição Autor Página
Leia mais18º 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 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 maisModelo Cascata ou Clássico
Modelo Cascata ou Clássico INTRODUÇÃO O modelo clássico ou cascata, que também é conhecido por abordagem top-down, foi proposto por Royce em 1970. Até meados da década de 1980 foi o único modelo com aceitação
Leia mais4 Segmentação. 4.1. Algoritmo proposto
4 Segmentação Este capítulo apresenta primeiramente o algoritmo proposto para a segmentação do áudio em detalhes. Em seguida, são analisadas as inovações apresentadas. É importante mencionar que as mudanças
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 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 mais4 Implementação e Resultados Experimentais
4 Implementação e Resultados Experimentais Com o objetivo de fazer a criação automática de visões materializadas, ou seja, prover uma solução on-the-fly para o problema de seleção de visões materializadas,
Leia maisISO/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 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 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 maisDesenvolvendo 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 maisRoteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)
Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Definição Geral: Disciplina de Compiladores Prof. Jorge Bidarra (UNIOESTE) A especificação de requisitos tem como objetivo
Leia maisEngenharia de Software
Universidade São Judas Tadeu Profª Dra. Ana Paula Gonçalves Serra Engenharia de O Processo Uma Visão Genérica Capítulo 2 (até item 2.2. inclusive) Engenharia de - Roger Pressman 6ª edição McGrawHill Capítulo
Leia mais3 Método de Monte Carlo
25 3 Método de Monte Carlo 3.1 Definição Em 1946 o matemático Stanislaw Ulam durante um jogo de paciência tentou calcular as probabilidades de sucesso de uma determinada jogada utilizando a tradicional
Leia maisObjetivos. Processos de Software. Tópicos abordados. O processo de software. Modelos genéricos de modelos de processo de software.
Processos de Software Objetivos Apresentar os modelos de processo de software Conjunto coerente de atividades para especificar, projetar, implementar e testar s de software Descrever os diferentes modelos
Leia maisEste trabalho visou a caracterização da utilização dos aplicativos APS pelas empresas.
6 Conclusão Este capítulo tem como objetivo a apresentação dos resultados diretos e indiretos deste trabalho. São apresentadas sugestões para futuras pesquisas sobre o tema aqui abordado. 6.1. Resultados
Leia maisEvolution of Robustness in an Electronic Design
Evolution of Robustness in an Electronic Design MAC0461 - Introdução ao Escalonamento e Aplicações Professor: Alfredo Goldman vel Lejbman Instituto de Matemática e Estatística Universidade de São Paulo
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 maisINVESTIGAÇÃO OPERACIONAL EM AÇÃO
INVESTIGAÇÃO OPERACIONAL EM AÇÃO CASOS DE APLICAÇÃO RUI CARVALHO OLIVEIRA JOSÉ SOEIRO FERREIRA (EDITORES) IMPRENSA DA UNIVERSIDADE DE COIMBRA COIMBRA UNIVERSITY PRESS CASO 7 SISTEMA DE APOIO À DECISÃO
Leia maisPisa 2012: O que os dados dizem sobre o Brasil
Pisa 2012: O que os dados dizem sobre o Brasil A OCDE (Organização para Cooperação e Desenvolvimento Econômico) divulgou nesta terça-feira os resultados do Programa Internacional de Avaliação de Alunos,
Leia maisQual é o risco real do Private Equity?
Opinião Qual é o risco real do Private Equity? POR IVAN HERGER, PH.D.* O debate nos mercados financeiros vem sendo dominado pela crise de crédito e alta volatilidade nos mercados acionários. Embora as
Leia maisRoteiro. 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 maisEstratégia de TI. Posicionamento Estratégico da TI: como atingir o alinhamento com o negócio. Conhecimento em Tecnologia da Informação
Conhecimento em Tecnologia da Informação Conhecimento em Tecnologia da Informação Estratégia de TI Posicionamento Estratégico da TI: como atingir o alinhamento com o negócio 2011 Bridge Consulting Apresentação
Leia maisMetodologia para seleção de amostras de contratos de obras públicas (jurisdicionados) utilizando a programação linear aplicativo Solver
REVISTA Metodologia para seleção de amostras de contratos de obras públicas (jurisdicionados) utilizando a programação linear aplicativo Solver André Mainardes Berezowski 1 Resumo Trata da apresentação
Leia maisCAPÍTULO 5 CONCLUSÕES, RECOMENDAÇÕES E LIMITAÇÕES. 1. Conclusões e Recomendações
153 CAPÍTULO 5 CONCLUSÕES, RECOMENDAÇÕES E LIMITAÇÕES 1. Conclusões e Recomendações Um Estudo de Caso, como foi salientado no capítulo Metodologia deste estudo, traz à baila muitas informações sobre uma
Leia maisREFORÇO DE PROGRAMAÇÃO ESTRUTURADA EM LINGUAGEM C PARA GRADUAÇÃO EM ENGENHARIA ELÉTRICA
REFORÇO DE PROGRAMAÇÃO ESTRUTURADA EM LINGUAGEM C PARA GRADUAÇÃO EM ENGENHARIA ELÉTRICA Andréa Willa Rodrigues Villarim (Voluntário) Marcelo Pereira Rufino (Bolsista) Larissa Aguiar (Bolsista) Nady Rocha
Leia maisCurso superior de Tecnologia em Gastronomia
Curso superior de Tecnologia em Gastronomia Suprimentos na Gastronomia COMPREENDENDO A CADEIA DE SUPRIMENTOS 1- DEFINIÇÃO Engloba todos os estágios envolvidos, direta ou indiretamente, no atendimento de
Leia maisMaterial de Apoio. Sistema de Informação Gerencial (SIG)
Sistema de Informação Gerencial (SIG) Material de Apoio Os Sistemas de Informação Gerencial (SIG) são sistemas ou processos que fornecem as informações necessárias para gerenciar com eficácia as organizações.
Leia maisPLANOS DE CONTINGÊNCIAS
PLANOS DE CONTINGÊNCIAS ARAÚJO GOMES Capitão SC PMSC ARAÚJO GOMES defesacivilgomes@yahoo.com.br PLANO DE CONTINGÊNCIA O planejamento para emergências é complexo por suas características intrínsecas. Como
Leia maisDESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES. Trabalho de Graduação
DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES Trabalho de Graduação Orientando: Vinicius Stein Dani vsdani@inf.ufsm.br Orientadora: Giliane
Leia maisResumo do BABok 2.0 O Guia de Referência de Análise de Negócio Curso de Analista de Negócio 3.0
O que é BABok? O BABok 2.0, Corpo de Conhecimento de Análise de Negócios, é considerado como um Guia Referência de Práticas de Análise de Negócio. Este guia é publicado e mantido pelo IIBA. O guia BABok
Leia maisFábrica de Software 29/04/2015
Fábrica de Software 29/04/2015 Crise do Software Fábrica de Software Analogias costumam ser usadas para tentar entender melhor algo ou alguma coisa. A idéia é simples: compara-se o conceito que não se
Leia maisPLANEJAMENTO 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 maisGovernança de TI. ITIL v.2&3 parte 2
Governança de TI ITIL v.2&3 parte 2 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR ITIL 2 BÁSICOS Suporte a Serviços: descreve os processos associados ao suporte do dia-a-dia e atividades de manutenção
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 maisA SOLUTION OF N-QUEENS PROBLEM BY GENETIC ALGORITHMS
UMA SOLUÇÃO DO PROBLEMA DAS N RAINHAS ATRAVÉS DE ALGORITMOS GENÉTICOS A SOLUTION OF N-QUEENS PROBLEM BY GENETIC ALGORITHMS Eliane Vendramini de Oliveira Mestre em Engenharia Elétrica UNESP/ Ilha Solteira
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 maisDEFINIÇÃO DE PARÂMETROS NA UTILIZAÇÃO DE METAHEURÍSTICAS PARA A PROGRAMAÇÃO DE HORÁRIOS ESCOLARES
DEFINIÇÃO DE PARÂMETROS NA UTILIZAÇÃO DE METAHEURÍSTICAS PARA A PROGRAMAÇÃO DE HORÁRIOS ESCOLARES José Carlos dos Santos Ferreira 1 e Jean Eduardo Glazar 2 1 Aluno do Curso de Ciência da Computação 2 Professor
Leia maisAS FUNÇÕES ADMINISTRATIVAS
AS FUNÇÕES ADMINISTRATIVAS Professor Djair Picchiai Campus São Paulo Março 2010 AS FUNÇÕES ADMINISTRATIVAS Todo diretor, gerente, chefe e encarregado exercem estas sete funções administrativas, a saber:
Leia maisDESENVOLVIMENTO 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 maisGASTAR MAIS COM A LOGÍSTICA PODE SIGNIFICAR, TAMBÉM, AUMENTO DE LUCRO
GASTAR MAIS COM A LOGÍSTICA PODE SIGNIFICAR, TAMBÉM, AUMENTO DE LUCRO PAULO ROBERTO GUEDES (Maio de 2015) É comum o entendimento de que os gastos logísticos vêm aumentando em todo o mundo. Estatísticas
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 maisLista 2 - Modelos determinísticos
EA044 - Planejamento e Análise de Sistemas de Produção Lista 2 - Modelos determinísticos Exercício 1 A Companhia Ferroviária do Brasil (CFB) está planejando a alocação de vagões a 5 regiões do país para
Leia maisGUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas
PIM PROGRAMA DE INTEGRAÇÃO COM O MERCADO GUIA DE CURSO Tecnologia em Sistemas de Informação Tecnologia em Desenvolvimento Web Tecnologia em Análise e Desenvolvimento de Sistemas Tecnologia em Sistemas
Leia maisGerência de Projetos
Gerência de Projetos Escopo Custo Qualidade Tempo CONCEITO PROJETOS: são empreendimentos com objetivo específico e ciclo de vida definido Precedem produtos, serviços e processos. São utilizados as funções
Leia maisESTRATÉGIAS DE RESOLUÇÃO DE PROBLEMAS DE PESQUISA OPERACIONAL
ESTRATÉGIAS DE RESOLUÇÃO DE PROBLEMAS DE PESQUISA OPERACIONAL André Luis Trevisan Universidade Tecnológica Federal do Paraná andrelt@utfpr.edu.br Magna Natalia Marin Pires Universidade Estadual de Londrina
Leia maisOficina de Gestão de Portifólio
Oficina de Gestão de Portifólio Alinhando ESTRATÉGIAS com PROJETOS através da GESTÃO DE PORTFÓLIO Gestão de portfólio de projetos pode ser definida como a arte e a ciência de aplicar um conjunto de conhecimentos,
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 mais