Projeto de Pesquisa. Uma Agenda de Pesquisa para a Engenharia de Software Baseada em Buscas Heurísticas



Documentos relacionados
Apoio à Decisão Gerencial na Alocação de Recursos Humanos em Projetos de Software Ahilton Silva Barreto

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

Utilizando os Diagramas da UML (Linguagem Unificada de Modelagem) para desenvolver aplicação em JSF

ANÁLISE E DESENVOLVIMENTO DE SOFTWARE Ênfase em Gestão da Qualidade e Processos. ENDEREÇO CIDADE ESTÂNCIA VELHA ZENIR.SANTOS@GMAIL.

Engenharia de Software

Inovação aberta na indústria de software: Avaliação do perfil de inovação de empresas

Introdução à. Engenharia de Software. Givanaldo Rocha de Souza

ANÁLISE E MELHORIA DE PROCESSOS APLICADA AO ESTÁGIO CURRICULAR

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

Pós Graduação Engenharia de Software

Processos de Software

Classificação: Determinístico

natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues

Gerenciamento de Projetos Modulo II Clico de Vida e Organização

Sumário. Modelo de Maturidade vs Tomadores de Decisão: Reduzindo o Gap Através do Método UTA

Ouvir o cliente e reconhecer o problema: ingredientes essenciais à gestão de projetos

MODELAGEM DE SISTEMAS DE INFORMAÇÃO

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

As respostas devem ser assinadalas na Folha de Resposta, a qual deverá ser entregue ao Fiscal de Sala Itapetininga, 04 de Dezembro de 2015

ADMINISTRAÇÃO I. Família Pai, mãe, filhos. Criar condições para a perpetuação da espécie

UMA ESTRATÉGIA PARA GESTÃO INTEGRADA DE PROCESSOS E TECNOLOGIA DA INFORMAÇÃO ATRAVÉS DA MODELAGEM DE PROCESSOS DE NEGÓCIO EM ORGANIZAÇÕES

As principais novidades encontradas no PMBOK quarta edição

ITIL v3 - Operação de Serviço - Parte 1

Introdução aos Conceitos de Problemas de Transporte e Roteamento de Veículos

1. O Contexto do SBTVD

Curso: Engenharia de Software com Ênfase em Padrões de Software (UECE Universidade Estadual do Ceará) RUP

Processos de gerenciamento de projetos em um projeto

Nota Técnica 113/2007 SRD/SRE/ANEEL Metodologia para Projeção de Investimentos para o Cálculo do Fator X Contribuição da Audiência Publica 052/2007

Transformação de um Modelo de Empresa em Requisitos de Software

PROGRAMAÇÃO DA PRODUÇÃO EM PROCESSOS BATELADAS UTILIZANDO PLANILHAS ELETRÔNICAS

Treinamentos DuPont Engineering University South America

TRABALHO LABORATORIAL NO ENSINO DAS CIÊNCIAS: UM ESTUDO SOBRE AS PRÁTICAS DE FUTUROS PROFESSORES DE BIOLOGIA E GEOLOGIA

Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

Questionário de Avaliação de Maturidade Setorial: Modelo PRADO-MMGP

A Sustentabilidade e a Inovação na formação dos Engenheiros Brasileiros. Prof.Dr. Marco Antônio Dias CEETEPS

Assine e coloque seu número de inscrição no quadro abaixo. Preencha, com traços firmes, o espaço reservado a cada opção na folha de resposta.

MEMÓRIA E RECOMENDAÇÃO DA REUNIÃO SOBRE CIÊNCIA E ENGENHARIA DE MATERIAIS.

APRESENTAÇÃO DA OFICINA DA INOVAÇÃO

SIG. Uma plataforma para introdução de técnicas emergentes no planejamento urbano, regional e de transportes

1. Introdução. 1.1 Contextualização do problema e questão-problema

PESQUISA EM PUBLICIDADE E PROPAGANDA PARTE 2

