Deep learning based code smell detection - Qualifying TalkSayed Mohsin Reza
Presented by; Sayed Mohsin Reza, Ph.D. Student, Computer Science, University of Texas
Abstract:
Code smells are structures in the source code that suggest the possibility of refactorings. Consequently, developers may identify refactoring opportunities by detecting code smells. However, manual identification of code smells is challenging and tedious. To this end, a number of approaches have been proposed to identify code smells automatically or semi-automatically. Most of such approaches rely on manually designed heuristics to map manually selected source code metrics into predictions. However, it is challenging to manually select the best features. It is also difficult to manually construct the optimal heuristics. To this end, in this paper we propose a deep learning based novel approach to detecting code smells. The key insight is that deep neural networks and advanced deep learning techniques could automatically select features of source code for code smell detection, and could automatically build the complex mapping between such features and predictions. A big challenge for deep learning based smell detection is that deep learning often requires a large number of labeled training data (to tune a large number of parameters within the employed deep neural network) whereas existing datasets for code smell detection are rather small. To this end, we propose an automatic approach to generating labeled training data for the neural network based classifier, which does not require any human intervention. As an initial try, we apply the proposed approach to four common and well-known code smells, i.e., feature envy, long method, large class, and misplaced class. Evaluation results on open-source applications suggest that the proposed approach significantly improves the state-of-the-art.
Hello Everyone, I am an ECE Trained Fresher and currently looking for opportunities in Design and Verification domain.
I would be grateful if you could help me with the same.
Please review my profile and my resume is attached herewith.
Thanks and Regards
Apoorva Tripathi
{apoorvatripathi24@gmail.com}
Finding interesting patterns in data can lead to uncovering new knowledge. New patterns that haven’t occurred before can signify events of interest. Depending on context, these can be called novelties, anomalies, outliers or events. Whatever they are called, they are interesting because they tell a story different from the norm. In this talk, we will call them anomalies. Two diverse applications of anomaly detection are detecting fraudulent credit card transactions and identifying astronomical anomalies such as solar flares.
However, there are many challenges in anomaly detection including high false positive rates and low predictive accuracy. Ensemble learning is a way of combining many algorithms or models to obtain better predictive performance. Anomaly detection is generally an unsupervised task, that is, we do not train models using labelled data. Constructing an unsupervised anomaly detection ensemble is challenging because we do not know the labels. In this talk we discuss two topics in anomaly detection. First, we introduce an anomaly detection ensemble using Item Response Theory (IRT) – a class of models used in educational psychometrics. Using IRT we construct an ensemble that can downplay noisy, non-discriminatory methods and accentuate sharper methods.
Then we explore anomaly detection in computer network security. With cyber incidents and data breaches becoming increasingly common, we have seen a massive increase in computer network attacks over the years. Anomaly detection methods, even though used to detect suspicious behaviour, are criticized for high false positive rates. In addition, computer networks produce a large amount of complex data. We go through the end-to-end process of detecting anomalies in this scenario and show how we can minimize false positives and visualise anomalies developing over time.
Deep learning based code smell detection - Qualifying TalkSayed Mohsin Reza
Presented by; Sayed Mohsin Reza, Ph.D. Student, Computer Science, University of Texas
Abstract:
Code smells are structures in the source code that suggest the possibility of refactorings. Consequently, developers may identify refactoring opportunities by detecting code smells. However, manual identification of code smells is challenging and tedious. To this end, a number of approaches have been proposed to identify code smells automatically or semi-automatically. Most of such approaches rely on manually designed heuristics to map manually selected source code metrics into predictions. However, it is challenging to manually select the best features. It is also difficult to manually construct the optimal heuristics. To this end, in this paper we propose a deep learning based novel approach to detecting code smells. The key insight is that deep neural networks and advanced deep learning techniques could automatically select features of source code for code smell detection, and could automatically build the complex mapping between such features and predictions. A big challenge for deep learning based smell detection is that deep learning often requires a large number of labeled training data (to tune a large number of parameters within the employed deep neural network) whereas existing datasets for code smell detection are rather small. To this end, we propose an automatic approach to generating labeled training data for the neural network based classifier, which does not require any human intervention. As an initial try, we apply the proposed approach to four common and well-known code smells, i.e., feature envy, long method, large class, and misplaced class. Evaluation results on open-source applications suggest that the proposed approach significantly improves the state-of-the-art.
Hello Everyone, I am an ECE Trained Fresher and currently looking for opportunities in Design and Verification domain.
I would be grateful if you could help me with the same.
Please review my profile and my resume is attached herewith.
Thanks and Regards
Apoorva Tripathi
{apoorvatripathi24@gmail.com}
Finding interesting patterns in data can lead to uncovering new knowledge. New patterns that haven’t occurred before can signify events of interest. Depending on context, these can be called novelties, anomalies, outliers or events. Whatever they are called, they are interesting because they tell a story different from the norm. In this talk, we will call them anomalies. Two diverse applications of anomaly detection are detecting fraudulent credit card transactions and identifying astronomical anomalies such as solar flares.
However, there are many challenges in anomaly detection including high false positive rates and low predictive accuracy. Ensemble learning is a way of combining many algorithms or models to obtain better predictive performance. Anomaly detection is generally an unsupervised task, that is, we do not train models using labelled data. Constructing an unsupervised anomaly detection ensemble is challenging because we do not know the labels. In this talk we discuss two topics in anomaly detection. First, we introduce an anomaly detection ensemble using Item Response Theory (IRT) – a class of models used in educational psychometrics. Using IRT we construct an ensemble that can downplay noisy, non-discriminatory methods and accentuate sharper methods.
Then we explore anomaly detection in computer network security. With cyber incidents and data breaches becoming increasingly common, we have seen a massive increase in computer network attacks over the years. Anomaly detection methods, even though used to detect suspicious behaviour, are criticized for high false positive rates. In addition, computer networks produce a large amount of complex data. We go through the end-to-end process of detecting anomalies in this scenario and show how we can minimize false positives and visualise anomalies developing over time.
A seminar in advanced Software Engineering concerning using models to guide the development process, and QVT to transfer a model into another model automatically
Tom DeMarco states that “You can’t control what you can’t measure”, but how much can we change and control (with) what we measure? This talk investigates the opportunities and limits of data-driven software engineering, shows which opportunities lie ahead of us when we engage in mining and analyzing software engineering process data, but also highlights important factors that influence the success and adaptability of data-based improvement approaches.
An Empirical Investigation on Documentation Usage Patterns in Maintenance TasksSebastiano Panichella
When developers perform a software maintenance
task, they need to identify artifacts—e.g., classes or more specifically
methods—that need to be modified. To this aim, they
can browse various kind of artifacts, for example use case
descriptions, UML diagrams, or source code.
This paper reports the results of a study—conducted with 33
participants— aimed at investigating (i) to what extent developers
use different kinds of documentation when identifying artifacts
to be changed, and (ii) whether they follow specific navigation
patterns among different kinds of artifacts.
Results indicate that, although developers spent a conspicuous
proportion of the available time by focusing on source code,
they browse back and forth between source code and either
static (class) or dynamic (sequence) diagrams. Less frequently,
developers—especially more experienced ones—follow an “integrated”
approach by using different kinds of artifacts.
Smart like a Fox: How clever students trick dumb programming assignment asses...Nane Kratzke
This case study reports on two first-semester programming courses with more than 190 students. Both courses made use of automated assessments. We observed how students trick these systems by analysing the version history of suspect submissions. By analysing more than 3300 submissions, we revealed four astonishingly simple tricks (overfitting, evasion) and cheat-patterns (redirection, and injection) that students used to trick automated programming assignment assessment systems (APAAS). Although not the main focus of this study, it discusses and proposes corresponding counter-measures where appropriate.
Nevertheless, the primary intent of this paper is to raise problem awareness and to identify and systematise observable problem patterns in a more formal approach. The identified immaturity of existing APAAS solutions might have implications for courses that rely deeply on automation like MOOCs. Therefore, we conclude to look at APAAS solutions much more from a security point of view (code injection). Moreover, we identify the need to evolve existing unit testing frameworks into more evaluation-oriented teaching solutions that provide better trick and cheat detection capabilities and differentiated grading support.
Following topics will be addressed into presentation:
Motivation and goals of splitting monolith application
Criteria and markers to start splitting process. Is it necessary at all?
Optimal order of extracting microservices
How organize the whole process in closed iterative steps?
What can be done with common libraries and shared code?
Options for technology and deployment of target microservices
How organize and motivate the teams and convince management?
Speaker Bio
Andrei is a Software Architect in VMWare Tanzu Labs. The areas of his interest are REST API design, Microservices, Cloud, resilient distributed systems, security and agile development. Andrei is PMC and committer of Apache CXF and committer of Syncope projects.
NodeXL presentation for SocialCom and for Microsoft Research (social analytics) 2009. Describes the NodeXL study with information/library science students and computer science students on the social network analysis tool, NodeXL. The study was sponsored by Microsoft Research and designed by Dr. Derek Hansen, Dana Rotman, Cody Dunne, Dr. Ben Shneiderman and Elizabeth Bonsignore.
Managing Large-scale Multimedia Development ProjectsSimon Price
Keynote presentation at IEEE International Conference on Multimedia in Engineering Education 1998, Hong Kong. This paper presents generally applicable techniques drawn from the experience of managing the UK's Teaching and Learning Technology Programme (TLTP) Economics Consortium project to develop WinEcon - a computer based package covering an entire first year introductory economics degree course. The WinEcon project has been a highly successful, large scale multimedia project. It has received multiple international awards, is site licensed by over 80% of UK universities and over 200 organisations world wide. However, what really happens when you set out to develop the world's largest computer based training package for economics with a team of 35 content experts and 17 programmers distributed across eight geographically separate sites is a far cry from the typical case study found in a 'software project management' textbook. There are inherent characteristics of multimedia software which make its development difficult. Consequently any multimedia project carries a high risk of failing to deliver on time, quality or budget and the nature of large scale development projects only serves to amplify the risk to such a degree that many such projects fail to deliver satisfactorily in any of these three areas. These management challenges encountered by the WinEcon project are independent of subject matter and must be addressed when managing any large scale multimedia development.
Can you understand what’s happening inside your code and system, simply by asking questions using your tools? Can you answer any new question you think of, or only the ones you prepared for?
Rails Conf 2014 Concerns, Decorators, Presenters, Service-objects, Helpers, H...Justin Gordon
Slides Ruby Conf 2014 on using simple techniques to create slimer, clearer models, controllers, and views in Ruby on Rails.
blog: http://www.railsonmaui.com
Code samples: https://github.com/justin808/fat-code-refactoring-techniques
Recognize, assess, reduce, and manage technical debtJim Bethancourt
Presents strategies for identifying, assessing, reducing, and managing technical debt at a structural level. Provides both technical and strategic business solutions.
Code Review Checklist: How far is a code review going? "Metrics measure the design of code after it has been written, a Review proofs it and Refactoring improves code."
In this paper a document structure is shown and tips for a code review.
Some checks fits with your existing tools and simply raises a hand when the quality or security of your codebase is impaired.
An Empirical Study on the Adequacy of Testing in Open Source ProjectsPavneet Singh Kochhar
In this study, we investigate the state-of-the-practice of testing
by measuring code coverage in open-source software projects. We examine over 300 large open-source projects written in Java, to measure the code coverage of their associated test cases.
A seminar in advanced Software Engineering concerning using models to guide the development process, and QVT to transfer a model into another model automatically
Tom DeMarco states that “You can’t control what you can’t measure”, but how much can we change and control (with) what we measure? This talk investigates the opportunities and limits of data-driven software engineering, shows which opportunities lie ahead of us when we engage in mining and analyzing software engineering process data, but also highlights important factors that influence the success and adaptability of data-based improvement approaches.
An Empirical Investigation on Documentation Usage Patterns in Maintenance TasksSebastiano Panichella
When developers perform a software maintenance
task, they need to identify artifacts—e.g., classes or more specifically
methods—that need to be modified. To this aim, they
can browse various kind of artifacts, for example use case
descriptions, UML diagrams, or source code.
This paper reports the results of a study—conducted with 33
participants— aimed at investigating (i) to what extent developers
use different kinds of documentation when identifying artifacts
to be changed, and (ii) whether they follow specific navigation
patterns among different kinds of artifacts.
Results indicate that, although developers spent a conspicuous
proportion of the available time by focusing on source code,
they browse back and forth between source code and either
static (class) or dynamic (sequence) diagrams. Less frequently,
developers—especially more experienced ones—follow an “integrated”
approach by using different kinds of artifacts.
Smart like a Fox: How clever students trick dumb programming assignment asses...Nane Kratzke
This case study reports on two first-semester programming courses with more than 190 students. Both courses made use of automated assessments. We observed how students trick these systems by analysing the version history of suspect submissions. By analysing more than 3300 submissions, we revealed four astonishingly simple tricks (overfitting, evasion) and cheat-patterns (redirection, and injection) that students used to trick automated programming assignment assessment systems (APAAS). Although not the main focus of this study, it discusses and proposes corresponding counter-measures where appropriate.
Nevertheless, the primary intent of this paper is to raise problem awareness and to identify and systematise observable problem patterns in a more formal approach. The identified immaturity of existing APAAS solutions might have implications for courses that rely deeply on automation like MOOCs. Therefore, we conclude to look at APAAS solutions much more from a security point of view (code injection). Moreover, we identify the need to evolve existing unit testing frameworks into more evaluation-oriented teaching solutions that provide better trick and cheat detection capabilities and differentiated grading support.
Following topics will be addressed into presentation:
Motivation and goals of splitting monolith application
Criteria and markers to start splitting process. Is it necessary at all?
Optimal order of extracting microservices
How organize the whole process in closed iterative steps?
What can be done with common libraries and shared code?
Options for technology and deployment of target microservices
How organize and motivate the teams and convince management?
Speaker Bio
Andrei is a Software Architect in VMWare Tanzu Labs. The areas of his interest are REST API design, Microservices, Cloud, resilient distributed systems, security and agile development. Andrei is PMC and committer of Apache CXF and committer of Syncope projects.
NodeXL presentation for SocialCom and for Microsoft Research (social analytics) 2009. Describes the NodeXL study with information/library science students and computer science students on the social network analysis tool, NodeXL. The study was sponsored by Microsoft Research and designed by Dr. Derek Hansen, Dana Rotman, Cody Dunne, Dr. Ben Shneiderman and Elizabeth Bonsignore.
Managing Large-scale Multimedia Development ProjectsSimon Price
Keynote presentation at IEEE International Conference on Multimedia in Engineering Education 1998, Hong Kong. This paper presents generally applicable techniques drawn from the experience of managing the UK's Teaching and Learning Technology Programme (TLTP) Economics Consortium project to develop WinEcon - a computer based package covering an entire first year introductory economics degree course. The WinEcon project has been a highly successful, large scale multimedia project. It has received multiple international awards, is site licensed by over 80% of UK universities and over 200 organisations world wide. However, what really happens when you set out to develop the world's largest computer based training package for economics with a team of 35 content experts and 17 programmers distributed across eight geographically separate sites is a far cry from the typical case study found in a 'software project management' textbook. There are inherent characteristics of multimedia software which make its development difficult. Consequently any multimedia project carries a high risk of failing to deliver on time, quality or budget and the nature of large scale development projects only serves to amplify the risk to such a degree that many such projects fail to deliver satisfactorily in any of these three areas. These management challenges encountered by the WinEcon project are independent of subject matter and must be addressed when managing any large scale multimedia development.
Can you understand what’s happening inside your code and system, simply by asking questions using your tools? Can you answer any new question you think of, or only the ones you prepared for?
Rails Conf 2014 Concerns, Decorators, Presenters, Service-objects, Helpers, H...Justin Gordon
Slides Ruby Conf 2014 on using simple techniques to create slimer, clearer models, controllers, and views in Ruby on Rails.
blog: http://www.railsonmaui.com
Code samples: https://github.com/justin808/fat-code-refactoring-techniques
Recognize, assess, reduce, and manage technical debtJim Bethancourt
Presents strategies for identifying, assessing, reducing, and managing technical debt at a structural level. Provides both technical and strategic business solutions.
Code Review Checklist: How far is a code review going? "Metrics measure the design of code after it has been written, a Review proofs it and Refactoring improves code."
In this paper a document structure is shown and tips for a code review.
Some checks fits with your existing tools and simply raises a hand when the quality or security of your codebase is impaired.
An Empirical Study on the Adequacy of Testing in Open Source ProjectsPavneet Singh Kochhar
In this study, we investigate the state-of-the-practice of testing
by measuring code coverage in open-source software projects. We examine over 300 large open-source projects written in Java, to measure the code coverage of their associated test cases.
Online aptitude test management system project report.pdfKamal Acharya
The purpose of on-line aptitude test system is to take online test in an efficient manner and no time wasting for checking the paper. The main objective of on-line aptitude test system is to efficiently evaluate the candidate thoroughly through a fully automated system that not only saves lot of time but also gives fast results. For students they give papers according to their convenience and time and there is no need of using extra thing like paper, pen etc. This can be used in educational institutions as well as in corporate world. Can be used anywhere any time as it is a web based application (user Location doesn’t matter). No restriction that examiner has to be present when the candidate takes the test.
Every time when lecturers/professors need to conduct examinations they have to sit down think about the questions and then create a whole new set of questions for each and every exam. In some cases the professor may want to give an open book online exam that is the student can take the exam any time anywhere, but the student might have to answer the questions in a limited time period. The professor may want to change the sequence of questions for every student. The problem that a student has is whenever a date for the exam is declared the student has to take it and there is no way he can take it at some other time. This project will create an interface for the examiner to create and store questions in a repository. It will also create an interface for the student to take examinations at his convenience and the questions and/or exams may be timed. Thereby creating an application which can be used by examiners and examinee’s simultaneously.
Examination System is very useful for Teachers/Professors. As in the teaching profession, you are responsible for writing question papers. In the conventional method, you write the question paper on paper, keep question papers separate from answers and all this information you have to keep in a locker to avoid unauthorized access. Using the Examination System you can create a question paper and everything will be written to a single exam file in encrypted format. You can set the General and Administrator password to avoid unauthorized access to your question paper. Every time you start the examination, the program shuffles all the questions and selects them randomly from the database, which reduces the chances of memorizing the questions.
Hierarchical Digital Twin of a Naval Power SystemKerry Sado
A hierarchical digital twin of a Naval DC power system has been developed and experimentally verified. Similar to other state-of-the-art digital twins, this technology creates a digital replica of the physical system executed in real-time or faster, which can modify hardware controls. However, its advantage stems from distributing computational efforts by utilizing a hierarchical structure composed of lower-level digital twin blocks and a higher-level system digital twin. Each digital twin block is associated with a physical subsystem of the hardware and communicates with a singular system digital twin, which creates a system-level response. By extracting information from each level of the hierarchy, power system controls of the hardware were reconfigured autonomously. This hierarchical digital twin development offers several advantages over other digital twins, particularly in the field of naval power systems. The hierarchical structure allows for greater computational efficiency and scalability while the ability to autonomously reconfigure hardware controls offers increased flexibility and responsiveness. The hierarchical decomposition and models utilized were well aligned with the physical twin, as indicated by the maximum deviations between the developed digital twin hierarchy and the hardware.
HEAP SORT ILLUSTRATED WITH HEAPIFY, BUILD HEAP FOR DYNAMIC ARRAYS.
Heap sort is a comparison-based sorting technique based on Binary Heap data structure. It is similar to the selection sort where we first find the minimum element and place the minimum element at the beginning. Repeat the same process for the remaining elements.
ACEP Magazine edition 4th launched on 05.06.2024Rahul
This document provides information about the third edition of the magazine "Sthapatya" published by the Association of Civil Engineers (Practicing) Aurangabad. It includes messages from current and past presidents of ACEP, memories and photos from past ACEP events, information on life time achievement awards given by ACEP, and a technical article on concrete maintenance, repairs and strengthening. The document highlights activities of ACEP and provides a technical educational article for members.
Literature Review Basics and Understanding Reference Management.pptxDr Ramhari Poudyal
Three-day training on academic research focuses on analytical tools at United Technical College, supported by the University Grant Commission, Nepal. 24-26 May 2024
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressionsVictor Morales
K8sGPT is a tool that analyzes and diagnoses Kubernetes clusters. This presentation was used to share the requirements and dependencies to deploy K8sGPT in a local environment.
TOP 10 B TECH COLLEGES IN JAIPUR 2024.pptxnikitacareer3
Looking for the best engineering colleges in Jaipur for 2024?
Check out our list of the top 10 B.Tech colleges to help you make the right choice for your future career!
1) MNIT
2) MANIPAL UNIV
3) LNMIIT
4) NIMS UNIV
5) JECRC
6) VIVEKANANDA GLOBAL UNIV
7) BIT JAIPUR
8) APEX UNIV
9) AMITY UNIV.
10) JNU
TO KNOW MORE ABOUT COLLEGES, FEES AND PLACEMENT, WATCH THE FULL VIDEO GIVEN BELOW ON "TOP 10 B TECH COLLEGES IN JAIPUR"
https://www.youtube.com/watch?v=vSNje0MBh7g
VISIT CAREER MANTRA PORTAL TO KNOW MORE ABOUT COLLEGES/UNIVERSITITES in Jaipur:
https://careermantra.net/colleges/3378/Jaipur/b-tech
Get all the information you need to plan your next steps in your medical career with Career Mantra!
https://careermantra.net/
Understanding Inductive Bias in Machine LearningSUTEJAS
This presentation explores the concept of inductive bias in machine learning. It explains how algorithms come with built-in assumptions and preferences that guide the learning process. You'll learn about the different types of inductive bias and how they can impact the performance and generalizability of machine learning models.
The presentation also covers the positive and negative aspects of inductive bias, along with strategies for mitigating potential drawbacks. We'll explore examples of how bias manifests in algorithms like neural networks and decision trees.
By understanding inductive bias, you can gain valuable insights into how machine learning models work and make informed decisions when building and deploying them.
1. A New Generation of Class Blueprint
Nour J. Agouf*, Stéphane Ducasse, Anne Etien, Michele Lanza.
*Arolla, Inria, Univ. Lille, CNRS, Centrale Lille,
UMR 9189 - CRIStAL-France
nour-jihene.agouf@arolla.fr
1
2. .fr
AROLLA IS A CONSULTING COMPANY SPECIALIZED IN
THE ADVANCED TECHNIQUES OF SOFTWARE
DEVELOPMENT: CLEAN CODE, TDD, BDD, LEGACY
REMEDIATION, etc.
2
2
3. 3
The time spent on reading
and understand source
code is over 70% of the
maintenance task
5. The Class Blueprint
Is a representation of static data of classes in object-
oriented programming. It gives an overview of a taste of
the class, focusing on methods classification and
displaying their call-flow.
5
10. 10
Initialization Externals Internals Accessors Attributes
Number of
LOC
Number of Invocations
Number
of
external
accesses
Number
of
internal
accesses
V1: Attribute node metrics
11. 11
Initialization Externals Internals Accessors Attributes
Black line: Connection
between methods
Cyan line: Connection from
accessors to attributes
V1: Simple line connection
13. - Obsolete classification of methods
- Missing information about attribute accesses
- The interplay between instance side and class side is not well supported
- Does not heed dead code
- Unclear direction of links
- Does not show the occurrences of method names
- A method cyclomatic complexity is not revealed
- Does not show if a method is tested or not
V1: Limitations
17. V2: Static vs Instance
Static
Attributes
Dead Methods Dead
Accessors
&
Attributes
17
17
Superclasses
Attributes
Instance Side
Attributes
Static Methods
Initialize Externals Internals
18. V2: Used vs Unused code
18
Dead Methods Dead
Attributes
Static
Attributes
Superclasses
Attributes
Instance Side
Attributes
Static Methods
Initialize Externals Internals
20. V2: Border width = Occurrences
20
Monomorphic: One method by
that name in the whole project.
Polymorphic: Commonly named
method
Megamorphic: Frequently
named methods
28. Invited people from the community
(26 participants)
Individual/ Group meetings
The meeting took from 10 to 25 minutes
28
Evaluation: Protocol
29. ✓ Select a project they wish to analyze
✓ Use the visualization on the selected project
✓ Screen record the experiment
✓ Write a report summarizing their findings
✓ Fill the post-experiment survey
29
Evaluation: What we asked for?
31. Participants level of knowledge about the
project.
31
The participants have diverse profiles:
• Interns
• Developers
• PhD students
• Researchers
Evaluation: About the participants
Experts
Debutants
Intermediary
Advanced
45 %
10 %
35 %
10 %
32. The participants have diverse profiles:
• Interns
• Developers
• PhD students
• Researchers
Experts
Debutants
Intermediary
Advanced
45 %
10 %
35 %
10 %
Participants level of knowledge about the project.
32
Evaluation: About the participants
33. Analyse data about the human-visualization interaction
33
Evaluation: Qualitative
Screen records Findings reports
(over 600 hours)
36. 36
✓ Duplicated Code
✓ Complex Methods
✓ Dead Code
✓ Long Method Comments
✓ Tested/Untested Methods
Qualitative evaluation: Plunge in
37. Quantitative
37
Evaluation: Quantitative
1. The visualization helps in understanding the:
2. Does the visualization help in detecting:
3. The visualization is:
Dead code
Complex methods
Tested/Untested methods
26%
46%
34%
46% 11% 3% 11%
38% 11% 3%
34% 19% 7% 3%
Easy to use
3%
15%
42%
76%
30% 15%
7%
7%
Scalable
Code/State of a class is reused
Reused code from the superclass
Class/instance side communication
Design of the class
Strongly agree Agree Undecided Disagree Strongly Disagree
15% 46%
3%
19%
7%
23%
53%
38%
15%
53%
19%
30%
23%
19%
7%
23%
Mono/poly/megamorphic methods 26% 46% 26%
38. “In the MicHTMLDoc class we could exclusively
see the tested and untested methods.
”
- From the Microdown project
38
Anecdotal evidence
39. “Dead methods correspond mostly to
unused code that I forgot to remove.
”
- From the Seeker project
39
Anecdotal evidence
40. “I found obsolete prototype code by
taking a look at these long methods
”
- From the Seeker project
40
Anecdotal evidence
41. The visualization also helped me quickly identify dead code and eliminate it. As
this is a new project (early stage of development) I didn’t remove all dead
methods or classes, but in other kinds of projects I would do it.
”
- From the Druid project
“
41
Anecdotal evidence
42. I couldn't used it in the large classes, those
are the most interesting to analyze.
”
- From the Iceberg project
“
42
Anecdotal evidence
43. • An enhancement of the Class Blueprint
visualization based on new requirements
• Qualitative & quantitative evaluations on 26
participants and 19 projects
• Participants reported some interesting
findings about anomalies in their software
Conclusion