The Use of Aspects to Simplify Concurrent Programming
Journal Title: e-Informatica Software Engineering Journal - Year 2014, Vol 8, Issue 1
Abstract
Developers who create multi-threaded programs must pay attention to ensuring safe implementations that avoid problems and prevent introduction of a system in an inconsistent state. To achieve this objective programming languages offer more and more support for the programmer by syntactic structures and standard libraries. Despite these enhancements, multi-threaded programming is still generally considered to be difficult. The aim of our study was the analysis of existing aspect oriented solutions, which were designed to simplify concurrent programming, propose improvements to these solutions and examine influence of concurrent aspects on complexity of programs. Improved solutions were compared with existing by listing differing characteristics. Then we compared classical concurrent applications with their aspect oriented equivalents using metrics. Values of 2 metrics (from 7 considered) decreased after using aspect oriented solutions. Values of 2 other metrics decreased or remained at the same level. The rest behaved unstably depending on the problem. No metric reported increase of complexity in more than one aspect oriented version of program from set. Our results indicate that the use of aspects does not increase the complexity of a program and in some cases application of aspects can reduce it.
Authors and Affiliations
M Negacz, B. Hnatkowska
Construction of Variable Strength Covering Array for Combinatorial Testing Using a Greedy Approach to Genetic Algorithm
The limitation of time and budget usually prohibits exhaustive testing of interactions between components in a component based software system. Combinatorial testing is a software testing technique that can be used to de...
Reducing the Number of Higher-order Mutants with the Aid of Data Flow
Higher-order mutants are created by injecting two or more mutations into the original program, while first-order mutants are generated by seeding single faults in the original program. Mutant generation is a key stage of...
A Graphical Modelling Editor for STARSoC Design Flow Tool Based on Model Driven Engineering Approach
Background : Due to the increasing complexity of embedded systems, system designers use higher levels of abstraction in order to model and analyse system performances. STARSoC (Synthesis Tool for Adaptive and Reconfigura...
ECLogger: Cross-Project Catch-Block Logging Prediction Using Ensemble of Classifiers
Background: Software developers insert log statements in the source code to record program execution information. However, optimizing the number of log statements in the source code is challenging. Machine learning based...
An Empirical Study on the Factors Affecting Software Development Productivity
Background : Software development productivity is widely investigated in the Software Engineering literature. However, continuously updated evidence on productivity is constantly needed, due to the rapid evolution of sof...