Publications

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.

Borges P, Villani E, Machado J, Campos JC, F. J.  2010.  Abordagem Sistemática para o Controlo Seguro de Sistemas aeroespaciais. XIV International Congress on Project Engineering. :10p. Abstractciip10_2666_2676.2958.pdf

A verificação formal do comportamento de sistemas tempo-real é uma tarefa complexa, por várias razões. Há múltiplos trabalhos desenvolvidos na área de verificação formal, por model-checking de sistemas tempo-real, sendo que diversos softwares foram desenvolvidos para o efeito. Um dos problemas mais complexos para serem resolvidos na análise de controladores tempo-real é a conversão das linguagens de programação dos controladores nas linguagens formais, por exemplo autómatos finitos temporizados para depois poderem ser verificados formalmente através dos model-checkers existentes. Se a metodologia de elaboração dos programas for bem desenvolvida e conhecida, essa tarefa pode ser muito facilitada. Por outro lado, grande parte dos sistemas tempo-real (principalmente os sistemas embebidos que pretendemos estudar) é programado em linguagem C. Neste artigo pretende-se estabelecer uma metodologia de criação de programas em código C, a partir do formalismo de especificação SFC, tendo em conta a verificação formal de propriedades comportamentais desejadas para o sistema, utilizando a técnica Model-Checking e o model-checker UPPAAL.

Silva JC, Silva CE, Gonçalo R, Saraiva JA, Campos JC.  2010.  The GUISurfer tool: towards a language independent approach to reverse engineering GUI code. Proceedings of the 2nd ACM SIGCHI Symposium on Engineering interactive computing systems. :181-186. Abstracteics141-silva.pdf

Graphical user interfaces (GUIs) are critical components of today's software. Developers are dedicating a larger portion of code to implementing them. Given their increased importance, correctness of GUIs code is becoming essential. This paper describes the latest results in the development of GUISurfer, a tool to reverse engineer the GUI layer of interactive computing systems. The ultimate goal of the tool is to enable analysis of interactive system from source code.

Freire L, Arezes P, Campos JC.  2010.  Princípios de Ergonomia e Design discutidos através de plataformas utilizadas para e-learning. Occupational Safety and Hygiene (SHO 2010). :256-260. Abstractfreireac2010.pdf

O presente artigo tem como objectivo principal apresentar uma revisão bibliográfica referente aos princípios de Ergonomia aplicados a ferramentas utilizadas para e-learning. É sabido que os erros na aplicação destes princípios acarretam sobrecargas cognitivas nos utilizadores destas plataformas, pelo que o artigo procura abordar o tema de forma abrangente. Deste modo, na primeira parte deste artigo apresentam-se os princípios ergonómicos mais referenciados como fundamentos de Ergonomia Cognitiva e Informacional e, em seguida, apresentam-se as directrizes de usabilidade destinadas a sistemas de informação que poderão servir como suporte para interacções académicas. Na segunda parte, realiza-se um discussão acerca de uma observação de experiências de aprendizagem colaborativa vivenciadas entre professores e alunos em projectos de pesquisa e extensão. A metodologia deste artigo aponta para uma estrutura de investigação de natureza qualitativa, onde o objectivo era perceber as interacções vividas virtualmente, enquanto utilizadores de sistemas cuja meta é favorecer a construção de conhecimentos de carácter académico. Os resultados desta investigação configuram-se como uma forma adicional de análise das questões referentes à Ergonomia, de modo a que os sistemas informacionais privilegiem sempre os diferentes perfis dos seus utilizadores.

Campos JC, Machado J.  2009.  Pattern-based Analysis of Automated Production Systems. 13th IFAC Symposium on Information Control Problems in Manufacturing (INCOM 2009). :972-977. Abstractcamposm2009.pdf

As formal verification tools gain popularity, the problem arises of making them more accessible to engineers. A correct understanding of the logics in which properties are expressed is needed in order to guarantee that properties correctly encode the intent of the verification process. Writing appropriate properties, in a logic suitable for verification, is a skilful process. Errors in this step of the process can create serious problems since a false sense of security if gained with the analysis. However, when compared to the effort put into developing and applying modelling languages, little attention has been devoted to the process of writing properties that accurately capture verification requirements. This paper illustrates how a collection of property patterns, and its tool support, can help in simplifying the process of generating logical formulae from informally expressed requirements.

Campos JC, Mendes S.  2009.  FlexiXML: Um animador de modelos UsiXML. 17º Encontro Português de Computação Gráfica - EPCG. :185-194. Abstractcamposm09.pdf

Uma parte considerável do desenvolvimento de software é dedicada à camada de interacção com o utilizador. Face à complexidade inerente ao desenvolvimento desta camada, é importante possibilitar uma análise tão cedo quanto possível dos conceitos e ideias em desenvolvimento para uma dada interface. O desenvolvimento baseado em modelos fornece uma solução para este problema ao facilitar a prototipagem de interfaces a partir dos modelos desenvolvidos. Este artigo descreve uma abordagem à prototipagem de interfaces e apresenta a primeira versão da ferramenta FlexiXML que realiza a interpretação e animação de interfaces descritas em UsiXML.

