Papers by Baltasar Perez-schofield
International Journal of Medical Informatics, 2022
nowadays, numerous mobile applications capable of measuring the Heart Rate (HR) are continuously ... more nowadays, numerous mobile applications capable of measuring the Heart Rate (HR) are continuously being launched. However, these tools do not allow to record and label the acquired HR signals while users are doing activities such as practising sports or viewing images. They do not allow to perform simultaneous HR acquisition and real-time HRV analysis, either. VARSE is an app for Android mobile devices capable of acquiring and labelling HR signals and of performing real-time HRV analysis. VARSE was developed for Android devices. It includes functionalities to acquire HR signals from any Bluetooth device that implements the Heart Rate Profile specification (such as a chest strap), while labelling segments of the HR data in different situations. Not only can these signals be stored, but also time and frequency HRV analyses can be carried out over them. The application is distributed under the MIT license [1], and it is also available to be installed via Google Play [2]. Functionality, ease-of-use and friendliness of VARSE were evaluated employing an User Experience Questionnaire (UEQ). Its reliability was proven by comparative studies against other existing acquisition (gVARVI) or HRV analysis (RHRV) software. high values were obtained for all the dimensions evaluated in the UEQ, proving the quality of the application, as well as its ease-of-use and efficiency. Both HR signal acquisition and HRV analysis yielded results similar to the ones obtained using other applications. VARSE is a tool with complete functionality, that can be easily downloaded or installed on Android mobile devices. It can be used by anyone who wishes to record HR signals while performing different activities, and also by the medical scientific community to perform real-time HRV analyses easily. Future versions will improve its capabilities and allow its integration with other open source applications.
En cursos avanzados del grado en Ingenieria Informatica, es interesante explorar otras opciones a... more En cursos avanzados del grado en Ingenieria Informatica, es interesante explorar otras opciones al margen del tipico modelo de programacion orientado a objetos basado en clases. El modelo basado en prototipos es de hecho muy interesante, pues llega a ser capaz de representar el modelo basado en clases. Sin embargo, no es sencillo encontrar lenguajes basados en prototipos que permitan que el estudiante interaccione con ellos de una manera sencilla y didactica. Fruto de este problema nace Pooi (Prototype-based Object-Oriented Interpreter), un pequeno interprete de objetos cuyo fin ultimo es el de servir de ejemplo sencillo del funcionamiento interno de estos lenguajes, asi como de ser una herramienta con la que los alumnos puedan experimentar en su tiempo no presencial
The issue of conflicts among aspects is not new, however the handling of conflicts is still an op... more The issue of conflicts among aspects is not new, however the handling of conflicts is still an open problem. First, the detection of conflicts is a manual task in most of the AOP tools. Second, in general the resolution of conflicts is enclosed to order-schemes. The handling of conflicts can be problematical if the programming tool does not supply suitable structures and specific mechanisms. MEDIATOR is an environment programming that extends Java language to support AOP, with specific and flexible mechanisms to manage conflicts among aspects. The detection of conflicts is an automatic process and the resolution of them is implemented by explicit and symbolic rules.
The occurrence of conflicts among aspects is a consequence of the decomposition of the systems in... more The occurrence of conflicts among aspects is a consequence of the decomposition of the systems in the aspect-oriented development. This phenomenon is independent of the tools and it requires a special treatment since the activation of certain conflicts can cause non-wanted and unstable behaviors of the software execution. But the conflict treatment is a complex and critic task when the programming tools do not provide appropriate support. In this work two AOP tools are compared: AspectJ and MEDIATOR, bearing in mind the treatment of conflicts.
Barbados is a prototype of a persistent programming system which follows the architecture of the ... more Barbados is a prototype of a persistent programming system which follows the architecture of the container based model, in contrast to the orthogonal model of persistence. Barbados is also a programming environment, providing the programmer with a C++ compiler, an editor and a debugger, integrated in the same environment. This combination of an integrated persistent environment and a C++ compiler which produces native Intel machine code, instead of the typical virtual machine interpreter found in many persistent systems, has been chosen because of its usefulness and efficiency, although we had no opportunity, until now, to test those capabilities due to the development effort. In this article, we explain the first real tests we have done to Barbados, which although they aren't complete, allow us to extract important conclusions. We try to demonstrate with this tests that Barbados is as efficient as we have been claiming.
The separation of concerns at implementation level with AspectOriented Programming (AOP) tools ra... more The separation of concerns at implementation level with AspectOriented Programming (AOP) tools raises the conflicts among aspects. The conflicts detection and resolution are critical operations. First the detection of conflicts is a manual task in most of the AOP tools, second the resolution of conflicts is enclosed to order-schemes. The AOP tools structures and mechanisms do not always support them in a flexible way. In this work the shortcomings of AspectJ for the handling of conflicts are identified and overcome with Model of Associations. This approach is based on two main abstractions: associations and rules. Associations are aspectual relationships. The rules work with associations. They can be explicit or symbolic. An explicit rule solves a single conflict while a symbolic rule solves a set of conflicts. The rules can apply a variety of resolution categories. The detection of conflict is an automatic process and it is a fundamental part of the resolutions of conflicts.
In this paper, the Zero project, a persistent, prototype-based programming system, is discussed. ... more In this paper, the Zero project, a persistent, prototype-based programming system, is discussed. Zero has been in continuous development since 2003, and in use in advanced subjects at the University of Vigo, Computer Science faculty. Its main characteristic is that it has been designed with multi-language support in mind from the beginning. Its approach is based in a dynamic, flexible virtual machine with native persistence capabilities, which can support programming languages of different natures in regard to their type systems: static, dynamic or even hybrid.
Aspect-Oriented Programming (AOP) is an emergent technology for the modularization of crosscuttin... more Aspect-Oriented Programming (AOP) is an emergent technology for the modularization of crosscutting concern. The most used approach to support t he AOP paradigm is based o n the a spect notion, as the basic unit that contains the crosscutting concern logic and a method that relates it to the functional components (pointcuts, advices, join-points). This mechanism, popularized b y tools like AspectJ, restricts and limits the handling of conflicts among aspects. In this work a flexible, wider and powerful approach is presented. This s trategy is based o n two main mechanisms: definition of associations and explicit rules. The a pproach presented is implemented in a prototype denominated MEDIATOR.
Nowadays, the programming language widely used in education when learning the object-oriented is ... more Nowadays, the programming language widely used in education when learning the object-oriented is Java. While this language has proven as being good for industry, some drawbacks make it less appropriate for education. We the authors think that probably better languages can be designed exclusively for education, as, Pascal was designed for lecturing in structured programming. This would allow students to concentrate in the important issues of object-oriented programming. In this article, an ongoing research project held in the Computer Science departament of the University of Vigo is described. It currently consists of a virtual machine, an assembler, and a macroassembler, although, in the near future, a true programming language will be developed for it, as long as an integrated development environment. The simplicty of the prototype-based model of object orientation, the drammatic decrease in complexity for programs due to the direct support of persistence, and all facilities natura...
The subject of Programming is part of the mandatory formation for undergraduate students of Compu... more The subject of Programming is part of the mandatory formation for undergraduate students of Computer Science Engineering. At the Escuela Superior de Ingenieria Informatica of the University of Vigo, we have taken the path of dividing this formation in two actual subjects: Programacion I, for procedural programming, and Programacion II, focused in object-oriented programming. In contrast to the strategy called objects first, we still use a imperative first approach. Both subjects use the same vehicular programming language: C++. This forces students to understand programming concepts, such as memory management, from a quite low abstraction level: pointers, memory blocks, memory release, etc. C-Sim was created as an assistance tool for the lecturer to be able to create examples in the classroom, while the students can experiment with the tool in their own.
Software: Practice …, 2002
Page 1. SOFTWAREPRACTICE AND EXPERIENCE Softw. Pract. Exper. 2002; 32:13951410 (DOI: 10.1002/sp... more Page 1. SOFTWAREPRACTICE AND EXPERIENCE Softw. Pract. Exper. 2002; 32:13951410 (DOI: 10.1002/spe.489) Managing schema evolution in a container-based persistent system J. Baltasar Garcıa Perez-Schofield1 ...
Science of Computer Programming, 2009
Increasing trends towards adaptive, distributed, generative and pervasive software have made obje... more Increasing trends towards adaptive, distributed, generative and pervasive software have made object-oriented dynamically typed languages become increasingly popular. These languages offer dynamic software evolution by means of reflection, facilitating the development of dynamic systems. Unfortunately, this dynamism commonly imposes a runtime performance penalty. In this paper, we describe how to extend a production JIT-compiler virtual machine to support runtime object-oriented
… . Conference to be …, 2006
The specification, analysis, and administration of business processes have charged great importan... more The specification, analysis, and administration of business processes have charged great importance in this last time. This has been caused by a competitive industry necessity, dynamics, where she use the available resources efficiently. The "Workflow" technologies has given ...
The separation of concerns principle is aimed at the ability to modularize separately those diffe... more The separation of concerns principle is aimed at the ability to modularize separately those different parts of software that are relevant to a particular concept, goal, task or purpose. Appropriate separation of application concerns reduces software complexity, improves comprehensibility, and facilitates concerns reuse. Considering persistence as a common application concern, its separation from program's main code implies that applications can be developed without taking persistence requirements into consideration. As a result, persistence aspects may be plugged in at a later stage. This separation offers the developer handle persistence software attributes regardless the application functionality. We have analyzed different approaches to accomplish a complete separation of persistent features, appreciating that computational reflection achieves an entire transparency of persistence concerns, offering an enormous adaptability level. We present the implementation of a research-oriented prototype that illustrates how computational reflection can be used in future persistence systems to completely separate and adapt application persistence attributes at runtime.
Computer Applications in Engineering Education
Science of Computer Programming
Uploads
Papers by Baltasar Perez-schofield