Publications

Neves R, Barbosa LS, Hofmann D, Martins MA.  2016.  Continuity as a computational effect. J. Log. Algebr. Meth. Program.. 85:1057–1085. Abstractnbhm16.pdfWebsite

The original purpose of component-based development was to provide techniques to master complex software, through composition, reuse and parametrisation. However, such systems are rapidly moving towards a level in which software becomes prevalently intertwined with (continuous) physical processes. A possible way to accommodate the latter in component calculi relies on a suitable encoding of continuous behaviour as (yet another) computational effect. This paper introduces such an encoding through a monad which, in the compositional development of hybrid systems, may play a role similar to the one played by 1+, powerset, and distribution monads in the characterisation of partial, nondeterministic and probabilistic components, respectively. This monad and its Kleisli category provide a universe in which the effects of continuity over (different forms of) composition can be suitably studied.

Neves R, Madeira A, Martins MA, Barbosa LS.  2016.  Proof theory for hybrid(ised) logics. Sci. Comput. Program.. 126:73–93. Abstractnmmb16.pdfWebsite

Hybridisation is a systematic process along which the characteristic features of hybrid logic, both at the syntactic and the semantic levels, are developed on top of an arbitrary logic framed as an institution. In a series of papers this process has been detailed and taken as a basis for a specification methodology for reconfigurable systems. The present paper extends this work by showing how a proof calculus (in both a Hilbert and a tableau based format) for the hybridised version of a logic can be systematically generated from a proof calculus for the latter. Such developments provide the basis for a complete proof theory for hybrid(ised) logics, and thus pave the way to the development of (dedicated) proof support. Decidability results for hybrid(ised) logics.Generation of Hilbert calculi for hybrid(ised) logics.Generation of Tableau systems for hybrid(ised) logics.

Madeira A, Neves R, Barbosa LS, Martins MA.  2016.  A method for rigorous design of reconfigurable systems. Sci. Comput. Program.. 132:50–76. Abstractmnbm2016.pdfWebsite

Reconfigurability, understood as the ability of a system to behave differently in different modes of operation and commute between them along its lifetime, is a cross-cutting concern in modern Software Engineering. This paper introduces a specification method for reconfigurable software based on a global transition structure to capture the system's reconfiguration space, and a local specification of each operation mode in whatever logic (equational, first-order, partial, fuzzy, probabilistic, etc.) is found expressive enough for handling its requirements. In the method these two levels are not only made explicit and juxtaposed, but formally interrelated. The key to achieve such a goal is a systematic process of hybridisation of logics through which the relationship between the local and global levels of a specification becomes internalised in the logic itself.

Silva JMC, Carvalho P, Lima SR.  2016.  Inside packet sampling techniques: exploring modularity to enhance network measurements. International Journal of Communication Systems. AbstractWebsite

n/a

Almeida PS, Moreno CB, Farach-Colton M, Jesus P, Mosteiro MA.  2016.  Fault-tolerant aggregation: Flow-Updating meets Mass-Distribution. Distributed Computing. AbstractFull paper

Flow-Updating (FU) is a fault-tolerant technique that has proved to be efficient in practice for the distributed computation of aggregate functions in communication networks where individual processors do not have access to global information. Previous distributed aggregation protocols, based on repeated sharing of input values (or mass) among processors, sometimes called Mass-Distribution (MD) protocols, are not resilient to communication failures (or message loss) because such failures yield a loss of mass. In this paper, we present a protocol which we call Mass-Distribution with Flow-Updating (MDFU). We obtain MDFU by applying FU techniques to classic MD. We analyze the convergence time of MDFU showing that stochastic message loss produces low overhead. This is the first convergence proof of an FU-based algorithm. We evaluate MDFU experimentally, comparing it with previous MD and FU protocols, and verifying the behavior predicted by the analysis. Finally, given that MDFU incurs a fixed deviation proportional to the message-loss rate, we adjust the accuracy of MDFU heuristically in a new protocol called MDFU with Linear Prediction (MDFU-LP). The evaluation shows that both MDFU and MDFU-LP behave very well in practice, even under high rates of message loss and even changing the input values dynamically.

