EH-Meter Uma Ferramenta para Coleta de Métricas de Tratamento de Exceções
|
|
- Stella Canto
- 5 Há anos
- Visualizações:
Transcrição
1 EH-Meter Uma Ferramenta para Coleta de Métricas de Tratamento de Exceções Júlio César Taveira 1, Fernando Castor 2, Sergio Soares 1,2 1 Departamento de Sistemas e Computação Universidade de Pernambuco (UPE) Recife PE Brasil 2 Centro de Informática Universidade Federal de Pernambuco (UFPE) Recife PE Brasil Resumo {jcft2, scbs}@dsc.upe.br, castor@cin.ufpe.br A maioria das ferramentas de coleta de métricas existentes não contemplam linguagens de programação orientadas a aspectos e adicionalmente, implementam métricas genéricas, nem sempre ideais para avaliar atributos de qualidade relativos a interesses específicos do sistema. Este trabalho apresenta uma ferramenta que coleta métricas referentes ao interesse de tratamento de exceções em sistemas escritos nas linguagens Java e AspectJ. A ferramenta proposta foi utilizada na coleta de métricas em vários sistemas escritos nessas duas linguagens. Abstract Most of the existing metrics collection tools do not cover aspect-oriented programming languages. In addition, these tools implement generic metrics, not always appropriate to evaluate quality attributes pertaining to specific system concerns. This work presents a metrics collection tools specifically targeting the exception handling concern and capable of working with both Java and AspectJ programs. The proposed tool was employed to measure a number of software systems written in both languages. 1. Introdução Métricas estáticas de código são amplamente utilizadas para avaliar atributos de qualidade de sistemas de software [Sommerville 2007]. Métricas de código podem fornecer desde informações básicas, como número de linhas de código e de módulos no sistema, até informações mais refinadas como as dependências entre os elementos do sistema e o quão focados esses elementos são [Ceccato e Tonella 2004, Eaddy et al. 2007]. Idealmente, métricas de código devem ser coletadas de maneira automática, a fim de acelerar o processo de medição, evitar os erros inerentes à coleta manual e garantir a uniformidade dos resultados, tornando possível a realização de comparações. Existem diversas ferramentas capazes de coletar métricas estáticas de código a partir de
2 programas escritos em diferentes linguagens de programação. Por exemplo, Metrics 1 e FindBugs 2 coletam diversas métricas a partir de programas escritos em Java. Apesar da crescente popularidade da programação orientada a aspectos (POA) [Kiczales et al. 1997], há poucas ferramentas de coleta de métricas capazes de medir programas escritos em linguagens de POA. Um exemplo de tais ferramentas é o AOPMetrics 3, que coleta métricas de programas em AspectJ [Laddad 2003], uma extensão orientada a aspectos da linguagem Java. Para que POA possa se consolidar como o próximo passo na evolução das linguagens de programação, essa técnica precisa ser avaliada exaustivamente, idealmente tanto qualitativa quanto quantitativamente. Até onde foi possível averiguar, todas as ferramentas de coleta de métricas existentes trabalham com métricas gerais, aplicáveis a todos os interesses (do inglês: concerns) de um sistema. Consequentemente, não é possível avaliar alguns atributos de qualidade no contexto de interesses específicos. Entretanto, alguns autores [Castor et al. 2009, Eaddy et al. 2008, Couto et al., 2009] acreditam que, para avaliar o impacto de novas abordagens de desenvolvimento, como POA, em atributos de qualidade como reuso, métricas focadas em interesses específicos são mais eficazes do que as independentes de interesse. Utilizar apenas métricas que se aplicam ao sistema como um todo, sem levar em conta os interesses que o compõem, pode fazer com que a avaliação de tais abordagens não reflita adequadamente seus benefícios e limitações. Este trabalho propõe uma ferramenta de coleta de métricas que visa preencher parcialmente essa lacuna. A ferramenta proposta, chamada de EH-Meter, é capaz de coletar 11 métricas descritas em diferentes trabalhos na literatura [Eaddy et al. 2007, Sant Anna et al. 2003] a partir de programas escritos em Java ou AspectJ. Dez dessas métricas lidam com um interesse específico, tratamento de exceções. O interesse de tratamento de exceções foi escolhido por dois motivos: (i) é o alvo de vários trabalhos realizados pelos autores no passado; e (ii) é um interesse demarcado sintaticamente no código do programa, o que evita dificuldades ligadas à mineração de interesses [Robillard e Murphy 2002] e permite que o foco se mantenha na atividade de medição. 2. Funcionalidades Nessa seção são descritas as métricas que foram implementadas e maneira como o EH- Meter pode ser utilizado na prática. Métricas Implementadas. O EH-Meter é capaz de colher diversas métricas relativas ao interesse de tratamento de exceções. As métricas escolhidas são divididas em dois grupos: métricas de tamanho e métricas de interesses. O primeiro grupo engloba diversas métricas que visam determinar a quantidade de código em um sistema relativa ao interesse de tratamento de exceções. Para tanto, inclui desde métricas tradicionais, como numero de linhas de código (tanto total quanto especificamente de tratamento de exceções) e outras menos comuns, como números de blocos catch e finally. Essas métricas são apresentadas e descritas na parte superior da tabela Tabela 1. Para as métricas NOT, NOC e NOF, caso o bloco try (catch, finally) apareça dentro de outro bloco catch ou finally (mas não try), ele não é levado em conta. A
3 justificativa para isso é que, para fins de separação de interesses, tal bloco não precisaria ser separado pois não está misturado a outros interesses. O outro grupo de métricas, relativas a separação de interesses, tem o intuito de medir o quanto o código está direcionado aos interesses analisados, que no caso desse trabalho é o tratamento de exceções, e separado do código relativo aos outros interesses do sistema. Essas métricas são também apresentadas na Tabela 1, na parte inferior. As três primeiras delas mostram valores absolutos, para os valores coletados. As duas últimas métricas relativas a interesses contabilizam de forma normalizadas os valores apresentados. Para todas as métricas, um valor menor implica em um resultado melhor. Execução e Resultados da Ferramenta. Do mesmo modo que a ferramenta AopMetrics, a ferramenta EH-Meter também funciona através de tasks do Apache Ant 4. Através de um arquivo de configurações XML é especificado quais serão os programas Java que a ferramenta vai analisar, quais as bibliotecas que devem ser utilizadas como referência, versão da linguagem e o nome do arquivo de saída. Arquivo de saída produzido pela ferramenta é uma planilha eletrônica no padrão do Microsoft Excel. Essa planilha contém, para cada componente do sistema, o valor de cada uma das métricas, descritas na Seção 2.1. Apenas a métrica DOS depende do sistema completo. 3. Implementação O EH-Meter é uma extensão da ferramenta AopMetrics. Para facilitar a implementação do EH-Meter, recursos como os parsers para Java e AspectJ o engenho de coleta de métricas do AopMetrics foram utilizados. Para a maior parte das métricas, foi necessário apenas implementar as classes responsáveis pelas novas métricas. Algumas delas, porém, exigem que a medição seja feita de um modo diferente do que tradicionalmente acontece no AopMetrics, levando em conta o sistema como um todo. Para estes casos, foi necessário modificar o engenho de medição do AopMetrics. Arquitetura e Modificações no Código Original. A arquitetura da ferramenta é simples, dividida em módulos (pacotes) com propósitos bem definidos. No pacote principal se encontram o código responsável por receber entradas do usuário para execução da ferramenta e outros recursos comuns a toda a ferramenta, como o engenho de coleta de métricas. Em outros pacotes, source e ajdt, são encontrados elementos que fazem referência a um projeto Java e AspectJ e transformações necessárias, respectivamente. O pacote metrics contém as classes que implementam as métricas a serem coletadas. A maior parte das alterações aplicadas ao AopMetrics resultaram em novas classes sendo incluídas neste pacote. Os últimos pacotes, export e results, contém o código responsável por exportar os resultados da medição para planilhas em formato XLS e como são as saídas das métricas. A Figura 1 mostra as dependências entre os pacotes do sistema. 4
4 Tabela 1. Resumo das métricas, grupos e respectivas descrições. Group Metric Description Métricas de Tamanho Métricas de Interesse s LOCC NOT NOC NOF LOCEH NEH CDC CDO CDLOC LOF Lines of Common Code: Linhas de código do sistema, excluindo-se comentários e linhas em branco. Number of Try blocks: Número de blocos try. Number of Catch blocks: Número de blocos catch. Number of Finally blocks: Número de blocos finally. Lines of Exception Handling Code: Linhas de código relativo ao o tratamento de exceções. Number of Exception Handlers: Número de blocos de código relativo ao tratamento de exceções. Concern Diffusion over Component [Sant Anna et al 2003]: Conta o número de componentes (classes, aspectos, interfaces) que incluem código de tratamento de exceções. Concern Diffusion over Operation [Sant Anna et al 2003]: Conta o número de operações (métodos, advices) que incluem código de tratamento de exceções. Concern Diffusion over Lines of Code [Sant Anna et al 2003]: Conta o número de pontos de transição para cada interesse através das linhas de códigos. O uso dessa métrica necessita do processo de sombreamento dentro do código, com áreas sombreadas e áreas não-sombreadas. Lack of Focus: Essa é a medição da perda de foco de cada componente, para todos os interesses. O resultado é normalizado entre 0 (completamento focado) e 1 (completamente sem foco). O resultado dessa métrica é obtido a partir do valor da métrica DOF (Degree of Focus) [Eaddy et al. 2007]. LOF = 1 DOF DOS Degree of scattering [Eaddy et al. 2007]: Essa métrica mede a variação de concentração de um interesse por todos os componentes. O resultado é normalizado entre 0 (completamento localizado) e 1 (completamente distribuído). A primeira modificação para dar suporte às novas métricas diz respeito a como é calculado o valor para cada uma. Normalmente, as medições são executadas individualmente para cada componente (classe, interface e aspecto). Assim, cada métrica é executada uma vez para cada componente, retorna o valor resultante e a execução prossegue para o próximo componente, sem um valor intervir no outro. A métrica DOS, porém, é calculada para todos os componentes do sistema. Logo, foi necessário levar em conta os valores relativos a cada componente do sistema para poder fazer o calculo da métrica. Esse comportamento precisou ser incorporado ao engenho de coleta do AopMetrics, já que este é construído partindo da suposição de que todas as métricas podem ser coletadas de forma independente, para cada componente. A segunda modificação diz respeito à listagem de todas as métricas. A classe Metrics contém todas as métricas que devem ser coletadas. Para o EH-Meter, foram adicionadas as novas métricas implementadas e suas respectivas strings de identificação. Ponto comum entre todas as métricas as métricas é a interface MetricsCalculator. Entretanto, essa interface é aplicável apenas para métricas que não precisam ser coletadas globalmente. Logo, a ultima modificação consistiu na criação de uma interface para abranger as métricas que sejam calculadas utilizando dados de todo o sistema. Essa interface foi denominada de MetricsCalculatorGeneral e pode ser usada na implementação de novas métricas com essa característica. Novas Métricas. Para as novas métricas implementadas na maioria dos casos foi extendida a classe ASTVisitor, para detectar ocorrências de trechos de código relativos ao tratamento de exceções. Esses trechos de código na maioria dos casos foram ocorrências de blocos try (catch, finally), declarações de método e blocos de código. Para as métricas de tamanho (mostradas na Tabela 1), os resultados foram são
5 obtidos apenas através da contagem das ocorrências do pedaço de código desejado. Para métricas de interesses, interfaces não foram consideradas por não incluírem comportamento, sendo apenas analisadas classes e aspectos. CDC e CDO foram bem simples, bastando apenas marcar para cada componente e operação, respectivamente, a existência de haver códigos tratadores de exceções. Para LOF (medida utilizando DOF) e DOS, apenas foi necessário utilizar informações de outras métricas e trabalhar corretamente com os valores. A Métrica CDLOC é a que apresenta a implementação mais complexa. Em todos os trabalhos anteriores dos quais temos conhecimento [Castor Filho et al. 2006, Castor et al. 2009, Garcia et al. 2005, Sant'Anna et al. 2003], essa métrica foi coletada manualmente. A Figura 2 mostra um exemplo de como é diferenciado as áreas de transições entre o interesse do tratamento de exceção (fundo amarelo) e o interesse de comportamento normal do sistema (fundo branco). Na implementação, foi necessário detectar e marcar essas áreas, a fim de calcular as transições. Para essa métrica, têm que ser levados em conta diversos casos de transição entre o código referente ao tratamento de exceções e o código relativo ao comportamento normal do sistema. Figura 1. Diagrama de Interação entre pacotes. public static void example() { System.out.println("Starting!"); try{...//código que pode levantar exceção }catch (Exception e){...//código que trata a exceção; } System.out.println("Step 1 end!"); try{...//código que pode levantar exceção }catch (Exception e2){...//código que trata a exceção; } } Figura 2. Exemplo de código com suas transições. 4. Um Estudo de Caso Atualmente, está sendo conduzido um estudo com o objetivo de identificar o efeito da modularização de tratamento de exceções usando POA no reuso do código desse interesse. Neste novo estudo, o EH-Meter é usado em todas as atividades de medição. Foram utilizados três sistemas, em versões Java e AspectJ, com diferentes características. No total, as medições foram aplicadas a nove versões distintas, 3 em AspectJ e 6 em Java. Enquanto a medição manual feita por dois desenvolvedores durou cerca de 16 horas para apenas uma das versões, a ferramenta coletou as informações em menos de um minuto. Além disso, a ferramenta foi empregada diversas vezes para refazer as medições de forma rápida. Adicionalmente, a contagem manual apresentou problemas de uniformidade que não ocorreram com a ferramenta. O emprego de métricas centradas em um interesse ressaltou que POA de fato promove o reuso de tratadores de exceções. Também deixou claro que o código de tratamento de exceções cresce de maneira não desprezível quando extraído para aspectos em um sistema não-trivial. A combinação dessas duas descobertas complementa estudos anteriores [Castor Filho et al. 2006, Lippert e Lopes 2000] sobre POA e tratamento de exceções. Mais informações sobre esse estudo podem ser obtidas em outro trabalho [Taveira et al. 2009].
6 5. Conclusão Neste trabalho foi apresentada a ferramenta EH-Meter, que implementa métricas específicas de tratamento de exceções. Foram descritas as métricas implementadas pela ferramenta, bem como sua arquitetura e as principais escolhas de projeto envolvidas no seu desenvolvimento. O EH-Meter é capaz de coletar métricas tanto a partir de programas escritos em Java quanto de programas em AspectJ. Até onde pudemos averiguar, o EH-Meter é a primeira ferramenta capaz de coletar métricas para um interesse específico de forma completamente automática. No Endereço, a ferramenta EH-Meter está disponível. No mesmo endereço também está disponível o código fonte e também outras informações. A licença do EH-Meter é a GPL. Referências Castor Filho, F. et al. (2006), Exceptions and aspects: The devil is in the details, In: 14th SIGSOFT FSE, pages Castor, F. et al. (2009), On the Modularization and Reuse of Exception Handling with Aspects. Submitted to Software Practice & Experience. Ceccato, M. and Tonella P. (2004), Measuring the Effects of Software Aspectization, In: 1st Workshop on Aspect Reverse Engineering (WARE 2004). Couto, C. F. M. et al. (2009), Estimativa de Métricas de Separação de Interesses em Processos de Refatoração para Extração de Aspectos., In: VI Workshop de Manutenção de Software Moderna, Ouro Preto. p. 1-8 Eaddy, M., Aho, A., Murphy, G. C. (2007), Identifying, Assigning, and Quantifying Crosscutting Concerns, In: Proceedings of the 1 st ACoM Workshop. Eaddy, M. et al. (2008), Do Crosscutting Concerns Cause Defects?, In: IEEE Transactions on Software Engineering (34):July 2008, pp Garcia, A. et al. (2005), Modularizing Design Patterns with Aspects: A Quantitative Study, In: 4th AOSD. Kickzales, G. et al. (1997), Aspect-Oriented Programming, In: 11 th ECOOP. Laddad, R. (2003), AspectJ in Action, 1 st ed., Manning. Lippert, M.;Lopes, C. (2000), A study on exception detection and handling using aspect-oriented programming, In: Proceedings of the 22nd ICSE, pages Robillard, M. P.; Murphy, G. C. (2002), Concern graphs: finding and describing concerns using structural program dependencies, In: Proc. of the 24 th ICSE. Sant'Anna, C. et al. (2003), On the Reuse and Maintenance of Aspect-Oriented Software: An Assessment Framework, In: XVII SBES, Manaus, Brazil. Sommerville, I. (2007), Software Engineering, 8 th ed., Addison-Wesley. Taveira, J. C. et al. (2009) Assessing Intra-Application Exception Handling Reuse with Aspects. Submitted to SBES'2009.
Estimativa de Métricas de Separação de Interesses em Processos de Refatoração para Extração de Aspectos
Estimativa de Métricas de Separação de Interesses em Processos de Refatoração para Extração de Aspectos César Francisco de Moura Couto 1, Jaqueline Faria de Oliveira 2, Marco Tulio Valente 2 1 Departamento
UNIVERSIDADE FEDERAL DE P ERNAMBUCO
UNIVERSIDADE FEDERAL DE P ERNAMBUCO GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO CENTRO DE INFORMÁTICA 2015.2 Programação Orientada a Aspectos com AspectJ nos frameworks Java atuais PROPOSTA DE TRABALHO DE GRADUAÇÃO
9 Conclusão e trabalhos futuros
255 9 Conclusão e trabalhos futuros O aumento da complexidade das aplicações de software de hoje em dia e o advento de tecnologias inovadoras e recentes fazem com que os sistemas de software incorporem
3 Estado da Arte e Trabalhos Relacionados
29 3 Estado da Arte e Trabalhos Relacionados Neste capítulo resumimos alguns trabalhos existentes na literatura que se relacionam à abordagem de avaliação proposta nesta dissertação. O objetivo de todo
3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks
48 3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks Este capítulo apresenta uma visão geral da contribuição principal deste trabalho: uma abordagem orientada a aspectos para o
15/09/2014. Aula 01: Apresentação. Review to 1 st Exam. Aula 02: Técnicas de Reuso. Panorama de Reuso. Aula 03: POO e Padrões. Bibliografia da Aula 02
Software Reuse Lecture 13 Aula 01: Apresentação Review to 1 st Exam Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com 15 September 2014 Bibliografia Método de avaliação Provas
By Gian Ricardo Berkenbrock & Eduardo Dockhorn da Costa
By Gian Ricardo Berkenbrock & Eduardo Dockhorn da Costa Problema; AOP; Aspect J; Proposta ao Problema; Conclusões; Referências. Desenvolver os tipos abstratos de dados: lista, fila, pilha e deque. Estes
18/10/2013. Resumo. Os mecanismos. Introdução. Padrões de projeto (OO) Compilação condicional
On the Use of Feature-Oriented Programming for Evolving Software Product Lines A Comparative Study Gabriel Coutinho Sousa Ferreira, Felipe Nunes Gaia, Eduardo Figueiredo and Marcelo de Almeida Maia {gabriel,
Extração de Aspectos. PUC Minas Instituto de Informática. Mestrado em Informática. Aluno: Marcelo Nassau Malta
Transformações de Código C para Extração de Aspectos PUC Minas Instituto de Informática Mestrado em Informática Aluno: Marcelo Nassau Malta Orientador: Prof. Marco Túlio de Oliveira Valente Sumário Motivação
Metamodelo para Integração de Ferramentas de Mineração de Interesses Transversais e de Visualização de Software
Metamodelo para Integração de Ferramentas de Mineração de Interesses Transversais e de Visualização de Software Oscar José Fernandes Tanner 1, Rosângela Aparecida Dellosso Penteado 1, Matheus Carvalho
5 Trabalhos Relacionados
5 Trabalhos Relacionados Este capítulo busca apresentar os trabalhos diretamente relacionados com a presente dissertação e as subseções seguintes apresentam os trabalhos focados em ferramentas (Seção 5.1)
4 O Framework de Avaliação
4 O Framework de Avaliação O propósito central do uso de aspectos é melhorar a separação de concerns. Entretanto a orientação a aspectos pode afetar também outros atributos de software, tais como acoplamento,
Composição e Geração de Aplicações usando Aspectos
Composição e Geração de Aplicações usando Aspectos Carlos Alberto de Freitas Pereira Júnior 1 Rosana Teresinha Vaccare Braga 1 1 Programa de Mestrado em Ciências de Computação e Matemática Computacional
Revisão de conceitos Tópicos Avançados em TI Prof. Rossano Pablo Pinto Fevereiro/ v0.1
Revisão de conceitos Tópicos Avançados em TI Prof. Rossano Pablo Pinto Fevereiro/2013 - v0.1 Orientação a objetos Classe Métodos Visibilidade Tipo de retorno Tipo dos parâmetros Atributos Tipo Visibilidade
Técnicas para Reutilização de Software
DCC / ICEx / UFMG Técnicas para Reutilização de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Panorama de Reutilização Frameworks Padrões de projeto Aplicações configuráveis Padrões de
Evento: XXV SEMINÁRIO DE INICIAÇÃO CIENTÍFICA
ANALISANDO A EVOLUÇÃO DAS MÉTRICAS DE MANUTENIBILIDADE DE UM SISTEMA DE SOFTWARE DE INTEGRAÇÃO: MULESOFT 1 ANALYZING THE EVOLUTION OF MANUTENIBILITY MEASURES FROM A SOFTWARE INTEGRATION SYSTEM: MULESOFT
JADEX: A BDI REASONING ENGINE. Alexander Pokahr, Lars Braubach e Winfried Lamersdorf Springer US - Multi-Agent Programming 2005 pp.
JADEX: A BDI REASONING ENGINE Alexander Pokahr, Lars Braubach e Winfried Lamersdorf Springer US - Multi-Agent Programming 2005 pp. 149-174 Volume 15 Motivação Existem muitas plataformas para desenvolvimento
Avaliação e Integração de Ferramentas de Análise Estática de Código
Avaliação e Integração de Ferramentas de Análise Estática de Código Programa de Pós-graduação em Informática Aluno: Sílvio José de Souza Orientador: Marco Túlio de Oliveira Valente 1 Introdução Ferramentas
Uma Abordagem Quantitativa para Desenvolvimento de Software Orientado a Aspectos
Eduardo Magno Lages Figueiredo Uma Abordagem Quantitativa para Desenvolvimento de Software Orientado a Aspectos Dissertação de Mestrado Dissertação apresentada como requisito parcial para obtenção do título
Manipulação de excecões e manipulação de eventos
Manipulação de excecões e manipulação de eventos Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative
ENGENHARIA DE SOFTWARE
ENGENHARIA DE SOFTWARE Teste de Software Verificação e validação Testes de desenvolvimento Testes de release Testes de usuário Desenvolvimento dirigido a testes Kele Teixeira Belloze kelebelloze@gmail.com
JaTS. Java TransformationSystem. Parte 1 27/03/2008. Diêgo Santiago, Leila Soriano e Patrícia Lustosa
JaTS Java TransformationSystem Parte 1 27/03/2008 Diêgo Santiago, Leila Soriano e Patrícia Lustosa Sistema -JaTS 2 Ferramenta e linguagem de transformação de código Java Permite geração e transformação
Aula 01: Apresentação. Revisão para Prova 1. Aula 02: Técnicas de Reuso. Panorama de Reuso. Aula 03: POO e Padrões. Bibliografia da Aula 02
Reutilização de Software Aula 13 Aula 01: Apresentação Revisão para Prova 1 Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com 23 Setembro 2013 Bibliografia Método de avaliação
2. Trabalhos Relacionados
19 acase: Ambiente para Modelagem, Geração de Código e Engenharia Reversa de Software Orientado a Aspectos Thiago Silva-de-Souza¹, ², Wallace Santos Vialle Rettich², Danilo Ferreira Leite², Diego Cardozo
PROJETO ARQUITETURAL PARTE II: PADRÕES DE PROJETO. Projeto de Programas PPR0001
PROJETO ARQUITETURAL PARTE II: PADRÕES DE PROJETO Projeto de Programas PPR0001 QUALIDADE DO PROJETO 2 3 Qualidade do Projeto de Software Modularidade: gerar particionamento em elementos que executam funções
UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular PROGRAMAÇÃO AVANÇADA Ano Lectivo 2017/2018
Programa da Unidade Curricular PROGRAMAÇÃO AVANÇADA Ano Lectivo 2017/2018 1. Unidade Orgânica Ciências da Economia e da Empresa (1º Ciclo) 2. Curso Engenharia Informática 3. Ciclo de Estudos 1º 4. Unidade
Seminário de aspectos: conceitos, características e exemplos
Seminário de aspectos: conceitos, características e exemplos Daniel Bruno Conrado Thiago Gottardi Departamento de Computação Universidade Federal de São Carlos (UFSCar) São Carlos SP Brasil dbconrado@gmail.com,
Disciplina Medições e Qualidade de Software. Tópicos da Disciplina. Método de Avaliação. Qualidade de Software.
Engenharia de Software Aula 19 Disciplina 2012-2 Medições e Qualidade de Software Medição e Qualidade de Software Terças e quintas: 9:25 as 11:05 Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo dcc603@gmail.com
UTILIZAÇÃO DO FRAMEWORK HIBERNATE NA CONSTRUÇÃO DE UM SISTEMA DE INFORMAÇÃO
UTILIZAÇÃO DO FRAMEWORK HIBERNATE NA CONSTRUÇÃO DE UM SISTEMA DE INFORMAÇÃO Anderson Carlos Lopes 1, Luiz Fernando Braga Lopes 1 Universidade Paranaense (UNIPAR) Paranavaí - PR Brasil andersoncarloslopes@hotmail.com,
Identifying thresholds for object-oriented software metrics
Identifying thresholds for object-oriented software metrics Kecia A.M. Ferreira 1 Mariza A.S. Bigonha 1 Roberto S. Bigonha 1 Luiz F.O. Mendes 1 Heitor C. Almeida 1 1 Dept. Computer Science, Federal University
Engenharia de Software Aula 21. Revisão da Prova 2. Eduardo Figueiredo.
Engenharia de Software Aula 21 Revisão da Prova 2 Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo dcc603@dcc.ufmg.br 16 Maio 2018 Aula 16: POO Um programa OO é geralmente constituído de várias classes
Desenvolvimento de uma Linha de Produto de Software para Módulos de Aprendizagem Interativa
Desenvolvimento de uma Linha de Produto de Software para Módulos de Aprendizagem Interativa Danilo Leite Dalmon Orientador: Prof. Dr. Leônidas de O. Brandão Qualificação de Mestrado Instituto de Matemática
Evento: XXV SEMINÁRIO DE INICIAÇÃO CIENTÍFICA
INTEGRAÇÃO DE APLICAÇÕES APLICADA À EXTRAÇÃO E QUALIFICAÇÃO AUTOMÁTICA DE PUBLICAÇÕES DE PESQUISADORES: UM CASO BASEADO NO CURRÍCULO LATTES 1 APPLICATION INTEGRATION APPLIED TO AUTOMATIC EXTRACTION AND
Gerência de Projetos e Qualidade de Software. Prof. Walter Gima
Gerência de Projetos e Qualidade de Software Prof. Walter Gima 1 OBJETIVOS Compreender o processo de gerenciamento de qualidade e as principais atividades do processo de garantia, planejamento e controle
Medidas de Esforço de Desenvolvimento de Software
Medidas de Esforço de Desenvolvimento de Software Unidade 1 Fundamentos de Métricas e Medidas Luiz Leão luizleao@gmail.com http://www.luizleao.com Unidade 1 Fundamentos de métricas e medidas Introdução
APIMiner: Uma Plataforma para Recomendação de Exemplos de Uso de APIs
APIMiner: Uma Plataforma para Recomendação de Exemplos de Uso de APIs João Eduardo Montandon, Marco Túlio Valente Departamento de Ciência da Computação, UFMG {joao.montandon,mtov}@dcc.ufmg.br Resumo. Exemplos
Mineração de Aspectos: Conceitos, Métodos e Ferramentas
Mineração de Aspectos: Conceitos, Métodos e Ferramentas Leandro Maciel Almeida, Thereza Patrícia Pereira Padilha Laboratório de Inteligência Computacional Centro Universitário Luterano de Palmas Caixa
6 A Ferramenta de Medição e Avaliação
77 6 A Ferramenta de Medição e Avaliação Neste capítulo é apresentada a ferramenta AJATO, acrônimo para Ferramenta de Avaliação AspectJ 11. Esta ferramenta permite medir e avaliar sistemas implementados
10/10/2012. Artigo: Autores:
Artigo: Apresentar um estudo sistemático sobre as métricas de acoplamento na Programação Orientada a Aspectos e seu impacto na manutenibilidade e estabilidade do projeto. Autores: Rachel Burrows, Alessandro
Engenharia de Software II
Engenharia de Software II Aula 19 http://www.ic.uff.br/~bianca/engsoft2/ Aula 19-28/05/2006 1 Ementa Processos de desenvolvimento de software Estratégias e técnicas de teste de software Métricas para software
Utilização de técnicas de Process Mining em Sistemas de Middleware Adaptativos Proposta de Trabalho de Graduação
UNIVERSIDADE FEDERAL DE PERNAMBUCO GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA 2017.1 Utilização de técnicas de Process Mining em Sistemas de Middleware Adaptativos Proposta de Trabalho de
UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular PROGRAMAÇÃO AVANÇADA Ano Lectivo 2013/2014
Programa da Unidade Curricular PROGRAMAÇÃO AVANÇADA Ano Lectivo 2013/2014 1. Unidade Orgânica Ciências da Economia e da Empresa (1º Ciclo) 2. Curso Engenharia Informática 3. Ciclo de Estudos 1º 4. Unidade
MODELAGEM DE SISTEMAS. Introdução a Computação e Engenharia de Software. Profa. Cynthia Pinheiro
MODELAGEM DE SISTEMAS Introdução a Computação e Engenharia de Software Profa. Cynthia Pinheiro Introdução Modelagem de Sistemas: A modelagem de um sistema auxilia o analista a entender a funcionalidade
REUSO E REUSABILIDADE
REUSO E REUSABILIDADE Manutenção de Software Profa. Cynthia Pinheiro Antes de mais nada... 2ª Lista de Exercícios Já está disponível no site a 2ª Lista de Exercícios Entrega: dia 03/10, no horário da aula.
The Adaptive Pipeline Aspect Pattern
MAC5715 - Tópicos Avançados em POO Professor: Fábio Kon The Adaptive Pipeline Aspect Pattern Raoni Kulesza e Eduardo Oliveira de Souza 20 de setembro de 2006 1. Objetivos O padrão Adaptive Pipeline Aspect
Reuso de Software Aula Maio 2012
Reuso de Software Aula 19 Tópicos da Aula Engenharia de Software baseada em Componentes (CBSE) Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com Componentes Modelos de Componentes
PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE
PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE ATO CONVOCATÓRIO Nº 006/2016 CONTRATO DE GESTÃO IGAM Nº 002/IGAM/2012 09/2017 1 PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE ATO CONVOCATÓRIO
!!!!! " #!!!! $ +!!!!!! *!! * -! %!! - %.! % - "!! ) $ $ / - %!!0$ 1 - '& 2( - *! * *!0$ - '&.( - *! #
" # $ $ % # & '( ) # * + * $ *, * - % - %. % - " ) $ $ / - % 0$ 1 - '& 2( - * * * 0$ - '&.( - * # 2 1 3 4 5 6 * 7 8 5 / # 7 4 9 &* 5 * # % * ) 7 &* : ; 5 - * < # - 7 4 = 6 5 # * - ) )- 3 $ 1 > 5 = 5 %
Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP:
Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP: 8429016 Definição de MDA OMG (Object Management Group) propôs uma aplicação abrangente das práticas
BibIme - Um Software Gerenciador de Bibliotecas Produzido de Forma Cooperativa
BibIme - Um Software Gerenciador de Bibliotecas Produzido de Forma Cooperativa Dairton Bassi, Kelly Braghetto, Eduardo Colli, Fabio Kon, João Eduardo Ferreira Instituto de Matemática e Estatística Universidade
Professor Emiliano S. Monteiro
Professor Emiliano S. Monteiro To-Do Doing Done Conhecer os processos de desenvolvimento habilita o aluno a realizar uma melhor escolha de processo para uso em projetos futuros. A vantagem de conhecer
Técnicas de Reutilização. Reutilização em Programação Orientada a Objetos. Considere três classes... Reuso de Classes.
DCC / ICEx / UFMG Técnicas de Reutilização Reutilização em Programação Orientada a Objetos Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Reuso de classes Bibliotecas Frameworks Considere três classes
6 Workshop do Projeto ATIFS INPE
6 Workshop do Projeto ATIFS INPE Doutoranda: Regina Lúcia de Oliveira Moraes Orientadora: Profa. Dra. Eliane Martins Estratégia para Testes de Componentes utilizando Injeção de Falhas 1 Índice Injeção
Métricas para análise de complexidade de programas orientados a objetos
Métricas para análise de complexidade de programas orientados a objetos Autor: João Marcelo Moraes Fernandes * Professor Orientador: Dra. Laís do Nascimento Salvador ** Resumo No contexto da Engenharia
Agenda da Aula. Reuso de Software. Tipos de Reuso. Potenciais Problemas. Vantagens de Reuso. Introdução a Reuso de Software
Reuso de Software Aula 02 Agenda da Aula Introdução a Reuso de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com Introdução a Reuso de Software Abordagens de Reuso
Técnicas para Reutilização de Software Prof. Eduardo Figueiredo Estagiário: Johnatan Oliveira
Técnicas para Reutilização de Software Prof. Eduardo Figueiredo Estagiário: Johnatan Oliveira Panorama de Reutilização Frameworks Padrões de projeto Aplicações configuráveis Padrões de arquitetura Linha
UML. Modelando um sistema
UML Modelando um sistema Fases do desenvolvimento de Software Análise de requisitos Análise Projeto Programação Análise de Requisitos Esta fase captura as intenções e necessidades dos usuários do sistema
Uma Abordagem Quantitativa para Desenvolvimento de Software Orientado a Aspectos
Uma Abordagem Quantitativa para Desenvolvimento de Software Orientado a Aspectos Eduardo Figueiredo 1, 2,, Carlos Lucena 1, Alessandro Garcia 2 1 Departamento de Informática, PUC-Rio, Brasil 2 Computing
Combinação e Aplicação de Técnicas para o Desenvolvimento de Software Orientado a Aspectos
Combinação e Aplicação de Técnicas para o Desenvolvimento de Software Orientado a Aspectos Gabriel Costa Silva, Munif Gebara Junior, Daniela Eloise Flor Curso de Sistemas de Informação, Universidade Paranaense
10 Lições Aprendidas ao Desenvolver um Estudo na Indústria
10 Lições Aprendidas ao Desenvolver um Estudo na Indústria Manuele Ferreira OPUS Research Group LES PUC-Rio {manueleferreira}@inf.puc-rio.br LES DI PUC-Rio - Brazil OPUS Group Método Pesquisa-ação Solução
2 Fluxos no Ciclo de Vida do Processo Unificado. O Processo Unificado consiste da repetição de uma série de ciclos durante a vida de um sistema.
Processo Unificado Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Ciclo de Vida - Fluxos Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre
Uma Linha de Produto de Software para Módulos de Aprendizagem Interativa
Uma Linha de Produto de Software para Módulos de Aprendizagem Interativa Danilo Leite Dalmon Orientador: Prof. Dr. Leônidas de O. Brandão Defesa de Mestrado Instituto de Matemática e Estatística - Universidade
Metamodelos para Banco de Dados. Carlos Julian Menezes Araújo Prof. Dr. Robson do Nascimento Fidalgo
Metamodelos para Banco de Dados Carlos Julian Menezes Araújo cjma@cin.ufpe.br Prof. Dr. Robson do Nascimento Fidalgo 1 Agenda Metadados MDA MOF Metamodelos CWM Pacote Relacional Referências 2 Metadados
INF1013 MODELAGEM DE SOFTWARE
INF1013 MODELAGEM DE SOFTWARE Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 1 O Paradigma Orientado a Objetos A Linguagem UML Descrição da Arquitetura 1 Programa
Arquitetura de Referência para Projeto Detalhado de Frameworks Transversais de Persistência
Arquitetura de Referência para Projeto Detalhado de Frameworks Transversais de Persistência Aluno: Rogério Lazanha 1 Orientador: Valter Vieira de Camargo 2 ¹Centro Universitário Eurípedes Soares da Rocha
Simulado para CFPS. Questões de Propósito, Tipo e Fronteira. 1. Um dos objetivos da Análise de Pontos de Função é:
Questões de Propósito, Tipo e Fronteira 1. Um dos objetivos da Análise de Pontos de Função é: Simulado para CFPS a) Ajudar no processo de depuração de um software. b) Estimar o tamanho de uma equipe de
Um Estudo Quantitativo das Implementações Orientadas a Aspectos do Padrão Data Access Object
Um Estudo Quantitativo das Implementações Orientadas a Aspectos do Padrão Data Access Object André L. de Oliveira 1, André L. A. Menolli 2, Ricardo G. Coelho 2, Valter V. de Camargo 3, Ricardo A. Ramos
ENGENHARIA DE SOFTWARE MEDIÇÃO E QUALIDADE DE SW
ENGENHARIA DE SOFTWARE MEDIÇÃO E QUALIDADE DE SW How do Programmers learn AOP? Péricles Alves, Alcemir Santos, Eduardo Figueiredo e Fabiano Ferrari Aluno: Adriano Lages dos Santos Toda descoberta da ciência
Objetos e Componentes Distribuídos: EJB e CORBA
: EJB e CORBA Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos
Estudo de Visualizações da Evolução de Códigos Fonte de Software
Estudo de Visualizações da Evolução de Códigos Fonte de Software Marcello Henrique Dias de MOURA Hugo Alexandre Dantas do NASCIMENTO Instituto de Informática Universidade Federal de Goiás Goiânia, Goiás,
Tipos para uma Linguagem de Transformação
Universidade Federal de Pernambuco Graduação em Ciência da Computação Centro de Informática Proposta de Trabalho de Graduação Tipos para uma Linguagem de Transformação Aluno: Orientador: Alexandra Barreto
Aspect Oriented Programming (AOP) Uma visão geral da programação orientada a aspectos. Usando AspectJ
Aspect Oriented Programming (AOP) Uma visão geral da programação orientada a aspectos. Usando AspectJ Objetivos O objetivo dessa apresentação é proporcionar uma visão geral sobre a programação orientada
Aula 3 - Modelos de Processo - cascata, iterativo e incremental e ágil
Aula 3 - Modelos de Processo - cascata, iterativo e incremental e ágil Análise de Sistemas Prof. Filipe Arantes Fernandes filipe.arantes@ifsudestemg.edu.br 2 Vale a pena ver de novo Modelo de Processo:
Prof. Me. Sérgio Carlos Portari Júnior
Prof. Me. Sérgio Carlos Portari Júnior Ambientes que visam desenvolver aplicações que precisam de um processamento paralelo e distribuído deverão saber lidar com algumas dificuldades. Isto decorre da heterogeneidade
Metodologia Simplified. António Rocha
Metodologia Simplified António Rocha - 2003 Metodologias As empresas precisam de uma metodologia simples e eficaz para realizarem o seu primeiro projecto OO Uma metodologia tem mais probabilidades de ser
RAFAEL HENRIQUE DE MORAES AUGUSTO
FUNDAÇÃO DE ENSINO EURÍPIDES SOARES DA ROCHA CENTRO UNIVERSITÁRIO EURÍPIDES DE MARÍLIA UNIVEM CURSO DE CIÊNCIA DA COMPUTAÇÃO RAFAEL HENRIQUE DE MORAES AUGUSTO UMA COMPARAÇÃO ENTRE APLICAÇÕES ORIENTADAS
Rational Unified Process (RUP)
Rational Unified Process (RUP) A Rational é bem conhecida pelo seu investimento em orientação em objetos. A empresa foi à criadora da Unified Modeling Language (UML), assim como de várias ferramentas que
CLÁUDIO ROSSE PANDOLFI SUPORTE DE INTERESSES TRANSVERSAIS PARA FRAMEWORK CODEIGNITER
FUNDAÇÃO DE ENSINO EURÍPIDES SOARES DA ROCHA CENTRO UNIVERSITÁRIO EURÍPIDES DE MARÍLIA UNIVEM CURSO DE CIÊNCIA DA COMPUTAÇÃO CLÁUDIO ROSSE PANDOLFI SUPORTE DE INTERESSES TRANSVERSAIS PARA FRAMEWORK CODEIGNITER
UNIVERSIDADE FEDERAL DO PARANÁ - UFPR Bacharelado em Ciência da Computação
SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 16 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar, discutir o conceito de métricas de software. DESENVOLVIMENTO Métricas
Metrics for Evaluation of Aspect-Oriented Middleware
2009 XXIII Brazilian Symposium on Software Engineering Metrics for Evaluation of Aspect-Oriented Middleware Tássia A. V. Freitas, Thaís V. Batista, Flávia C. Delicato, Paulo F. Pires Departamento de Informática
6 Mecanismo de Tratamento de Exceções Sensível ao Contexto
6 Mecanismo de Tratamento de Exceções Sensível ao Contexto Este capítulo apresenta a proposta de nosso mecanismo de tratamento de exceções sensível ao contexto. Tal mecanismo foi desenvolvido de acordo
MetricMiner: uma ferramenta web de apoio à mineração de
MetricMiner: uma ferramenta web de apoio à mineração de repositórios de software Francisco Zigmund Sokol 1, Mauricio Finavaro Aniche 1, Marco Aurélio Gerosa 1 1 Instituto de Matemática e Estatística Universidade
3 Ferramenta Proposta 3.1. Objetivos
3 Ferramenta Proposta 3.1. Objetivos O objetivo deste trabalho é a criação de um framework de testes que incorpore algumas das novas idéias encontradas na literatura. Sua principal característica deve
DIAGRAMAS DE CLASSE UML
DIAGRAMAS DE CLASSE UML Projeto Detalhado de Software (PDS) Profa. Cynthia Pinheiro Antes de mais nada... Calendário de Reposições Aula 1: 27/10/2017, 8h-10h, Sala 8 Aula 2: A verificar Aula 3: A verificar
ALM Aplicações em Linguagem de Montagem. Introdução. A produção de Software é uma atividade build and fix. build. fix
Introdução A produção de Software é uma atividade build and fix. 1 Introdução build 2 Introdução fix 3 1 Introdução 4 P s Só pessoas motivadas e comprometidas com o projeto garantem o respectivo sucesso;
Programação Orientada a Objetos
Ciência da Computação Prof. Elias Ferreira Elaborador por: Ana Claudia Bastos Loureiro Monção JUNIT Teste de Software Processo de Software Um processo de software pode ser visto como o conjunto de atividades,
Utilizando o Framework SubMacro no Desenvolvimento de Aplicações Java para Internet. Kleber Taffarel Novembro de 2008
Utilizando o Framework SubMacro no Desenvolvimento de Aplicações Java para Internet Kleber Taffarel Novembro de 2008 klebertaffarel@yahoo.com.br Palestrante Especialista em Engenharia de Websites pela
SDiff: Uma ferramenta para comparação de documentos com base nas suas estruturas sintáticas
Thiago Pinheiro de Araújo SDiff: Uma ferramenta para comparação de documentos com base nas suas estruturas sintáticas Dissertação de Mestrado Dissertação apresentada como requisito parcial para obtenção
Um Perfil UML para Frameworks Transversais
Um Perfil UML para Frameworks Transversais Aluno: José Uetanabara Júnior 1 Orientador: Valter Vieira de Camargo 2 ¹Instituto de Informática Univem Centro Universitário Eurípides de Marília Marília, São
5 QCDTool: Uma Ferramenta para Avaliar a Qualidade do Design em Modelos
5 QCDTool: Uma Ferramenta para Avaliar a Qualidade do Design em Modelos Este capítulo apresenta a ferramenta desenvolvida para apoiar a aplicação, em diagramas de classes, de mecanismos de análise da qualidade
26 a 29 de novembro de 2013 Campus de Palmas
Um Sistema para o Gerenciamento de Documentos e Processos das Coordenações de Curso Nome dos autores: Francisco Glaubos Nunes Clímaco 1 ; Marcelo Leineker Costaor 2 1 Aluno do Curso de Ciência da Computação;
4 ALBATROZ : Um ambiente para desenvolvimento de SMA
41 4 ALBATROZ : Um ambiente para desenvolvimento de SMA Resumo Neste capítulo será apresentado o processo de desenvolvimento do ambiente Albatroz. Cada ferramenta é detalhada indicando suas funcionalidades.
3.1 Reflexão Computacional
3 Adaptação Dinâmica Adaptação dinâmica é a capacidade de um sistema ser modificado durante sua execução para se adequar a novas necessidades. Recentemente, esse tem se tornado um tópico de pesquisa proeminente
Uma ferramenta para expansão do vocabulário com base em coocorrência
Resumos Expandidos: XI Mostra de Estagiários e Bolsistas... 11 Uma ferramenta para expansão do vocabulário com base em coocorrência Exupério Lédo Silva Júnior 1 Roberta Akemi Sinoara 2 Solange Oliveira
Ambientes de Desenvolvimento Avançados
Ambientes de Desenvolvimento Avançados http://www.dei.isep.ipp.pt/~jtavares/adav Aula 1 Engenharia Informática 2006/2007 José António Tavares jrt@isep.ipp.pt 1 Aula de Apresentação e de Introdução 2 1
2 Desenvolvimento de Software Orientado a Aspectos
20 2 Desenvolvimento de Software Orientado a Aspectos A divisão em partes é um importante instrumento para se reduzir a complexidade de sistemas de software. É muito difícil para o ser humano compreender
PADRONIZAÇÃO 10. INTERFACES PADRONIZAÇÃO CONTRATOS
PADRONIZAÇÃO 10. INTERFACES No dia-a-dia lidamos com diversos aparelhos elétricos Diversas empresas fabricam aparelhos elétricos com plugues E se cada empresa decidisse por conta própria o formato dos