Couto R, Ribeiro AN, Campos JC.  2012.  A Java based PSM/PIM and pattern inference approach. 35th annual Software Engineering Workshop - SEW. Abstracteeum_di_dissertacao_pg15456.pdf

Due to the constant increase in the number of platforms and languages available to software developers, we are reaching high levels of complexity. To abstract the complexity that underlies it, the development of new techniques is needed. A solution to this problem was presented by the Object Management Group (OMG) by specifying the Model Driven Engineering (MDE). The MDE bases its development process in models definition and transformation, specifically Computation Independent Models (CIM), Platform Independent Models (PIM) and Platform Specific Models (PSM). The Unified Model Language (UML) allows to create Platform Specific Models (PSM) and Platform Independent Models (PIM), or even more specific diagrams as class diagrams. Some years before the MDE appearance, Erich Gamma et al. catalogued a set of correct means of producing software. These means are called design patterns, and its importance has already been widely recognized. These patterns are not only useful in software developing, but also in the software analysis process. Based on Java programs, this document presents the feasibility to transform source code on MDE models. This code will be transformed into PIM and PSM diagrams, in which will be inferred design patterns. As such, a tool which implements these functionalities will be specified. Implemented as a plugin, it maps the information on a metamodel to obtain an intermediate information representation. Based on that representation it provides information abstraction, by transforming PSM on PIM models. The design patterns inference is possible due to the representation of information contained in the metamodel as Prolog facts, which will be the basis for the design pattern search. Being a reverse engineering process, it allows the process to be started from the source code (and not in models, as predicted by MDE).

Silva CE, Campos JC.  2012.  Can GUI implementation markup languages be used for modelling? Human Centred Software Engineering - HCSE. 7623:112-129. Abstractsilvac-hcse2012-final_submission.pdf

The current diversity of available devices and form factors increases the need for model-based techniques to support adapting applications from one device to another. Most work on user interface modelling is built around declarative markup languages. Markup languages play a relevant role, not only in the modelling of user interfaces, but also in their implementation. However, the languages used by each community (modellers/developers) have, to a great extent evolved separately. This means that the step from concrete model to final interface becomes needlessly complicated, requiring either compilers or interpreters to bridge this gap. In this paper we compare a modelling language (UsiXML) with several markup implementation languages. We analyse if it is feasible to use the implementation languages as modelling languages.

Harrison M, Campos JC, Masci P, Thomas N.  2012.  Modelling and systematic analysis of interactive systems. Proceedings of the Workshop on Formal Methods in Human-Machine Interaction (Formal H). :25-28. Abstractformalh.2012.proceedings.pdf

Two aspects of our research concern the application of formal methods in human-computer interaction. The first aspect is the modelling and analysis of interactive devices with a particular emphasis on the user device dyad. The second is the modelling and analysis of ubiquitous systems where there are many users, one might say crowds of users.The common thread of both is to articulate and prove properties of interactive systems, to explore interactive behaviour as it influences the user, with a particular emphasis on interaction failure. The goal is to develop systematic techniques that can be packaged in such a way that they can be used effectively by developers. This “whitepaper” will briefly describe the two approaches and their potential value as well as their limitations and development opportunities.

Silva JL, Campos JC, Harrison M.  2012.  Formal analysis of Ubiquitous Computing environments through the APEX framework. Symposium on Engineering Interactive Computing Systems - EICS. :131-140. Abstract2012-eics.pdf

Ubiquitous computing (ubicomp) systems involve complex interactions between multiple devices and users. This complexity makes it difficult to establish whether: (1) observations made about use are truly representative of all possible interactions; (2) desirable characteristics of the system are true in all possible scenarios. To address these issues, techniques are needed that support an exhaustive analysis of a system's design. This paper demonstrates one such exhaustive analysis technique that supports the early evaluation of alternative designs for ubiquitous computing environments. The technique combines models of behavior within the environment with a virtual world that allows its simulation. The models support checking of properties based on patterns. These patterns help the analyst to generate and verify relevant properties. Where these properties fail then scenarios suggested by the failure provide an important aid to redesign. The proposed technique uses APEX, a framework for rapid prototyping of ubiquitous environments based on Petri nets. The approach is illustrated through a smart library example. Its benefits and limitations are discussed.

Couto R, Ribeiro AN, Campos JC.  2012.  A Patterns Based Reverse Engineering Approach for Java Source Code. 35th Annual Software Engineering Workshop - SEW. :140-147. Abstractsew_35.pdf

The ever increasing number of platforms and languages available to software developers means that the software industry is reaching high levels of complexity. Model Driven Architecture (MDA) presents a solution to the problem of improving software development processes in this changing and complex environment. MDA driven development is based on models definition and transformation. Design patterns provide a means to reuse proven solutions during development. Identifying design patterns in the models of a MDA approach helps their understanding, but also the identification of good practices during analysis. However, when analyzing or maintaining code that has not been developed according to MDA principles, or that has been changed independently from the models, the need arises to reverse engineer the models from the code prior to patterns' identification. The approach presented herein consists in transforming source code into models, and infer design patterns from these models. Erich Gamma's cataloged patterns provide us a starting point for the pattern inference process. MapIt, the tool which implements these functionalities is described.

