Cookies Policy
The website need some cookies and similar means to function. If you permit us, we will use those means to collect data on your visits for aggregated statistics to improve our service. Find out More
Accept Reject
  • Menu
Publications

Publications by HASLab

2015

Quantifying usability of domain-specific languages: An empirical study on software maintenance

Authors
Albuquerque, D; Cafeo, B; Garcia, A; Barbosa, S; Abrahao, S; Ribeiro, A;

Publication
JOURNAL OF SYSTEMS AND SOFTWARE

Abstract
A domain-specific language (DSL) aims to support software development by offering abstractions to a particular domain. It is expected that DSLs improve the maintainability of artifacts otherwise produced with general-purpose languages. However, the maintainability of the DSL artifacts and, hence, their adoption in mainstream development, is largely dependent on the usability of the language itself. Unfortunately, it is often hard to identify their usability strengths and weaknesses early, as there is no guidance on how to objectively reveal them. Usability is a multi-faceted quality characteristic, which is challenging to quantify beforehand by DSL stakeholders. There is even less support on how to quantitatively evaluate the usability of DSLs used in maintenance tasks. In this context, this paper reports a study to compare the usability of textual DSLs under the perspective of software maintenance. A usability measurement framework was developed based on the cognitive dimensions of notations. The framework was evaluated both qualitatively and quantitatively using two DSLs in the context of two evolving object-oriented systems. The results suggested that the proposed metrics were useful: (1) to early identify DSL usability limitations, (2) to reveal specific DSL features favoring maintenance tasks, and (3) to successfully analyze eight critical DSL usability dimensions.

2015

The essence of bidirectional programming

Authors
Fischer, S; Hu, Z; Pacheco, H;

Publication
Sci. China Inf. Sci.

Abstract

2015

A Clear Picture of Lens Laws - Functional Pearl

Authors
Fischer, S; Hu, Z; Pacheco, H;

Publication
MPC

Abstract
A lens is an optical device which refracts light. Properly adjusted, it can be used to project sharp images of objects onto a screen— a principle underlying photography as well as human vision. Striving for clarity, we shift our focus to lenses as abstractions for bidirectional programming. By means of standard mathematical terminology as well as intuitive properties of bidirectional programs, we observe different ways to characterize lenses and show exactly how their laws interact. Like proper adjustment of optical lenses is essential for taking clear pictures, proper organization of lens laws is essential for forming a clear picture of different lens classes. Incidentally, the process of understanding bidirectional lenses clearly is quite similar to the process of taking a good picture. By showing that it is exactly the backward computation which defines lenses of a certain standard class, we provide an unusual perspective, as contemporary research tends to focus on the forward computation.

2015

Refraction: Low-Cost Management of Reflective Meta-Data in Pervasive Component-Based Applications

Authors
Daniels, W; Proença, J; Clarke, D; Joosen, W; Hughes, D;

Publication
2015 18TH INTERNATIONAL ACM SIGSOFT SYMPOSIUM ON COMPONENT-BASED SOFTWARE ENGINEERING (CBSE)

Abstract
This paper proposes the concept of refraction, a principled means to lower the cost of managing reflective meta-data for pervasive systems. While prior work has demonstrated the bene fits of reflective component-based middleware for building open and reconfigurable applications, the cost of using remote reflective operations remains high. Refractive components address this problem by selectively augmenting application data flows with their reflective meta-data, which travels at low cost to reflective pools, which serve as loci of inspection and control for the distributed application. Additionally reflective policies are introduced, providing a mechanism to trigger reconfigurations based on incoming reflective meta-data. We evaluate the performance of refraction in a case-study of automatic con figuration repair for a real-world pervasive application. We show that refraction reduces network overhead in comparison to the direct use of reflective operations while not increasing development overhead. To enable further experimentation with the concept of refraction, we provide RxCom, an open-source refractive component model and supporting runtime environment.

2015

Tomography: lowering management overhead for distributed component-based applications

Authors
Daniels, W; Proença, J; Matthys, N; Joosen, W; Hughes, D;

Publication
M4IoT@Middleware

Abstract
This paper introduces the concept of tomography, a mechanism to lower management overhead for component-based IoT applications. Previous research has shown the advantages of component-based software engineering, wherein applications are built and reconfigured at runtime through the composition of components. While this approach promotes code-reuse and dynamic reconfiguration, the introspection and reconfiguration of distributed applications is cumbersome and inefficient. Tomography addresses this problem by reimagining the visitor design pattern for distributed component based compositions. We evaluate the performance of this approach in a case-study of discovering/introspecting and reconfiguring a real-world IoT application. We show that in comparison to classic management operations, tomography reduces both the number of explicit queries and the volume of network messages. This significantly reduces management effort and energy consumption.

2015

Proceedings 13th International Workshop on Foundations of Coordination Languages and Self-Adaptive Systems

Authors
Cámara, J; Proença, J;

Publication
Electron. Proc. Theor. Comput. Sci. - Electronic Proceedings in Theoretical Computer Science - EPTCS

Abstract

  • 146
  • 261