SlideShare uma empresa Scribd logo
1 de 25
Camilo Falcão Ribeiro Figueiredo [email_address] Prof. Dr. Marco Túlio de Oliveira Valente [email_address] EXTRAÇÃO DE FEATURES USANDO COMPILAÇÃO CONDICIONAL Engenharia de Software – DCC/UFMG – Brasil
SUMÁRIO  (1/1) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Extração de Features Usando Compilação Condicional
OBJETIVO  (1/1) ,[object Object],Extração de Features Usando Compilação Condicional
Revisão da Literatura  (1/6) ,[object Object],Extração de Features Usando Compilação Condicional Figura: Representação de uma Linha de produtos de software  Fonte:  Arquivo Pessoal
Figura: Representação simplificada da  Expression Product Line Fonte:   GÜNTHERM,  SUNKLE ,[object Object],Extração de Features Usando Compilação Condicional Revisão da Literatura  (2/6)
Revisão da Literatura  (3/6) ,[object Object],Extração de Features Usando Compilação Condicional Figura: Exemplo de um simples modelo de  features  do  Grapf Product Line Fonte: GÜNTHERM,  SUNKLE
Revisão da Literatura  (4/6) ,[object Object],Extração de Features Usando Compilação Condicional Figura: Exemplo de um simples modelo de  features  Mobile Media Fonte: FIGUEIREDO, CACHO, SANT’ANNA, MONTEIRO, KULESZA, GARCIA, SOARES, FERRARI, KHAN, CASTOR FILHO, DANTAS 2008
Revisão da Literatura   (5/6) ,[object Object],[object Object],Extração de Features Usando Compilação Condicional Figura: Exemplo de código anotado para ser pré-processado  Fonte: JAVAPP, 2010
Revisão da Literatura  (6/6) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Extração de Features Usando Compilação Condicional
ARGOUML-SPL  (1/3) ,[object Object],[object Object],Extração de Features Usando Compilação Condicional Figura: Arquitetura do ArgoUML  Fonte: ÁVILA COUTO, VALENTE, FIGUEIREDO, 2010
ARGOUML-SPL  (2/3) ,[object Object],[object Object],Extração de Features Usando Compilação Condicional Figura: Features do ArgoUML-SPL Fonte: ÁVILA COUTO, VALENTE, FIGUEIREDO, 2010
ARGOUML-SPL  (3/3) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Extração de Features Usando Compilação Condicional
EXTRAÇÃO DE FEATURES  (1/4) ,[object Object],[object Object],[object Object],Extração de Features Usando Compilação Condicional Figura: Modelo de  Features  com evolução de novas features. Fonte: Arquivo pessoal
EXTRAÇÃO DE FEATURES  (2/4) ,[object Object],Extração de Features Usando Compilação Condicional Figura: Exemplo de aninhamento entre duas marcações de  features  diferentes Fonte: Arquivo pessoal
EXTRAÇÃO DE FEATURES  (3/4) ,[object Object],Extração de Features Usando Compilação Condicional Figura: Exemplo de transversalidade do tipo entrelaçamento entre as  features  Diagrama de Seqüência, Diagrama de Estados e Diagrama de Atividades.  Fonte: Arquivo pessoal
EXTRAÇÃO DE FEATURES  (4/4) ,[object Object],[object Object],[object Object],[object Object],Extração de Features Usando Compilação Condicional
AVALIAÇÃO  (1/5) Extração de Features Usando Compilação Condicional ,[object Object],Tabela: Métricas de Espalhamento coletadas no ArgoUML-SPL com as novas  features  identificadas Fonte: Arquivo pessoal 74 Diagrama de Caso de Uso 84 Diagrama de Sequência 1427 Logging 111 Diagrama de Estados 112 Diagrama de Atividades 319 Suporte Cognitivo SD Feature
AVALIAÇÃO  (2/5) Extração de Features Usando Compilação Condicional ,[object Object],Tabela: Métricas de tamanho coletadas em produtos do ArgoUML-SPL com as duas novas  features. Fonte: Arquivo pessoal 27.78% 16509 1650 76 59419 Todas 5.68% 4080 1926 92 71848 Novas  features 1.63% 1221 2291 93 74707 Diagrama de Caso de Uso 3.76% 2749 2267 92 73179 Diagrama de Sequência 22,58% 13984 2034 78 61944 Features  Antigas 2,07% 1539 2332 93 74389 Logging 2,67% 1974 2298 93 73954 Diagrama de Estados 1,98% 1475 2306 91 74453 Diagrama de Atividades 13,04% 8461 2104 82 67167 Suporte Cognitivo - - 2332 93 75928 Todas as  Features LOF #Classes #Pacotes LOC Métricas Feature  Removida
AVALIAÇÃO  (3/5) Extração de Features Usando Compilação Condicional Transversalidade entre as  features . Tabela: Métricas de Transversalidade do ArgoUML-SPL com as duas novas  features. Fonte: Arquivo pessoal 0 0 Diagrama de Caso de Uso  +  Diagrama de Sequência 0 0 Diagrama de Estados +  Diagrama de Caso de Uso 0 2 Diagrama de Estados +  Diagrama de Sequência 11 26 Diagrama de Atividades  + Diagrama de Estados 3 3 Diagrama de Atividades +  Diagrama de Sequência 0 0 Diagrama de Atividades +  Diagrama de Casos de uso 30 0 Diagrama de Caso de Uso  +  Logging 35 0 Diagrama de Sequência  +  Logging 30 0 Diagrama de Estados +  Logging 9 0 Diagrama de Atividades +  Logging 171 0 Suporte Cognitivo +  Logging Aninhamento Entrelaçamento Features  envolvidas
AVALIAÇÃO  (4/5) Extração de Features Usando Compilação Condicional Granularidade das  features . Tabela: Granularidade do código anotado para cada  feature . Fonte: Arquivo pessoal 85,12% 1154 72 53 41 77 56 Statement 1,35% 14 0 0 0 4 5 MethodBody 2,52% 3 5 7 10 8 10 Method 0,18% 0 0 0 0 2 1 InterfaceMethod Use 0,12% 0 0 0 0 0 2 ClassSignature 10,02% 0 40 47 41 35 8 Class 0,70% 0 0 1 0 0 11 Package Implements % Logging Diag. De C. Uso Diag. De Sequ. Diag. De estado Diag. De Ativ. Suporte Cognitivo Features
AVALIAÇÃO  (5/5) Extração de Features Usando Compilação Condicional Localização das  features. Tabela: Tipo de localização do código anotado para cada feature Fonte: Arquivo pessoal 387 1 3 3 6 9 NestedCommand 0 0 0 0 0 2 InsideStaticBlock 1 0 0 0 0 0 EntireStaticBlock 1 0 0 0 0 0 EndStaticBlock 99 0 0 1 0 0 BeforeReturn 13 0 0 0 4 5 EntireMethod 23 0 0 0 1 5 EndMethod 138 1 2 1 1 3 StartMethod Logging Diag. De C.  Uso Diag. De Sequ. Diag. De estado Diag. De Ativ. Suporte Cognitivo Tipo de Localização Features
CONCLUSÃO  (1/1) Extração de Features Usando Compilação Condicional A adoção de compilação condicional para implementação de Linhas de Produtos de Software, apesar de possuir algumas desvantagens como dependência de tecnologias alternativas, aumento da complexidade do código fonte e difícil definição do escopo, demonstra-se como uma boa candidata para a implementação em sistemas legados desenvolvidos sem uma metodologia que suporte a criação de Linhas de Produtos de Software. Isso se deve a facilidade de implementação das marcações e da independência de padrões de desenvolvimento.
PRINCIPAIS REFERÊNCIAS  (1/2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Extração de Features Usando Compilação Condicional
PRINCIPAIS REFERÊNCIAS  (2/2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Extração de Features Usando Compilação Condicional
www.dcc.ufmg.br/~camilo www.camiloribeiro.com Perguntas??? Muito Obrigado!!! Engenharia de Software – DCC/UFMG – Brasil

Mais conteúdo relacionado

Destaque (20)

LAZAR DGR CERTIFIKATE
LAZAR DGR CERTIFIKATELAZAR DGR CERTIFIKATE
LAZAR DGR CERTIFIKATE
 
Last 09.01
Last 09.01Last 09.01
Last 09.01
 
Seafood Basket Solwezi Logo
Seafood Basket Solwezi LogoSeafood Basket Solwezi Logo
Seafood Basket Solwezi Logo
 
Pasos para la instalación sql server 2008
Pasos para la instalación sql server 2008Pasos para la instalación sql server 2008
Pasos para la instalación sql server 2008
 
Plc
PlcPlc
Plc
 
Criar E Recriar Com Alimentos
Criar E Recriar Com AlimentosCriar E Recriar Com Alimentos
Criar E Recriar Com Alimentos
 
Livros e Infância
Livros e InfânciaLivros e Infância
Livros e Infância
 
White Belt Certification
White Belt CertificationWhite Belt Certification
White Belt Certification
 
JMA
JMAJMA
JMA
 
Lorem Ipsum 4
Lorem Ipsum 4Lorem Ipsum 4
Lorem Ipsum 4
 
Pos teoria geral proc eletro
Pos teoria geral proc eletroPos teoria geral proc eletro
Pos teoria geral proc eletro
 
Criar E Recriar Com Meia De Seda
Criar E Recriar Com Meia De SedaCriar E Recriar Com Meia De Seda
Criar E Recriar Com Meia De Seda
 
Sistema de gestion
Sistema de gestionSistema de gestion
Sistema de gestion
 
Direito do trabalho desmaterializado: modelo para armar
Direito do trabalho desmaterializado: modelo para armarDireito do trabalho desmaterializado: modelo para armar
Direito do trabalho desmaterializado: modelo para armar
 
Direito do Trabalho do Século XXI
Direito do Trabalho do Século XXIDireito do Trabalho do Século XXI
Direito do Trabalho do Século XXI
 
7 At2 Periodo6ºE
7 At2 Periodo6ºE7 At2 Periodo6ºE
7 At2 Periodo6ºE
 
La energia
La energiaLa energia
La energia
 
Criar E Recriar Com Canudo
Criar E Recriar Com CanudoCriar E Recriar Com Canudo
Criar E Recriar Com Canudo
 
Lorem Ipsum 3
Lorem Ipsum 3Lorem Ipsum 3
Lorem Ipsum 3
 
Filósofos de la naturaleza
Filósofos de la naturalezaFilósofos de la naturaleza
Filósofos de la naturaleza
 

Semelhante a Extração de Features Usando Compilação Condicional

Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como CódigoCurso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como CódigoGuilhermeJorgeAragod
 
Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...
Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...
Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...Tchelinux
 
Visual Studio Summit 2016: C# 7 - Olhando para o futuro
Visual Studio Summit 2016: C# 7 - Olhando para o futuroVisual Studio Summit 2016: C# 7 - Olhando para o futuro
Visual Studio Summit 2016: C# 7 - Olhando para o futuroRogério Moraes de Carvalho
 
Tipos de automação de teste
Tipos de automação de testeTipos de automação de teste
Tipos de automação de testeMarcos Pessoa
 
Aula 8 - Modularização e Funções.pptx
Aula 8 - Modularização e Funções.pptxAula 8 - Modularização e Funções.pptx
Aula 8 - Modularização e Funções.pptxItamarGoncalves2
 
(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - SubalgoritmosCarlos Santos
 
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetrosAlgoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetrosAlex Camargo
 
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetrosAlgoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetrosAlex Camargo
 
LabMM3 - Aula teórica 08
LabMM3 - Aula teórica 08LabMM3 - Aula teórica 08
LabMM3 - Aula teórica 08Carlos Santos
 
"Aula sobre Paralelização Automática". Rogério A. Gonçalves e Prof. Dr. Alfre...
"Aula sobre Paralelização Automática". Rogério A. Gonçalves e Prof. Dr. Alfre..."Aula sobre Paralelização Automática". Rogério A. Gonçalves e Prof. Dr. Alfre...
"Aula sobre Paralelização Automática". Rogério A. Gonçalves e Prof. Dr. Alfre...lccausp
 
Cartilha de R para Estatística e Data Science.pdf
Cartilha de R para Estatística e Data Science.pdfCartilha de R para Estatística e Data Science.pdf
Cartilha de R para Estatística e Data Science.pdfEdkallenn Lima
 
Sistemas logicos programaveis
Sistemas logicos programaveisSistemas logicos programaveis
Sistemas logicos programaveislaritha
 
Módulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de ComputadoresMódulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de ComputadoresLuis Ferreira
 

Semelhante a Extração de Features Usando Compilação Condicional (20)

Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como CódigoCurso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
Curso de Verão - Aula 03 - Introdução ao CI-CD e Infraestrutura como Código
 
Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...
Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...
Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...
 
Visual Studio Summit 2016: C# 7 - Olhando para o futuro
Visual Studio Summit 2016: C# 7 - Olhando para o futuroVisual Studio Summit 2016: C# 7 - Olhando para o futuro
Visual Studio Summit 2016: C# 7 - Olhando para o futuro
 
Apostila Visualg
Apostila VisualgApostila Visualg
Apostila Visualg
 
Tipos de automação de teste
Tipos de automação de testeTipos de automação de teste
Tipos de automação de teste
 
Aula 8 - Modularização e Funções.pptx
Aula 8 - Modularização e Funções.pptxAula 8 - Modularização e Funções.pptx
Aula 8 - Modularização e Funções.pptx
 
(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos
 
Apostila eagle
Apostila eagleApostila eagle
Apostila eagle
 
Apostila2 clp logo
Apostila2 clp logoApostila2 clp logo
Apostila2 clp logo
 
Anexo c
Anexo cAnexo c
Anexo c
 
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetrosAlgoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
 
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetrosAlgoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
 
Visualg2_manual.pdf
Visualg2_manual.pdfVisualg2_manual.pdf
Visualg2_manual.pdf
 
LabMM3 - Aula teórica 08
LabMM3 - Aula teórica 08LabMM3 - Aula teórica 08
LabMM3 - Aula teórica 08
 
Sis avionico
Sis avionicoSis avionico
Sis avionico
 
"Aula sobre Paralelização Automática". Rogério A. Gonçalves e Prof. Dr. Alfre...
"Aula sobre Paralelização Automática". Rogério A. Gonçalves e Prof. Dr. Alfre..."Aula sobre Paralelização Automática". Rogério A. Gonçalves e Prof. Dr. Alfre...
"Aula sobre Paralelização Automática". Rogério A. Gonçalves e Prof. Dr. Alfre...
 
Cartilha de R para Estatística e Data Science.pdf
Cartilha de R para Estatística e Data Science.pdfCartilha de R para Estatística e Data Science.pdf
Cartilha de R para Estatística e Data Science.pdf
 
Log4net
Log4netLog4net
Log4net
 
Sistemas logicos programaveis
Sistemas logicos programaveisSistemas logicos programaveis
Sistemas logicos programaveis
 
Módulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de ComputadoresMódulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de Computadores
 

Mais de Camilo Ribeiro

Jenkins2: How Jenkins 2 works and how to automate it
Jenkins2: How Jenkins 2 works and how to automate itJenkins2: How Jenkins 2 works and how to automate it
Jenkins2: How Jenkins 2 works and how to automate itCamilo Ribeiro
 
Continuous Delivery Pipeline with Docker and Jenkins
Continuous Delivery Pipeline with Docker and JenkinsContinuous Delivery Pipeline with Docker and Jenkins
Continuous Delivery Pipeline with Docker and JenkinsCamilo Ribeiro
 
Criando pipelines de entrega contínua multilinguagem com Docker e Jenkins
Criando pipelines de entrega contínua multilinguagem com Docker e JenkinsCriando pipelines de entrega contínua multilinguagem com Docker e Jenkins
Criando pipelines de entrega contínua multilinguagem com Docker e JenkinsCamilo Ribeiro
 
Do push para a produção: Os desafios de automação em Continuous Delivery
Do push para a produção: Os desafios de automação em Continuous DeliveryDo push para a produção: Os desafios de automação em Continuous Delivery
Do push para a produção: Os desafios de automação em Continuous DeliveryCamilo Ribeiro
 
Quando tdd não é o suficiente
Quando tdd não é o suficienteQuando tdd não é o suficiente
Quando tdd não é o suficienteCamilo Ribeiro
 
Boas práticas de Automação de Testes
Boas práticas de Automação de TestesBoas práticas de Automação de Testes
Boas práticas de Automação de TestesCamilo Ribeiro
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesCamilo Ribeiro
 
Certificações em Teste e Qualidade de Software
Certificações em Teste e Qualidade de SoftwareCertificações em Teste e Qualidade de Software
Certificações em Teste e Qualidade de SoftwareCamilo Ribeiro
 
Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade Camilo Ribeiro
 
Introdução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareIntrodução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareCamilo Ribeiro
 
Papéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwarePapéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwareCamilo Ribeiro
 

Mais de Camilo Ribeiro (12)

Jenkins2: How Jenkins 2 works and how to automate it
Jenkins2: How Jenkins 2 works and how to automate itJenkins2: How Jenkins 2 works and how to automate it
Jenkins2: How Jenkins 2 works and how to automate it
 
Continuous Delivery Pipeline with Docker and Jenkins
Continuous Delivery Pipeline with Docker and JenkinsContinuous Delivery Pipeline with Docker and Jenkins
Continuous Delivery Pipeline with Docker and Jenkins
 
Criando pipelines de entrega contínua multilinguagem com Docker e Jenkins
Criando pipelines de entrega contínua multilinguagem com Docker e JenkinsCriando pipelines de entrega contínua multilinguagem com Docker e Jenkins
Criando pipelines de entrega contínua multilinguagem com Docker e Jenkins
 
Do push para a produção: Os desafios de automação em Continuous Delivery
Do push para a produção: Os desafios de automação em Continuous DeliveryDo push para a produção: Os desafios de automação em Continuous Delivery
Do push para a produção: Os desafios de automação em Continuous Delivery
 
Quando tdd não é o suficiente
Quando tdd não é o suficienteQuando tdd não é o suficiente
Quando tdd não é o suficiente
 
Boas práticas de Automação de Testes
Boas práticas de Automação de TestesBoas práticas de Automação de Testes
Boas práticas de Automação de Testes
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por Testes
 
Certificações em Teste e Qualidade de Software
Certificações em Teste e Qualidade de SoftwareCertificações em Teste e Qualidade de Software
Certificações em Teste e Qualidade de Software
 
Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade
 
Introdução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareIntrodução a Automação de Teste de Software
Introdução a Automação de Teste de Software
 
Papéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwarePapéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de Software
 
Técnicas de Teste
Técnicas de TesteTécnicas de Teste
Técnicas de Teste
 

Último

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 

Último (6)

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 

Extração de Features Usando Compilação Condicional

  • 1. Camilo Falcão Ribeiro Figueiredo [email_address] Prof. Dr. Marco Túlio de Oliveira Valente [email_address] EXTRAÇÃO DE FEATURES USANDO COMPILAÇÃO CONDICIONAL Engenharia de Software – DCC/UFMG – Brasil
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19. AVALIAÇÃO (3/5) Extração de Features Usando Compilação Condicional Transversalidade entre as features . Tabela: Métricas de Transversalidade do ArgoUML-SPL com as duas novas features. Fonte: Arquivo pessoal 0 0 Diagrama de Caso de Uso + Diagrama de Sequência 0 0 Diagrama de Estados + Diagrama de Caso de Uso 0 2 Diagrama de Estados + Diagrama de Sequência 11 26 Diagrama de Atividades + Diagrama de Estados 3 3 Diagrama de Atividades + Diagrama de Sequência 0 0 Diagrama de Atividades + Diagrama de Casos de uso 30 0 Diagrama de Caso de Uso + Logging 35 0 Diagrama de Sequência + Logging 30 0 Diagrama de Estados + Logging 9 0 Diagrama de Atividades + Logging 171 0 Suporte Cognitivo + Logging Aninhamento Entrelaçamento Features envolvidas
  • 20. AVALIAÇÃO (4/5) Extração de Features Usando Compilação Condicional Granularidade das features . Tabela: Granularidade do código anotado para cada feature . Fonte: Arquivo pessoal 85,12% 1154 72 53 41 77 56 Statement 1,35% 14 0 0 0 4 5 MethodBody 2,52% 3 5 7 10 8 10 Method 0,18% 0 0 0 0 2 1 InterfaceMethod Use 0,12% 0 0 0 0 0 2 ClassSignature 10,02% 0 40 47 41 35 8 Class 0,70% 0 0 1 0 0 11 Package Implements % Logging Diag. De C. Uso Diag. De Sequ. Diag. De estado Diag. De Ativ. Suporte Cognitivo Features
  • 21. AVALIAÇÃO (5/5) Extração de Features Usando Compilação Condicional Localização das features. Tabela: Tipo de localização do código anotado para cada feature Fonte: Arquivo pessoal 387 1 3 3 6 9 NestedCommand 0 0 0 0 0 2 InsideStaticBlock 1 0 0 0 0 0 EntireStaticBlock 1 0 0 0 0 0 EndStaticBlock 99 0 0 1 0 0 BeforeReturn 13 0 0 0 4 5 EntireMethod 23 0 0 0 1 5 EndMethod 138 1 2 1 1 3 StartMethod Logging Diag. De C. Uso Diag. De Sequ. Diag. De estado Diag. De Ativ. Suporte Cognitivo Tipo de Localização Features
  • 22. CONCLUSÃO (1/1) Extração de Features Usando Compilação Condicional A adoção de compilação condicional para implementação de Linhas de Produtos de Software, apesar de possuir algumas desvantagens como dependência de tecnologias alternativas, aumento da complexidade do código fonte e difícil definição do escopo, demonstra-se como uma boa candidata para a implementação em sistemas legados desenvolvidos sem uma metodologia que suporte a criação de Linhas de Produtos de Software. Isso se deve a facilidade de implementação das marcações e da independência de padrões de desenvolvimento.
  • 23.
  • 24.
  • 25. www.dcc.ufmg.br/~camilo www.camiloribeiro.com Perguntas??? Muito Obrigado!!! Engenharia de Software – DCC/UFMG – Brasil

Notas do Editor

  1. Good afternoon... My name is Ricardo Terra and I'm from PUC Minas at Brazil. I'm going to present a paper named "Towards a Dependency Constraint Language to Manage Software Architectures".
  2. First, I would like to briefly introduce the subject of this study. However, we have a recurrent problem in forcing architecture compliance: - The document architecture of a system – if available at all – doesn't reflect the implemented architecture
  3. First, I would like to briefly introduce the subject of this study. However, we have a recurrent problem in forcing architecture compliance: - The document architecture of a system – if available at all – doesn't reflect the implemented architecture
  4. First, I would like to briefly introduce the subject of this study. However, we have a recurrent problem in forcing architecture compliance: - The document architecture of a system – if available at all – doesn't reflect the implemented architecture
  5. First, I would like to briefly introduce the subject of this study. However, we have a recurrent problem in forcing architecture compliance: - The document architecture of a system – if available at all – doesn't reflect the implemented architecture
  6. First, I would like to briefly introduce the subject of this study. However, we have a recurrent problem in forcing architecture compliance: - The document architecture of a system – if available at all – doesn't reflect the implemented architecture
  7. First, I would like to briefly introduce the subject of this study. However, we have a recurrent problem in forcing architecture compliance: - The document architecture of a system – if available at all – doesn't reflect the implemented architecture
  8. First, I would like to briefly introduce the subject of this study. However, we have a recurrent problem in forcing architecture compliance: - The document architecture of a system – if available at all – doesn't reflect the implemented architecture
  9. First, I would like to briefly introduce the subject of this study. However, we have a recurrent problem in forcing architecture compliance: - The document architecture of a system – if available at all – doesn't reflect the implemented architecture
  10. First, I would like to briefly introduce the subject of this study. However, we have a recurrent problem in forcing architecture compliance: - The document architecture of a system – if available at all – doesn't reflect the implemented architecture
  11. First, I would like to briefly introduce the subject of this study. However, we have a recurrent problem in forcing architecture compliance: - The document architecture of a system – if available at all – doesn't reflect the implemented architecture
  12. First, I would like to briefly introduce the subject of this study. However, we have a recurrent problem in forcing architecture compliance: - The document architecture of a system – if available at all – doesn't reflect the implemented architecture
  13. First, I would like to briefly introduce the subject of this study. However, we have a recurrent problem in forcing architecture compliance: - The document architecture of a system – if available at all – doesn't reflect the implemented architecture
  14. First, I would like to briefly introduce the subject of this study. However, we have a recurrent problem in forcing architecture compliance: - The document architecture of a system – if available at all – doesn't reflect the implemented architecture
  15. First, I would like to briefly introduce the subject of this study. However, we have a recurrent problem in forcing architecture compliance: - The document architecture of a system – if available at all – doesn't reflect the implemented architecture
  16. First, I would like to briefly introduce the subject of this study. However, we have a recurrent problem in forcing architecture compliance: - The document architecture of a system – if available at all – doesn't reflect the implemented architecture
  17. First, I would like to briefly introduce the subject of this study. However, we have a recurrent problem in forcing architecture compliance: - The document architecture of a system – if available at all – doesn't reflect the implemented architecture
  18. First, I would like to briefly introduce the subject of this study. However, we have a recurrent problem in forcing architecture compliance: - The document architecture of a system – if available at all – doesn't reflect the implemented architecture
  19. First, I would like to briefly introduce the subject of this study. However, we have a recurrent problem in forcing architecture compliance: - The document architecture of a system – if available at all – doesn't reflect the implemented architecture
  20. First, I would like to briefly introduce the subject of this study. However, we have a recurrent problem in forcing architecture compliance: - The document architecture of a system – if available at all – doesn't reflect the implemented architecture
  21. First, I would like to briefly introduce the subject of this study. However, we have a recurrent problem in forcing architecture compliance: - The document architecture of a system – if available at all – doesn't reflect the implemented architecture
  22. First, I would like to briefly introduce the subject of this study. However, we have a recurrent problem in forcing architecture compliance: - The document architecture of a system – if available at all – doesn't reflect the implemented architecture
  23. First, I would like to briefly introduce the subject of this study. However, we have a recurrent problem in forcing architecture compliance: - The document architecture of a system – if available at all – doesn't reflect the implemented architecture
  24. First, I would like to briefly introduce the subject of this study. However, we have a recurrent problem in forcing architecture compliance: - The document architecture of a system – if available at all – doesn't reflect the implemented architecture
  25. I would like to thank you all... Thanks a lot.