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
Download

Programação orientada a Aspectos