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.
The naming of local variables is usually at the programmer's discretion. Thus, there is a diversity in naming local variables and this may cause variations in the code quality. Many coding conventions say that the name of a local variable can/should be short. This paper focuses on such conventions, and aims to explore the trends of local variables' names in Java and examine if abnormal local variables...
Peer code reviews are important for giving and receiving peer feedback, but the code review process is time consuming. Static analysis tools can help reduce reviewer effort by catching common mistakes prior to peer code review. Ideally, contributors would use static analysis tools prior to pull request submission so common mistakes could be addressed first, before invoking the reviewer. To explore...
To advance Java programming studies, we have developed the Java Programming Learning Assistant System (JPLAS). The test code plays a critical role in verifying the correctness of the source code from a student automatically at the server in the code writing problem in JPLAS. Previously, we proposed the test code generation tool that automatically generates the test code from the given source code...
With the increased complexity of low-end devices in the Internet of Things (IoT), mainly due to the connectivity and interoperability requirements, the development and configuration of embedded operating systems (OSes) for such devices is not straight forward. The complexity of the communication requirements is usually mitigated by the OS, e.g., the Contiki-OS, as it already incorporates an IoT-compliant...
Parallel and distributed computing have enabled development of much more scalable software. However, developing concurrent software requires the programmer to be aware of nondeterminism, data races, and deadlocks. MPI (message passing interface) is a popular standard for writing message-oriented distributed applications. Some messages in MPI systems can be processed by one of the many machines and...
Proof assistants such as Coq are used to construct and check formal proofs in many large-scale verification projects. As proofs grow in number and size, the need for tool support to quickly find failing proofs after revising a project increases. We present a technique for large-scale regression proof selection, suitable for use in continuous integration services, e.g., Travis CI. We instantiate the...
Vendor-independent interoperability is one of the key-enablers for medical devices in future operating rooms, intensive care units, and medical care in general. Using the paradigm of a Service-Oriented Architecture (SOA) is a promising approach realized by the new IEEE 11073 SDC family of standards. Standard compliant communication stacks will be used to build up systems of networked medical devices...
The basic features of some of the most versatile and popular open source frameworks for machine learning (TensorFlow, Deep Learning4j, and H2O) are considered and compared. Their comparative analysis was performed and conclusions were made as to the advantages and disadvantages of these platforms. The performance tests for the de facto standard MNIST data set were carried out on H2O framework for...
Understanding API usage is important for upstream and downstream developers. However, compiling a dataset of API clients is often a tedious task, especially since one needs many clients to draw a representative picture of the API usage.In this paper, we present KOWALSKI, a tool that takes the name of an API, then finds and downloads client binaries by exploiting the Maven dependency management system...
Meaningless identifiers as well as inconsistent use of identifiers in the source code might hinder code readability and result in increased software maintenance efforts. Over the past years, effort has been devoted to promoting a consistent usage of identifiers across different parts of a system through approaches exploiting static code analysis and Natural Language Processing (NLP). These techniques...
In the academic literature, many uses of the Object Constraint Language (OCL) have been proposed. By contrast, the utilization of OCL in contemporary modelling tools lags behind, suggesting that leverage of OCL remains limited in practice. We consider this undeserved, and present a scheme for partially evaluating OCL expressions that allows one to capitalize on given OCL specifications for a wide...
High Availability (HA) is a quality of service that is required for many services, e.g. carrier grade services. Systems providing such services undergo upgrades, e.g. software version upgrade, like any other system. Avoiding/limiting service outage during these upgrades is of critical importance to meet the HA requirement. Thus, the upgrade campaign specifications, which drive the process need to...
String objects, the most commonly used objects in Java programs, are immutable (read-only) and easily identified. Previous analysis of sharing string objects in the Java Virtual Machine showed promising results, however it is clear that sharing a wider set of objects would result in better performance. Automatic object selection for sharing is non-trivial, because in the current state, only read-only...
The objective of protecting privacy while transparently accessing general database is important. We propose PaJDBC, which achieves the objective by utilizing JDBC standard to provide transparency for applications and employing User Defined Function (UDF) in database management system to check the privacy policy conformity of database access. Views are used to invoke UDF when privacy-sensitive data...
Modularity of a software system can be assessed once responsibilities of each method and class have been determined. Generally, developers attribute responsibilities to methods and classes manually. This can be problematic given that it relies on developers judgement and effort. This paper proposes an approach to automatically attribute concern tags to each instructions. The approach is based on taint...
Being equipped with an appropriate user interface, building operating systems are capable of providing transparent information on energy consumption and generation in the household and achieving interaction with residents to implement energy management and optimization. In order to help provide a reference for the design of a more comprehensive user interface for building operating systems in the...
In the Java web security field, the encryption and decryption code of the traditional Java source code protection scheme, which is based on custom class loader encryption, can be easily decompiled. This effect results in the leakage of the source code and the low efficiency of encryption and decryption. This study proposes a scheme based on the Java Native Interface (JNI) and the Advanced Encryption...
The Eclipse Modeling Framework (EMF) is the official Eclipse modeling framework. It provides code generation facilities for building tools and applications based on structured data models. The Eclipse project EMF Parsley enhances the EMF reflective mechanisms in order to make the development of EMF applications easier by hiding most EMF internal details and by using dependency injection for customizing...
Code portability is a desirable non-functional requirement. The most established metric evaluating it consists of counting the number of instructions that use platform specific APIs. Generally, instructions using APIs are preceded or followed by related code that e.g. prepares some input for a call or analyses the return value. This paper proposes a taint analysis approach to identify code portions...
Data security has become an increasingly important topic as information stored and transmitted in electronic form has become the preferred method. In order to protect this information, developers need to follow, at minimum, some basic guidelines to secure this data from malicious attackers. However, security often takes a backseat while developing software and is either not implemented at all or is...
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.