Análise da incorporação do gerenciamento de riscos em projetos de delineamento de experimentos

Gerência de Projetos Prof. Késsia Rita da Costa Marchi 3ª Série

Preparação do Trabalho de Pesquisa

br.org Livros Guia para Formação de Analistas de Processos Contribuições Modelagem de Processos com BPMN

Prof. Vitório Bruno Mazzola INE/CTC/UFSC 1. INTRODUÇÃO

Engenharia de Produção: Grande Área e Diretrizes Curriculares

Módulo 14 Treinamento e Desenvolvimento de Pessoas Treinamento é investimento

Treinamento 1 OBJETIVO:

QUALIDADE DE SOFTWARE

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

2 Engenharia de Software

MINISTÉRIO DO PLANEJAMENTO, ORÇAMENTO E GESTÃO DIRETORIA DE ADMINISTRAÇÃO COORDENAÇÃO-GERAL DE AQUISIÇÕES

A QUESTÃO DO CONHECIMENTO NA MODERNIDADE

Gerenciamento de Projetos. Faculdade Unisaber 2º Sem 2009

4 Metodologia e estratégia de abordagem

3 Qualidade de Software

Requisitos para Gestão de Requisitos no Desenvolvimento de Software que Utilizam Prática Ágeis

(MAPAS VIVOS DA UFCG) PPA-UFCG RELATÓRIO DE AUTO-AVALIAÇÃO DA UFCG CICLO ANEXO (PARTE 2) DIAGNÓSTICOS E RECOMENDAÇÕES

Orientações para elaborar um. Plano de Negócios

Planejamento e Gestão Estratégica

Universidade Católica Dom Bosco

Gerenciamento de Projetos Modulo III Grupo de Processos

SISTEMAS DE INFORMAÇÃO GERENCIAIS

Planejamento de Desenvolvimento de Software Everson Santos Araujo

sendo bastante acessível e compreendido pelos usuários que o utilizarem.

Gerenciamento do Tempo do Projeto (PMBoK 5ª ed.)

I Seminário da Pós-graduação em Engenharia Elétrica

MINISTÉRIO DA EDUCAÇÃO CONSELHO NACIONAL DE EDUCAÇÃO CÂMARA DE EDUCAÇÃO SUPERIOR RESOLUÇÃO Nº 1, DE 6 DE JANEIRO DE 2015

VI Congresso Brasileiro de Software: Teoria e Prática

2. Objetivos do Sistema

Instituto Tecnológico de Aeronáutica. Divisão de Engenharia de Infra-Estrutura Aeronáutica

Um modelo para o gerenciamento de múltiplos projetos de software aderente ao CMMI

SERVIÇO PÚBLICO FEDERAL UNIVERSIDADE FEDERAL DO PARÁ CONSELHO SUPERIOR DE ENSINO, PESQUISA E EXTENSÃO RESOLUÇÃO N , DE 30 DE SETEMBRO DE 2010

Gestão do Conhecimento A Chave para o Sucesso Empresarial. José Renato Sátiro Santiago Jr.

Pós Graduação - Gestão Empresarial e Marketing

FACULDADE PITÁGORAS DISCIPLINA: GESTÃO DE PROJETOS. Prof. Msc. Carlos José Giudice dos Santos

JinSol, uma interface em Java para solvers lineares.

Todos nossos cursos são preparados por mestres e profissionais reconhecidos no mercado, com larga e comprovada experiência em suas áreas de atuação.

Pesquisa operacional:

5 Instrução e integração

A NECESSIDADE DE UMA NOVA VISÃO DO PROJETO NOS CURSOS DE ENGENHARIA CIVIL, FRENTE À NOVA REALIDADE DO SETOR EM BUSCA DA QUALIDADE

Introdução. Gerência de Projetos de Software. Sumário. Sistemas de Informação para Processos Produtivos

GERÊNCIA DE PROJETOS DE SOFTWARE. Introdução