Couto R, Ribeiro AN, Campos JC.  2012.  MapIt: A Model Based Pattern Recovery Tool. 8th International Workshop on Model-based Methodologies for Pervasive and Embedded Software - MOMPES. 7706 Abstractcoutorc12-mompes2012.pdf

Design patterns provide a means to reuse proven solutions during development, but also to identify good practices during analysis. These are particularly relevant in complex and critical software, such as is the case of ubiquitous and pervasive systems. Model Driven Engineering (MDE) presents a solution for this problem, with the usage of high level models. As part of an effort to develop approaches to the migration of applications to mobile contexts, this paper reports on a tool that identifies design patterns in source code. Code is transformed into both platform specific and independent models, and from these design patterns are inferred. MapIt, the tool which implements these functionalities is described.

Campos JC, Mendes S.  2011.  FlexiXML - A portable user interface rendering engine for UsiXML. User Interface Extensible Markup Language - UsiXML. :158-168. Abstractflexixmlv7.pdf

A considerable amount of effort in software development is dedicated to the user interaction layer.Given the complexity inherent to the development of this layer, it is important to be able to analyse the concepts and ideas being used in the development of a given user interface. This analysis should be performed as early as possible. Model- based user interface development provides a solution to this problem by providing developers with tools that enable both modeling, and reasoning about, user interfaces at different levels of abstraction. Of particular interest here, is the possibility of animating the models to generate actual user interfaces. This paper describes FlexiXML, a tool that performs the rendering and animation of user interfaces described in the UsiXML modeling language.

Campos JC, Machado J.  2011.  Supporting requirements formulation in software formal verification. Latin-American Symposium on Dependable Computing - LADC - suplemental proceedings . Abstract7_-_81412.pdf

Formal verification tools such as model checkers have reached a stage were their applicability in the development process of dependable and safety critical systems has become viable. While the formal verification step in tools such as model checkers is fully automated, writing appropriate models and properties is a skillful process. In particular, a correct understanding of the logics used to express properties is needed to guarantee that properties correctly encode the original requirements. In this paper we illustrate how a patterns-based tool can help in simplifying the process of generating logical formulae from informally expressed requirements.

Machado J, Campos JC.  2011.  Partial Plant Models in Formal Verification of Industrial Automation Discrete Systems. Latin-American Symposium on Dependable Computing - ICMD - suplemental proceedings. Abstract8_-_81433.pdf

The use of a plant model for formal verification of Industrial Automation systems controllers is realistic because all automation systems are composed by a controller and a plant. Therefore, if the plant model is not used, there is a part of the system that is not considered. However, if there are some cases where the use of a plant model makes the formal verification results more realistic and robust, there are other cases where this does not always happen. Moreover, the discussion presented in this paper is related with the need of using a Plant Model considering, not all of the Plant Model, but Partial Plant models in order to facilitate formal verification tasks of Industrial Automation Discrete Event Systems Controllers.

Barbosa A, Paiva A, Campos JC.  2011.  Test case generation from mutated task models. Proceedings of the 3rd Symposium on Engineering Interactive Computing Systems - EICS. :175-184. Abstractbarbosapc2011.pdf

This paper describes an approach to the model-based testing of graphical user interfaces from task models. Starting from a task model of the system under test, oracles are generated whose behaviour is compared with the execution of the running system. The use of task models means that the effort of producing the test oracles is reduced. It does also mean, however, that the oracles are confined to the set of expected user behaviours for the system. The paper focuses on solving this problem. It shows how task mutations can be generated automatically, enabling a broader range of user behaviours to be considered. A tool, based on a classification of user errors, generates these mutations. A number of examples illustrate the approach.

Freire L, Arezes P, Campos JC.  2011.  A importância das avaliações qualitativas em sistemas E-learning. Occupational Safety and Hygiene - SHO. :274-278. Abstractfreireac2011.pdf

