Publications

Almeida D, Campos JC, Saraiva JA, Silva JC.  2015.  Towards a catalog of usability smells. SAC - Proceedings of the 30th Annual ACM Symposium on Applied Computing. Abstractsac2015_1.pdf

This paper presents a catalog of smells in the context of interactive applications. These so-called usability smells are indicators of poor design on an application's user interface, with the potential to hinder not only its usability but also its maintenance and evolution. To eliminate such usability smells we discuss a set of program/usability refactorings. In order to validate the presented usability smells catalog, and the associated refactorings, we present a preliminary empirical study with software developers in the context of a real open source hospital management application. Moreover, a tool that computes graphical user interface behavior models, giving the applications' source code, is used to automatically detect usability smells at the model level.

Machado M, Campos JC, Couto R.  2015.  MODUS: uma metodologia de prototipagem de interfaces baseada em modelos. Inforum 2015: Atas do 7º Simpósio Nacional de Informática. :17-32.inforum-2015.pdf
Harrison M, Campos J, Masci P, Curzon P.  2015.  Templates as heuristics for proving properties of medical devices. 5th EAI International Conference on Wireless Mobile Communication and Healthcare - "Transforming healthcare through innovations in mobile and wireless technologies". antennatemplatesv5-final.pdf
Campos JC, Silva JL, Harrison M.  2015.  Supporting the Design of an Ambient Assisted Living System Using Virtual Reality Prototypes. Ambient Assisted Living. ICT-based Solutions in Real Life Situations. 9455:49-61.authorsversion.pdf
Sousa M, Campos JC, Alves M, Harrison M.  2014.  Formal Verification of Safety-Critical User Interfaces: a space system case study. Formal Verification and Modeling in Human Machine Systems: Papers from the AAAI Spring Symposium. :62-67. Abstract7722-34384-1-pb.pdf

Safe operation of safety critical systems depends on appropriate interactions between the human operator and the computer system. Specification of such safety-critical systems is fundamental to enable exhaustive and automated analysis of operator system interaction. In this paper we present a structured, comprehensive and computer-aided approach to formally specify and verify user interfaces based on model checking techniques.