O Uso da Inteligência Competitiva e Seus Sete Subprocessos nas Empresas Familiares

DIAGRAMAS DE REDE TÉCNICAS DO CAMINHO CRÍTICO PERT / CPM

Características do texto Académico-Científico

Metodologia de Desenvolvimento de Software. Prof. M.Sc. Sílvio Bacalá Jr

Algoritmos e Programação Parte Teórica

Questionário de Avaliação de Maturidade Setorial: Modelo de Maturidade Prado-MMGP

3 Gerenciamento de Projetos

INTRODUÇÃO. Entendemos por risco a probabilidade de ocorrer um dano como resultado à exposição de um agente químico, físico o biológico.

Correntes de Participação e Critérios da Aliança Global Wycliffe [Versão de 9 de maio de 2015]

UNEMAT SISTEMA DE INFORMAÇÃO (SI) Professora: Priscila Pelegrini

Qualidade e Comportamento do Produto em Pós-venda

5o ENCONTRO DE USUÁRIOS DE BI

PRESIDÊNCIA DA REPÚBLICA SECRETARIA DE DIREITOS HUMANOS PROJETO BRA/10/007

Introdução ao Processo Unificado (PU)

Síntese do Projeto Pedagógico do Curso de Sistemas de Informação PUC Minas/São Gabriel

RELATÓRIO EXECUTIVO O USO DE TECNOLOGIAS MÓVEIS NO GERENCIAMENTO DE PROJETOS EVERTON ROBERTO COMIN

Transcrição:

Projeto de Pesquisa Área de Conhecimento: Ciências Exatas e da Terra Sub-área de Conhecimento: Ciência da Computação Especialidade: Metodologia e Técnicas da Computação Engenharia de Software Uma Agenda de Pesquisa para a Engenharia de Software Baseada em Buscas Heurísticas Márcio de Oliveira Barros Programa de Pós-Graduação em Informática PPGI Universidade Federal do Estado do Rio de Janeiro UNIRIO Rio de Janeiro, Brasil

Resumo: O campo de pesquisa conhecido como Engenharia de Software Baseada em Buscas aborda problemas da Engenharia de Software modelando-os como problemas de otimização. Com isto, a resolução de um problema passa a ser vista como a busca por uma solução suficientemente boa entre as suas possíveis soluções, de acordo com uma métrica de adequação. Este novo prisma para o estudo das questões da Engenharia de Software permite resolver problemas de larga escala, cuja solução não pode ser encontrada em tempo computacionalmente viável por outros métodos. Neste projeto de pesquisa propomos uma agenda para o estudo e aprimoramento da Engenharia de Software Baseada em Buscas. Esta agenda de pesquisa começou a cerca de dois anos, quando o coordenador do projeto ora proposto começou a realizar suas primeiras pesquisas no campo. Este projeto de pesquisa pretende capitalizar e transmitir o conhecimento adquirido no campo, realizando estudos que visam duas direções: (a) a identificação de problemas que sejam passíveis de solução através da Engenharia de Software Baseada em Buscas; e (b) a criação de novos algoritmos baseados em meta-heurísticas e metáforas e que sejam aplicáveis a problemas reais da Engenharia de Software. Além de apresentar a agenda de pesquisa em detalhes, este projeto relata o histórico de pesquisas do seu coordenador, relacionando os alunos de Mestrado previamente orientados, os projetos de pesquisa para os quais obteve financiamento e seus relacionamentos com Centros de Excelência em ensino e pesquisa no Estado do Rio de Janeiro. 1. Introdução Algoritmos de busca baseados em otimização têm sido aplicados em diversas áreas da Engenharia de Software, como a elicitação de requisitos [1], planejamento de tempo e custo de projetos [2, 3, 4, 5, 6, 7], avaliação de qualidade [8] e alocação de recursos humanos [9].