É cada vez mais frequente encontrarem-se investigações sobre a usabilidade dos sistemas de E-learning. Como resultados destas investigações, parece ser claro que grande parte delas aponta para a necessidade de uma discussão crítica acerca de métodos para avaliação de usabilidade específicos para os sistemas educativos, nomeadamente, sobre a importância do foco nos métodos direccionados para os utilizadores principais. Entretanto, parece também ser urgente e fundamental investigar a forma com que as análises ergonómicas tem sido aplicadas, assim como, as adaptações necessárias a tais métodos de usabilidade, de modo a definirem-se avaliações mais coerentes com a natureza do sistema. Sendo assim, com base na observação dos sistemas de E-learning - neste artigo será apresentada uma revisão bibliográfica quanto às principais formas de avaliação de usabilidade em sistemas educativos. Como resultado desta revisão, os estudos de Ergonomia levam-nos a considerar possibilidades de análise da usabilidade através de um ponto de vista mais humano, onde se equaciona a influência que o background do utilizador poderá ter sobre a interacção com o sistema e, consequentemente, que atributos de usabilidade serão mais significativos para aquele determinado perfil de utilizador. Neste sentido, o presente estudo pretende argumentar, através de uma visão geral do estado-da-arte, em prol da necessidade e da importância que o investigador deve ter sobre a noção exacta dos instrumentos de que dispõe, por forma a averiguar os dados que o utilizador poderá fornecer-lhe e qual a relevância dos resultados obtidos para a introdução de melhorias no sistema. Ao longo do artigo é efectuada uma discussão sobre métodos qualitativos de avaliação de usabilidade, baseados em experiências com sistemas de E-learning, académicos e/ou comerciais, ao incluir utilizadores com origens em diversos países e culturas. Dito isto, este artigo pretende retratar uma mudança de paradigma de avaliação que tem sido observada nos últimos anos, tanto na área de ergonomia, como na área do design de sistemas educativos.

Borges P, Machado J, Villani E, Campos JC.  2010.  From SFC Specification to C Programming Language on the Context of Aerospace Systems Control. Workshop on Intelligent Control Systems . :46-51. Abstractborgesvmfc2010a.pdf

Aerospace systems software is developed taking into account some precautions to avoid dangerous situations. Usually the controllers of these systems are critical embedded real-time controllers and the respective software programs are developed in the C programming language. This paper is developed on the context of developing embedded critical real-time systems software, for aerospace systems applications, based on formalisms commonly used in the industrial automation field. More precisely, the approach proposed, in this paper, consists in translating a SFC specification to C programming language code considering also the behaviour of the controller device, where the specification will be implemented. An illustrative case study is presented in the end of the paper in order to facilitate the understanding of the proposed approach.

Silva JL, Ribeiro O, Fernandes JP, Campos JC, Harrison M.  2010.  The APEX framework: prototyping of ubiquitous environments based on Petri nets. Human-Centred Software Engineering - HCSE. 6409:6-21. Abstractsilvarfch10b.pdf

The user experience of ubiquitous environments is a determining factor in their success. The characteristics of such systems must be explored as early as possible to anticipate potential user problems, and to reduce the cost of redesign. However, the development of early prototypes to be evaluated in the target environment can be disruptive to the ongoing system and therefore unacceptable. This paper reports on an ongoing effort to explore how model-based rapid prototyping of ubiquitous environments might be used to avoid actual deployment while still enabling users to interact with a representation of the system. The paper describes APEX, a framework that brings together an existing 3D Application Server with CPN Tools. APEX-based prototypes enable users to navigate a virtual world simulation of the envisaged ubiquitous environment. The APEX architecture and the proposed CPN-based modelling approach are described. An example illustrates their use.

Silva JC, Silva CE, Campos JC, Saraiva JA.  2010.  GUI Behavior from Source Code Analysis. 4a. Conferência de Grupo Português de Computação Gráfica. :81-88. Abstractsilvascs10.pdf

When developing interactive applications, considering the correctness of graphical user interfaces (GUIs) code is essential. GUIs are critical components of today's software, and contemporary software tools do not provide enough support for ensuring GUIs' code quality. GUIsurfer, a GUI reverse engineering tool, enables evaluation of behavioral properties of user interfaces. It performs static analysis of GUI code, generating state machines that can help in the evaluation of interactive applications. This paper describes the design, software architecture, and the use of GUIsurfer through an example. The tool is easily re-targetable, and support is available to Java/Swing, and WxHaskell. The paper sets the ground for a generalization effort to consider rich internet applications. It explores the GWT web applications' user interface programming toolkit.

Silva JL, Ribeiro O, Fernandes JP, Campos JC, Harrison M.  2010.  Prototipagem rápida de ambientes ubíquos. 4a. Conferência de Grupo Português de Computação Gráfica. :121-128. Abstractsilvarfch10.pdf

A experiência de utilização de ambiente ubíquos é um factor determinante no seu sucesso. As características de tais sistemas devem ser exploradas o mais cedo possível para antecipar potenciais problemas de utilização por parte do utilizador e para reduzir custos de re-design. No entanto, o desenvolvimento antecipado de protótipos a serem avaliados no ambiente final pode ser disruptivo e tornar-se inaceitável. O desenvolvimento de protótipos de ambientes ubíquos pode ajudar, fornecendo indicações de como o utilizador irá reagir perante os ambientes. Este artigo descreve o APEX, uma plataforma de prototipagem rápida de ambientes ubíquos que junta a CPN Tools com um servidor de aplicações 3D existente. Os protótipos desenvolvidos com o APEX permitem que os utilizadores naveguem num mundo virtual, podendo experimentar muitas das características do design proposto. A arquitectura do APEX e a modelação baseada em CPN são descritas. Um exemplo ilustra a abordagem.