Paulo R, Carrapatoso A, Lemos M, Bernardo R, Campos JC.  2009.  Advanced Engineering Tools for Next Generation Substation Automation Systems: The Added Value of IEC 61850 and the InPACT Project. 20th International Conference and Exhibition on Electricity Distribution - CIRED. PEP0550Z:0322/1-4. Abstractpauloclbc09.pdf

Automation systems according to IEC 61850 are a powerful solution for station automation. Engineering of such distributed systems is however a non-trivial task which requires different approaches and enhanced tool support. In this paper the authors (i) present how IEC 61850 is viewed and is being adopted by a utility and vendor, (ii) discuss its engineering potential and current issues, (iii) point-out global requirements for next generation tools, (iv) present the InPACTproject which is tackling some of these concerns and (v) propose key elements of visual languages as one contributing enhancement.

Campos JC, Harrison M.  2009.  Interaction engineering using the IVY tool. ACM Symposium on Engineering Interactive Computing Systems - EICS. :35-44. Abstracteics141-campos.pdf

This paper is concerned with support for the process of usability engineering. The aim is to use formal techniques to provide a systematic approach that is more traceable, and because it is systematic, repeatable. As a result of this systematic process some of the more subjective aspects of the analysis can be removed. The technique explores exhaustively those features of a specific design that fail to satisfy a set of properties. It also analyzes those aspects of the design where it is possible to quantify the cost of use. The method is illustrated using the example of a medical device. While many aspects of the approach and its tool support have already been discussed elsewhere, this paper builds on and contrasts an analysis of the same device provided by a third party and in so doing enhances the IVY tool.

Silva JL, Campos JC, Harrison M.  2009.  An infrastructure for experience centered agile prototyping of ambient intelligence. ACM Symposium on Engineering Interactive Computing Systems (EICS 2009). :79-84. Abstracteics131-silva.pdf

Ubiquitous computing poses new usability challenges that cut across design and development. We are particularly interested in "spaces" enhanced with sensors, public displays and personal devices. How can prototypes be used to explore the user's mobility and interaction, both explicitly and implicitly, to access services within these environments? Because of the potential cost of development and design failure, the characteristics of such systems must be explored using early versions of the system that could disrupt if used in the target environment. Being able to evaluate these systems early in the process is crucial to their successful development. This paper reports on an effort to develop a framework for the rapid prototyping and analysis of ambient intelligence systems.

Silva JC, Saraiva JA, Campos JC.  2009.  A Generic Library for GUI Reasoning and Testing. SAC - Proceedings of the ACM Symposium on Applied Computing. :121-128. Abstract2009-sachci-final.pdf

Graphical user interfaces (GUIs) make software easy to use by providing the user with visual controls. Therefore, correctness of GUI's code is essential to the correct execution of the overall software. Models can help in the evaluation of interactive applications by allowing designers to concentrate on its more important aspects. This paper presents a generic model for language-independent reverse engineering of graphical user interface based applications, and we explore the integration of model-based testing techniques in our approach, thus allowing us to perform fault detection. A prototype tool has been constructed, which is already capable of deriving and testing a user interface behavioral model of applications written in Java/Swing.

Campos JC, Barbosa LS, Barbosa M.  2009.  A coordination model for interactive components. 3rd International Conference on Fundamentals of Software Engineering - FSEN. Abstractbbc09.pdf

Although presented with a variety of ‘flavours’, the notion of an interactor, as an abstract characterisation of an interactive component, is well-known in the area of formal modelling techniques for interactive systems. This paper replaces traditional, hierarchical, ‘tree-like' composition of interactors in the specification of complex interactive systems, by their exogenous coordination through general-purpose software connectors which assure the flow of data and the meet of synchronisation constraints. The paper’s technical contribution is twofold. First a modal logic is defined to express behavioural properties of both interactors and connectors. The logic is new in the sense that its modalities are indexed by fragments of sets of actions to cater for action co-occurrence. Then, this logic is used in the specification of both interactors and coordination layers which orchestrate their interconnection.

Campos JC, Harrison M.  2008.  Considering context and users in interactive systems analysis. 2nd Conference on Human-Centred Software Engineering - HCSE and 7th International Workshop on Task Models and Diagrams - TAMODIA. 4940:193-209. Abstracteis07contextvlncs.pdf

Although the take-up of formal approaches to modelling and reasoning about software has been slow, there has been recent interest and facility in the use of automated reasoning techniques such as model checking [5] on increasingly complex systems. In the case of interactive systems, formal methods can be particularly useful in reasoning about systems that involve complex interactions. These techniques for the analysis of interactive systems typically focus on the device and leave the context of use undocumented. In this paper we look at models that incorporate complexity explicitly, and discuss how they can be used in a formal setting. The paper is concerned particularly with the type of analysis that can be performed with them.