Upload
alayna
View
28
Download
2
Embed Size (px)
DESCRIPTION
bartFilter – Abordagem para Mensurar Qualidade de Código Java em Ambiente de Reuso. Mestranda: Aline Timóteo Orientador: Silvio Meira C.E.S.A.R. - Recife Center for Advanced Studies and Systems UFPE – Federal University of Pernambuco [email protected]. Sumário. Motivação - PowerPoint PPT Presentation
Citation preview
http://www.rise.com.br
bartFilter – bartFilter – Abordagem para Mensurar Abordagem para Mensurar Qualidade de Código Java em Qualidade de Código Java em
Ambiente de ReusoAmbiente de Reuso
Mestranda: Aline TimóteoMestranda: Aline TimóteoOrientador: Silvio MeiraOrientador: Silvio Meira
C.E.S.A.R. - Recife Center for Advanced Studies and SystemsC.E.S.A.R. - Recife Center for Advanced Studies and SystemsUFPE – Federal University of PernambucoUFPE – Federal University of Pernambuco
[email protected]@cin.ufpe.br
http://www.rise.com.br
SumárioSumário
Motivação Proposta de Trabalho Atividades
Disciplinas Métricas de Código: Survey Analise de Ferramentas
Calendário
http://www.rise.com.br
MotivaçãoMotivação
http://www.rise.com.br
ReusoReuso
O que é reuso? [Basili, 1991; Frakes, 1994]
[Kruger, 1992]
Reuse is a process of creating software systems from existing software rather
than building software system from scratch.
http://www.rise.com.br
Benefícios do Reuso [Basili, 1996]Benefícios do Reuso [Basili, 1996]
Qualidade Produtividade Confiabilidade Redução de Esforço
Trabalho redundante e tempo de desenvolvimento Time-to-market Documentação Custo de manutenção Tamanho da equipe
Reuse é uma vantagem competitiva!!!
http://www.rise.com.br
Instalando um Programa de ReusoInstalando um Programa de Reuso
Modelo de Griss [Griss, 1994] Níveis de reuso
Modelo de Sametinger [Sametinger, 1997] Análise de domínio, projeto piloto,
Institucionalização
Pontos comuns: Ambiente de suporte a reuso
Repositórios para assets, ferramentas de busca e recuperação, ferramentas para o controle de versão...
http://www.rise.com.br
Ferramentas para Busca e Recuperação de Ferramentas para Busca e Recuperação de Assets Assets [Garcia, 2006][Garcia, 2006] CodeFinder, Agora, CLARiFi, InteliZap, Strathcona,
Bart ...
Eficiência na busca e recuperação de assets Busca por palavras, contexto, semântica
Comunicação com diferentes tipos de repositório
Deve estar preparada para dar suporte nas diversas fases do desenvolvimento Código, documentos, modelos
http://www.rise.com.br
O ProblemaO Problema
Possuir repositorio não garante reuso!
Not Invented Here (NIH) [Frakes, 1995]
Como analisar a qualidade dos artefatos armazenados no repositório?
http://www.rise.com.br
Proposta de TrabalhoProposta de Trabalho
http://www.rise.com.br
PropostaProposta
Basic Asset Retrieval Tool (B.A.R.T.) [Santos, 2006]
Ferramenta para busca e recuperação de ativos em sistemas de controle de versão de software
O objetivo do B.A.R.T. é auxiliar o processo de desenvolvimento de software
Diminuindo o tempo de análise e implementação, aumentando a qualidade, através do acesso facilitado a artefatos reutilizáveis
http://www.rise.com.br
PropostaProposta
bartFilter
Qualidade de Código
Métricas + Atributos de Qualidade
http://www.rise.com.br
PropostaProposta
exemplobartFilter
http://www.rise.com.br
AtividadesAtividades
http://www.rise.com.br
DisciplinasDisciplinasReferencias Disciplinas
IN0953 Engenharia de Software
IN0979 Tópicos Avançados em Engenharia de Software
IN1007 Paradigmas de Linguagens de Programação
IN1095 Realidade Virtual e Multimídia
IN1038 Tópicos Avançados em Adm. E Integração de Sistemas
IN1067 Trabalho Individual
http://www.rise.com.br
Software metrics is a method to quantify attributes in software processes, products and projects.
[Daskalantonakis, 1992]
Métricas de Código: SurveyMétricas de Código: Survey
http://www.rise.com.br
Motivação para Metricas de Software Motivação para Metricas de Software
Segundo [Sommerville, 2003]
Encontrar um valor numérico para quantificar atributos de produtos ou processos de software.
Comparar estes valores entre eles ou com valores obtidos em outros projetos da organização.
A partir destes dados obter conclusões sobre a qualidade de produtos e processos.
http://www.rise.com.br
Métricas de Código : Métricas de Código : SurveySurvey
Antes 1991: Métricas Baseadas em Complexidade
Produtividade, esforço, manutenabilidade…
Depois 1992: Metricas Baseadas em Conceitos de Orientação a Objetos
Maturidade das tecnicas de Engenharia de Software
Uso efetivo do paradigma OO
Produtividade, esforço, manutenabilidade, acoplamento, coesão, herança…
http://www.rise.com.br
Antes 1991: Métricas Baseadas em ComplexidadeAntes 1991: Métricas Baseadas em Complexidade
Cyclomatic Complexity [McCabe, 1976]
Halstead Metric [Halstead, 1977]
Outras métricas de complexidade [Yin, 1978; McClure, 1978;Woodfield, 1980; Henry, 1981]
Relação entre métricas de complexidade e manutenção [Kafura, 1987].
Relação entre métricas de complexidade e esforço de desenvolvimento [Lind, 1989].
Relação entre a métrica de McCabe e a produtividade durante a manutenção do software [Gill, 1991].
http://www.rise.com.br
Depois 1992: Metricas Baseadas em Conceitos de Depois 1992: Metricas Baseadas em Conceitos de Orientação a ObjetosOrientação a Objetos Chidamber and Kemerer Metrics [Chidamber, 1994]
Lorenz and Kidd Metrics [Lorenz, 1994]
Algumas outras métricas criadas [Brito, 1994; Briand, 1997; Harrison, 1998, Chatzigeorgiou, 2003]
Alguns trabalhos analizando as métricas foram publicados [Mayer, 1999; Schneidewind, 1999; Aalshayeb, 2003; Subramanyam, 2003]
Alguns trabalhos sobre validação de métricas foram publicados [Basili, 1996; Briand 1999; Emam, 2001]
http://www.rise.com.br
TimelineTimelineMetrics Based on the Complexity Metrics Based on the Concepts
of Object Oriented
http://www.rise.com.br
Analise de FerramentasAnalise de Ferramentas
Metodologia
Passo 1: Selecionar métricas e atributos de qualidade
Passo 2: Aplicar o GQM [GQM, 1994] (Goal, Question, Metrics) nas métricas e atributos de qualidade selecionados
Passo 3: Selecionar ferramentas para coleta das métricas
Passo 4: Coletar as métricas nos projetos
Passo 5: Analisar os resultados
http://www.rise.com.br
Passo 1:Passo 1: Selecionar métricas e atributos de Selecionar métricas e atributos de qualidadequalidade
http://www.rise.com.br
Passo 2:Passo 2: Aplicar o GQM nas métricas e atributos de Aplicar o GQM nas métricas e atributos de qualidade selecionadosqualidade selecionados
http://www.rise.com.br
Passo 3:Passo 3: Selecionar ferramentas para coleta das Selecionar ferramentas para coleta das métricasmétricas Metrics Jdepend Javancss Refactorit JHawk Metrics Coverlipse Burn
http://www.rise.com.br
Passo 4:Passo 4: Coletar as métricas nos projetos Coletar as métricas nos projetos
WMC por Classe
23
26
7
31
18
1110
21
78
12
58
0
864
86
1716
22
60
31
6
15
46
15
46
10
7
39
36
2
14
0 0
6 6
22
4
1
19
3
24
2
23
7
35
2
877
14
19
5 55 5 5
17
37
8
20
10
0
10
20
30
40
50
60
70
1 2 3 4 5 6 7
asset.controller
asset.model
asset.view
communication.w ebservice.apicommunication.w ebservice.implnodeType.controller
nodeType.model
org.apache.jackrabbit.j2ee
relationship.controller
nodeType.model
relationship.model
system.view
user.controller
user.model
util
util.abstraction
util.abstraction.controller
util.abstraction.model
util.abstraction.view
util.exception
util.property
util.security
util.textf ilter
w orkspace.controller
w orkspace.model
w orkspace.view
3
6
0
1
0
1
2
0
3
4 4
0
7
15
20
4
8
18
6
25
2
1
0
6
16
00
5
10
15
20
25
1
AC por Pacote
asset.controllerasset.modelasset.viewcommunication.webservice.apicommunication.webservice.implnodeType.controllernodeType.modelorg.apache.jackrabbit.j2eerelationship.controllernodeType.modelrelationship.modelsystem.viewuser.controlleruser.modelutilutil.abstractionutil.abstraction.controllerutil.abstraction.modelutil.abstraction.viewutil.exceptionutil.propertyutil.securityutil.textfilterworkspace.controllerworkspace.modelworkspace.view
http://www.rise.com.br
Passo 5:Passo 5: Analisar os resultados Analisar os resultados
Definir guia para análise das métricas
Rever relacionamento de atributos e métricas n para m e não 1 para n.
Representação das métricas Qual a melhor forma de representar os resultados? Quais os
tipos de gráficos possíveis?
http://www.rise.com.br
CalendárioCalendário
http://www.rise.com.br
http://www.rise.com.br
ReferênciasReferências [Alshayeb, 2003] Alshayeb, M., Li, M.; (2003), "An Empirical Validation of Object-Oriented Metrics in Two
Different Iterative Software Processes", IEEETransactions on Software Engineering archive, Volume 29, page(s): 1043 - 1049.
[Basili, 1991] Basili, V.R., Rombach, H. D.; (1991), “Support for Comprehensive Reuse”, Software Engineering Journal, Special issue on software process and its support, Volume 06, page(s): 306-316.
[Basili, 1996] Basili, V. R., Briand, L. C., Melo, W. L.; (1996), “A Validation of Object-Oriented Design Metrics as Quality Indicators”, IEEE Transactions on Software Engineering, Volume 22, page(s): 751-761, Piscataway, NJ, USA.
[Briand, 1997] Briand, L., Devanbu, W., Melo W.; (1997), "An investigation into coupling measures for C++", 19th International Conference on Software Engineering, page(s): 412-421, Boston, USA.
[Bauer, 1993] D. Bauer, A Reusable Parts Center , IBM Systems Journal, Vol. 32, No. 04, June, 1993, pp. 620-624.
[Briand, 1999] Briand, L.C., Morasca, S., Basili, V.R.; (1999), "Defining and validating measures for object-based high-level design", Software Engineering, IEEE Transactions, Volume 25, page(s): 722-743.
[Brito, 1994] Brito, Abreu, F., Carapuça, R.; (1994), "Object-Oriented Software Engineering: Measuring and controlling the development process", 4th Interntional Conference on Software Quality, Mc Lean, VA, USA.
[Chatzigeorgiou, 2003] Chatzigeorgiou, A.; (2003), "Mathematical Assessment of Object-Oriented Design Quality", IEEE Transactions on Software Engineering, Volume 29, page(s): 1050-1053.
[Chidamber, 1994] Chidamber, S. R., Kemerer, C. F.; (1994), "A Metrics Suite for Object Oriented Design", IEEE Transactions on Software Engineering, Volume 20, page(s): 476-493, Piscataway, USA.
[Daskalantonakis, 1992] Daskalantonakis, M. K.; (1992), “A Pratical View of Software Measurement and Implementation Experiences Within Motorola”, IEEE Transactions on Software Engineering, Volume 18, page(s): 998 – 1010.
http://www.rise.com.br
ReferênciasReferências [Emam, 2001] Emam, K. E., Benlarbi, S., Goel, N., Rai, S. N.; (2001), "The Confounding Effect of Class Size on the Validity of
Object-Oriented Metrics", IEEE Transaction on Software Engineering, Volume 27, page(s): 630-650. [Frakes, 1994] Frakes, W. B., Isoda, S.; (1994), “Success Factors of Systematic Reuse”, IEEE Software, Volume 11, page(s): 14-
19. [Garcia, 2006] Garcia, V. C., Lucrédio, D., Durão, F. A., Almeida, E. S. d., Fortes, R. P. d., Meira, S. R. d. L.; (2006), "From
Specification to Experimentation: A Software Component Search Engine Architecture", the 9th International Symposium on Component-Based Software Engineering (CBSE), Lecture Notes in Computer Science, Springer-Verlag, Sweden.
[Gill, 1991] Gill, G. K., Kemerer, C. F.; (1991), "Cyclomatic Complexity Density and Software Maintenance Productivity", IEEE Transactions on Software Engineering, page(s):1284-1288.
[GQM, 1994] accessible in: https://www.goldpractices.com/practices/gqm/ [Griss, 1994] Griss, M. L.; (1994), “Software reuse experience at Hewlett-Packard”, Proceedings of the 16th international
conference on Software engineering, page(s): 270, Sorrento, Italy. [Halstead, 1977] Halstead, M.H.; (1977), “Elements of Software Science”, page(s): 128, New York, USA. [Harrison, 1998] Harrison, R., Counsell, S., Nithi, R.; (1998), "Coupling Metrics for Object-Oriented Design", 5th International
Software Metrics Symposium Metrics, page(s): 150-156. [Henry, 1981] Henry, S., Kafura, D.; (1981), "Software Structure Metrics Based on Information Flow", Software Engineering, IEEE
Transactions, page(s): 510-518. [Lind, 1989] Lind, R. K., Vairavan, K.; (1989), "An Experimental Investigation of Software Metrics and Their Relationship to
Software Development Effort", IEEE Transactions on Software Engineering, page(s): 649-653, Piscataway, NJ, USA. [Lorenz, 1994] Lorenz M. and Kidd J.; (1994), "Object-Oriented Software Metrics: A Practical Guide", Prentice Hall, Englewood
Cliffs, New Jersey, USA. [Mayer, 1999] Mayer, T., Hall, T.; (1999), "A Critical Analysis of Current OO Design Metrics", Software Quality Journal, Volume 8,
page(s): 97-110. [McCabe, 1976] McCabe, T. J.; (1976) “A Complexity Measure”. IEEE Transactions of Software Engineering, Volume SE-2,
page(s): 308-320.
http://www.rise.com.br
ReferênciasReferências [McClure, 1978] McClure, C. L.; (1978), "A Model for Program Complexity Analysis", 3rd International Conference on Software
Engineering, page(s): 149-157, Piscataway, NJ, USA. [Pressman, 1997] Pressman, R. S.; (1997), "Software engineering a practitioner's approach", 4th.ed, McGraw-Hill, page(s): 852,
New York, USA. [Kafura, 1987] Kafura, D., Reddy, G.; (1987), "The Use of Software Complexity Metrics in Software Maintenance", IEEE
Transactions on Software Engineering archive, Volume 13 , page(s): 335-343, Piscataway, NJ, USA. [Krueguer, 1992] Krueger, C. W.; (1992), “Software Reuse” , ACM Computing Surveys, Volume 24, page(s): 131-183. [Sametinger, 1997] Sametinger, J.; (1997), “Software Engineering with Reusable Components”, Springer Verlag, page(s): 275. [Santos, 2006] Santos, E. C. R.; Durão, F.A.; Martins, A. C.; Mendes, R.; Melo, C. A.; Melo, B. J. M.; Garcia, V. C.; Almeida, E. S.;
Meira, S. R. L.; (2006), “Towards an Effective Context-Aware Proactive Asset Search and Retrieval Tool”, in the Sixth Workshop on Component-Based Development (WDBC), Recife, Brazil.
[Schneidewind, 1999] Schneidewind, N.F.; (1999), "Measuring and evaluating maintenance process using reliability, risk, and test metrics", Software Engineering, IEEE Transactions, Volume 25, page(s):769-781.
[Sommerville, 2004] Sommerville, I.; (2004), “Engenharia de Software”, Editora Addison Wesley, 6º Edição, São Paulo – SP. [Subramanya, 2003] Subramanya, R., Krishnan, M. S.; (2003), "Empirical Analysis of CK Metrics for Object-Oriented Design
Complexity: Implication for Software Defects", IEEE Transactions on Software Engineering, Volume 29, page(s): 297-310. [VanDoren, 1997] VanDoren, E., Sciences, k., Springs, C.; (1997), "Cyclomatic Complexity", Web Publication, access in:
http://www.sei.cmu.edu/str/descriptions/cyclomatic_body.html [Woodfield, 1980] Woodfield, N.; (1980), "Enhanced effort estimation by extending basic programming models to include
modularity factors", ACM publication. [Yin, 1978] Yin, B. H., Winchester, J. W.; (1978), "The establishment and use of measures to evaluate the quality of software
designs", Software quality assurance workshop on Functional and performance, page(s): 45-52, New York, NY, USA.
http://www.rise.com.br
Dúvidas, comentários Dúvidas, comentários e sugestõese sugestões
Aline TimóteoAline Timóteo
C.E.S.A.R. - Recife Center for Advanced Studies and SystemsC.E.S.A.R. - Recife Center for Advanced Studies and Systems
UFPE – Federal University of PernambucoUFPE – Federal University of Pernambuco
[email protected]@cin.ufpe.br