Filipe Figueiredo Correia

Filipe Figueiredo Correia
University of Porto | UP · Departamento de Engenharia Informática

Professor

About

42
Publications
10,908
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
179
Citations

Publications

Publications (42)
Preprint
Full-text available
The promise of increased agility, autonomy, scalability, and reusability has made the microservices architecture a \textit{de facto} standard for the development of large-scale and cloud-native commercial applications. Software patterns are an important design tool, and often they are selected and combined with the goal of obtaining a set of desire...
Preprint
Software analytics is a data-driven approach to decision making, which allows software practitioners to leverage valuable insights from data about software to achieve higher development process productivity and improve different aspects of software quality. In previous work, a set of patterns for adopting a lean software analytics process was ident...
Article
Full-text available
Cloud computing and Infrastructure-as-Code (IaC), supported by technologies such as Docker, have shaped how many software systems are built and deployed. Previous research has identified typical issues for some types of IaC specification but not why they come to be, or they have delved into collaboration aspects but not into technical ones. This wo...
Article
This work takes as a starting point a collection of patterns for engineering software for the cloud and tries to find how they are regarded and adopted by professionals. Existing literature assessed the adoption of cloud computing with a focus on business and technological aspects and fall short in grasping a holistic view of the underlying approac...
Conference Paper
Full-text available
Infrastructure-as-Code tools, such as Docker and Docker Compose, play a crucial role in the development and orchestration of cloud-native and at-scale software. However, as IaC relies mostly on the development of text-only specifications, these are prone to misconfigurations and hard to debug. Several works suggest the use of models as a way to abs...
Conference Paper
A number of approaches have been proposed to identify service boundaries when decomposing a monolith to microservices. However, only a few use systematic methods and have been demonstrated with replicable empirical studies. We describe a systematic approach for refactoring systems to microservice architectures that uses static analysis to determine...
Preprint
Full-text available
A number of approaches have been proposed to identify service boundaries when decomposing a monolith to microservices. However, only a few use systematic methods and have been demonstrated with replicable empirical studies. We describe a systematic approach for refactoring systems to microservice architectures that uses static analysis to determine...
Cover Page
Full-text available
We present the proceedings of the AMP 2020 workshop, co-located with XP 2020, and report our main insights from its conduction. The workshop focused on exploring the interplay between agile methods and microservice architectures. Due to the COVID outbreak, AMP 2020 was moved online, divided into two parts: a live presentation session and a three-we...
Chapter
Full-text available
Successful software systems tend to grow considerably, ending up suffering from essential complexity, and very hard to understand as a whole. Software visualization techniques have been explored as one approach to ease software understanding. This work presents a novel approach and environment for software development that explores the use of liven...
Conference Paper
Full-text available
Trusted open data can be used for auditing, accountability, business development, or as an anti-corruption mechanism. Metadata information can address provenance concerns, and trust issues can somehow be mitigated by digital signatures. Those approaches can trace the data origin, but usually lack information about the transformation process. Creati...
Conference Paper
Live Programming is an idea pioneered by programming environments from the earliest days of computing, such as those for Lisp and Smalltalk. One thing they had in common is liveness: an always accessible evaluation and nearly instantaneous feedback, usually focused on coding activities. In this paper, we argue for Live Software Development (LiveSD)...
Article
Full-text available
The explosion of blockchain projects in last couple of years shows the general interest in the blockchain technology. Looking towards the current state of the art regarding this technology it becomes clear that the main driver of innovation is the private sector. We believe that understanding main applications of the technology, academic contributi...
Conference Paper
Full-text available
The applications of the blockchain technology are still being discovered. When a new potential disruptive technology emerges, there is a tendency to try to solve every problem with that technology. However, it is still necessary to determine what approach is the best for each type of application. To find how distributed ledgers solve existing probl...
Preprint
Full-text available
The applications of the blockchain technology are still being discovered. When a new potential disruptive technology emerges, there is a tendency to try to solve every problem with that technology. However, it is still necessary to determine what approach is the best for each type of application. To find how distributed ledgers solve existing probl...
Conference Paper
Full-text available
Cloud software continues to expand globally, highly motivated by how widespread the Internet is and the possibilities it unlocks with cloud computing. Still, cloud development has some intrinsic properties to it, making it complex to unexperienced developers. This research is capturing those intricacies in the form of a pattern language that gather...
Conference Paper
Full-text available
Cloud software continues to expand globally, highly motivated by how widespread the Internet is and the possibilities it unlocks with cloud computing. Still, cloud development has some intrinsic properties to it, making it complex to unexperienced developers. This research is capturing those intricacies in the form of a pattern language, gathering...
Conference Paper
Full-text available
Software business continues to expand globally, highly motivated by the reachability of the Internet and possibilities of Cloud Computing. While widely adopted, development for the cloud has some intrinsic properties to it, making it complex to any newcomer. This research is capturing those intricacies using a pattern catalog, with this paper contr...
Conference Paper
Full-text available
Software businesses are quickly moving towards the cloud. While cloud computing is not a new research subject, engineering software for the cloud is still a challenge, demanding broad knowledge over a multitude of processes and tools that most software development teams lack. This paper identifies and briefly describes the practices required to eff...
Conference Paper
Full-text available
Software businesses are redirecting their expansion towards service-oriented businesses models, highly supported by cloud computing. While cloud computing is not a new research subject, there’s a clear lack of documented best practices on how to orchestrate cloud environments, either public, private or hybrid. This paper is targeted at DevOps pract...
Article
Creating and using software documentation presents numerous challenges, namely in what concerns the expression of knowledge structures, consistency maintenance and classification. Adaptive Software Artifacts is a flexible approach to expressing structured contents that tackles these concerns, and that is being realized in the context of a Software...
Conference Paper
Full-text available
The benefits of using models have long been acknowledged by research and industry, but in practice the use of modeling tools often implies a more-than-reasonable effort or confines itself to points in the project lifetime when the requirements and/or design is well understood. Free-form tools like whiteboards and textual documents fill information...
Conference Paper
Full-text available
Providing efficient access to information can be approached in different ways, but ultimately implies the creation of an Index, represented with an indexing language, like a Taxonomy, a Thesaurus, an Ontology or a Folksonomy. Each of these languages strikes a different balance between the effort to create and maintain the index, the effectiveness o...
Conference Paper
An Adaptive Object Model (AOM) is a common architectural style for systems in which classes, attributes, relationships and behaviors of applications are represented as metadata, allowing them to be changed at runtime not only by programmers, but also by end users. Frequently, behavior is added to AOM systems by increasingly adding expressiveness to...
Conference Paper
Full-text available
Meta-architectures, also known as reflective architectures, are a specific type of software architectures that are able to inspect their own structure and behavior, and dynamically adapt at runtime, thus responding to new user requirements or changes in their environment. This paper describes the Lazy Semantics pattern, which arrises when there is...
Conference Paper
Full-text available
Meta-architectures, also known as reflective architectures, are a specific type of software architectures that are able to inspect their own structure and behavior, and dynamically adapt at runtime, thus responding to new user requirements or changes in their environment. In object-oriented program-ming, these architectures rely on a small set of c...
Conference Paper
Full-text available
The knowledge of software developers materializes itself as software artifacts, that may be seen at two different levels (information and structure), which are difficult to change independently from each other. This work explores how the expression of software knowledge using adaptive software techniques, may support the creation of adaptive softwa...
Conference Paper
Full-text available
Knowledge plays a key role in software development, and the effectiveness of how it is captured into artifacts, and acquired by other team members, is of crucial importance to a project's success. The life-cycle of knowledge in software development is derived from the adopted artifacts, practices and tools. These axes are here reviewed from a knowl...
Conference Paper
Full-text available
Documentation is an important part of the captured knowl-edge of a software project, providing a flexible and effective way of recording informal contents. However, maintaining documentation's consistency requires a considerable effort. Existing solutions encompass different tools and approaches that support the process of creating, evolving and us...
Conference Paper
Full-text available
Software development is a knowledge-intensive activity and frequently implies a progressive crystallization of knowledge, towards programming language statements. Although wikis have proved very eective, for both collaborative authoring and knowledge management, it would be useful for knowl- edge acquisition to better support team awareness and the...
Conference Paper
Full-text available
The Adaptive Object-Model (AOM) architectural pattern has been significantly documented in literature, but there is not yet enough documentation explaining how to design and build a full AOM-based system. A AOM framework would need to address an additional number of issues that go well beyond individual software patterns. In this paper, we propose...
Conference Paper
Full-text available
An Adaptive Object-Model (AOM) is an architectural pat-tern based upon a dynamic meta-modeling technique where the object model of the system is explicitly defined as data to be interpreted at run-time. The object model encompasses the full specification of domain objects, states, events, con-ditions, constraints and business rules. Several design...
Conference Paper
Full-text available
An Adaptive Object Model (AOM) is a meta-modeling dy-namic technique, where a runtime model is used in order to allow for fast prototyping and model experimentation. It uses several levels of abstrac-tion but differs from generative approaches and reflection in it's degree of dynamism and application domain. We present a set of common AOM-related d...

Network

Cited By

Projects