Cookies Policy
The website need some cookies and similar means to function. If you permit us, we will use those means to collect data on your visits for aggregated statistics to improve our service. Find out More
Accept Reject
  • Menu
Publications

Publications by João Pascoal Faria

2014

A model for analyzing estimation, productivity, and quality performance in the personal software process

Authors
Raza, M; Faria, JP;

Publication
ACM International Conference Proceeding Series

Abstract
High-maturity software development processes, making intensive use of metrics and quantitative methods, such as the Team Software Process (TSP) and the accompanying Personal Software Process (PSP), can generate a significant amount of data that can be periodically analyzed to identify performance problems, determine their root causes and devise improvement actions. However, there is a lack of tool support for automating the data analysis and the recommendation of improvement actions, and hence diminish the manual effort and expert knowledge required. So, we propose in this paper a comprehensive performance model, addressing time estimation accuracy, quality and productivity, to enable the automated (tool based) analysis of performance data produced in the context of the PSP, namely, identify performance problems and their root causes, and subsequently recommend improvement actions. Performance ranges and dependencies in the model were calibrated and validated, respectively, based on a large PSP data set referring to more than 30,000 finished projects. © 2014 ACM.

2017

A Survey on Testing Distributed and Heterogeneous Systems: The State of the Practice

Authors
Lima, B; Faria, JP;

Publication
Communications in Computer and Information Science - Software Technologies

Abstract

2017

Towards Decentralized Conformance Checking in Model-Based Testing of Distributed Systems

Authors
Lima, BMC; Faria, JCP;

Publication
Proceedings - 10th IEEE International Conference on Software Testing, Verification and Validation Workshops, ICSTW 2017

Abstract
In a growing number of domains, the provisioning of end-to-end services to the users depends on the proper interoperation of multiple products, forming a new distributed system. To ensure interoperability and the integrity of this new distributed system, it is important to conduct integration tests that verify not only the interactions with the environment but also the interactions between the system components. Integration test scenarios for that purpose may be conveniently specified by means of UML sequence diagrams, possibly allowing multiple execution paths. The automation of such integration tests requires that test components are also distributed, with a local tester deployed close to each system component, and a central tester coordinating the local testers. In such a test architecture, it is important to minimize the communication overhead during test execution. Hence, in this paper we investigate conditions upon which conformance errors can be detected locally (local observability) and test inputs can be decided locally (local controllability) by the local testers, without the need for exchanging coordination messages between the test components during test execution. The conditions are specified in a formal specification language that allows executing and validating the specification. Examples of test scenarios are also presented, illustrating local observability and controllability problems associated with optional messages without corresponding acknowledgment messages, races and non-local choices. © 2017 IEEE.

2014

Factors affecting personal software development productivity: A case study with PSP data

Authors
Raza, M; Faria, JP;

Publication
Proceedings of the IASTED International Conference on Software Engineering, SE 2014

Abstract
Understanding the factors that affect the productivity of software developers and may cause productivity variations among individuals and projects is important for anyone interested in improving software engineering performance and estimates, and in particular for users of high-maturity processes, such as the Personal Software Process (PSP) and the Team Software Process (TSP). In order to contribute to the understanding of the personal and non-personal factors that affect productivity, we analyzed the data from more than 3000 developers that concluded successfully the 10 projects of the PSP for Engineers I/II training course. Regarding non-personal factors, by conducting a detailed per-phase analysis, we found significant variations of productivity among projects that can be partially explained by process changes. Regarding personal factors, we found significant variations among individuals that can be partially explained by personal experience.

2016

Towards the Online Testing of Distributed and Heterogeneous Systems with Extended Petri Nets

Authors
Lima, B; Faria, JP;

Publication
PROCEEDINGS 2016 10TH INTERNATIONAL CONFERENCE ON THE QUALITY OF INFORMATION AND COMMUNICATIONS TECHNOLOGY (QUATIC)

Abstract
The growing dependence of our society on increasingly complex software systems makes software testing ever more important and challenging. In many domains, such as healthcare and transportation, several independent systems, forming a heterogeneous and distributed system of systems, are involved in the provisioning of end-to-end services to users. However, existing testing techniques, namely in the model-based testing field, provide little support for properly testing such systems. To bridge the gaps identified in the state of the art we intend to develop a research work where the main goal is to significantly reduce the cost of testing distributed and heterogeneous systems, from the standpoint of time, resources and expertise required, as compared to existing approaches. For that, we propose a preliminary approach and a toolset architecture for automating the testing of end-to-end services in distributed and heterogeneous systems. The tester interacts with a visual modeling frontend to describe key behavioral scenarios, invoke test generation and execution, and visualize test results and coverage information back in the model. The visual modeling notation is converted to a formal notation amenable for runtime interpretation in the backend. A distributed test monitoring and control infrastructure is responsible for interacting with the components of the system under test, as test driver, monitor and stub. At the core of the toolset, a test execution engine coordinates test execution and checks the conformance of the observed execution trace with the expectations derived from the visual model. A real world example from the Ambient Assisted Living domain is presented to illustrate the approach. As future work we intend to develop distributed and incremental algorithms for online testing of distributed and heterogeneous systems based on Extended Petri Nets at runtime and validate them in real world case studies.

2013

A testing and certification methodology for an Ambient-Assisted Living ecosystem

Authors
Faria, JP; Lima, B; Sousa, TB; Martins, A;

Publication
2013 IEEE 15th International Conference on e-Health Networking, Applications and Services, Healthcom 2013

Abstract
To cope with the needs raised by the demographic changes in our society, several Ambient-Assisted Living (AAL) technologies have emerged in recent years, but those 'first offers' are often monolithic, incompatible and thus expensive and potentially not sustainable. The AAL4ALL project aims at improving that situation through the development of an open ecosystem of interoperable products and services for AAL, tied together via an integration infrastructure. To that end, the project encompasses the specification of a set of reference models and requirements for interoperable products and services, against which candidate products and services can be tested and certified, and subsequently integrated as components of the ecosystem. This paper proposes a testing and certification methodology for such an ecosystem. © 2013 IEEE.

  • 2
  • 14