Programação orientada a AspectosRadio 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 cross-cutting concerns em relação a Dados