Couto R, Ribeiro AN, Campos JC.  2014.  Application of Ontologies in Identifying Requirements Patterns in Use Cases. 11th International Workshop on Formal Engineering approaches to Software Components and Architectures (FESCA. 147:62–76. Abstractfesca_2014.pdf

Use case specifications have successfully been used for requirements description. They allow joining, in the same modeling space, the expectations of the stakeholders as well as the needs of the software engineer and analyst involved in the process. While use cases are not meant to describe a system's implementation, by formalizing their description we are able to extract implementation relevant information from them. More specifically, we are interested in identifying requirements patterns (common requirements with typical implementation solutions) in support for a requirements based software development approach. In the paper we propose the transformation of Use Case descriptions expressed in a Controlled Natural Language into an ontology expressed in the Web Ontology Language (OWL). OWL's query engines can then be used to identify requirements patterns expressed as queries over the ontology. We describe a tool that we have developed to support the approach and provide an example of usage.

Campos JC, Arcuri A, Fraser G, Abreu R.  2014.  Continuous Test Generation: Enhancing Continuous Integration with Automated Test Generation. Proceedings Automated Software Engineering (ASE). Abstractase14_ctg.pdf

In object oriented software development, automated unit test generation tools typically target one class at a time. A class, however, is usually part of a software project consisting of more than one class, and these are subject to changes over time. This context of a class offers significant potential to improve test generation for individual classes. In this paper, we introduce Continuous Test Generation (CTG), which includes automated unit test generation during continuous integration (i.e., infrastructure that regularly builds and tests software projects). CTG offers several benefits: First, it answers the question of how much time to spend on each class in a project. Second, it helps to decide in which order to test them. Finally, it answers the question of which classes should be subjected to test generation in the first place. We have implemented CTG using the EVOUITE unit test generation tool, and performed experiments using eight of the most popular open source projects available on GitHub, ten randomly selected projects from the SF100 corpus, and five industrial projects. Our experiments demonstrate improvements of up to +58% for branch coverage and up to +69% for thrown undeclared exceptions, while reducing the time spent on test generation by up to +83%.

Couto R, Ribeiro AN, Campos JC.  2014.  The Modelery: A Collaborative Web Based Repository. 14th International Conference on Computational Science and Its Applications (ICCSA 2014). 8584 Abstracticcsa_2014.pdf

Software development processes are known to produce a large set of artifacts such as models, code and documentation. Keeping track of these artifacts without supporting tools is not easy, and making them available to others can be even harder. Standard version control systems are not able to solve this issue. More than keeping track of versions, a system to help organize and make artifacts available in meaningful ways is needed. In this paper we review a number of alternative systems, and present the requirements and the implementation of a collaborative web repository which we developed to solve this issue.

Couto R, Ribeiro AN, Campos JC.  2014.  A study on the viability of formalizing Use Cases. 9th International Conference on the Quality of Information and Communications Technology (QUATIC). Abstract6133a130.pdf

Use case scenarios are known as powerful meansfor requirements specification. On th e one hand, they join in the same modeling space the expectations of the stakeholders and the needs of the developers involved in the process. On the other hand, they describe the desired high level functionalities. By formalizing these descriptions we are able to extract relevant informations from them. Specifically, we are interested in identifying requirements patterns (common requirements with typical implementation solutions) in support for a requirements based software development approach. This paper addresses the transformation of use case descriptions expressed in a Controller Natural Language into an ontology expressed in the Web Ontology Language (OWL), as well as the query process for such information. It reports on a study aimed at validating our approach and our tool with real users. A preliminary set of results is discussed.

Silva CE, Campos JC.  2014.  Characterizing the Control Logic of Web Applications' User Interfaces. In Computational Science and Its Applications - ICCSA 2014. 8584:263–276. Abstracticcsa_final.pdf

On order to develop an hybrid approach to the Reverse Engineer of Web applications, we need rst to understand how much of the control logic of the user interface can be obtained from the analysis of event listeners. To that end, we have developed a tool that enables us to perform such analysis, and applied it to the implementation of the one thousand most widely used Websites (according to Alexa Top Sites). This paper describes our approach for analyzing the user interface layer of those Websites, and the results we got from the analysis. The conclusions drawn from the exercise will be used to guide the development of the proposed hybrid reverse engineering tool.

Campos JC, Silva JL, Abade T, Gomes T.  2014.  Design and Evaluation of a Smart Library using the APEX Framework. Distributed, Ambient, and Pervasive Interactions. 8530 Abstract2014-hcii-dapi.pdf

User experience is a key point for successful ubiquitous computing (ubicomp) environments. The envisaged design should be explored as soon as possible to anticipate potential user problems, thus reducing re-design costs. The development of ubicomp environments’ prototypes might help, providing feedback on the users’ reaction to the environments. This paper describes the design and evaluation of ubicomp environments using APEX, a rapid prototyping framework providing user experience via a 3D application server and connected physical devices. APEX prototypes allow users to explore and experience many characteristics of a proposed design, in a virtual world. The paper focus in particular the design and evaluation of a smart library in the APEX framework.

Campos JC, AI S.  2014.  Towards a Framework for Adaptive Web Applications. HCI International 2014 - Posters' Extended Abstracts. 434 Abstract2014-hcii-as.pdf

We have developed a framework to support adaptive elements in Web pages. In particular we focus on adaptive menus. Developers are able to define rules for menu adaptation according to the features of the device and browser in use. This paper briefly describes the selected adaptation patterns and their implementation.

Campos JC, Abade T, Gomes T, Harrison M, Silva JL.  2014.  Rapid Development of First Person Serious Games using the APEX Platform: The Asthma Game. Proceedings of ACM SAC 2014 . 1 Abstract2014-sac.pdf

Serious games combine a ludic component with instructive and formative goals. They aim to educate and train through play. This paper explores the use of a development framework for dynamic virtual environments to develop serious games. The framework (APEX) was originally developed to prototype ubiquitous computing environments. Here it is used to develop a first person serious game: the Asthma Game. This game aims to teach children with asthma how to act to prevent attacks by drawing attention to asthma triggers in the home, and by providing information about how to avoid them. Besides the description of the game, results about the viability and utility of the approach are also discussed.

Campos JC.  2014.  High assurance interactive computing systems. HCI Engineering: Charting the Way towards Methods and Tools for Advanced Interactive Systems. Abstractcampos.pdf

If interactive computing systems development is to be considered an engineering discipline, we need methods and tools to help us reason about and predict the quality of systems, from early in the design process. This paper provides a brief overview of work we have been carrying out in the general area of evaluating and ensuring the quality of interactive computing systems. Some of the work currently being carried out is also discussed. Discussed approaches range from the formal verification of user interface models through model checking, to the reverse engineering and model based testing of implemented interactive computing systems.

Campos JC, Silva JC, Silva JL, Saraiva JA.  2014.  An approach for graphical user interface external bad smells detection. Advances in Intelligent Systems and Computing. 276 Abstract

In the context of an effort to develop methodologies to support the evaluation of interactive system, this paper investigates an approach to detect graphical user interface external bad smells. Our approach consists in detecting user interface external bad smells through model-based reverse engineering from source code. Models are used to define which widgets are present in the interface, when can particular graphical user interface (GUI) events occur, under which conditions, which system actions are executed, and which GUI state is generated next. From these models we obtain metrics that can later be used to identify the smells.