Reuso Estratégico com Linhas de Produtos de Software
Professor: Paulo Borba
Monitores: Leopoldo Teixeira, Laís Neves
Nome oficial: Tópicos Avançados em Engenharia de Software 3 (IN-980)
Lista de email: in980-l,
assine já! (para assuntos particulares, escreva diretamente para phmb com TAES no subject)
Cronograma
- 9/3 (16hs, na sala A010): Apresentação da disciplina, definir equipe e aplicação a ser desenvolvida na disciplina
- 11/3 (14hs, na sala A010 e depois no laboratório G5, B018): Desenvolver a aplicação escolhida usando linguagens e frameworks web de sua preferência
- 16/3 (16hs, no laboratório G5, B018): Desenvolver a aplicação escolhida usando linguagens e frameworks web de sua preferência
- 18/3 (14hs, no laboratório G5, B018): Desenvolver a aplicação escolhida usando linguagens e frameworks web de sua preferência
- 23/3 (16hs, no laboratório G5, B018): Desenvolver a aplicação escolhida usando linguagens e frameworks web de sua preferência
- 25/3 (14hs, no laboratório G5, B018): Criar família com duas aplicações para contemplar variações na funcionalidade e comportamento da aplicação original
- 30/3 (16hs, no laboratório G5, B018): Criar família com duas aplicações para contemplar variações na funcionalidade e comportamento da aplicação original
- 1/4: Feriado, Semana Santa
- 6/4 (16hs, na sala A010): Apresentar a família de aplicações e discutir problemas encontrados, discutir conceitos básicos de linhas de produtos de software
- 8/4 (14hs, na sala A010): Discutir modelos (de feature, configuração, etc.) para linhas de produtos de software
- 13/4 (16hs, no laboratório G5, B018): Criar modelos de feature para uma família de aplicações
- escolher uma família de sistemas e criar modelo de features
- usar uma destas ferramentas para criação do modelo de features:
- tomar conhecimento de outras ferramentas para criação do modelo de features:
- 15/4 (14hs, no laboratório G5, B018): Criar modelos para a família de aplicações web desenvolvida
- criar um modelo de features com base na descrição completa da família de aplicações web desenvolvida parcialmente; usar uma das ferramentas sugeridas
- criar modelo de configuração com base na última versão da família de aplicações desenvolvida (que já é uma LPS) e contemplando o novo modelo de features criado
- 20/4 (16hs, no laboratório G5, B018 e depois na sala A010): Criar modelos para a família de aplicações web desenvolvida, rediscutir modelos (de feature, configuração, etc.) para linhas de produtos de software
- 22/4 (14hs, na sala A010): Discutir mecanismos para especificação de variações em requisitos
- 27/4 (16hs, no laboratório G5, B018): Estruturar artefatos de requisitos da família de aplicações web desenvolvida
- usar o template para escrita dos requisitos para LPS
- usar o Hephaestus (win | mac) para geração dos cenários de caso de uso do produto
- instalar o glade (win | mac) para utilizar o Hephaestus (pré-requisito)
- estudar o artigo Hephaestus: A tool for managing spl variabilities, de Rodrigo Bonifácio, Leopoldo Teixeira, and Paulo Borba. In Tools Session of the III Brazilian Symposium on Software Components, Architectures, and Reuse (SBCARS 2009), Natal-RN, Brazil, September 2009.
- exercitar Hephaestus com os projetos de exemplo, que incluem transformações de cenários de casos de uso:
- 29/4 (14hs, no laboratório G5, B018 e depois na sala A010): Estruturar artefatos de requisitos da família de aplicações web desenvolvida, rediscutir mecanismos para especificação de variações em requisitos
- estudar o artigo Modeling Scenario Variability as Crosscutting Mechanisms, de Rodrigo Bonifácio e Paulo Borba, AOSD '09. ACM, New York, NY, 125-136.
- Grupo responsável: George Valença, Paola Accioly
- estudar o artigo Evaluating Approaches for Specifying Software Product Line Scenarios (o grupo deve solicitar ao monitor).
- Grupo responsável: Leonardo Fernandes, Francisco Salanio
- 4/5 (16hs, na sala A010): Discutir mecanismos para especificação de variações em código
- 6/5 (14hs, no laboratório G5, B018): Estruturar artefatos de código da família de aplicações web desenvolvida
- estudar, instalar e testar o pré-processador Antenna, para suporte a compilação condicional
- estudar e testar o suporte a geração e transformação do JaTS ou Velocity
- estudar e testar o suporte de AspectJ a implementação de variações com aspectos
- estudar Getting started with AspectJ, de Gregor Kiczales et al, Communications of the ACM, 44(10), pp. 59-65, October 2001. {pós}
- estudar o artigo I want my AOP!, de Ramnivas Laddad, JavaWorld.com, 2002, partes 1 e 2
- instalar e usar o AJDT
- 11/5 (16hs, no laboratório G5, B018): Estruturar artefatos de código da família de aplicações web desenvolvida
- 13/5 (14hs, no laboratório G5, B018 e depois na sala A010): Estruturar artefatos de código da família de aplicações web desenvolvida, discutir mais mecanismos para especificação de variações em código
- estudar o artigo Implementing product line variabilities, de Gacek, C. and Anastasopoulos, M. SSR '01. ACM, New York, NY, 109-117.
- Grupo responsável: Felype Santiago, Michelle Silva
- estudar o artigo Virtual Separation of Concerns - A Second Chance for Preprocessors, de Kaestner, C. and Apel, S. in Journal of Object Technology (JOT), 8(6):59–78, September 2009. Refereed Column.
- Grupo responsável: Yuri Pereira
- 18/5 (16hs, no laboratório G5, B018): Estruturar artefatos de código da família de aplicações web desenvolvida
- 20/5 (14hs, no laboratório G5, B018): Estruturar artefatos de código da família de aplicações web desenvolvida
- 25/5 (16hs, na sala A010): Discutir refactoring de linhas de produtos de software
- 27/5 (14hs, no laboratório G5, B018): Evoluir a linha aplicações web desenvolvida
- versão da Hephaestus com CK Validator aqui.
- 1/6 (16hs, no laboratório G5, B018): Evoluir a linha aplicações web desenvolvida
- 3/6: Feriado, Corpus Christi
- 8/6 (16hs, no laboratório G5, B018): Evoluir a linha aplicações web desenvolvida
- 10/6 (14hs, no laboratório G5, B018 e depois na sala A010): Evoluir a linha aplicações web desenvolvida, rediscutir refactoring de linhas de produtos de software
- estudar o tutorial Software Product Line Refactoring, de Paulo Borba. GTTSE 2009. Braga, Portugal. (o grupo deve solicitar ao monitor)
- Grupo responsável: Carlos Frederico Medeiros, Robson Medeiros e David Aragão
- estudar o artigo Feature Oriented Refactoring of Legacy Applications, de Liu, J., Batory, D., and Lengauer, C. In Proceedings of the 28th international Conference on Software Engineering (Shanghai, China, May 20 - 28, 2006). ICSE '06. ACM, New York, NY, 112-121.
- Grupo responsável: Viviane Souza e Gleibson Oliveira
- 17/6 (13h30, na sala A010): Apresentar e discutir resultados
- 13h30 - Renata e Jorge
- 14h - Rodrigo Cardoso
- 15h - Viviane Souza e Gleibson Oliveira
- 22/6 (16hs, na sala A010): Apresentar e discutir resultados
- 14h30 - Yuri Pereira
- 16h - George Valença e Paola Accioly
- 16h30 - David Aragão, Fred Medeiros, Robson Medeiros
- 17h - Leonardo Fernandes, Francisco Salanio
- 17h30 - Felype Santiago, Michelle Silva
- 29/6 (16hs, na sala A010): Exame escrito final
Avaliação
- Alcance do intended learning outcome descrito nos slides da apresentação do curso
- Participação efetiva nas aulas, questionando, comentando, criticando e pensando em como adaptar e aplicar as ideias vistas
- a presença em todas as aluas, em sala ou laboratório, é obrigatória
- Projeto (entregue em várias partes) e apresentações, em dupla
- a entrega de todos os projetos é essencial para que o aluno passe por média
- o relato do progresso da execução do projeto, nas aulas de laboratório, vale tanto quanto o resultado final do projeto
- Exercícios realizados nas aulas de laboratório
Projetos
Para incluir seu projeto, edite a
página dos projetos.
- David Aragão, Fred Medeiros, Robson Medeiros
- versão aplicação web:
- versão aplicação web com variações:
- Email Clients Feature Model - usando a ferramenta IDE Feature
- Feature Model - RGMS:
- Configuration Knowledge - RGMS:
- Casos de Uso da Aplicação com Linha de Pesquisa, Visitantes Externos e Banco de Dados
- Documentos de Caso de Usos do Projeto (Feature Model , Instance Model , Configuration Knowledge, Use Case Model , Use Case TEX e PDF)
- Exemplo de Configuração de Casos de Uso Válida gerada pelo Hephaestus
- Versão final do projeto
- George Valença, Paola Accioly [22/06 - 16h às 16h30]
- versão aplicação desktop:
- versão aplicação desktop com variações:
- feature model - Torrents System:
- feature model - RGMS [v1_v2]:
- feature model - RGMS completo:
- Configuration Knowledge - RGMS:
- Configuration Knowledge, Feature Model, UC Document - RGMS:
- Novas features ("Busca Global" e "Geração de Lista de Publicação - pdf/bibtex) com mecanismos para especificação de variações em código
- Refactoring (inclusão de nova feature opcional e alteração em feature anterior por meio de aspectos)
- Versão final do projeto
- Felype Santiago, Michelle Silva
- versão aplicação web
- versão aplicação web com variações
- feature model - database management
- feature model - RGMS
- Configuration Knowledge - RGMS
- Artefatos de documentação da LPS
- Versão Final
- Leonardo Fernandes, Francisco Salanio
- versão aplicação web:
- versão aplicação web com variações:
- Atividade: Criar feature model para Video Player Software
- Feature Model RGMS:
- Configuration Knowledge RGMS:
- Configuration Knowledge, Feature Model, UC Document - RGMS:
- Novas features ("Autenticacao" e "Informações Contextuais" com mecanismos para variações em código
- Renata e Jorge
- Research Management System (RMS)
- versão 0 (milestone inicial - 23/03)
- versão 1 (aplicação com variações)
- Idioma (sem linha de pesquisa)
- Linha de Pesquisa
- versão 2 (Novas Features - Autenticação e Contexto)
- versão 3 (Refactoring - Banco de Dados, PDF, Idioma, Research)
- Exercicios
- Audio Player
- RMS (FM e CK - descrição completa)
- Yuri Pereira
- versão aplicação web:
- versão aplicação web com variações:
- feature model - Issue tracking System:
- feature model - RGMS:
- Configuration Knowledge:
- Código-fonte com variações implementadas
- Rodrigo Cardoso
- Versão inicial:
- FM ShoppingCart
- Versão linha de produtos sem refactoring:
- Versão linha de produtos com refactoring:
- Viviane Souza e Gleibson Oliveira
- versão aplicação web:
- versão aplicação web com variações:
- FM RGMS
- CK RGMS
- Fernando Spanghero
- versão aplicação web:
- versão aplicação web com variações:
--
LeopoldoTeixeira - 17 Jun 2010
--
LeopoldoTeixeira - 10 Jun 2010
--
LeopoldoTeixeira - 08 Jun 2010
--
PauloBorba - 18 May 2010
--
PauloBorba - 11 May 2010
--
LeopoldoTeixeira - 06 May 2010
--
PauloBorba - 05 May 2010
--
LeopoldoTeixeira - 04 May 2010
--
LeopoldoTeixeira - 27 Apr 2010
--
LeopoldoTeixeira - 26 Apr 2010
--
LeopoldoTeixeira - 23 Apr 2010
--
PauloBorba - 23 Apr 2010
--
LeopoldoTeixeira - 22 Apr 2010
--
PauloBorba - 19 Apr 2010
--
LeopoldoTeixeira - 19 Apr 2010
--
LeopoldoTeixeira - 14 Apr 2010
--
LeopoldoTeixeira - 13 Apr 2010
--
PauloBorba - 13 Apr 2010
--
LeopoldoTeixeira - 12 Apr 2010
--
PauloBorba - 08 Apr 2010
--
PauloBorba - 07 Apr 2010
--
LeopoldoTeixeira - 01 Apr 2010
--
PauloBorba - 01 Apr 2010
--
LeopoldoTeixeira - 24 Mar 2010
--
PauloBorba - 11 Mar 2010
--
LeopoldoTeixeira - 10 Mar 2010
--
PauloBorba - 10 Mar 2010
--
LeopoldoTeixeira - 09 Mar 2010
--
PauloBorba - 09 Mar 2010

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