Authors:
José Elias Araújo
;
Henrique Rebêlo
;
Ricardo Lima
;
Alexandre Mota
;
Fernando Castor
;
Tiago Lima
;
Juliana Lucena
and
Filipe Lima
Affiliation:
Federal University of Pernambuco, Brazil
Keyword(s):
Concurrent programming, Aspect-oriented programming, Communicating sequential processes, JCSP, Metrics.
Related
Ontology
Subjects/Areas/Topics:
Aspect-Oriented Software Development
;
Aspects
;
Distributed and Mobile Software Systems
;
Distributed Architectures
;
Embedded Communications Systems
;
Paradigm Trends
;
Programming Languages
;
Software Architectures
;
Software Engineering
;
Software Engineering Methods and Techniques
;
Software Testing and Maintenance
;
Telecommunications
Abstract:
The construction of large scale parallel and concurrent applications is one of the greatest challenges faced by software engineers nowadays. Programming models for concurrency implemented by mainstream programming languages, such as Java, C, and C++, are too low-level and difficult to use by the average programmer. At the same time, the use of libraries implementing high level concurrency abstractions such as JCSP requires additional learning effort and produces programs where application logic is tangled with library-specific code. In this paper we propose separating concurrent concerns (CSP code) from the development of sequential Java processes. We explore aspect-oriented programming to implement this separation of concerns. A compiler generates an AspectJ code, which instruments the sequential Java program with JCSP concurrent constructors. We have conducted an experiment to evaluate the benefits of the proposed framework. We employ metrics for attributes such as separation of co
ncerns, coupling, and size to compare our approach against the JCSP framework and thread based approaches.
(More)