Programação orientada a Aspectos Radio Manager System Equipe • • • • • Caio César Neves de Oliveira João da Rocha Pascoal Neto João Paulo Sabino de Moraes Mário Barbosa de Araújo Júnior Tiago Farias Silva Radio Manager System - RMS • Sistema de organização e gerenciamento de estações de rádio FM • Visa facilitar o trabalho da equipe organizadora de eventos da estação • Oferece suporte a decisões relativas à programação da rádio FM ▫ Geração de Relatórios ▫ Estatísticas ▫ Dados pessoais e financeiros Principais funcionalidades • • • • • Gerenciar funcionários Gerenciar programas da rádio Gerenciar músicas Gerar relatório financeiro Gerar relatório de RH • Número de classes: 68 • Número de linhas de código: 15.034 Concerns • Interface Gráfica ▫ Direcionado para a classe da GUI • Fachada ▫ Direcionado para a classe Fachada e Interface • Transação ▫ Espalhado em diversas classes que realizam transação • Negócio ▫ Espalhado em todas as classes de negócio Concerns • Controle de Negócio ▫ Espalhado nas classes que controlam funcionalidades de outras classes • Exceção ▫ Relacionado às classes de Excção do sistema • Dados ▫ Direcionado às classes que se comunicam com classes de transação • Debug ▫ Relacionado com comandos de print para debug Concerns • Foram considerados concerns, requisitos satisfatórios ao objetivo geral do nosso sistema. • Interface, exceção, negócios e dados são necessários para estabelecer a base do sistema. • Os concerns 'transação' e 'controle de negócios' são úteis ao banco de dados e às técnicas de manipulação de dados respectivamente. Problemas surgidos e dúvidas quanto aos concerns • Houve dúvida quanto a criação do concern Fachada possuindo Fachada e Interface • Impossibilidade de criação do concern Eventos • Os concerns possuem apenas o nome dos métodos ou os atributos das classes ▫ Deficiências do ConcernTagger Atividade de atribuição de concerns • 10.222 linhas de códigos marcadas • Tempo total levado para marcar: 9-12h, 14-17h = aproximadamente 6h • Não há trechos de código pertencente a mais de um concern Código relacionado Código relacionado Métricas Conclusões • As métricas ajudaram a identificar os concerns com maiores focos de crosscutting • Foram geradas pelo framework ConcernTagger e tudo depende se identificarmos corretamente os concerns pra cada atributo e método • Debug é um exemplo de concern que não é cross-cutting • Negócio e Transação são exemplo de crosscutting concerns em relação a Dados