Em algumas destas aplicações são utilizadas técnicas tradicionais de busca, como força bruta ou branch-and-bound [10]. No entanto, à medida que os problemas crescem em complexidade (ou seja, no número de variáveis envolvidas e nas relações entre estas variáveis), as técnicas tradicionais passam a exigir muitos recursos computacionais (essencialmente, tempo de processamento) para encontrar a solução ótima para estes problemas. Assim, a utilização destas técnicas em situações onde a resposta deve estar rapidamente disponível ou onde existem atualizações freqüentes das informações disponíveis para a tomada de decisão, exigindo a reavaliação constante do problema, é limitada por seu longo tempo de execução. Por outro lado, estas situações são comuns no desenvolvimento de software, onde os requisitos mudam com freqüência, a equipe sofre de rotatividade de pessoal, a percepção de conclusão das tarefas componentes do projeto varia ao longo do tempo e a produtividade dos desenvolvedores depende de fatores que fogem ao controle do gerente de projetos. Estes, entre outros aspectos, fazem com que os parâmetros de alguns problemas da Engenharia de Software sejam dinâmicos, ou seja, seus valores mudam ao longo do tempo e as estratégias escolhidas para solucionar os problemas precisam ser constantemente revistas para que se determine se continuam ótimas face às últimas informações disponíveis. Assim, diversos problemas de Engenharia de Software podem ser vistos como problemas de otimização, mas o tempo de resposta das técnicas tradicionais que resolvem estes problemas, quando vistos em larga escala, pode não ser suficientemente rápido para atender às freqüentes reavaliações exigidas pelos casos reais. Surge então o campo da Engenharia de Software Baseada em Buscas (Search Based Software Engineering, ou SBSE) [11], onde os pesquisadores modelam problemas da Engenharia de Software como problemas de otimização e utilizam técnicas de busca para resolver estes problemas 1. Duas correntes se formam dentro do campo de pesquisa: a primeira utiliza técnicas tradicionais de otimização, ocupando-se com a identificação dos aspectos que devem ser considerados na modelagem e na resolução de problemas onde não 1 A Engenharia de Software é a área da Ciência da Computação e Sistemas de Informação onde concentro minhas atividades de pesquisa e desenvolvimento. A Engenharia de Software Baseada em Buscas é um campo de pesquisa dentro desta área.

ocorre a atualização freqüente das informações que servem de parâmetro para o processo de otimização; a segunda corrente utiliza técnicas de busca mais eficientes, geralmente baseadas em meta-heurísticas, para encontrar soluções suficientemente boas em um menor horizonte de tempo, permitindo a sua utilização nos cenários supracitados. Este projeto tem como objetivo viabilizar a realização de uma agenda de pesquisa no campo da Engenharia de Software Baseada em Buscas. Esta agenda de pesquisas tem como principais objetivos (a) desenvolver o conhecimento sobre o campo, aplicando técnicas já conhecidas sobre novos problemas; (b) criar novas técnicas para resolver problemas da Engenharia de Software para os quais as técnicas existentes não se apliquem; e (c) formar e capacitar recursos humanos para que a pesquisa e o uso de tais técnicas possa se expandir no meio acadêmico e na indústria. A filosofia do software livre [12] nos oferece uma oportunidade inédita na história da Ciência da Computação para identificarmos problemas relacionados a grandes projetos de software e que podem se beneficiar das novas abordagens apresentadas pela SBSE. Muitos destes projetos são desenvolvidos através de meios de comunicação públicos, com o código-fonte aberto e troca de mensagens exposta para a comunidade. Assim, pretendemos utilizar as informações provenientes de sistemas de gerenciamento de versão de software e de sistemas de registro e encaminhamento de erros (issue tracking systems) para identificar problemas que podem ser resolvidos usando-se técnicas da SBSE, além de validar a efetividade destas técnicas na resolução destes problemas. 2. Justificativa para Escolha do Tema Duas razões fundamentam a escolha da Engenharia de Software Baseada em Buscas como área de interesse do projeto ora proposto. São elas: (a) o fato de a SBSE ser considerada internacionalmente como um campo promissor em termos de pesquisa em Engenharia de Software; (b) o fato do coordenador do projeto ter experiência na realização de trabalhos anteriores neste campo, o que facilitará o desenvolvimento de novos trabalhos.