Cunha J, Fernandes JP, Martins P, Mendes J, Pereira R, Saraiva J.  2016.  Evaluating refactorings for spreadsheet models. Journal of Systems and Software. 118:234-250. AbstractWebsite

Software refactoring is a well-known technique that provides transformations on software artifacts with the aim of improving their overall quality. We have previously proposed a catalog of refactorings for spreadsheet models expressed in the ClassSheets modeling language, which allows us to specify the business logic of a spreadsheet in an object-oriented fashion. Reasoning about spreadsheets at the model level enhances a model-driven spreadsheet environment where a ClassSheet model and its conforming instance (spreadsheet data) automatically co-evolves after applying a refactoring at the model level. Research motivation was to improve the model and its conforming instance: the spreadsheet data. In this paper we define such refactorings using previously proposed evolution steps for models and instances. We also present an empirical study we designed and conducted in order to confirm our original intuition that these refactorings have a positive impact on end-user productivity, both in terms of effectiveness and efficiency. The results are not only presented in terms of productivity changes between refactored and non-refactored scenarios, but also the overall user satisfaction, relevance, and experience. In almost all cases the refactorings improved end-users productivity. Moreover, in most cases users were more engaged with the refactored version of the spreadsheets they worked with.

Muschevici R, Paiva Proenca J, Clarke D.  2016.  Feature Nets: behavioural modelling of software product lines. Software and Systems Modeling. 15:1181–1206. AbstractWebsite
n/a
Ramachandran GS, Proença J, Daniels W, Pickavet M, Staessens D, Huygens C, Joosen W, Hughes D.  2016.  Hitch Hiker 2.0: a binding model with flexible data aggregation for the Internet-of-Things. Journal of Internet Services and Applications. 7:1–15. AbstractWebsite

Wireless communication plays a critical role in determining the lifetime of Internet-of-Things (IoT) systems. Data aggregation approaches have been widely used to enhance the performance of IoT applications. Such approaches reduce the number of packets that are transmitted by combining multiple packets into one transmission unit, thereby minimising energy consumption, collisions and congestion. However, current data aggregation schemes restrict developers to a specific network structure or cannot handle multi-hop data aggregation. In this paper, we propose Hitch Hiker 2.0, a component binding model that provides support for multi-hop data aggregation. Hitch Hiker uses component meta-data to discover remote component bindings and to construct a multi-hop overlay network within the free payload space of existing traffic flows. Hitch Hiker 2.0 provides end-to-end routing of low-priority traffic while using only a small fraction of the energy of standard communication. This paper extends upon our previous work by incorporating new mechanisms for decentralised route discovery and providing additional application case studies and evaluation. We have developed a prototype implementation of Hitch Hiker for the LooCI component model. Our evaluation shows that Hitch Hiker consumes minimal resources and that using Hitch Hiker to deliver low-priority traffic reduces energy consumption by up to 32 {%}.

