Professor: Fernando Castor
Nome oficial: Tópicos Avançados em Linguagens de Programação 3 (pós-graduação), Programação com Componentes (graduação)
Dias, horários e local: terças e quintas, das 14h00m às 16h00m, na sala D220.
Lista de email: aop-ufpe, assine já!
Cronograma
11/8: Apresentação da disciplina
13/8: Não houve aula (falta de luz)
18/8: Não houve aula (Curso de Integração de Novos Docentes)
20/8: Discutir problemas de modularidade com orientação a objetos e conceitos básicos de orientação a aspectos
25/8: Definição dos projetos dos alunos.
27/8: Estudar cuidadosamente 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.
1/9: Discutir o artigo.
3/9: 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.
8/9: Definir os artigos que serão apresentados pelos alunos.
10/9: Discutir o artigo.
15/9: Continuar discussão do artigo e definir os projetos da disciplina.
17/9: Preparar os seminários.
22/9: Seminários dos alunos. Cada seminário consistirá em uma apresentação com 30 a 35 mins., mais perguntas do professor e dos outros alunos. Os outros alunos devem ter lido pelo menos os resumos, introduções e conclusões dos artigos. Os seguintes artigos serão apresentados nesta primeira etapa:
24/9: Estudar em detalhe Discovering Early Aspects, de Elisa Baniassad, Paul C. Clements, Joao Araujo, Ana Moreira, Awais Rashid e Bedir Tekinerdogan. IEEE Software, 23(1):61-70, 2006.
29/9: Discutir o artigo.
1/10: Preparar a segunda leva de seminários.
6/10:Não havera aula (SBES).
8/10:Não havera aula (SBES).
13/10: Seminários dos alunos. Cada seminário consistirá em uma apresentação com 30 a 35 mins., mais perguntas do professor e dos outros alunos. Os outros alunos devem ter lido pelo menos os resumos, introduções e conclusões dos artigos.
15/10: Estudar em detalhe Composing architectural aspects based on style semantics, de Christina Chavez, Alessandro Garcia, Thais Batista, Marcel Oliveira, Claudio Sant'Anna e Awais Rashid. In Proceedings of the 8th ACM International conference on Aspect-oriented software development. Charlottesville, USA, pages 111-122, 2009.
20/10: Discutir o artigo
22/10 Estudar em detalhe Exception Flows made Explicit: An Exploratory Study, de Nélio Cacho, Francisco Dantas, Alessandro Garcia, Fernando Castor. In Proceedings of the 23rd Brazilian Symposium on Software Engineering. Fortaleza, Brazil, October 2009.
27/10 Discutir o artigo
29/10 Desenvolver o projeto da disciplina.
3/11 Desenvolver o projeto da disciplina.
5/11 Desenvolver o projeto da disciplina.
10/11 Desenvolver o projeto da disciplina.
12/11 Desenvolver o projeto da disciplina.
17/11 Apresentações dos projetos da disciplina.
20/11 Monografia. Prazo: 4/12/2009. A monografia deve consistir em até 15 páginas de acordo com o modelo LNCS.
Sullivan, K., Griswold, W. G., Song, Y., Cai, Y., Shonle, M., Tewari, N., and Rajan, H. 2005. Information hiding interfaces for aspect-oriented design. SIGSOFT Softw. Eng. Notes 30, 5 (Sep. 2005), 166-175. DOI= http://doi.acm.org/10.1145/1095430.1081734
Alberto Costa Neto, Rodrigo Bonifacio, Marcio Ribeiro, Carlos Eduardo Pontual, Paulo Borba, Fernando Castor. A Design Rule Language for Aspect-Oriented Programming. Não-publicado (disponível mediante requisição).
Elias Queiroga
Cunha, C. A., Sobral, J. L., and Monteiro, M. P. 2006. Reusable aspect-oriented implementations of concurrency patterns and mechanisms. In Proceedings of the 5th international Conference on Aspect-Oriented Software Development (Bonn, Germany, March 20 - 24, 2006). AOSD '06. ACM, New York, NY, 134-145. DOI= http://doi.acm.org/10.1145/1119655.1119674
Maoz, S. and Harel, D. 2006. From multi-modal scenarios to code: compiling LSCs into aspectJ. In Proceedings of the 14th ACM SIGSOFT international Symposium on Foundations of Software Engineering (Portland, Oregon, USA, November 05 - 11, 2006). SIGSOFT '06/FSE-14. ACM, New York, NY, 219-230. DOI= http://doi.acm.org/10.1145/1181775.1181802
Filipe Almeida
Garcia, A., Sant'Anna, C., Figueiredo, E., Kulesza, U., Lucena, C., and von Staa, A. 2005. Modularizing design patterns with aspects: a quantitative study. In Proceedings of the 4th international Conference on Aspect-Oriented Software Development (Chicago, Illinois, March 14 - 18, 2005). AOSD '05. ACM, New York, NY, 3-14. DOI= http://doi.acm.org/10.1145/1052898.1052899
Figueiredo, E., Cacho, N., Sant'Anna, C., Monteiro, M., Kulesza, U., Garcia, A., Soares, S., Ferrari, F., Khan, S., Castor Filho, F., and Dantas, F. 2008. Evolving software product lines with aspects: an empirical study on design stability. In Proceedings of the 30th international Conference on Software Engineering (Leipzig, Germany, May 10 - 18, 2008). ICSE '08. ACM, New York, NY, 261-270. DOI= http://doi.acm.org/10.1145/1368088.1368124
Projeto
Fernando Calheiros - Investigar oportunidades em que Aspect Oriented Programming poderia beneficiar o desenvolvimento e a modularização do projeto FLiP, assim como analisar alternativas de uso de AOP para plugins do Eclipse e determinar a viabilidade das mesmas para uso no projeto FLiP.
Rafael di Bernardo - Modularização do conjunto de interesses transversais relativos ao tratamento de exceções em um sistema real através do uso de Orientação a Aspectos. A primeira parte do projeto consiste em extrair esses interesses do código base para aspectos com a utilização de Aspectj e de forma “Oblivious”. A segunda etapa será realizada através da abordagem de “Design Rules”. Ao final deste estudo de casos será realizada análise comparativa entre as duas abordagens.
Elias Queiroga - Separação do concern de concorrência utilizando programação orientada a aspectos. A ideia é criar um compilador que leia anotações (regras CSP) no código e gere os aspectos com estas regras. A princípio 2 regras serão utilizadas: prefixo e interleave.
Avaliação
Participação efetiva nas aulas, questionando, comentando, criticando e pensando em como adaptar e aplicar as idéias vistas