English

CIn - Centro de Informática UFPE




Eventos Relacionados

Defesa de Dissertação de Mestrado Nº1.701: "Evolução Parcialmente Segura de Linhas de Produto de Software"

A aluna Gabriela Cunha Sampaio irá defender seu trabalho no dia 27 de março, às 9h30, no Auditório Início: 27/03/2017 às 09:30 Término: 27/03/2017 às 00:00 Local: Auditório do CIn

Pós-Graduação em Ciência da Computação – UFPE
Defesa de Dissertação de Mestrado Nº 1.701

Aluno: Gabriela Cunha Sampaio
Orientador: Prof. Paulo Henrique Monteiro Borba
Co-orientador:  Prof. Leopoldo Motta Teixeira
Título: Evolução Parcialmente Segura de Linhas de Produto de Software
Data: 27/03/2017
Hora/Local: 9h30 – Centro de Informática - Auditório
Banca Examinadora:
Prof. Paulo Henrique Monteiro Borba (UFPE / Centro de Informática)
Prof. Rohit Gheyi   (UFCG / Departamento de Sistemas e Computação)
Prof. Vander Ramos Alves  (UnB – Departamento de Ciência da Computação)


RESUMO:

Linhas de produto de software (LPS) são conjuntos de sistemas relacionados desenvolvidos a partir de artefatos reusáveis. Uma LPS é composta de três elementos: um modelo de variabilidade, que contém declarações de features e dependências entre elas; um modelo de configuração, que permite o mapeamento entre features e artefatos; e o conjunto de artefatos que compõem a implementação da LPS. Há diversas vantagens de se trabalhar com LPS, como melhorias na qualidade do código e o aumento de reuso, e também ganhos em produtividade e uma maior customização do software, que se torna configurável para atender aos critérios dos clientes. Apesar da série de vantagens obtidas com o desenvolvimento de LPS, há também muitos desafios. Pelo fato de os sistemas se tornarem customizáveis, a tendência é de eles crescerem com o tempo. Quanto maior a quantidade de produtos gerada, maior a complexidade envolvida na evolução da LPS. Então, a tarefa de descobrir o conjunto de produtos afetado em uma mudança se torna não trivial, principalmente em LPS maiores. Os desenvolvedores eventualmente precisam verificar se os produtos existentes preservaram comportamento para evitar afetar usuários inadvertidamente num cenário de evolução. Em cenários de refatoração e extensão conservadora, nós podemos evitar esse problema checando se o comportamento dos produtos foi preservado através da realização de testes nos produtos gerados, ou ainda com o uso de teorias formais. Teorias de refinamento de linhas de produto de software auxiliam nesta tarefa exigindo que todos os produtos existentes preservem comportamento. De fato, isso acontece em várias situações. Por exemplo, em cenários de refinamentos de código, como renomeações de funções, todos os produtos continuam se comportando exatamente da mesma forma, então nós dizemos que esta evolução é segura. Outro exemplo de refinamento de LPS seria alterar o tipo de uma feature mandatória para opcional. Neste caso, nós estamos aumentando variabilidade, mas preservando todos os produtos da LPS original. No entanto, apesar de haver um grande número de cenários de evolução segura (o que
tecnicamente, é sinônimo de refinamento), em outros, como correções de defeitos ou remoções de features, existe uma chance razoável de apenas alguns produtos serem refinados. Nestes cenários, as teorias existentes não seriam capazes de dar suporte, já que nem todos os produtos preservam comportamento. Para dar suporte à desenvolvedores nestes e em outros cenários de não refinamento, nós definimos o conceito de evolução parcialmente segura de linhas de produto de software,
que é formalizado através de uma teoria de refinamento parcial, que ajuda a entender precisamente que produtos não devem ser afetados num cenário de evolução. Com isto, nós provemos uma espécie de análise de impacto que poderia, por exemplo, reduzir o esforço envolvido no desenvolvimento de testes, dado que produtos não afetados não precisariam ser testados. Adicionalmente, nós derivamos formalmente um catálogo de templates de refinamento parcial que capturam cenários de evolução, e pré-condições associadas, não cobertos anteriormente. Finalmente, nós avaliamos os templates propostos através de uma análise de commits de duas LPS e encontramos evidência de que os templates poderiam cobrir uma série de cenários práticos de evolução.

Palavras-chave: evolução de linhas de produto, manutenção de linhas de produto, refinamento de linhas de produto
  • © Centro de Informática UFPE - Todos os direitos reservados
    Tel +55 81 2126.8430 - Cidade Universitária - 50740-560 - Recife/PE
Plano4 Consultoria Web