Jongmans S-STQ, Clarke D, c}a P{\cJ.  2016.  A procedure for splitting data-aware processes and its application to coordination. Science of Computer Programming. 115-116:47-78. AbstractWebsite
n/a
Cunha A, Garis A, Riesco D.  2015.  Translating between Alloy Specifications and UML Class Diagrams Annotated with OCL. Software and Systems Modeling. 14(1):5-25. Abstractalloymda.pdf

Model-driven engineering (MDE) is a software engineering approach based on model transformations at different abstraction levels. It prescribes the development of software by successively transforming the models from abstract (specifications) to more concrete ones (code). Alloy is an increasingly popular lightweight formal specification language that supports automatic verification. Unfortunately, its widespread industrial adoption is hampered by the lack of an ecosystem of MDE tools, namely code generators. This paper presents a model transformation from Alloy to UML class diagrams annotated with OCL (UML+OCL) and shows how an existing transformation from UML+OCL to Alloy can be improved to handle dynamic issues. The proposed bidirectional transformation enables a smooth integration of Alloy in the current MDE contexts, by allowing UML+OCL specifications to be transformed to Alloy for validation and verification, to correct and possibly refine them inside Alloy, and to translate them back to UML+OCL for sharing with stakeholders or to reuse current model-driven architecture tools to refine them toward code.

Macedo H, Oliveira JN.  2015.  A linear algebra approach to OLAP. Formal Aspects of Computing. 27(2):283-307. Abstractart3a10.10072fs00165-014-0316-9.pdf

Inspired by the relational algebra of data processing, this paper addresses the foundations of data analytical processing from a linear algebra perspective. The paper investigates, in particular, how aggregation operations such as cross tabulations and data cubes essential to quantitative analysis of data can be expressed solely in terms of matrix multiplication, transposition and the Khatri–Rao variant of the Kronecker product. The approach offers a basis for deriving an algebraic theory of data consolidation, handling the quantitative as well as qualitative sides of data science in a natural, elegant and typed way. It also shows potential for parallel analytical processing, as the parallelization theory of such matrix operations is well acknowledged.

Cunha J, Fernandes JP, Mendes J, Saraiva JA.  2015.  Embedding, Evolution, and Validation of Spreadsheet Models in Spreadsheet Systems. IEEE Transactions on Software Engineering. 41(3):241-263. Abstracttse14.pdf

This paper proposes and validates a model-driven software engineering technique for spreadsheets. The technique that we envision builds on the embedding of spreadsheet models under a widely used spreadsheet system. This means that we enable the creation and evolution of spreadsheet models under a spreadsheet system. More precisely, we embed ClassSheets, a visual language with a syntax similar to the one offered by common spreadsheets, that was created with the aim of specifying spreadsheets. Our embedding allows models and their conforming instances to be developed under the same environment. In practice, this convenient environment enhances evolution steps at the model level while the corresponding instance is automatically co-evolved. Finally, we have designed and conducted an empirical study with human users in order to assess our technique in production environments. The results of this study are promising and suggest that productivity gains are realizable under our model-driven spreadsheet development setting.

Sanchez A, Oliveira N, Barbosa LS, Henriques P.  2015.  A perspective on architectural re-engineering. Science of Computer Programming. 98(4):764-784. Abstractpreprint-sobh15.pdf

Continuous evolution towards very large, heterogeneous, highly dynamic computing systems entails the need for sound and flexible approaches to deal with system modification and re-engineering. The approach proposed in this paper combines an analysis stage, to identify concrete patterns of interaction in legacy code, with an iterative re-engineering process at a higher level of abstraction. Both stages are supported by the tools CoordPat and Archery, respectively. Bi-directional model transformations connecting code level and design level architectural models are ask defined. The approach is demonstrated in a (fragment of a) case study.

Couto R, Ribeiro AN, Campos JC.  2015.  The Modelery: A Model-Based Software Development Repository. International Journal of Web Information Systems. Abstractijwisv2.pdf

Purpose
– This paper aims to present the Modelery, a platform for collaborative repository to support model-based software development. The Modelery is a Web platform, composed both by a Web page and Web services for interoperability.

Design/methodology/approach
– By performing a study in the existing platforms, it was possible to achieve a set of issues to tackle. The issues enabled the possibility to define a set of requirements that allowed the authors to design a new platform, and to perform a model-driven software development process, which started from the requirements until reaching the final software solution.

Findings
– With this work, it was possible to perform a survey on the currently available artifacts repositories, categorize them and identify their shortcomings. This was essential to define the set of requirements for a new platform to overcome the identified issues. This process leads to a platform able to improve the currently available solutions, and validated in the scientific community. In this paper, the authors also explore the applications of the repository. First, they use the Modelery to replace an older model’s repository. Second, they have enabled the communication between other tools and the Modelery via Web services.

Originality/value
– This work presents a new Web repository for software artifacts aimed at supporting researchers and software developers. The presented platform is an improvement over other platforms on the integration of artifacts repository, social functionalities and scientific publications integration. The authors conclude this paper by comparing the achieved platform in terms of functionalities, against the other analyzed platforms.