(r29) Aspectos200802 < TAES < TWiki
Monitores: Carlos Pontual, Fernanda d'Amorim, Leopoldo Teixeira, Márcio Ribeiro
Nome oficial: Tópicos Avançados em Linguagens Computacionais (graduação), Tópicos Avançados em Linguagem de Programação 3 (pós-graduação)
Lista de email: if724-l, assine já!
7/8 (10hs, na sala D-002): Apresentação da disciplina
8/8: Definir equipe e estudo de caso a ser utilizado na disciplina
14/8 (10hs, na sala D-002): Discutir problemas de modularidade com orientação a objetos, e conceitos básicos de orientação a aspectos
15/8 (8hs, na sala D-002): Discutir identificação e atribuição de concerns, e métricas para identificação de crosscutting concerns.
21/8 (10hs, no laboratório C019 - Grad3): Instalar e usar o AJDT e o ConcernTagger, analisar superficialmente um dos estudos de caso do ConcernTagger
seguir roteiro
ler explicações sobre o uso do ConcernTagger
antes estudar em detalhe Identifying, Assigning, and Quantifying Crosscutting Concerns, de Marc Eaddy, Alfred Aho, and Gail C. Murphy; ICSE Workshop on Assessment of Contemporary Modularization Techniques (ACoM 2007), Minneapolis, MN, May 22, 2007.
22/8: Analisar em detalhe o estudo de caso escolhido pela sua equipe, e usar o ConcernTagger para marcar concerns e calcular métricas do estudo de caso (primeira parte do projeto)
28/8: Continuar a atividade anterior (primeira parte do projeto)
29/8: Continuar a atividade anterior (primeira parte do projeto)
4/9 (10hs, na sala D-002): Apresentar resultados do seu projeto
planejar a sua apresentação para 20 minutos, com slides de acordo com o modelo, destacando
o sistema considerado (funcionalidades principais, número de classes e linhas de código, tanto do sistema como um todo quanto, se for o caso, do subsistema analisado pela sua equipe)
concerns identificados no sistema (lista dos concerns, justificativa da escolha do que foi considerado concern, outras escolhas cogitadas mas não seguidas por vocês, hierarquia de concerns)
resumo da atividade de atribuição de concerns (número de linhas de código marcadas, tempo total levado para marcar, 3 exemplos não triviais de concerns e código associado marcado, exemplo de código relacionado a mais de um concern, dúvidas e problemas surgidos durante a atribuição)
métricas geradas pela ferramenta com base na atribuição feita pela sua equipe
conclusões (que concerns vocês acham que são crosscutting, em relação a que outro concern? as métricas foram úteis? estão corretas? por que?)
antes da aula, colocar a sua apresentação (arquivo ppt ou pdf), e o código analizado e marcado com o ConcernTagger, no site do seu projeto
colocar link para o site do seu projeto na seção Projetos realizados mais abaixo
5/9 (8hs, no laboratório C019 - Grad3): Discutir identificação de concerns através da detecção de código duplicado
11/9: Usar a ferramenta de detecção de clones de código para identificar concerns no estudo de caso (segunda parte do projeto)
12/9 (8hs, na sala D-002): Apresentar resultados do seu projeto
planejar a sua apresentação para 10 minutos, com slides de acordo com o modelo, destacando
gráfico de clones de código, gerado pela ferramenta
exemplos de clones encontrados
parâmetros usados para configuração da ferramenta, quantidade de clones encontrados, lista de concerns associados a estes clones, quantidade de clones por concern
colocar a sua apresentação no site do seu projeto, antes da aula
18/9 (10hs, na sala D-002): Discutir construções básicas de AspectJ
estudar em detalhe Getting started with AspectJ, de Gregor Kiczales et al, Communications of the ACM, 44(10), pp. 59-65, October 2001.
estudar em detalhe Distribution and Persistence as Aspects, de Sérgio Soares, Paulo Borba, e Eduardo Laureano, Software: Practice & Experience, 36(7):711-759, 2006. John Wiley & Sons.
estudar em detalhe o artigo I want my AOP!, de Ramnivas Laddad, JavaWorld.com, 2002, partes 1 e 2
caso interessado em saber mais sobre tratamento de concorrência, olhar Concurrency Manager, de Sérgio Soares e Paulo Borba, First Latin American Conference on Pattern Languages of Programming - SugarLoafPLoP'01, pages 221-231, Rio de Janeiro, Brazil, October 2001.
19/9 (8hs, na sala D-002): Discutir construções avançadas de AspectJ
estudar em detalhe I want my AOP!, de Ramnivas Laddad, JavaWorld.com, 2002, parte 3
olhar e tirar dúvidas em The AspectJ Programming Guide, que explica a linguagem em detalhe e serve de manual de referência, e The AspectJ 5 Development Kit Developer's Notebook, que discute as principais mudanças na linguagem devido aos novos recursos de Java 5.
25/9 (10hs, no laboratório C019 - Grad3): Resolver exercícios de AspectJ
26/9: (8hs, na sala D-002): Discutir detalhes da semântica estática e dinâmica de AspectJ
estudar em detalhe os exercícios
estudar problemas apontados em Controlling Aspect Reentrancy, de É. Tanter, Journal of Universal Computer Science, 2008.
estudar problemas apontados em Tool support for understanding and diagnosing pointcut expressions, de Ye, L. and De Volder, K. 2008, 7th international Conference on Aspect-Oriented Software Development (Brussels, Belgium, March 31 - April 04, 2008). AOSD '08. ACM, New York, NY, 144-155.
estudar problemas apontados em StrongAspectJ: flexible and safe pointcut/advice bindings, de De Fraine, B., Südholt, M., and Jonckers, V. 2008. 7th international Conference on Aspect-Oriented Software Development (Brussels, Belgium, March 31 - April 04, 2008). AOSD '08. ACM, New York, NY, 60-71.
2/10: (10hs, na sala D-002): Fazer exame escrito 1
3/10 (8hs, na sala D-002): Discutir padrões de projeto e refactoring orientado a aspectos
estudar em detalhe Modularizing design patterns with aspects: a quantitative study, de Alessandro Garcia, Cláudio Sant'Anna, Eduardo Figueiredo, Uirá Kulesza, Carlos Lucena, e Arndt von Staa. In Proceedings of the 4th international conference on Aspect-oriented software development, March 2005.
estudar em detalhe AspectJ Idioms for Aspect-Oriented Software Construction, de Hanenberg, S.; Schmidmeier, A.; Unland, R.In. In 8th European Conference on Pattern Languages of Programs (EuroPLoP), Germany 2003.
estudar em detalhe Deriving refactorings for AspectJ, de Leonardo Cole e Paulo Borba. In Proceedings of the 4th international conference on Aspect-oriented software development, March 2005.
estudar em detalhe Towards a Catalogue of Refactorings and Code Smells for AspectJ, de Monteiro M.P., Fernandes J.M. Transactions on Aspect-Oriented Software Development (TAOSD), A. Rashid, M. Aksit (Eds.), Springer LNCS vol. 3880/2006, p. 214 – 258.
9/10: Reestruturar o estudo de caso escolhido pela sua equipe para implementar crosscutting concerns com aspectos, inclusive evitando a duplicação de código crosscutting (terceira parte do projeto)
sempre que adequado, usar os refactorings do Eclipse, mas verificar as pré-condições extras necessárias quando aspectos são usados
sempre que adequado, usar refactorings orientados a aspectos referenciados na aula anterior
sempre que adequado, usar padrões de projeto orientados a aspectos e idiomas AspectJ referenciados na aula anterior
registrar que refactorings, padrões e idiomas foram usados, e quantidade de vezes que cada um foi utilizado
registrar que modificações no código não correspondem aos refactorings, padrões e idiomas referenciados na aula anterior
usar a ferramenta de detecção de códigos duplicados para verificar a qualidade da versão resultante do estudo de caso
identificar que mudanças feitas foram derivadas de sugestões de resultados de partes anteriores do projeto, e quais resultaram da execução desta parte do projeto; contrastar resultados anteriores do projeto com os resultados atuais (tipo os crosscutting concerns identificados na primeira parte foram todos modularizados? por que? os clones detectados na segunda parte foram todos modularizados? por que?)
10/10: Continuar a atividade anterior (terceira parte do projeto)
16/10: Continuar a atividade anterior (terceira parte do projeto)
17/10: Continuar a atividade anterior (terceira parte do projeto)
23/10: Continuar a atividade anterior (terceira parte do projeto)
24/10: Continuar a atividade anterior (terceira parte do projeto)
30/10 (10hs, no laboratório C019 - Grad3): Apresentar resultados do seu projeto
cada membro da equipe deve ser capaz de falar sobre qualquer parte do código original e resultante
preparar apresentação resumindo os resultados, com indicadores, percentuais e gráficos ilustrando os principais pontos solicitados na descrição da terceira parte do projeto, de acordo com o modelo
antes da aula, colocar a sua apresentação, e o código reestruturado, no site do seu projeto
1 - HealthWatcher (hemr)
2 - HealthWatcher (apba, fval)
3 - PetStore 2.0 (gkmo)
4 - Jomic (arfs, fns2)
5 - aKademie (tvsd)
31/10 (8hs, no laboratório C019 - Grad3): Apresentar resultados do seu projeto
1 - Jajuk Advanced Jukebox (lma4, macfx)
2 - Jajuk Advanced Jukebox (fsf2, pvcv)
3 - MobileMedia (tmsf, vhco)
4 - Plugin para o Since (dmc4)
6/11 (10hs, na sala D-002): Discutir reconciliação de modularidade OO com modularidade OA
estudar em detalhe Specifying design rules in aspect-oriented systems, de Marcos Dósea, Alberto Costa Neto, Paulo Borba, e Sérgio Soares. In I Latin American Workshop on Aspect-Oriented Software Development - LA-WASP'2007, affiliated with SBES'07, pages 67-78, João Pessoa-PB, Brazil, October 2007.
7/11: Descrever design rules para estudo de caso escolhido pela sua equipe
13/11 (10hs, no laboratório C019 - Grad3): Apresentar resultados do seu projeto
mostrar código das design rules identificadas, de acordo com o roteiro.
colocar código das design rules identificadas no site do projeto, antes da aula
14/11 (8hs, na sala D-002): Discutir tendências da construção de software e suas linguagens
estudar os slides, só para quem tiver interesse
20/11 (10hs, na sala D-002): Fazer exame escrito 2
HealthWatcher (hemr)
Jajuk Advanced Jukebox (lma4, macfx)
Jomic (arfs, fns2)
HealthWatcher (apba, fval)
PetStore 2.0 (gkmo)
MobileMedia (tmsf, vhco)
Jajuk Advanced Jukebox (fsf2, pvcv)
Plugin para o Since (dmc4)
aKademie (tvsd)
A nota da primeira unidade corresponde às notas dos exames escritos; a nota da segunda unidade é definida pela participação em sala e pelas notas das várias partes do projeto e apresentações.
-- CarlosEduardoPontual - 31 Oct 2008 -- FernandaDamorim - 28 Oct 2008 -- FernandaDamorim - 30 Sep 2008 -- PauloBorba - 26 Sep 2008 -- FernandaDamorim - 11 Sep 2008 -- LeopoldoTeixeira - 05 Sep 2008 -- LeopoldoTeixeira - 04 Sep 2008 -- LeopoldoTeixeira - 26 Aug 2008 -- CarlosEduardoPontual - 18 Aug 2008 -- CarlosEduardoPontual - 12 Aug 2008 -- PauloBorba - 06 Aug 2008
txt README_-_ConcernTagger.txt manage 3.3 K 2008-08-18 - 22:10 CarlosEduardoPontual instruções do concern tagger