Detalhes bibliográficos
Ano de defesa: |
2012 |
Autor(a) principal: |
Santiago Ferreira, Felype |
Orientador(a): |
Henrique Monteiro Borba, Paulo |
Banca de defesa: |
Não Informado pela instituição |
Tipo de documento: |
Dissertação
|
Tipo de acesso: |
Acesso aberto |
Idioma: |
por |
Instituição de defesa: |
Universidade Federal de Pernambuco
|
Programa de Pós-Graduação: |
Não Informado pela instituição
|
Departamento: |
Não Informado pela instituição
|
País: |
Não Informado pela instituição
|
Palavras-chave em Português: |
|
Link de acesso: |
https://repositorio.ufpe.br/handle/123456789/2852
|
Resumo: |
Desenvolvedores evoluem linhas de produtos de software (LPSs) manualmente ou usando Ferramentas típicas de refatoração de programas. No entanto, quando a evolução de uma Linha de produtos é feita para introduzir novas características, ou para melhorar o seu projeto, é importante ter a certeza de que o comportamento dos produtos existentes não é modificado. Programas típicos de refatoração de software não podem garantir isso porque o contexto de LPS vai além de código, e outros tipos de artefatos de código, e envolve artefatos adicionais, tais como modelos de feature e configuration knowledge. Além disso, em uma LPS, normalmente temos que lidar com um conjunto de possíveis artefatos de código-fonte alternativos que não constitui um programa bem formado. Como resultado, mudanças manuais e ferramentas de refatoração de software existentes podem introduzir mudanças comportamentais ou invalidar configurações de produtos existentes. Para evitar isso, propomos abordagens e implementamos ferramentas para tornar a evolução de linhas de produtos mais segura; essas ferramentas verificam se transformações em LPS são refinamentos no sentido de que preservam o comportamento dos produtos originais da LPS. Elas implementam aproximações diferentes e práticas de uma definição formal de refinamento de LPS. Avaliamos as abordagens em cenários concretos de evolução de LPS, onde o comportamento do produto existente deve ser preservado. No entanto, nossas ferramentas constataram que algumas transformações introduziram mudanças comportamentais. Além disso, avaliamos refinamentos defeituosos, e o conjunto de ferramentas detectou as mudanças de comportamento. |