Nas próximas subseções apresentamos evidências que sustentam os dois pontos acima, visando reforçar a importância do tema deste projeto de pesquisa. 2.1. Justificativa da importância do campo no contexto da Engenharia de Software Dentro do universo de pesquisa da Engenharia de Software, a importância do campo da Engenharia de Software Baseada em Buscas pode ser observada por diversos fatos: A publicação do artigo The Current State and Future of Search Based Software Engineering [13] nos anais do workshop denominado The Future of Software Engineering. Este workshop se repete periodicamente junto à principal conferência internacional da área de Engenharia de Software, a ICSE International Conference on Software Engineering. O workshop consiste em uma discussão aberta entre renomados pesquisadores que atuam na área de Engenharia de Software, com o intuito de sinalizar os problemas que ainda precisam ser resolvidos e os campos mais promissores em termos de pesquisa. O artigo supracitado foi publicado na edição de 2007 do workshop, evidenciando a recente atenção dada ao campo e a necessidade de mais pesquisas; Em contexto nacional, o alinhamento do campo de SBSE com o segundo dos 5 Grandes Desafios da Pesquisa em Computação no Brasil [14]. O segundo desafio consiste na modelagem computacional de sistemas complexos artificiais, naturais e sócio-culturais e da interação homem-natureza. A Engenharia de Software Baseada em Buscas é um exemplo de abordagem na qual aplicamos e desenvolvemos soluções para problemas de larga escala, geralmente envolvendo interação entre desenvolvedores na formação de equipes responsáveis pelo desenvolvimento de sistemas de software. As técnicas desenvolvidas para a resolução de problemas neste campo também poderão ser aplicadas a problemas semelhantes em outras áreas do conhecimento. Assim, recursos humanos capacitados a resolver problemas neste campo estarão preparados para resolver problemas semelhantes em outras áreas, caracterizando a SBSE como campo de pesquisa aplicada e de interesse para formação de pessoal (um dos objetivos centrais deste projeto de pesquisa);

A existência de chamadas de trabalho recentes para o campo de pesquisa. Entre estas chamadas, duas merecem destaque especial: (a) a edição especial da revista IEEE Transactions on Software Engineering, principal revista para publicações na área de Engenharia de Software, voltada para soluções desenvolvidas segundo os preceitos do campo de Engenharia de Software Baseada em Buscas [15]; e (b) a realização do primeiro International Symposium on Search Based Software Engineering, em maio do próximo ano, na Inglaterra [16]. A criação de uma conferência voltada exclusivamente para o campo de pesquisa e a publicação de uma edição especial da principal revista da área voltada para SBSE depõem pela importância deste campo no contexto das pesquisas em Engenharia de Software. Com os fatos acima pretendemos frisar a importância do tema de pesquisa proposto neste projeto. Na próxima subseção, mostraremos a experiência prévia do coordenador do projeto neste campo de pesquisa, buscando mostrar a viabilidade do projeto proposto. 2.2. Justificativa das atuações do coordenador do projeto no campo Em relação a trabalhos anteriormente desenvolvidos no campo de pesquisa em que se enquadra o projeto ora proposto, cito o trabalho de Ahilton Barreto, meu ex-aluno de Mestrado [17], orientado no Programa de Engenharia de Sistemas e Computação da COPPE/UFRJ [18]. O aluno trabalhou com o problema de alocação de recursos humanos a atividades que devem ser realizadas ao longo de um projeto de software. A alocação de recursos humanos é uma tarefa cuja complexidade aumenta exponencialmente à medida que aumenta o número de pessoas envolvidas e atividades a serem desenvolvidas no projeto. Neste trabalho, foi desenvolvida uma abordagem de apoio à alocação de pessoal em projetos de software baseada na utilização racional das capacidades destes recursos e na otimização da alocação destas capacidades com relação às demandas das atividades a ser desenvolvidas no projeto. O problema da alocação de recursos humanos envolve um conjunto de profissionais e um conjunto de atividades. Cada profissional possui uma série de características (habilidades, conhecimentos, experiências, certificações, etc), cada qual com uma determinada

