The Infona portal uses cookies, i.e. strings of text saved by a browser on the user's device. The portal can access those files and use them to remember the user's data, such as their chosen settings (screen view, interface language, etc.), or their login data. By using the Infona portal the user accepts automatic saving and using this information for portal operation purposes. More information on the subject can be found in the Privacy Policy and Terms of Service. By closing this window the user confirms that they have read the information on cookie usage, and they accept the privacy policy and the way cookies are used by the portal. You can change the cookie settings in your browser.
Determining complexity of software is always a prime concern for the software developers. Higher the complexity, difficult to maintain the software. If software undergoes maintenance again and again, it gradually decreases the quality of software and cost of maintenance increases. One import concept of software engineering that improves the quality of software and makes the software more maintainable...
After four successful JUnit tool competitions, we report on the achievements of a new Java Unit Testing Tool Competition. This 5th contest introduces statistical analyses in the benchmark infrastructure and has been validated with significance against the results of the previous 4th edition. Overall, the competition evaluates four automated JUnit testing tools taking as baseline human written test...
Software Reverse Engineering scenario would involve software that has been worked upon for years and carries several modules of a business in its lines of code. Unfortunately the source code of the application has been lost, what remains is “native” or “binary” code. Traditional obfuscators work on binary code but they are tedious and do not provide us with a specific obfuscation depending upon the...
Contemporary software development processes involve finding reusable software components from online repositories and integrating them to the source code, both to reduce development time and to ensure that the final software project is of high quality. Although several systems have been designed to automate this procedure by recommending components that cover the desired functionality, the reusability...
Source code in software systems has been shown to have a good degree of repetitiveness at the lexical, syntactical, and API usage levels. This paper presents a large-scale study on the repetitiveness, containment, and composability of source code at the semantic level. We collected a large dataset consisting of 9,224 Java projects with 2.79M class files, 17.54M methods with 187M SLOCs. For each method...
Ensuring software security is essential for developing a reliable software. A software can suffer from security problems due to the weakness in code constructs during software development. Our goal is to relate software security with different code constructs so that developers can be aware very early of their coding weaknesses that might be related to a software vulnerability. In this study, we chose...
Understanding existing pieces of software is a challenge faced by many software developers regardless of their experience. This project researches into existing reverse engineering tools used for code comprehension and identifies the limitations of the current approaches. Furthermore, a prototype implementation was developed to extract design models from available source code in order to achieve better...
We describe a security visualization tool for finding algorithmic complexity attacks in Java bytecode. Our tool, which we call J-Viz, visualizes connected directed graphs derived from Java bytecode according to a canonical node ordering, which we call the sibling-first recursive (SFR) numbering. The particular graphs we consider are derived from applying Shiver's k-CFA framework to Java bytecode,...
It is a fact that a lot of software is written by people without a formal education in software engineering. As an example, material scientists often capture their knowledge in the form of simulation software that contains sophisticated algorithms representing complex physical concepts. Since software engineering is typically not a core skill of these scientists, there is a risk that their software...
In this paper, we show the successful integration of measurement of code quality into a software development process. Besides choosing a suitable tool for code analysis, metrics, and proper threshold values, concepts for removal of deficiencies are important requirements for code quality. Several cycles of a development process are necessary to achieve a long-term and effective integration of code...
Background: Code smells are considered detrimental to maintainability. To plan QA preventive initiatives (e.g. refactoring actions) it is important to know if the application domain is likely to affect the incidence of those problems. Objective: The main goal of this paper is to check if the application domain has a statistically significant impact on the incidence of code smells. Methods: We conducted...
This work presents an analysis of software complexity based on Shannon Communication Theory using Chidamber and Kemerer (C and K) Metrics. The complexity affects effort and cost of software development and maintenance. The main software artifact is its architecture which depends on good balance of structural decisions based on coupling and cohesion concepts. The entropy concept can help us to measure...
While a substantial body of prior research has investigated the form and nature of production code, comparatively little attention has examined characteristics of test code, and, in particular, test smells in that code. In this paper, we explore the relationship between production code properties (at the class level) and a set of test smells, in five open source systems. Specifically, we examine whether...
Softwares evolve and continue to change during their life cycle in order to satisfy new requirements. Such evolution has a cost which depends on the degree of maintenance complexity and modules dependencies. Many software structures such as design patterns represented solutions to make maintenance being modular and not transverse, but each one of these structures corresponds to a specific case of...
Previous studies have reported that the performance of a developer can greatly impact the quality of the software he/she has worked on. Such performance can be measured using two developer risk metrics during a particular development period. One is the ratio of the number of bug-introduce commits to the total number of commits made by a developer (i.e., the DQ metric). The other is the proportion...
Software static analysis is one of many options for finding bugs in software. Like compilers, static analyzers take a program as input. This paper covers tools that examine source code -- without executing it -- and output bug reports. Static analysis is a complex and generally undecidable problem. Most tools resort to approximation to overcome these obstacles and it sometimes leads to incorrect results...
Code obfuscation techniques are widely used in industry to increase protection of source code and intellectual property. The idea is that even if attackers gain hold of source code, it will be hard for them to understand what it does and how. Thus obfuscation techniques are specifically targeted at human comprehension of code. We suggest that the ideas and experience embedded in obfuscations can be...
Java on the Eclipse IDE is a frequent choice for software development nowadays. Software Engineering researchers have built program analysis tools in that environment for several purposes. However, that requires a deep understanding of Eclipse internals, such as the Java AST. This paper discusses the feasibility of a metamodel-driven approach to scaffold the construction of such tools. Its core is...
A large numbers of metrics have been projected for measuring properties of object-oriented package like size, inheritance, cohesion and coupling. To find the difference between inheritance and interface programming coupling metrics are used. This paper measures coupling between object (CBO), number of associations between categories (NASSocC), number of dependencies in metric (NDepIN) and number of...
In large-scale software projects, build code has a high level of complexity, churn rate, and defect proneness. While it is desirable to have automated tools to help developers in localizing faults in build code, it is challenging to build such tools due to the dynamic nature of build code. Existing automatic fault localization methods focus on traditional code and none of them has such support for...
Set the date range to filter the displayed results. You can set a starting date, ending date or both. You can enter the dates manually or choose them from the calendar.