This document describes a 5-step approach for mining method descriptions from developer communications:
1. Download emails/bug reports and trace them to classes and methods using heuristics like mentioning class/file names.
2. Extract paragraphs of text from the communications.
3. Trace paragraphs to methods by checking for mentions of "method" and method names.
4. Apply heuristics to score paragraphs associated with methods based on how well they describe the method, like percentage of method parameters mentioned.
5. Rank paragraphs for each method by score to select best descriptions.
Very often, source code lacks comments that adequately describe its behavior. In such situations developers need to infer knowledge from the source code itself, or to search for source code descriptions in external artifacts. We argue that messages exchanged among contributors/developers, in the form of bug reports and emails, are a useful source of information to help understanding source code. However, such communications are unstructured and usually not explicitly meant to describe specific parts of the source code. Developers searching for code descriptions within communications
face the challenge of filtering large amount of data to extract what pieces of information are important to them. We propose an approach to automatically extract method descriptions from
communications in bug tracking systems and mailing lists. We have evaluated the approach on bug reports and mailing lists from two open source systems (Lucene and Eclipse). The
results indicate that mailing lists and bug reports contain relevant
descriptions of about 36% of the methods from Lucene and 7%
from Eclipse, and that the proposed approach is able to extract such descriptions with a precision up to 79% for Eclipse and 87% for Lucene. The extracted method descriptions can help
developers in understanding the code and could also be used as a starting point for source code re-documentation.
Creation of a Test Bed Environment for Core Java Applications using White Box...cscpconf
A Test Bed Environment allows for rigorous, transparent, and replicable testing of scientific
theories. However, in software development these test beds can be specified hardware and
software environment for the application under test. Though the existing open source test bed
environments in Integrated Development Environment (IDE)s are capable of supporting the
development of Java application types, test reports are generated by third party developers.
They do not enhance the utility and the performance of the system constructed. Our proposed
system, we have created a customized test bed environment for core java application programs
used to generate the test case report using generated control flow graph. This can be obtained by developing a new mini compiler with additional features.
Ideal for learning the basics of java, and can also be used as a school project for class 10 and 12. The document contains illustrative pictures, and carefully selected information to make the basics of java strong. Pls ignore small spelling mistakes made.
This document provides information about a lab manual for an Object Oriented Programming lab through Java at Guru Nanak Engineering College for the 2007-2008 academic year. It includes the lab objectives, guidelines for students, a list of lab exercises to be completed over 15 weeks, descriptions of OOP concepts, and solutions to sample programs. The document was prepared by D. Rama Rao and approved by G. Prabhakar Raju for use in the Department of Information Technology.
Object-oriented programming concepts organize software using objects that contain data and code. An object stores its state in fields and exposes behavior through methods. Encapsulating data within objects and requiring interaction through methods is known as data encapsulation. Classes define types of objects and act as blueprints, allowing the creation of multiple objects with similar characteristics. Inheritance allows new classes to inherit properties from existing classes. Polymorphism allows objects to take on multiple forms, while dynamic binding determines appropriate code to execute based on an object's type at runtime. Objects communicate by sending and receiving messages containing method names and parameters. Packages organize related classes and interfaces into logical groups.
The document is a lab manual for Java programming that includes 12 experiments. The first experiment involves creating a Java package with Stack and Queue classes that demonstrate LIFO and FIFO principles respectively using methods like push(), pop() and enqueue(), dequeue(). The second experiment involves designing a ComplexNumber class with constructors to perform addition, subtraction and multiplication of complex numbers.
This document provides code for a simple text-based game that uses object-oriented principles in C++. The game code is provided to demonstrate refactoring a procedural program into an object-oriented structure. Students are instructed to refactor the given code by:
1) Creating classes and structures to represent game entities and vectors
2) Adding game logic to check for a win or loss condition
3) Using an enum to represent different game states
The refactored code is intended to demonstrate OOP concepts like encapsulation, abstraction, and polymorphism.
Very often, source code lacks comments that adequately describe its behavior. In such situations developers need to infer knowledge from the source code itself, or to search for source code descriptions in external artifacts. We argue that messages exchanged among contributors/developers, in the form of bug reports and emails, are a useful source of information to help understanding source code. However, such communications are unstructured and usually not explicitly meant to describe specific parts of the source code. Developers searching for code descriptions within communications
face the challenge of filtering large amount of data to extract what pieces of information are important to them. We propose an approach to automatically extract method descriptions from
communications in bug tracking systems and mailing lists. We have evaluated the approach on bug reports and mailing lists from two open source systems (Lucene and Eclipse). The
results indicate that mailing lists and bug reports contain relevant
descriptions of about 36% of the methods from Lucene and 7%
from Eclipse, and that the proposed approach is able to extract such descriptions with a precision up to 79% for Eclipse and 87% for Lucene. The extracted method descriptions can help
developers in understanding the code and could also be used as a starting point for source code re-documentation.
Creation of a Test Bed Environment for Core Java Applications using White Box...cscpconf
A Test Bed Environment allows for rigorous, transparent, and replicable testing of scientific
theories. However, in software development these test beds can be specified hardware and
software environment for the application under test. Though the existing open source test bed
environments in Integrated Development Environment (IDE)s are capable of supporting the
development of Java application types, test reports are generated by third party developers.
They do not enhance the utility and the performance of the system constructed. Our proposed
system, we have created a customized test bed environment for core java application programs
used to generate the test case report using generated control flow graph. This can be obtained by developing a new mini compiler with additional features.
Ideal for learning the basics of java, and can also be used as a school project for class 10 and 12. The document contains illustrative pictures, and carefully selected information to make the basics of java strong. Pls ignore small spelling mistakes made.
This document provides information about a lab manual for an Object Oriented Programming lab through Java at Guru Nanak Engineering College for the 2007-2008 academic year. It includes the lab objectives, guidelines for students, a list of lab exercises to be completed over 15 weeks, descriptions of OOP concepts, and solutions to sample programs. The document was prepared by D. Rama Rao and approved by G. Prabhakar Raju for use in the Department of Information Technology.
Object-oriented programming concepts organize software using objects that contain data and code. An object stores its state in fields and exposes behavior through methods. Encapsulating data within objects and requiring interaction through methods is known as data encapsulation. Classes define types of objects and act as blueprints, allowing the creation of multiple objects with similar characteristics. Inheritance allows new classes to inherit properties from existing classes. Polymorphism allows objects to take on multiple forms, while dynamic binding determines appropriate code to execute based on an object's type at runtime. Objects communicate by sending and receiving messages containing method names and parameters. Packages organize related classes and interfaces into logical groups.
The document is a lab manual for Java programming that includes 12 experiments. The first experiment involves creating a Java package with Stack and Queue classes that demonstrate LIFO and FIFO principles respectively using methods like push(), pop() and enqueue(), dequeue(). The second experiment involves designing a ComplexNumber class with constructors to perform addition, subtraction and multiplication of complex numbers.
This document provides code for a simple text-based game that uses object-oriented principles in C++. The game code is provided to demonstrate refactoring a procedural program into an object-oriented structure. Students are instructed to refactor the given code by:
1) Creating classes and structures to represent game entities and vectors
2) Adding game logic to check for a win or loss condition
3) Using an enum to represent different game states
The refactored code is intended to demonstrate OOP concepts like encapsulation, abstraction, and polymorphism.
For more course tutorials visit
www.tutorialrank.com
Question 1. 1. In addition to grouping functions together, a class also groups (Points : 3)
libraries.
math operations.
print statements.
variables.
The document provides a list of 25 multiple choice questions related to C++ programming concepts such as classes, objects, inheritance, polymorphism, memory management, and more. Each question has 3-4 possible answer choices and is worth a certain number of points. The questions cover topics that would be included on a final exam for a C++ programming course.
For more classes visit
www.snaptutorial.com
Question 1. 1. In addition to grouping functions together, a class also groups (Points : 3)
libraries.
math operations.
print statements.
For more classes visit
www.snaptutorial.com
Question 1. 1. In addition to grouping functions together, a class also groups (Points : 3)
libraries.
math operations.
print statements.
variables.
Question 2. 2. Hiding data in a class is also called (Points : 3)
encapsulation.
accessibility inversion.
For more classes visit
www.snaptutorial.com
Question 1. 1. In addition to grouping functions together, a class also groups (Points : 3)
libraries.
math operations.
print statements.
variables.
Question 2. 2. Hiding data in a class is also called (Points : 3)
Gsp 125 Enthusiastic Study / snaptutorial.comStephenson101
Question 1. 1. In addition to grouping functions together, a class also groups (Points : 3)
libraries.
math operations.
print statements.
variables.
Question 2. 2. Hiding data in a class is also called (Points : 3)
encapsulation.
accessibility inversion.
confusion culling.
redirection.
GSP 125 RANK Education for Service--gsp125rank.comclaric25
The document provides a guide for a GSP 125 final exam with multiple choice questions covering topics in C++ classes, objects, inheritance, templates, pointers, and more. It also includes coding questions to test understanding of concepts like writing classes, using inheritance, dynamically allocating memory, and more. The guide provides the questions, points possible for each, and blank space for answers. It directs students to a website for more exam preparation materials.
The document describes a final project for a BENG 108 course to create a program that identifies Corydoras catfish species. The program allows users to input physical trait observations and returns potential species matches. It also allows administrators to add new species to the database. The project involved downloading species photos, defining distinguishing traits, building a searchable database in LabVIEW, and ensuring the program could identify species from trait combinations. Bugs included skipping the first trait and issues with reusing LED buttons that were addressed.
For more course tutorials visit
www.newtonhelp.com
Question 1. 1. In addition to grouping functions together, a class also groups (Points : 3)
libraries.
math operations.
C# classes allow for modularity, data encapsulation, inheritance, and polymorphism. They act as blueprints for generating object instances. The document discusses key object-oriented programming concepts in C# like encapsulation, inheritance, polymorphism, casting, exception handling, garbage collection, interfaces, collections, comparables, and delegates. It provides examples to illustrate concepts like shallow cloning using ICloneable, implementing IComparable, overloading operators, and using XML documentation comments.
The document discusses key concepts in Java programming including declaring and initializing arrays, multidimensional arrays, inheritance, polymorphism, overriding methods, and heterogeneous collections. It explains how to create arrays of primitive and reference types, determine an array's length, and copy arrays. Inheritance, polymorphism, and method overriding are demonstrated. The session summary restates the main topics covered.
A class in C++ allows developers to group together related data and functions to represent an object. The document discusses the basics of classes and objects in C++, including:
- What a class is and how it can constrain and manipulate data like an int primitive.
- The components of a class declaration including data members and methods.
- How objects are instances of a class that occupy memory and can access class members.
- The importance of encapsulation through making data private and providing public accessors.
- How to define methods and access class members using the scope resolution operator.
- Best practices like placing class declarations in header files and definitions in cpp files.
This document discusses different techniques for reading files in Python. It begins by explaining what files are and the different types, with a focus on text files. It then demonstrates opening a file and reading the entire contents in one string. Next, it shows how to read each line of a file as a separate string using readlines(). Finally, it provides an example of printing the lines of a file in reverse order to illustrate reading files in different ways. The key techniques covered are reading the entire file, reading a specified number of characters, reading each line as a separate string, and iterating through the lines in reverse order.
Mahmoud Abdullah Ahmed Mahmoud is an Egyptian national seeking an opportunity in a reputable organization. He has a Bachelor's degree in Economics from 6 October University and experience working in sales, procurement, and accounting roles. He is proficient in English, Arabic, and Microsoft Office applications.
Este documento presenta un libro sobre violencia sexual infantil compilado por la Corporación de Promoción y Apoyo a la Infancia (PAICABÍ). El libro incluye capítulos escritos por psicólogos, asistentes sociales y abogados que trabajan en centros de atención infantil. Los temas cubiertos incluyen los derechos de los niños, la intervención en casos de maltrato grave, la comprensión de la violencia desde la complejidad, la constitución de la subjetividad en equipos técnicos y los des
Este documento presenta un informe de investigación realizado por un grupo de 5 estudiantes de la Facultad de Ciencias Económicas de la Universidad Privada Antenor Orrego para su curso de Economía y Finanzas. El informe incluye enlaces a una presentación de diapositivas sobre gestión de riesgos y un video de una entrevista, y lista a los estudiantes del grupo y su docente, el Dr. Jenry Hidalgo Lama.
This document discusses an automatic code generation tool called UJECTOR that can generate executable Java code from UML diagrams, including class diagrams, sequence diagrams, and activity diagrams. It notes the benefits of automatic code generation in reducing errors compared to manual coding. The paper also discusses some related work, including Enterprise Architect, Eclipse UML Generators, Rhapsody, and dCode - other tools that can generate code from UML models. Overall, the document examines challenges in ensuring consistency, accuracy, maintainability and efficiency when automatically generating code from UML models.
The document discusses object orientation and compares procedural and object-oriented programming. It defines key concepts in object-oriented programming like classes, objects, inheritance, encapsulation, and polymorphism. It also provides an example of a local class in ABAP with methods to retrieve and display data from database tables.
For more course tutorials visit
www.tutorialrank.com
Question 1. 1. In addition to grouping functions together, a class also groups (Points : 3)
libraries.
math operations.
print statements.
variables.
The document provides a list of 25 multiple choice questions related to C++ programming concepts such as classes, objects, inheritance, polymorphism, memory management, and more. Each question has 3-4 possible answer choices and is worth a certain number of points. The questions cover topics that would be included on a final exam for a C++ programming course.
For more classes visit
www.snaptutorial.com
Question 1. 1. In addition to grouping functions together, a class also groups (Points : 3)
libraries.
math operations.
print statements.
For more classes visit
www.snaptutorial.com
Question 1. 1. In addition to grouping functions together, a class also groups (Points : 3)
libraries.
math operations.
print statements.
variables.
Question 2. 2. Hiding data in a class is also called (Points : 3)
encapsulation.
accessibility inversion.
For more classes visit
www.snaptutorial.com
Question 1. 1. In addition to grouping functions together, a class also groups (Points : 3)
libraries.
math operations.
print statements.
variables.
Question 2. 2. Hiding data in a class is also called (Points : 3)
Gsp 125 Enthusiastic Study / snaptutorial.comStephenson101
Question 1. 1. In addition to grouping functions together, a class also groups (Points : 3)
libraries.
math operations.
print statements.
variables.
Question 2. 2. Hiding data in a class is also called (Points : 3)
encapsulation.
accessibility inversion.
confusion culling.
redirection.
GSP 125 RANK Education for Service--gsp125rank.comclaric25
The document provides a guide for a GSP 125 final exam with multiple choice questions covering topics in C++ classes, objects, inheritance, templates, pointers, and more. It also includes coding questions to test understanding of concepts like writing classes, using inheritance, dynamically allocating memory, and more. The guide provides the questions, points possible for each, and blank space for answers. It directs students to a website for more exam preparation materials.
The document describes a final project for a BENG 108 course to create a program that identifies Corydoras catfish species. The program allows users to input physical trait observations and returns potential species matches. It also allows administrators to add new species to the database. The project involved downloading species photos, defining distinguishing traits, building a searchable database in LabVIEW, and ensuring the program could identify species from trait combinations. Bugs included skipping the first trait and issues with reusing LED buttons that were addressed.
For more course tutorials visit
www.newtonhelp.com
Question 1. 1. In addition to grouping functions together, a class also groups (Points : 3)
libraries.
math operations.
C# classes allow for modularity, data encapsulation, inheritance, and polymorphism. They act as blueprints for generating object instances. The document discusses key object-oriented programming concepts in C# like encapsulation, inheritance, polymorphism, casting, exception handling, garbage collection, interfaces, collections, comparables, and delegates. It provides examples to illustrate concepts like shallow cloning using ICloneable, implementing IComparable, overloading operators, and using XML documentation comments.
The document discusses key concepts in Java programming including declaring and initializing arrays, multidimensional arrays, inheritance, polymorphism, overriding methods, and heterogeneous collections. It explains how to create arrays of primitive and reference types, determine an array's length, and copy arrays. Inheritance, polymorphism, and method overriding are demonstrated. The session summary restates the main topics covered.
A class in C++ allows developers to group together related data and functions to represent an object. The document discusses the basics of classes and objects in C++, including:
- What a class is and how it can constrain and manipulate data like an int primitive.
- The components of a class declaration including data members and methods.
- How objects are instances of a class that occupy memory and can access class members.
- The importance of encapsulation through making data private and providing public accessors.
- How to define methods and access class members using the scope resolution operator.
- Best practices like placing class declarations in header files and definitions in cpp files.
This document discusses different techniques for reading files in Python. It begins by explaining what files are and the different types, with a focus on text files. It then demonstrates opening a file and reading the entire contents in one string. Next, it shows how to read each line of a file as a separate string using readlines(). Finally, it provides an example of printing the lines of a file in reverse order to illustrate reading files in different ways. The key techniques covered are reading the entire file, reading a specified number of characters, reading each line as a separate string, and iterating through the lines in reverse order.
Mahmoud Abdullah Ahmed Mahmoud is an Egyptian national seeking an opportunity in a reputable organization. He has a Bachelor's degree in Economics from 6 October University and experience working in sales, procurement, and accounting roles. He is proficient in English, Arabic, and Microsoft Office applications.
Este documento presenta un libro sobre violencia sexual infantil compilado por la Corporación de Promoción y Apoyo a la Infancia (PAICABÍ). El libro incluye capítulos escritos por psicólogos, asistentes sociales y abogados que trabajan en centros de atención infantil. Los temas cubiertos incluyen los derechos de los niños, la intervención en casos de maltrato grave, la comprensión de la violencia desde la complejidad, la constitución de la subjetividad en equipos técnicos y los des
Este documento presenta un informe de investigación realizado por un grupo de 5 estudiantes de la Facultad de Ciencias Económicas de la Universidad Privada Antenor Orrego para su curso de Economía y Finanzas. El informe incluye enlaces a una presentación de diapositivas sobre gestión de riesgos y un video de una entrevista, y lista a los estudiantes del grupo y su docente, el Dr. Jenry Hidalgo Lama.
This document discusses an automatic code generation tool called UJECTOR that can generate executable Java code from UML diagrams, including class diagrams, sequence diagrams, and activity diagrams. It notes the benefits of automatic code generation in reducing errors compared to manual coding. The paper also discusses some related work, including Enterprise Architect, Eclipse UML Generators, Rhapsody, and dCode - other tools that can generate code from UML models. Overall, the document examines challenges in ensuring consistency, accuracy, maintainability and efficiency when automatically generating code from UML models.
The document discusses object orientation and compares procedural and object-oriented programming. It defines key concepts in object-oriented programming like classes, objects, inheritance, encapsulation, and polymorphism. It also provides an example of a local class in ABAP with methods to retrieve and display data from database tables.
Object design is the process of refining requirements analysis models and making implementation decisions to optimize execution time, memory usage, and other performance measures. It involves four main activities: service specification to define class interfaces; component selection and reuse of existing solutions; restructuring models to improve code reuse; and optimization to meet performance requirements. During object design, interfaces are fully specified with visibility, type signatures, and contracts to clearly define class responsibilities.
The document discusses object oriented programming concepts in ABAP, including:
1. Classes define objects and contain components like attributes and methods. Objects are instances of classes.
2. Classes can be declared globally or locally. Global classes are stored centrally while local classes are defined within a program.
3. Key object oriented programming concepts like inheritance, abstraction, encapsulation and polymorphism are explained with examples in ABAP.
4. An example program is provided to demonstrate creating a class to manage a bank account balance, with methods to set the balance, deposit amounts, and withdraw amounts.
In this cheat sheet, you can find object oriented programming concept's fundamentals very easily. Some topics has very details explanations that could be very helpful those who is in entry level in java mostly object oriented world.
This document discusses using machine learning to classify malware into families based on the DREBIN dataset. It covers:
1. Preprocessing the dataset, including integer encoding and one-hot encoding to convert categorical data to numeric form for modeling.
2. Addressing overfitting by splitting the data into training and test sets and using cross-validation.
3. Using classifiers like Random Forest and SVM with strategies like one-vs-all and one-vs-one to perform multiclass classification of malware families.
4. The process of using binary classifiers for each family first, then combining the results to classify malware into the appropriate family.
These questions will be a bit advanced level 2sadhana312471
These questions will be a bit advanced(Intermediate) in terms of Python interview.
This is the continuity of Nail the Python Interview Questions.
The fields that these questions will help you in are:
• Python Developer
• Data Analyst
• Research Analyst
• Data Scientist
This document discusses defining custom classes in Java. It covers topics like returning objects from methods, using the "this" keyword, overloaded methods and constructors, class methods and variables, and organizing classes into packages. Key points include how objects are passed by value to method parameters rather than by reference, and how to document classes using Javadoc comments.
Object Oriented Programming, Networking, and Linux/Unix commands were discussed. Key points included: defining classes and instantiating objects in Python, class variables and methods, inheritance and method overriding, networking terminology like DNS and VPN, common Linux shell commands like ls, cd, grep, and piping commands together. Networking concepts like LAN, MAN, WAN and the basic communication flow of requests and responses were also covered.
Discover Tasty Query: The library for Scala program analysisJames Thompson
Discover the future impact of TASTy Query: a single, cross-platform API to answer all semantic questions about Scala programs, no compiler required. Already used in Metals’ debugger, TASTy Query will validate APIs do not break compatibility. Learn to build an analysis to improve your own code.
The document provides an overview of defining custom classes in Java, including how to return objects from methods, use the 'this' keyword, define overloaded methods and constructors, create class and static methods, implement parameter passing, organize classes into packages, and document classes with Javadoc comments. Key concepts like inheritance, polymorphism, and abstraction are not discussed. The chapter aims to describe the basics of defining custom classes in Java.
This chapter provides a brief overview of some core aspects of the C# programming language, including namespaces, classes, attributes, interfaces, enums, structs, and methods. It explains how namespaces organize related classes and avoid name collisions. It describes the structure of classes, their members, modifiers, and inheritance. It also covers attributes, interfaces, enums, structs, and how methods can be defined as virtual or overridden.
Don't be fooled by the thumbnail - the first couple of slides are a silly joke I forgot to remove before uploading.
Presentation derived from the "What's new in Python 2.4" document on http://www.python.org/ including much reformatting for presenting and presenter notes.
Please download the Keynote original - that way the presentation notes aren't burned into the slides.
CSCI6505 Project:Construct search engine using ML approachbutest
This document summarizes a student project report on developing a topic-based search engine for a website using machine learning. The project uses an instance-based learning algorithm (k-nearest neighbors) to classify HTML files into topics like artificial intelligence, programming languages, etc. It includes modules for training a classifier, crawling a website to index files into topics, and a search interface for users. The report describes implementing classes for preprocessing HTML, indexing, classification, and search functionality. Sample results show a keyword-based and topic-based search interface that returns relevant files.
The document discusses key concepts related to deploying EJB middleware technologies, including deployment descriptors, access control entries, control descriptors, session descriptors, entity descriptors, and other deployment considerations. The deployment descriptor class is used to communicate information from the developer to the deployer and container. It includes methods to get and set properties like the bean name, security roles, transaction attributes, and more.
Annotation processing allows for metadata to be added to Java programs without altering the program itself. Annotations can be defined and used to provide information for compilers or allow runtime/compile-time processing. Annotation processors provide a hook into the Java compilation process to generate source code and compile errors/warnings. They work by processing annotated elements in rounds. Testing annotation processors is challenging but libraries like Google's compile-testing library can help. Annotation processing also works on Android by setting up the processor as a Java module and using plugins like android-apt.
C++ is an object-oriented programming language developed by Bjarne Stroustrup at AT&T Bell Lab in the year 1980. Initially it was named “C with classes” but later in 1983 the name changed to C++. It is an extension of C with..
CLASSINDEX - SZYBKA ALTERNATYWA DLA SKANOWANIA KLAS
W Javie częstym problemem jest potrzeba znalezienia klas oznaczonych daną adnotacją. Choć oficjalnie Java nie wspiera takiej funkcjonalności, de facto standardowym rozwiązaniem tego problemu jest skanowanie klas. W tej prezentacji chciałbym przedstawić dużo szybszą alternatywę - autorski projekt oparty na mechanizmach procesowania adnotacji.
Similar to 130614 sebastiano panichella - mining source code descriptions from developers communications (20)
The document discusses the history and current state of software engineering and its application to IoT systems. It notes that 50 years after the earliest software projects, issues still include cost overruns, property damage, risks to life and death, and challenges ensuring quality. For IoT, fragmentation across hardware, software, APIs and standards poses significant problems. The document proposes that research into IoT software engineering could help address these issues through approaches like developing software to run across diverse IoT platforms, and automatically miniaturizing software through techniques like multi-objective optimization to suit different IoT device capabilities.
1) Issue trackers are often used to track more than just bugs, including features, enhancements, and refactoring work.
2) A manual analysis found that nearly half of issues labeled as "bugs" in issue trackers were actually not bugs.
3) Relying on issue tracker labels alone can introduce significant errors into datasets used for tasks like bug prediction and severity estimation. More work is needed to clean noisy and unreliable data.
The document discusses how to derive dependency structures for legacy J2EE applications. It proposes analyzing all application tiers together using a language-independent model and parsing various artifacts. Configuration files and limited data flow analysis are used to understand dependencies. Container dependencies are explicitly codified by studying technology specifications and codifying dependency rules to apply when certain code patterns are detected in applications. This allows completing an application's dependency graph.
The document discusses the state of practices of service identification in the industry for migrating legacy systems to service-oriented architectures (SOA). It finds that while service identification is seen as important, it remains primarily a manual process focused on identifying coarse-grained business services from source code and business processes. Wrapping and clustering functionalities are common techniques. Fully automating service identification is still challenging due to the need to understand complex legacy system dependencies. The document recommends service identification be business-driven and follow proven methodologies.
This document discusses techniques for testing advanced driver assistance systems (ADAS) through physics-based simulation. It faces challenges due to the large, complex, and multidimensional test input space as well as the computational expense of simulation. The document proposes using a genetic algorithm guided by decision trees to more efficiently search for critical test cases. Classification trees are built to partition the input space into homogeneous regions in order to better guide the selection and generation of test inputs toward more critical areas.
The document reports on the findings of a survey of 45 industrial practitioners on their experiences with legacy-to-SOA migrations. The key findings include: 1) Practitioners migrate legacy systems implemented in Cobol and Java to reduce maintenance costs and improve flexibility/interoperability; 2) Identifying services is an important step but is mostly manual and business-driven; 3) The most used techniques are functionality clustering and wrapping; 4) Desired service qualities are reusability, granularity and loose coupling; 5) Identified services prioritize domain-specific over technical services; 6) RESTful services are most targeted technology.
The document investigates the impact of linguistic anti-patterns (LAs) on program comprehension. It defines LAs as bad naming, documentation, and implementation practices. A study was conducted involving 92 students assessing programs with and without LAs. The study found that LAs negatively impact understandability by increasing time and reducing correctness. Certain LAs like A2, B4, and D1 had a stronger negative effect than others like E1. The study also found that providing knowledge about LAs can help mitigate their impact by making programs easier and faster to comprehend.
The document discusses research on identifying and analyzing the impact of patterns on the quality of multi-language systems. The objectives are to collect and categorize sets of programming languages used together, detect patterns in multi-language programs to track bugs and provide best practices, and study how patterns impact quality. The contributions will be a catalog of multi-language patterns and defects, a detection tool, and analysis of patterns' effects on quality attributes. Current work includes reviewing literature on language combinations and patterns to provide recommendations for high-quality multi-language development.
This document discusses research on change impact analysis in multi-language systems. It begins by outlining recommendations for best practices when using JNI, such as passing primitive types, minimizing calls between native and Java code, and properly handling strings. It then describes a qualitative analysis of JNI usage that identified common practices and issues. Finally, it proposes future work to survey developers on applying recommendations to facilitate change impact analysis in multi-language systems.
The document summarizes a recommendation system that suggests software processes for video game projects based on similarities to past projects. The system analyzes over 100 postmortems from previous games to build a database of development processes and project contexts. It uses principal component analysis to identify similar past projects and recommends a process by combining elements from similar projects' processes. The system was evaluated both quantitatively based on correctness and coverage metrics and qualitatively through surveys and a case study with a developer team.
Will io t trigger the next software crisisPtidej Team
This document discusses how the rise of the Internet of Things (IoT) could trigger a new software crisis due to issues like fragmentation, complexity, and lack of standards. It provides a brief history of software engineering challenges over the past 50 years such as cost overruns, safety issues, and prioritizing productivity over quality. The document then examines how these same problems are emerging in the IoT context today. It argues that IoT software engineering practices need to address issues like device software, cloud/app development, and privacy in order to avoid a major crisis.
This document discusses theories related to software design patterns. It notes that while design patterns are commonly used, there is a need for more research on how they impact software quality. The document proposes several areas for developing theories, including systematically categorizing existing patterns based on underlying principles, combining principles to identify new patterns, and developing theories of patterns from developer behavior and for building software systems. Formalizing patterns and identifying their relationships could help teaching and understanding of patterns.
Laleh M. Eshkevari defended her Ph.D dissertation on developing techniques for the automatic detection and classification of identifier renamings in software projects. Her dissertation outlined a taxonomy of renamings, described approaches for renaming detection based on line mapping, entity mapping and data flow analysis, and discussed methods for classifying renamings based on their form and semantic changes. Evaluation of the approaches on several open source projects showed high precision and recall for renaming detection and identified trends in how renamings are used in practice.
1) The document analyzes the co-occurrence of code smells like anti-patterns and clones in software systems and their impact on fault-proneness.
2) It finds that over 50% of classes with anti-patterns also have clones, and 59-78% of classes with clones also participate in anti-patterns.
3) Classes with both anti-patterns and clones are significantly more fault-prone than other classes, with the risk of faults being at least 7 times higher in one system studied.
Trustrace is an approach that uses software repository links like SVN commits to improve the trust in automatically recovered traceability links between requirements and code. It calculates an initial trust value for links based on IR techniques like VSM, and then reweights the links based on additional information from the software repository. An evaluation on two case studies found Trustrace improved precision over VSM alone and showed no significant difference in recall, supporting the hypothesis that Trustrace can improve link recovery accuracy over IR-only approaches.
The document presents a taxonomy called ProMeTA for classifying program metamodels used in program reverse engineering. ProMeTA defines characteristics such as target language, abstraction level, meta-language, and more to classify popular metamodels like AST, KDM, FAMIX. The taxonomy aims to provide a comprehensive guide for researchers and practitioners to select, design, and communicate metamodels. The paper also analyzes existing metamodels according to the ProMeTA taxonomy and identifies gaps to guide future metamodel development.
This document describes a controlled, multiple case study of software evolution and defects from industrial projects. It details the data sources used, including source code repositories, issue tracking databases, and interviews. Metrics such as code smells, size, effort, and defects were collected. Programming skills of developers were also measured. Code smell detection tools and custom scripts to analyze code changes were used to extract metrics on a variety of code issues and evolution over time. The data is available online for further analysis.
The document describes a study on detecting linguistic (anti)patterns in RESTful APIs. It presents an approach called DOLAR (Detection Of Linguistic Antipatterns in REST) that analyzes REST API URIs and detects antipatterns using heuristics-based algorithms. Experiments were conducted on 309 methods from 15 public REST APIs to test DOLAR's accuracy, the extensibility of the underlying SOFA framework, and the performance of detection algorithms. The results showed that 42% of methods exhibited contextualized resource names (a pattern) while 14% had contextless resource names (an antipattern), with detection taking under a second on average.
Taking AI to the Next Level in Manufacturing.pdfssuserfac0301
Read Taking AI to the Next Level in Manufacturing to gain insights on AI adoption in the manufacturing industry, such as:
1. How quickly AI is being implemented in manufacturing.
2. Which barriers stand in the way of AI adoption.
3. How data quality and governance form the backbone of AI.
4. Organizational processes and structures that may inhibit effective AI adoption.
6. Ideas and approaches to help build your organization's AI strategy.
Building Production Ready Search Pipelines with Spark and MilvusZilliz
Spark is the widely used ETL tool for processing, indexing and ingesting data to serving stack for search. Milvus is the production-ready open-source vector database. In this talk we will show how to use Spark to process unstructured data to extract vector representations, and push the vectors to Milvus vector database for search serving.
GraphRAG for Life Science to increase LLM accuracyTomaz Bratanic
GraphRAG for life science domain, where you retriever information from biomedical knowledge graphs using LLMs to increase the accuracy and performance of generated answers
Programming Foundation Models with DSPy - Meetup SlidesZilliz
Prompting language models is hard, while programming language models is easy. In this talk, I will discuss the state-of-the-art framework DSPy for programming foundation models with its powerful optimizers and runtime constraint system.
Your One-Stop Shop for Python Success: Top 10 US Python Development Providersakankshawande
Simplify your search for a reliable Python development partner! This list presents the top 10 trusted US providers offering comprehensive Python development services, ensuring your project's success from conception to completion.
In the realm of cybersecurity, offensive security practices act as a critical shield. By simulating real-world attacks in a controlled environment, these techniques expose vulnerabilities before malicious actors can exploit them. This proactive approach allows manufacturers to identify and fix weaknesses, significantly enhancing system security.
This presentation delves into the development of a system designed to mimic Galileo's Open Service signal using software-defined radio (SDR) technology. We'll begin with a foundational overview of both Global Navigation Satellite Systems (GNSS) and the intricacies of digital signal processing.
The presentation culminates in a live demonstration. We'll showcase the manipulation of Galileo's Open Service pilot signal, simulating an attack on various software and hardware systems. This practical demonstration serves to highlight the potential consequences of unaddressed vulnerabilities, emphasizing the importance of offensive security practices in safeguarding critical infrastructure.
Have you ever been confused by the myriad of choices offered by AWS for hosting a website or an API?
Lambda, Elastic Beanstalk, Lightsail, Amplify, S3 (and more!) can each host websites + APIs. But which one should we choose?
Which one is cheapest? Which one is fastest? Which one will scale to meet our needs?
Join me in this session as we dive into each AWS hosting service to determine which one is best for your scenario and explain why!
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
Ivanti’s Patch Tuesday breakdown goes beyond patching your applications and brings you the intelligence and guidance needed to prioritize where to focus your attention first. Catch early analysis on our Ivanti blog, then join industry expert Chris Goettl for the Patch Tuesday Webinar Event. There we’ll do a deep dive into each of the bulletins and give guidance on the risks associated with the newly-identified vulnerabilities.
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...Alex Pruden
Folding is a recent technique for building efficient recursive SNARKs. Several elegant folding protocols have been proposed, such as Nova, Supernova, Hypernova, Protostar, and others. However, all of them rely on an additively homomorphic commitment scheme based on discrete log, and are therefore not post-quantum secure. In this work we present LatticeFold, the first lattice-based folding protocol based on the Module SIS problem. This folding protocol naturally leads to an efficient recursive lattice-based SNARK and an efficient PCD scheme. LatticeFold supports folding low-degree relations, such as R1CS, as well as high-degree relations, such as CCS. The key challenge is to construct a secure folding protocol that works with the Ajtai commitment scheme. The difficulty, is ensuring that extracted witnesses are low norm through many rounds of folding. We present a novel technique using the sumcheck protocol to ensure that extracted witnesses are always low norm no matter how many rounds of folding are used. Our evaluation of the final proof system suggests that it is as performant as Hypernova, while providing post-quantum security.
Paper Link: https://eprint.iacr.org/2024/257
Best 20 SEO Techniques To Improve Website Visibility In SERPPixlogix Infotech
Boost your website's visibility with proven SEO techniques! Our latest blog dives into essential strategies to enhance your online presence, increase traffic, and rank higher on search engines. From keyword optimization to quality content creation, learn how to make your site stand out in the crowded digital landscape. Discover actionable tips and expert insights to elevate your SEO game.
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3Data Hops
Free A4 downloadable and printable Cyber Security, Social Engineering Safety and security Training Posters . Promote security awareness in the home or workplace. Lock them Out From training providers datahops.com
5. Context: Software Project
Coming back
to the reality...
Program
Comprehension
Source Code
Maintenance
Tasks
Difficult
understanding
Developer
6. Idea
We argue that messages exchanged among contributors/developers
are a useful source of information to help understanding source code.
In such situations developers need to infer knowledge from,
the source code itself
Developer
source code descriptions in external
artifacts.
7. ..................................................
When call the method IndexSplitter.split(File
destDir, String[] segs) from the Lucene cotrib
directory(contrib/misc/src/java/org/apache/luc
ene/index) it creates an index with segments
descriptor file with among contributors/developers
We argue that messages exchanged wrong data. Namely wrong
are a useful source of information to help understanding of segment
is the number representing the name source code.
that would be created next in this index.
Idea
..................................................
In such situations developers need to infer knowledge from,
CLASS: IndexSplitter
the source code itself
Developer
METHOD: split
source code descriptions in external
artifacts.
9. Step 1: Downloading emails/bugs reports and tracing them
onto classes
Two heuristics
Developer
Discussion
The discussion contains a fully-qualified class name (e.g.,
org.apache.lucene.analysis.MappingCharFilter); or the email contains a
file name (e.g., MappingCharFilter.java)
For bug reports, we complement the above heuristic by matching the
bug ID of each closed bug to the commit notes, therefore tracing the bug
report to the files changed in that commit
When call the method IndexSplitter .split(File destDir, String[] segs) from the
Lucene cotrib directory (contrib/misc/src/java/org/apache/lucene/index) it creates
an index with segments descriptor file with wrong data. Namely wrong is the number
representing the name of segment that would be created next in this index.
public void split(File destDir, String[] segs) throws IOException {
destDir.mkdirs();
FSDirectory destFSDir = FSDirectory.open(destDir);
SegmentInfos destInfos = new SegmentInfos }
If some of the segments of the index already has this name this results either to
impossibility to create new segment or in crating of an corrupted segment.
10. Step 1: Downloading emails/bugs reports and tracing them
onto classes
Two heuristics
Developer
Discussion
The discussion contains a fully-qualified class name (e.g.,
org.apache.lucene.analysis.MappingCharFilter); or the email contains a
file name (e.g., MappingCharFilter.java)
For bug reports, we complement the above heuristic by matching the
bug ID of each closed bug to the commit notes, therefore tracing the bug
report to the files changed in that commit
When call the method IndexSplitter .split(File destDir, String[] segs) from the
Lucene cotrib directory (contrib/misc/src/java/org/apache/lucene/index) it creates
an index with segments descriptor file with wrong data. Namely wrong is the number
representing the name of segment that would be created next in this index.
CLASS: IndexSplitter
public void split(File destDir, String[] segs) throws IOException {
destDir.mkdirs();
FSDirectory destFSDir = FSDirectory.open(destDir);
SegmentInfos destInfos = new SegmentInfos }
If some of the segments of the index already has this name this results either to
impossibility to create new segment or in crating of an corrupted segment.
11. Step 2: Extracting paragraphs
We consider as paragraphs, text section separated by one or more
white lines
Two heuristics
We prune out paragraph description from source code fragments
and/or stack Traces "by using an approach inspired by the work of
Bacchelli et al.
Developer
Discussion
When call the method IndexSplitter.split(File destDir, String[] segs) from the
PAR
Lucene cotrib directory (contrib/misc/src/java/org/apache/lucene/index) it creates
1
an index with segments descriptor file with wrong data. Namely wrong is the number
representing the name of segment that would be created next in this index.
public void split(File destDir, String[] segs) throws IOException {
destDir.mkdirs();
FSDirectory destFSDir = FSDirectory.open(destDir);
SegmentInfos destInfos = new SegmentInfos }
PAR
2
If some of the segments of the index already has this name this results either to
impossibility to create new segment or in crating of an corrupted segment.
PAR
3
12. Step 2: Extracting paragraphs
We consider as paragraphs, text section separated by one or more
white lines
Two heuristics
We prune out paragraph description from source code fragments
and/or stack Traces "by using an approach inspired by the work of
Bacchelli et al.
Developer
Discussion
When call the method IndexSplitter.split(File destDir, String[] segs) from the
PAR
Lucene cotrib directory (contrib/misc/src/java/org/apache/lucene/index) it creates
1
an index with segments descriptor file with wrong data. Namely wrong is the number
representing the name of segment that would be created next in this index.
public void split(File destDir, String[] segs) throws IOException {
destDir.mkdirs();
FSDirectory destFSDir = FSDirectory.open(destDir);
SegmentInfos destInfos = new SegmentInfos }
PAR
2
If some of the segments of the index already has this name this results either to
impossibility to create new segment or in crating of an corrupted segment.
PAR
3
13. Step 3: Tracing paragraphs onto methods
A) A valid paragraph must contain the keyword “method”
These paragraphs must
respect the following
two conditions:
Developer
Discussion
A)
B) and the method name must be followed by a open parenthesis—
i.e., we match “foo(”
B)
When call the method IndexSplitter.split(File destDir, String[] segs)
PAR
from the Lucene cotrib directory it creates an index with segments1
descriptor file with wrong data. Namely wrong is the number
representing the name of segment that would be created next in this
index.
CLASS: IndexSplitter
METHOD: split(
......................................................................................
......................................................................................
......................................................................................
......................................................................................
14. Step 4: Heuristic based Filtering
We defined a set of heuristics to further filter the paragraphs associated with
methods that assign each paragraph a score:
..........................
Problem seems to come from
MainMethodeSearchEngine in
org.eclipse.jdt.internal.ui.launcher
The Method
searchMainMethods(IProgressMonitor,
IJavaSearchScope, boolean) ,there's
a call to addSubTypes(List,
IProgressMonitor, IJavaSearchScope)
Method if includesSubtypes flag is
ON. This method add all types subtypes as soon as the given scope
encloses them without testing if
sub-types have a main! After return
IType[] before the excecution
..........................
CLASS: MainMethodSearchEngine
METHOD: serachMainMethods
SCORE
15. Step 4: Heuristic based Filtering
We defined a set of heuristics to further filter the paragraphs associated with
methods that assign each paragraph a score:
..........................
Problem seems to come from
MainMethodeSearchEngine in
org.eclipse.jdt.internal.ui.launcher
The Method
searchMainMethods(IProgressMonitor,
IJavaSearchScope, boolean) ,there's
a call to addSubTypes(List,
IProgressMonitor, IJavaSearchScope)
Method if includesSubtypes flag is
ON. This method add all types subtypes as soon as the given scope
encloses them without testing if
sub-types have a main! After return
IType[] before the excecution
..........................
CLASS: MainMethodSearchEngine
METHOD: serachMainMethods
% parameter = 100% -> s1= 1
SCORE
a) Method parameters:
% of parameters
s1= mentioned in the
paragraphs. Value
between 0 and 1
1 if the
method
does not
have
parameters
16. Step 4: Heuristic based Filtering
We defined a set of heuristics to further filter the paragraphs associated with
methods that assign each paragraph a score:
..........................
Problem seems to come from
MainMethodeSearchEngine in
org.eclipse.jdt.internal.ui.launcher
The Method
searchMainMethods(IProgressMonitor,
IJavaSearchScope, boolean) ,there's
a call to addSubTypes(List,
IProgressMonitor, IJavaSearchScope)
Method if includesSubtypes flag is
ON. This method add all types subtypes as soon as the given scope
encloses them without testing if
sub-types have a main! After return
IType[] before the excecution
..........................
CLASS: MainMethodSearchEngine
METHOD: serachMainMethods
% parameter = 100% -> s1= 1
SCORE =
1+
a) Method parameters:
% of parameters
s1= mentioned in the
paragraphs. Value
between 0 and 1
1 if the
method
does not
have
parameters
b) Syntactic descriptions (mentioning return values):
check whether the
Equal to one if
paragraph contains the
the method is
s2= keyword “return”. If YES
void.
Value equal 1, 0 otherwise
17. Step 4: Heuristic based Filtering
We defined a set of heuristics to further filter the paragraphs associated with
methods that assign each paragraph a score:
..........................
Problem seems to come from
MainMethodeSearchEngine in
org.eclipse.jdt.internal.ui.launcher
The Method
searchMainMethods(IProgressMonitor,
IJavaSearchScope, boolean) ,there's
a call to addSubTypes(List,
IProgressMonitor, IJavaSearchScope)
Method if includesSubtypes flag is
ON. This method add all types subtypes as soon as the given scope
encloses them without testing if
sub-types have a main! After return
IType[] before the excecution
..........................
CLASS: MainMethodSearchEngine
METHOD: serachMainMethods
% parameter = 100% -> s1= 1
SCORE =
1+ 0+ 1 = 2
a) Method parameters:
% of parameters
s1= mentioned in the
paragraphs. Value
between 0 and 1
1 if the
method
does not
have
parameters
b) Syntactic descriptions (mentioning return values):
check whether the
Equal to one if
paragraph contains the
the method is
s2= keyword “return”. If YES
void.
Value equal 1, 0 otherwise
c) Overriding/Overloading:
1 if any of the “overload” or
s3=“override” keywords appears
in the paragraph, 0 otherwise
d) Method invocations:
1 if any of the “call” or
s4=“excecute” keywords appears
in the paragraph, 0 otherwise
18. Step 4: Heuristic based Filtering
We defined a set of heuristics to further filter the paragraphs associated with
methods that assign each paragraph a score:
We selected paragraphs that have:
1. s1 ≥ thP = 0.5
2. s2 + s3 + s4 ≥ thH = 1
a) Method parameters:
% of parameters
s1= mentioned in the
paragraphs. Value
between 0 and 1
b) Syntactic descriptions (mentioning return values):
check whether the
Equal to one if
paragraph contains the
the method is
s2= keyword “return”. If YES
void.
Value equal 1, 0 otherwise
OK
% parameter = 100% -> s1= 1 ≥ 0.5
SCORE =
1+ 0+ 1 = 2 ≥ 1
1 if the
method
does not
have
parameters
c) Overriding/Overloading:
1 if any of the “overload” or
s3=“override” keywords appears
in the paragraph, 0 otherwise
d) Method invocations:
1 if any of the “call” or
s4=“execute” keywords appears
in the paragraph, 0 otherwise
19. Step 5: Similarity based Filtering
We rank filtered paragraphs through their textual similarity with the method they
are likely describing.
METHOD
PARAGRAPH
SCORE
Similarity
Method_3
Paragraph_4
2.5
96.1%
Method_1
Paragraph_1
2.5
95.6%
Method_2
Paragraph_2
1.5
97.4%
Method_3
Paragraph_3
1.5
86.2%
Method_1
Paragraph_3
1.5
79.0%
Method_3
Paragraph_2
1.5
77.5%
Method_2
Paragraph_4
1.5
64.3%
Method_2
Paragraph_3
1.3
83.2%
Method_3
Paragraph_1
1.3
73.9%
Method_2
Paragraph_1
1.3
68.7%
Method_1
Paragraph_4
1.3
53.6%
Removing:
- English stop words;
- Programming
language keywords
Using:
- Camel Case
splitting the on
remaining words
- Vector Space Model
20. Step 5: Similarity based Filtering
We rank filtered paragraphs through their textual similarity with the method they
are likely describing.
METHOD
PARAGRAPH
SCORE
Similarity
Method_3
Paragraph_4
2.5
96.1%
Method_1
Paragraph_1
2.5
95.6%
Method_2
Paragraph_2
1.5
97.4%
Method_3
Paragraph_3
1.5
86.2%
Method_1
Paragraph_3
1.5
79.0%
Method_3
Paragraph_2
1.5
77.5%
Method_2
Paragraph_4
1.5
64.3%
Method_2
Paragraph_3
1.3
83.2%
Method_3
Paragraph_1
1.3
73.9%
Method_2
Paragraph_1
1.3
68.7%
Method_1
Paragraph_4
1.3
53.6%
Removing:
- English stop words;
- Programming
language keywords
Using:
- Camel Case
splitting the on
remaining words
- Vector Space Model
th>=0.80
21. Empirical Study
• Goal: analyze source code descriptions in developer
discussions
• Purpose: investigating how developer discussions
describe methods of Java Source Code
• Quality focus: find good method description in
messages exchanged among contributors/developers
• Context: Bug-report and mailing lists of two Java
Project
Apache Lucene and Eclipse
23. Research Questions
RQ1 (method coverage): How many methods from
the analyzed software systems are described by the
paragraphs identified by the proposed approach?
RQ2 (precision): How precise is the proposed approach
in identifying method descriptions?
RQ3 (missing descriptions): How many potentially
good method descriptions are missed by the approach?
24. RQ1: How many methods from the analyzed software
systems are described by the paragraphs identified
by the proposed approach?
25. RQ1: How many methods from the analyzed software
systems are described by the paragraphs identified
by the proposed approach?
26. RQ1: How many methods from the analyzed software
systems are described by the paragraphs identified
by the proposed approach?
27. RQ2: How precise is the proposed approach in identifying
method descriptions?
We sampled 250 descriptions from each project
28. RQ2: How precise is the proposed approach in identifying
method descriptions?
We sampled 250 descriptions from each project
29. RQ2: How precise is the proposed approach in identifying
method descriptions?
We sampled 250 descriptions from each project
30. RQ3: How many potentially good method descriptions are
missed by the approach?
We sampled 100 descriptions from each project
TABLE III
The analysis of a sample of 100 paragraphs traced to methods,
but not satisfying the Step 4 heuristic
System
True Negatives
False Negatives
Eclipse
78
22
Apache Lucene
67
33