intensidade (por exemplo, grande conhecimento em banco de dados, noções de linguagens de programação, etc). Cada atividade, por sua vez, exige um conjunto de capacidades, ou seja, quais características um profissional precisa possuir para executar a tarefa com eficiência. Com base nestes dados, o problema da alocação de recursos humanos implica em atribuir um profissional a cada atividade, levando em consideração as seguintes regras: (i) para que um profissional seja atribuído a uma atividade, ele precisa possuir todas as características exigidas pela atividade em intensidade igual ou superior ao exigido; e (ii) para que um profissional seja atribuído a uma atividade A, este não pode estar alocado a outra atividade B no período em que a atividade A será executada. Este problema foi modelado como um problema de satisfação de restrições e resolvido utilizando técnicas do corpo de interesse da Engenharia de Software Baseada em Buscas, como branch and bound, backtracking, forward checking, most constrained variable, entre outras [10]. Os resultados deste trabalho foram apresentados em três artigos, sendo um em conferência internacional [19], outro em conferência nacional [20] e um terceiro em revista internacional [9]. 3. Método O trabalho proposto neste projeto será realizado nas dependências da Escola de Informática Aplicada (EIA) da Universidade Federal do Estado do Rio de Janeiro (UNIRIO), mais precisamente no laboratório de pesquisas da linha de Sistemas de Apoio a Negócios do Programa de Pós-Graduação em Informática (PPGI) da UNIRIO. A equipe que participará do projeto será composta pelo coordenador do projeto, Prof. Márcio Barros, e por seus alunos de Mestrado atuais e futuros. O Prof. Márcio Barros é professor adjunto nível III da Escola de Informática Aplicada da UNIRIO (EIA/UNIRIO) e do Programa de Pós-Graduação em Informática da UNIRIO (PPGI/UNIRIO), além de pesquisador nível 2 pelo CNPq. Este projeto de pesquisa será concretizado através de Dissertações de Mestrado desenvolvidas e defendidas por alunos do PPGI/UNIRIO orientados pelo coordenador do projeto. Algumas destas dissertações já se encontram em andamento, mas o projeto propõe

uma agenda de pesquisa que contempla, além dos desenvolvimentos em andamento, a aceitação de novos alunos para desenvolver outras pesquisas no campo da SBSE. Prevemos que pelo menos cinco alunos realizarão pesquisas neste campo ao longo dos três anos de projeto, sendo que dois alunos já estão efetivamente envolvidos. O método de pesquisa, que será comum a todas as Dissertações de Mestrado, é composto por quatro etapas com uma variante. A primeira etapa consiste na identificação de um problema da Engenharia de Software que ocorra em projetos de larga escala e que possa ser descrito como um problema de otimização. Na busca por estes problemas, examinaremos repositórios de projetos de software livre e, sempre que tivermos a oportunidade, repositórios de projetos desenvolvidos por empresas da indústria de software do Rio de Janeiro. Conforme citado anteriormente, o uso de software livre viabiliza as pesquisas no campo, dado que estas precisam ser conduzidas com dados reais de projetos de software e a indústria nem sempre é capaz de fornecer estas informações. A segunda etapa consiste na modelagem do problema que será alvo de estudo, descrevendoo formalmente e sem ambigüidades. Consideramos que esta etapa é a mais importante do ponto de vista de formação de recursos humanos, pois envolve a transmissão do conhecimento e da intuição sobre como os problemas da Engenharia de Software podem ser descritos formalmente aos alunos de Mestrado. De posse deste conhecimento, os alunos poderão aplicar a mesma filosofia em outras áreas do conhecimento. Esta estratégia é ainda mais interessante quando aplicada aos alunos do PPGI/UNIRIO, que geralmente não têm dedicação integral ao curso de Mestrado e podem levar o conhecimento adquirido imediatamente para seu local de trabalho. Atualmente, os alunos envolvidos em pesquisas no campo de SBSE trabalham na indústria do petróleo e de policarbonetos. A terceira etapa do método de pesquisa consiste em caracterizar o problema identificado (na primeira etapa) e modelado (na segunda etapa) como um problema clássico de busca da Computação e da Pesquisa Operacional, tal como o problema da mochila [21], de escalonamento em processadores simétricos [22] ou do caixeiro viajante [23]. Em se caracterizando o problema em questão segundo um destes problemas clássicos, teremos um ponto de partida para a escolha e adaptação de uma ou mais técnicas de busca baseadas em

