Reuso Estratégico com Linhas de Produtos de Software
Professor: Paulo Borba
Nome oficial: Tópicos Avançados em Engenharia de Software 2
Cronograma
- 4/3 (16hs, na sala A003): Discutir conceitos básicos de linhas de produtos de software
- 6/3 (14hs, na sala A003): Discutir os seguintes artigos:
- 11/3 (16hs, na sala A003): Discutir mecanismos para implementação de variações
- 13/3 (14hs, na sala A003): Discutir mais mecanismos para implementação de variações
- 18/3 (16hs, na sala A003): Discutir modelos de decisão para linhas de produtos de software
- 25/3 (16hs, na sala A003): Discutir modelos (de feature, configuração, etc.) para linhas de produtos de software
- estudar em detalhe Refactoring product lines, de Vander Alves, Rohit Gheyi, Tiago Massoni, Uirá Kulesza, Paulo Borba, e Carlos Lucena. In Proceedings of the 5th ACM International Conference on Generative Programming and Component Engineering (GPCE'06). ACM Press, Oct 2006.
- estudar os slides
- 27/3 (8hs, no auditório do CIn): Discutir mecanismos para especificação de variações em requisitos
- definir equipe e enviar email com nomes dos participantes e estudo de caso escolhido (ver opções no final da página)
- estudar os slides
- 1/4: Desenvolver primeira parte do projeto
- analisar a documentação e código do estudo de caso escolhido e
- identificar features existentes e possíveis features
- desenhar o modelo de features
- para cada feature, identificar pontos de variação e variações associadas
- identificar se há interação entre features
- para cada ponto de variação e variações associadas, identificar mecanismos de variação utilizados e avaliar se eles são os mais adequados (segundo os modelos de decisão apresentados); se para um determinado ponto nenhum mecanismo é usado ainda, avaliar qual seria o mais adequado
- coletar métricas de pontos de variação, variações associadas, e mecanismos usados (de forma adequada e inadequada)
- usar a ferramenta Captain Feature para desenhar o modelo de features
- 3/4: Desenvolver primeira parte do projeto
- 8/4: Desenvolver primeira parte do projeto
- 10/4: Desenvolver segunda parte do projeto (ver SmartHome para maiores detalhes)
- estudar as abordagens de variação de requisitos apresentadas
- PLUSS (artigos publicados em SPLC05 e CACM06)
- Variability Management as Crosscutting (enviar e-mail solicitando artigo)
- ver exemplos da multimedia message product line
- estudar a especificação nao estruturada do SmartHome
- refatorar a especificação do SmartHome usando as abordagens sugeridas (PLUSS e Crosscutting)
- identificar os pontos comuns e variáveis das especificações (documentar técnica utilizada)
- extrair variações para tornar as especificações reusáveis
- extrair modelo de features (necessário interagir com Rodrigo - rba2(at)cin.ufpe.br)
- definir o mecanismo de composição (parametrização, extensões de cenários, etc.)
- definir modelos de configuração
- 15/4: Desenvolver segunda parte do projeto
- 17/4 (8hs, no anfiteatro do CIn): Apresentar resultados da primeira e segunda parte do projeto
- antes estudar em detalhe e seguir as dicas de apresentação do Simon Peyton Jones
- planejar a sua apresentação para 30 minutos
- 22/4 (16hs, na sala A003): Discutir práticas e processos para desenvolvimento de linhas de produtos de software
- estudar os slides
- estudar em detalhe Extracting and evolving mobile games product lines, de Vander Alves, Pedro Matos Jr, Leonardo Cole, Paulo Borba, and Geber Ramalho. In Proceedings of the 9th International Software Product Line Conference (SPLC'05), volume 3714 of Lecture Notes in Computer Science, pages 70-81. Springer-Verlag, Sep 2005.
- estudar em detalhe Extracting and evolving code in product lines with aspect-oriented programming, de Vander Alves, Pedro Matos Jr, Leonardo Cole, Alexandre Vasconcelos, Paulo Borba, e Geber Ramalho. Transactions on Aspect-Oriented Software Development (TAOSD): Special Issue on Software Evolution, 2007.
- 24/4 (14hs, na sala A003): Discutir ferramenta para extração, reestruturação e evolução de linhas de produtos de software
- 29/4 (16hs, na sala A003): Discutir Capítulos 1 e 2 do livro Software Product Line Engineering
- 6/5: Desenvolver terceira parte do projeto
- rever resultados e apresentações da primeira e segunda partes do projeto
- extrair linha de produto (requisitos e código) a partir do seu estudo de caso
- para extrair o código, usar a ferramenta FLiP, e estendê-la com novos refactorings necessários para a extração
- em relação à extração de requisitos, as equipes que usaram a abordagem PLUSS para o SmartHome devem usar a abordagem Crosscutting (e vice-versa) nessa iteração. Os mesmos artefatos da primeira atividade (ver SmartHome) devem ser produzidos, incluindo uma estimativa do esforço necessário para cada atividade.
- adicionar variações a pontos de variação existentes
- adicionar novos pontos de variação, e variações associadas
- reestruturar estudo de caso para usar mecanismos de variação mais adequados
- contrastar resultados obtidos com resultados (modelos, tabelas, métricas, etc.) da primeira e segunda partes do projeto
- registrar, passo-a-passo, extrações aplicadas (de forma manual ou com o FLiP), dificuldades e problemas encontrados, tempo necessário para cada extração, totalizações de tempo, extrações e outras métricas da primeira parte do projeto
- colocar resultados de todas as partes do projeto no item Projetos realizados mais abaixo
- 8/5 (14hs, na sala A003): Discutir Capítulos 3 e 4 do livro Software Product Line Engineering
- 13/5: Desenvolver terceira parte do projeto
- 15/5 (14hs, na sala A003): Discutir Capítulos 5 e 6 do livro Software Product Line Engineering
- 20/5: Desenvolver terceira parte do projeto
- 27/5 (16hs, na sala A003): Discutir Capítulos 7 e 8 do livro Software Product Line Engineering
- 29/5: Desenvolver terceira parte do projeto
- 3/6: Desenvolver terceira parte do projeto
- 5/6: Desenvolver terceira parte do projeto
- 10/6: Desenvolver terceira parte do projeto
- 19/6 (14hs, na sala A003): Apresentar resultados da terceira parte do projeto
Projeto
- Realizado desde o começo do curso, progressivamente
- Opções de estudos de caso:
- Projetos realizados
- FLiP
- coloque aqui o seu projeto
Avaliação
- Participação efetiva nas aulas, questionando, comentando, criticando e pensando em como adaptar e aplicar as idéias vistas
- Projeto e apresentação, em equipe; obviamente, quanto mais gente na equipe mais é exigido
--
LeopoldoTeixeira - 20 Jun 2008
--
PauloBorba - 09 Jun 2008
--
PauloBorba - 24 Apr 2008
--
PauloBorba - 23 Apr 2008
--
PauloBorba - 22 Apr 2008
--
PauloBorba - 21 Apr 2008
--
PauloBorba - 08 Apr 2008
--
RodrigoBonifacio - 31 Mar 2008
--
PauloBorba - 25 Mar 2008
--
PauloBorba - 18 Mar 2008
--
PauloBorba - 13 Mar 2008
--
PauloBorba - 12 Mar 2008
--
PauloBorba - 11 Mar 2008
--
PauloBorba - 05 Mar 2008
--
PauloBorba - 04 Mar 2008
--
PauloBorba - 29 Feb 2008

Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback