
João M. Fernandes- Ph.D. in Informatics
- Professor (Full) at University of Minho
João M. Fernandes
- Ph.D. in Informatics
- Professor (Full) at University of Minho
About
172
Publications
87,130
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
1,915
Citations
Introduction
Current institution
Additional affiliations
September 2006 - June 2007
September 1991 - present
Publications
Publications (172)
Whenever an emergency occurs, such as a change in the system operating environment that prevents regular functioning, one possibility to restore the system to normal operation is to perform immediately the emergency repair process (ERP). This paper introduces the feature‐based emergency repair process (FbERP), which constitutes a feature‐based impr...
Currently, we witness a significant increase in the adoption of machine learning (ML) components in software-intensive systems. This is the case at the Cross-Domain Computing Solutions Division (XC) at Bosch Car Multimedia S.A., where different ML-enhanced system functions are now being developed and incorporated in automobiles. The systematic deve...
Successful product development is mostly based on how well ideas, opinions, and contributions from stakeholders are taken into account. There are signs that the way a project manager involves stakeholders in the project is directly linked to how well software products are delivered. Engagement of stakeholders enables organizations to proactively co...
Although remote work was already possible and used in some contexts, the COVID-19 pandemic made it normal and, in some situations, even mandatory. This was the case in Portugal and in particular in its software industry. Given this abrupt change in how we work, it became pressing to investigate the impacts of this profound change to remote work, so...
In material requirements planning (MRP) systems, safety stock and safety time are two well-known inventory buffering strategies to protect against supply and demand uncertainties. While the role of safety stocks in coping with uncertainty is well studied, safety time has received only scarce attention in the supply chain management literature. Part...
In the last years, organizations and companies in general have found the true potential value of collecting and using data for supporting decision‐making. As a consequence, data are being collected at an unprecedented rate. This poses several challenges, including, for example, regarding the storage and processing of these data. Machine Learning (M...
The order in which authors of a scientific paper place their names on the byline follows in many research fields some implicit rules. In most fields, the first author is considered to be the one who contributed most to the intellectual effort described in the paper. Additionally, the last author is normally the most senior researcher and in many si...
In a context of higher volatility, uncertainty, complexity, and ambiguity (VUCA), engineering education must promote active learning approaches, where the responsibility of learning is focused on students, enhancing their competencies and ability to be competitive in the market. But, such educational strategies encompass many issues, questions and...
Most of the courses offered by universities and focused on
entrepreneurship provide some tools for students to learn and apply when
developing their projects. The Business Model Canvas (BMC) appears as
one of the most used tools for the development or documentation of new or
existing business models. As mentioned by [1], most university programs
us...
Paper authorship and author placement have significant consequences for accountability and assignment of credit. Moreover, authors in different scientific fields tend to follow distinct approaches towards their ordering in scholarly publications. This manuscript presents a bibliometric study aiming to characterize the trends in the adoption of alph...
Technological evolution impacts several industries, including automotive. The combination of software with advancements in sensory capabilities results in new Advanced Driver Assistance System (ADAS). The pervasiveness of smartphones and their sensory capabilities makes them an solid platform for the development of ADAS. Our work is motivated by co...
Software Product Lines (SPLs) seek to achieve gains in productivity and time to market. Many companies in several domains are constantly adopting SPLs. Dealing with SPLs begin after companies find themselves with successful variants of a product in a particular domain. The adoption of an SPL-based approach in the automotive industry may provide a s...
Research collaboration between industry and academia supports improvement and innovation in industry and helps ensure the industrial relevance of academic research. However, many researchers and practitioners in the community believe that the level of joint industry-academia collaboration (IAC) projects in Software Engineering (SE) research is rela...
Due to the complex and dynamic nature of Supply Chains (SCs), companies require solutions that integrate their Big Data sets and allow Big Data Analytics, ensuring that proactive measures are taken, instead of reactive ones. This paper proposes a proof-of-concept of a Big Data Warehouse (BDW) being developed at a company of the automotive industry...
Systematic reuse often becomes possible only after a number of customized cloned variants have already been delivered. Transforming from customized cloned variants to a systematic reuse with the explicit management of variability is beneficial. Hence, industrial companies prefer to adopt a reuse-based approach. We propose in this research work an a...
In a company, its business strategy and business model undergo changes throughout its life. These changes can be induced or forced externally or they can result from a deliberate strategy to improve the business performance and to achieve success. Certain changes can lead to a major change in the business model of the company (i.e., a pivot). Such...
In recent years, we have seen a growing interest in technology-based companies and intensive knowledge. Several regional clusters have appeared supported in dynamic entrepreneurial ecosystems which, alongside intrinsic aspects of the business, are important determinants of the success of new companies. However, most startups created in these innova...
Context: According to the data from the Scopus publication database, as analyzed in several recent studies, more than 70,000 papers have been published in the area of Software Engineering (SE) since late 1960’s. According to our recent work, 43% of those papers have received no citations at all. Since citations are the most commonly used metric for...
Research collaboration between industry and academia supports improvement and innovation in industry and helps to ensure industrial relevance in academic research. However, many researchers and practitioners believe that the level of joint industry-academia collaboration (IAC) in sooware engineering (SE) research is still relatively low, compared t...
According to the data from the Scopus publication database, as analyzed in several recent studies, more than 70,000 papers have been published in the area of Software Engineering (SE) since late 1960’s. According to our recent work, 43% of those papers have received no citations at all. Since citations are the most commonly used metric for measurin...
A mobile application is a type of software application developed to run on a mobile device. The chapter discusses the main characteristics of mobile devices, since they have a great impact on mobile applications. It also presents the classification of mobile applications according to two main types: native and web-based applications. Finally, this...
This article analyses the evolution in the number of authors of scientific publications in computer science (CS). This analysis is based on a framework that structures CS into 17 constituent areas, proposed by Wainer et al. (Commun ACM 56(8):67–63, 2013), so that indicators can be calculated for each one in order to make comparisons. We collected a...
Conducting research and development (R&D) software projects, in an environment where both industry and university collaborate, is challenging due to many factors. In fact, industrial companies and universities have generally different interests and objectives whenever they collaborate. For this reason, it is not easy to manage and negotiate the ind...
A requirement identifies an attribute, a capacity, a characteristic or a quality that a system should exhibit in order to have value for the users and customers. This chapter defines what is a requirement and presents the different types of requirements (functional requirement, non-functional requirement, user requirement, system requirement). The...
This chapter is focused on describing a set of practical recommendations to write requirements in good English (e.g., write simple sentences, use a limited vocabulary, and avoid ambiguity) and on analysing the structure of a document template for writing requirements. It is expected that the reader realises on the advantages that result in having r...
The chapter begins with a general discussion about the requirements engineering area, with the aim of introducing what is its scope of activity and what are its purposes. Next, the various activities that make up the requirements engineering process are presented, emphasising those activities that are deemed to be fundamental. The chapter closes wi...
The quality of a software application is highly dependent on its ability to meet the necessities of customers and users, so it is crucial to capture and specify all requirements that the system must possess. However, many projects have more candidate requirements than those that can be built without exceeding the available time and budget. This cha...
Software engineering is an engineering discipline that is focused on all aspects concerning the development of software-based systems. This chapter begins with an explanation of the contributions of software engineering to the issues related to requirements, discussing the possibility of adopting their methods on projects of other engineering disci...
Universities seek to promote entrepreneurship through effective education approaches, which need to be in permanent evolution. Nevertheless, the literature in entrepreneurship education lacks empirical evidence. This article discusses relevant issues related to promoting entrepreneurship in the software field, based on the experience of a 15-Europe...
Developing industrial software systems is challenging mainly due to the required integration with other systems. Any project in this field requires a significant effort in acquiring knowledge from both the industrial field and the technological domain. For this reason, it is very difficult to define an early schedule to any software development pro...
Requirements elicitation is one of the crucial tasks of the requirements engineering process, as it allows one to discover which requirements the users want to see incorporated into the system at hand. The core content of this chapter is the description of some techniques that can be applied to elicit requirements. The chapter presents a non-exhaus...
This chapter makes an overall presentation of the book. In addition to a first introduction to the problems associated with the requirements, the objectives of the book and how it is structured are presented. There is also a discussion about taxonomical issues, in which the terms most commonly used in this book are introduced and defined. The chapt...
In addition to the use of natural language, the requirements documentation can include formal models for specifying the system in the perspective of those who will build it. This chapter covers topics of modelling in software engineering, with a special focus on the most relevant models for the activities associated with the requirements engineerin...
A mobile application is a type of software application developed to run on a mobile device. The chapter discusses the main characteristics of mobile devices, since they have a great impact on mobile applications. It also presents the classification of mobile applications according to two main types: native and web-based applications. Finally, this...
Visibility plays an important role in supply chain management. Such visibility is not only important for better planning, but especially for real-time execution related with the traceability of goods. In inbound supply chain management, logistics planners need to trace raw materials from their requests in order to properly plan a plant’s production...
A survey of industry-academia collaborations in software engineering (survey questions)
A survey of industry-academia collaborations in software engineering (survey questions)
A survey of Industry-Academia Collaborative Projects in Software Engineering (survey questions)
A survey of industry-academia collaborations in software engineering (survey questions)
Normally, the design process of Cyber-Physical Systems (CPSs) starts with the creation of functional models that are used for simulation purposes. However, most of the time such models are not directly reused for the design of the architecture of the target CPS. As a consequence, more efforts than strictly necessary are spent during the CPS archite...
This book focuses on various topics related to engineering and management of requirements, in particular elicitation, negotiation, prioritisation, and documentation (whether with natural languages or with graphical models). The book provides methods and techniques that help to characterise, in a systematic manner, the requirements of the intended e...
This paper aims to examine authorship trends in software engineering, especially those related to the number of authors, of scientific publications. We collected and mined around 70.000 entries from DBLP for 122 conferences and journals, for the period 1971-2012, in order to process several bibliometric indicators. We provide evidence that the numb...
This article presents an approach to enrich the MATLAB language with aspect-oriented modularity features, enabling developers to experiment different implementation characteristics and to acquire runtime data and traces without polluting their base MATLAB code. We propose a language through which programmers configure the low-level data representat...
Traditional software development projects for process-oriented organizations are time consuming and do not always guarantee the fulfillment of the functional requirements of the client organization, and thus the quality of the resulting software product. To reduce the time spent for developing software and improve its quality, we adopt the inclusio...
This paper focus on the modelling of reactive systems, more particularly, control systems. A set of guidelines is proposed in order to build models that support analysis, simulation and prototyping. The guidelines are split in two parts; the analysis of a problem is addressed first, followed by the design with Coloured Petri Nets (CPNs). A smart li...
Aspect-Oriented Programming (AOP) is an emerging programming paradigm providing novel constructs to improve the overall modularity of a software system. The primary contribution of AOP is the modularization of crosscutting concerns (CCCs), which give rise to the negative symptoms of scattering and tangling, which make a system hard to reason with,...
This manuscript proposes a guiding methodology to obtain a software system that supports the execution of the business processes existing within an organization. The methodology promotes the usage of business process reference models and intends to reduce the implementation time of the software systems. The methodology assumes four distinct phases...
Many of the current approaches used in teaching and learning in engineering education are not the most appropriate to prepare students for the challenges they will face in their professional careers. The active involvement of students in their learning process facilitates the development of the technical and professional competencies they need as p...
A key problem in model-based development is integrating a collection of models into a single, larger, specification as a way to construct a functional system, to develop a unified understanding, or to enable automated reasoning about properties of the ...
ETL (Extract-Transform-Load) systems are formed by processes responsible for the extraction of data from several sources, cleaning and transforming it in accordance with some prerequisites of a data warehouse, and finally loading it in the multidimensional structures of a data warehouse. ETL processes are the most complex tasks involved within the...
The articles in this Special Issue of IET Computers & Digital Techniques are revised and extended versions of selected papers presented at the 10th International Conference on Application of Concurrency to System Design (ACSD'10) held in Braga, Portugal, on 21–25 June 2010. The ACSD conference series serves a forum for disseminating theoretical res...
In this paper, a proposal of a generic model for process-oriented soft- ware development organizations is presented. Additionally, the respective way of managing the process model, and the instantiation of their processes with RUP (Rational Unified Process) workflows, whenever they are available, or with other kind of processes is suggested. The pr...
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...
This manuscript describes a technique to perform comparisons on agile methods, based on a set of relevant features and attributes.
This set includes attributes related to four SWEBOK Knowledge Areas (KAs) and to the Agile Manifesto principles. With this
set of attributes, by analyzing the practices proposed by each method, we are able to assess (1)...
To motivate and engage students and, consequently, improve the quality of learning, some researchers suggest new ways of teaching, including the use of serious games in the classroom. This paper describes PlayScrum, a new card game devised to allow university-level students to learn Scrum, an agile software development method. We present the card g...
This manuscript addresses the creation of scenario-based models to reason about the behavior of existing industrial information
systems. In our approach the system behavior is modeled in two steps that gradually introduce detail and formality. This manuscript
addresses the first step, where text-based descriptions, in the form of structured rules,...
Aspect-oriented programming enables software developers to augment programs with information out of the scope of the base language while not hampering the code readability and thus its portability. MATLAB is a popular modeling/programming language that can significantly benefit from aspect-oriented programming features. Crosscutting concerns includ...
Modern embedded systems have increased their functionality by using a large amount and diversity of hardware and software components. Realizing the expected system functionality is a complex task. Such complexity must be managed in order to decrease time-to-market and increase system quality. This chapter presents a method for high-level design spa...
Most university-level engineering studies produce technically skilled engineers. However, typically students face several difficulties when working in multidisciplinary teams when they initiate their industrial careers. In a globalised world, it becomes increasingly important that engineers are capable of collaborating across disciplinary boundarie...
We report on recent advances in Model-based Methodologies for Pervasive and Embedded Software. This paper describes the research presented at MOMPES 2009, the 6th edition of a workshop series. The MOMPES workshops focus on the theoretical and practical aspects related to the adoption of model-based development methodologies for supporting the const...
A scenario can be used to describe a possible instantiation of a given business use case and can be expressed for example as a list of steps written in natural language, or by an interaction diagram. This paper discusses how a collection of scenarios, all expressed as UML2 sequence diagrams, can be described for validation purposes by a single mode...
This paper presents executable use cases (EUCs), which constitute a model-based approach to requirements engineering. EUCs
may be used as a supplement to model-driven development (MDD) and can describe and link user-level requirements and more technical
software specifications. In MDD, user-level requirements are not always explicitly described, si...
Model-based Methodologies for Pervasive and Embedded Software (MOMPES 2009) is the 6th edition of a workshop series. The workshops focus on the theoretical and practical aspects related to the adoption of model-based development methodologies for supporting the construction of software for pervasive and embedded systems. The workshops usually gathe...
The development of embedded systems offers a higher degree of abstraction, crucial to tackling the growing complexity and usage of model-driven approaches. Behavioral Modeling for Embedded Systems and Technologies: Applications for Design and Implementation provides an overview on innovative behavior models currently used for developing embedded sy...
Devising a course for software professionals working in industry depends on several factors. In order to create a course that fulfils professionals' expectations, it is important to take account of the skills of the participants, the time available, and the specific topics to be covered. This paper presents the curriculum of a course in requirement...
Several organizations nowadays are not particularly comfortable with their internal structuring based on a hierarchical arrangement (sub-divided in departments), where collaborators with a limited view of the overall organization perform theiractivities. Those organizations recognize the need to move to a model where multi-skilled teams run horizon...
Several organizations nowadays are not particularly comfortable with their internal structuring based on a hierarchical arrangement (sub-divided in departments), where collaborators with a limited view of the overall organization perform theiractivities. Those organizations recognize the need to move to a model where multi-skilled teams run horizon...
Several organizations are nowadays not particularly comfortable with their internal structuring based on a hierarchical arrangement (sub-divided in departments), where collaborators with a limited view of the overall organization perform their activities. Those organizations recognize the need to move to a model where multi- skilled teams run horiz...
SUMMARY This paper describes a refactoring process that transforms a Java source code base into a functionally equivalent AspectJ source code base. The process illustrates the use of a collection of refactorings for aspect-oriented source code, covering the extraction of scattered implementation elements to aspects, the internal reorganization of t...
This paper presents a model-based approach to requirements engineering for reactive systems; we use an elevator controller as case study. We identify and justify two key properties that a model which we construct must have, namely: (1) controller-and-environment-partitioned, which means constituting a description of both the controller and the envi...
In a distributed embedded system, it is often necessary to share variables among its computing nodes to allow the distribution
of control algorithms. It is therefore necessary to include a component in each node that provides the service of variable
sharing. For that type of component, this paper discusses how to create a Colored Petri Nets (CPN) m...
This paper presents a model-based approach to requirements engineering for reactive systems; we use an elevator controller as case study. We identify and justify two key properties that a model which we construct must have, namely: (1) controller-and-environment-partitioned, which means constituting a description of both the controller and the envi...
Traditional software-oriented computing degrees do not include courses on embedded systems design in their syllabus, since in the past embedded applications were seen as small-sized solutions developed without the need of engineering approaches. This reality has dramatically changed in the last decade and nowadays several embedded systems are quite...
This thesis proposal suggests a model-based approach to obtain, from a set of behavioural scenarios of a given reactive software system, a graphical animation for reproducing that set of scenarios for validation purposes. The approach assumes that the requirements of the system are described by a use case diagram, being the behaviour of each use ca...
The main aim of this paper is to present how to derive logical software architectures for CRUD (Create, Read, Update and Delete) applications using a specific technique called 4SRS. In this technique, a component diagram, which is obtained through transformations of use cases, is used to represent the logical software architecture. To show that the...
Currently, the development of organizational information systems remains a complex task. Final software product quality often does not match expectations. The existence of organizational models is the first step to reduce complexity in the development of information systems. Within the life cycle of an information system, activities are still very...