meta-heurísticas para solucionar o problema. Na ausência de identidade com um problema clássico, o método segue sua variante, onde desenvolveremos um método de busca heurística próprio para o problema. Atualmente, considerando os dois alunos de Mestrado envolvidos com pesquisas no campo da SBSE, temos um aluno atacando um problema de escalonamento utilizando técnicas clássicas (o problema da alocação de recursos humanos a resolução de defeitos em projetos de larga escala, que será descrito em maiores detalhes na seção 5) e um aluno desenvolvendo uma técnica de busca inovadora, que denominamos campo de forças, própria para um problema de clusterização da Engenharia de Software (a identificação automática de pacotes de classes no projeto de um sistema, que também será descrita em maiores detalhes na seção 5). Finalmente, na quarta e última etapa do método de pesquisa pretendemos realizar estudos experimentais com a solução proposta (na terceira etapa) para os problemas identificados (na primeira etapa). A estratégia de experimentação poderá variar de acordo com o tratamento dado ao problema em questão: se forem identificadas duas ou mais possíveis soluções para o problema, podemos realizar estudos experimentais comparando as alternativas; se o objeto de estudo for um sistema de software livre ou com histórico conhecido, podemos comparar a evolução pretendida em um instante de tempo com a observada posteriormente; se o objeto de estudo for um sistema industrial, podemos entrevistar a equipe de desenvolvimento ou o gerente do projeto, levantando informações sobre os resultados da aplicação da solução proposta. Enfim, os detalhes de aplicação dos estudos experimentais terão que ser desenvolvidos ao longo do projeto de pesquisa. 4. Bibliografia relacionada ao projeto [1] BAGNALL, A., RAYWARD-SMITH, V., WHITTLEY, I. 2001, The next release problem, Information and Software Technology, 43 (14): pp. 883-890 [2] AGUILAR-RUIZ, J., RAMOS, I., RIQUELME, J.C., TORO, M., 2001, An Evolutionary approach to estimating software development projects, Information and Software Technology, 43 (14): pp. 875-882

[3] ANTONIOL, G., DI PENTA, M., HARMAN, M., 2004, A robust search-based approach to project management in the presence of abandonement, rework, error, and uncertainty, in Proceedings of the 10 th International Software Metrics Symposium (METRICS 2004), Los Alamitos, CA, USA, pp. 172-183 [4] ANTONIOL, G., DI PENTA, M., HARMAN, M., 2005, Search-based techniques applied to optimization of project planning for a massive maintenance project, in Proceedings of the 21 th IEEE International Conference on Software Maintenance, Los Alamitos, CA, USA, pp. 240-249 [5] BURGESS, C.J., LEFLEY, M., 2001, Can genetic programming improve software effort estimation?, Information and Software Technology, 43 (14): pp. 863-873 [6] DOLADO, J.J., 2000, A validation of the component-based method for software size estimation, IEEE Transactions on Software Engineering, 26 (10): 1006-1021 [7] KIRSOPP, C., SHEPPERD, M., HART, J., 2002, Search heuristics, case-based reasoning and software project effort prediction, in Proceedings of the Genetic and Evolutionary Computation Conference, San Francisco, CA, USA, pp. 1367-1374 [8] KHOSHGOFTAAR, T.M., YI, L., SELIYA, N., 2004, A multiobjective module-error model for software quality enhancement, IEEE Transactions on Evolutionary Computation, 8 (6): 593-608 [9] BARRETO, A., BARROS, M., WERNER, C.M.L., 2008, Staffing a software project: a constraint satisfaction and optimization-based approach, Computers and Operations Research, Special Issue on Search Based Software Engineering, 35 (10), pp. 3073-3089, ISSN 0305-0548 [10] LAWLER, E.L., WOOD, D.E., 1966, Branch-and-bound methods: a survey, Operations Research, 14 (4), pp. 699-719 [11] HARMAN, M., JONES, B.F., 1990, Search-based software engineering, Information & Software Technology, 43, pp. 833-839 [12] RAYMOND, E., 2001, The Cathedral & The Bazaar: Musings on Linux and Open Source by na Accidental Revolutionary, O'Reilly Media, Inc., ISBN 0596001088

[13] HARMAN, M., 2007, The Current State and Future of Search Based Software Engineering, In Proceedings of the Future of Software Engineering Workshop, Minneapolis, USA [14] CARVALHO, A.C.P.L. et al, 2006, Grandes Desafios da Pesquisa em Computação no Brasil: 2006 2016, Relatório sobre o seminário homônimo, disponível em http://www.sbc.org.br/index.php?language=1&content=downloads&id=272 [15] HARMAN, M., MANSOURI, A., 2008, Search-Based Optimization for Software Engineering, Call for Papers to the IEEE Transactions on Software Engineering, disponível em http://www.computer.org/portal/cms_docs_transactions/transactions /tse/cfp/tse-sbse.pdf, último acesso em setembro/08 [16] SSBSE, 2009, 1 st International Symposium on Search Based Software Engineering, Call for Papers, disponível em http://www.ssbse.org, último acesso em setembro/08 [17] BARRETO, A., 2005, Alocação Ótima de Recursos Humanos a Projetos de Software, Dissertação de Mestrado em Engenharia de Sistemas e Computação, COPPE/UFRJ, Universidade Federal do Rio de Janeiro, Rio de Janeiro, Brasil [18] PESC, 2008, Programa de Engenharia de Sistemas e Computação, disponível em http://www.cos.ufrj.br, último acesso em setembro/08 [19] BARRETO, A., BARROS, M., WERNER, C.M.L., 2005, Staffing a software project: a constraint satisfaction approach, In Proceedings of the 7 th International Workshop on Economics-driven Software Engineering Research, St. Louis, MI, USA [20] BARRETO, A., BARROS, M.O., WERNER, C.M.L., 2005, Apoio à Alocação de Recursos Humanos em Projetos de Software: Uma Abordagem Baseada em Satisfação de Restrições. In: Anais do IV Simpósio Brasileiro de Qualidade de Software, Porto Alegre, Brasil. [21] MARTELLO, C., TOTH, P., 1990, Knapsack Problems: Algorithms and Computer Implementations. John Wiley & Sons. ISBN 0-471-92420-2. [22] GONÇALVES, J.F., MENDES, J.J.M., RESENDE, M.G.C., 2008, A genetic algorithm for the resource constrained multi-project scheduling problem, European Journal of Operational Research, 189, pp. 1171-1190

[23] AGGARWAL, A., COPPERSMITH, D., KHANNA, S., MOTWANI, R., SCHIEBER, B., 1997, The angular-metric traveling salesman problem, In Proceedings of 8 th Annual ACM-SIAM Symposium on Discrete Algorithms, ACM-SIAM, pp. 221-229