Tom ČernýUniversity of Arizona | UA · System and Industrial Engineering
Tom Černý
Doctor of Philosophy
About
221
Publications
75,002
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
2,264
Citations
Introduction
Associate Professor at the University of Arizona with a research focus on Software Engineering, Software Architecture, Static Analysis, and Cloud-computing application maintenance. He served 18 years as the lead developer of the International Collegiate Programming Contest Management System and is currently the Global Infrastructure Director and ICPC Challenge Chair. He authored 178 publications; among his awards are the eight best papers, ..
Additional affiliations
August 2017 - present
February 2017 - August 2017
May 2010 - August 2010
Education
January 2007 - May 2009
September 2002 - June 2009
Publications
Publications (221)
Architecture recovery tools help software engineers obtain an overview of the structure of their software systems during all phases of the software development life cycle. This is especially important for microservice applications because they consist of multiple interacting microservices, which makes it more challenging to oversee the architecture...
Microservices have gained widespread adoption in enterprise software systems because they encapsulate the expertise of specific organizational subunits. This approach offers valuable insights into internal processes and communication channels. The advantage of microservices lies in their self-contained nature, streamlining management and deployment...
Fingerprint verification is a popular smartphone authentication method used even for sensitive services such as banking. However, fingerprint verification also has some issues, such as spoofing even by inexperienced impostors utilizing a thumbs up Instagram picture without the victim’s knowledge. This can be a considerable risk with partial scannin...
Unbiased representation learning is still an object of study under specific applications and contexts. Novel architectures are usually crafted to resolve particular problems using mixtures of fundamental pieces. This paper presents different image feature extraction mechanisms that work together with residual connections to encode perceptual image...
Microservice architecture became the mainstream for cloud-native systems. While many microservice system benchmarks have been introduced to the scientific community, there is still a notable gap since the benchmarks do not offer architectural variants of the same system with identical functionality. For instance, research engaged mono-to-micro deco...
Our study addresses the challenges of building datasets to understand the risks associated with organized activities and human trafficking through commercial sex advertisements. These challenges include data scarcity, rapid obsolescence, and privacy concerns. Traditional approaches, which are not automated and are difficult to reproduce, fall short...
Concerns regarding the propensity of Large Language Models (LLMs) to produce inaccurate outputs, also known as hallucinations, have escalated. Detecting them is vital for ensuring the reliability of applications relying on LLM-generated content. Current methods often demand substantial resources and rely on extensive LLMs or employ supervised learn...
Our study addresses the challenges of building datasets to understand the risks associated with organized activities and human trafficking through commercial sex advertisements. These challenges include data scarcity, rapid obsolescence, and privacy concerns. Traditional approaches, which are not automated and are difficult to reproduce, fall short...
Test coverage is a critical aspect of the software development process, aiming for overall confidence in the product. When considering cloud-native systems, testing becomes complex, as it becomes necessary to deal with multiple distributed microservices that are developed by different teams and may change quite rapidly. In such a dynamic environmen...
In the evolving landscape of software architecture, the shift from monolithic structures to agile, scalable microservices has revolutionized cloud-native application development. However, the inherent dynamism of microservices can lead to the inadvertent creation of unnecessary microservices, introducing complexity and inefficiency. Moreover, with...
Microservice architecture is the mainstream driver for cloud-native systems. It brings various benefits to the development process, such as enabling decentralized development and evolution of self-contained system parts, facilitating their selective scalability. However, new challenges emerge in such systems as the system-holistic quality assurance...
Microservice architecture has become increasingly prevalent in the software domain due to its inherent flexibility, scalability, and enhanced deployment capabilities. However, the shift towards this architecture has also introduced complexities in understanding software systems, particularly when grappling with Enterprise Architecture documentation...
The localisation of the bug position in a source code and the prediction of which specific parts of a source code might be the cause of defects play an important role in maintaining software quality. Both approaches are based on applying information retrieval techniques and machine learning or deep learning methods. The prerequisite for using these...
Microservice architecture is the mainstream to fuel cloud-native systems with small service sets developed and deployed independently. The independent nature of this modular architecture also leads to challenges and gaps practitioners did not face in system monoliths. One of the major challenges with decentralization and its independent microservic...
Background: Various works investigated microservice anti-patterns and bad smells in the past few years. We identified seven secondary publications that summarize these, but they have little overlap in purpose and often use different terms to describe the identified anti-patterns and smells. Objective: This work catalogs recurring bad design practic...
Message Queue (MQ) services play a vital role in modern distributed systems as they enable asynchronous communication between services and facilitate the decoupling of various components of the system. Among the many MQ services available, Kafka, Apache Pulsar, Artemis, and RocketMQ are popular choices, each offering unique features and capabilitie...
While working in the cloud, the trend is to secure all the resources in order for the applications and systems to operate as efficiently as possible. Huge amounts of resources are wasted on unnecessary utilities and resource-consuming processes, which can rather have a negative effect. Unikernels are the last trend in this direction. We aim to shed...
Microservices have been recognized for over a decade. They reshaped system design enabling decentralization and independence of development teams working on particular microservices. While loosely coupled microservices are desired, it is inevitable for dependencies to arise. However, these dependencies often go unnoticed by development teams. As th...
Microservice architecture gains momentum by fueling systems with cloud-native benefits, scalability, and decentralized evolution. However, new challenges emerge for end-to-end (E2E) testing. Testers who see the decentralized system through the user interface might assume their tests are comprehensive, covering all middleware endpoints scattered acr...
When developing and managing microservice systems, practitioners suggest that each microservice should be owned by a particular team. In effect, there is only one team with the responsibility to manage a given service. Consequently, one developer should belong to only one team. This practice of “one-microservice-per-developer” is especially prevale...
Microservices have been recognized for over a decade. They reshaped system design enabling decentralization and independence of development teams working on particular microservices. While loosely coupled microservices are desired, it is inevitable for dependencies to arise. However, these dependencies often go unnoticed by development teams. As th...
Various tools have been developed to reconstruct the mi-croservice system architecture. Some of the main reasons to build yet another architectural reconstruction tool are lacking features to satisfy the current needs or often that researchers are unaware of the existing tools. To shed light on the available tools, we performed a review of the lite...
The internet has created new markets and enabled alternative business models for criminal activity, such as human trafficking. Consequently, research is needed to understand the complexity, occurrence, and impact of internet-enabled crime on victims and society. Many scholars have called for interdisciplinary approaches to study and develop interve...
This paper addresses the limitations of subword-based models in NLP by aligning the word-embedding layer of a vocabulary-rigid transformer model to a vocabulary-free one. In order to do so, a CNN is trained to mimic the word embeddings layer of a BERT model, using a sequence of byte tokens as input. The study compares cosine-based and Euclidean-bas...
Microservice architecture gains momentum by fueling systems with cloud-native benefits, scalability, and decentralized evolution. However, new challenges emerge for end-to-end (E2E) testing. Testers who see the decentralized system through the user interface might assume their tests are comprehensive, covering all middleware endpoints scattered acr...
When developing and managing microservice systems, practitioners suggest that each microservice should be owned by a particular team. In effect, there is only one team with the responsibility to manage a given service. Consequently, one developer should belong to only one team. This practice of "one-microservice-per-developer" is especially prevale...
When developing and managing microservice systems, practitioners suggest that each microservice should be owned by a particular team. In effect, there is only one team with the responsibility to manage a given service. Consequently, one developer should belong to only one team. This practice of "one-microservice-per-developer" is especially prevale...
The growing popularity of enterprise technologies for decentralized systems leads to commonalities in using components. This direction, however, opens new challenges to code clone detection. Approaches can no longer look at the low-level code but must deal with the higher-level component semantics. Yet, not many works addressed this trend. One of t...
Message queues are a way for different software components or applications to communicate with each other asynchronously by passing messages through a shared buffer. This allows a sender to send a message without needing to wait for an immediate response from the receiver, which can help to improve the system’s performance, reduce latency, and allo...
Testing microservice systems involves a large amount of planning and problem-solving. The difficulty of testing microservice systems increases as the size and structure of such systems become more complex. To help the microservice community and simplify experiments with testing and traffic simulation, we created a test benchmark containing full fun...
Protecting the resources of a cloud-native application is essential to meet an organization’s security goals. Cloud-native applications manage thousands of user requests, and an organization must employ a proper access control mechanism. However, unfortunately, developers sometimes grumble when designing and enforcing access decisions for a giganti...
Microservice-based systems are often complex to understand, especially when their sizes grow. Abstracted views help practitioners with the system understanding from a certain perspective. Recent advancement in interactive data visualization begs the question of whether established software engineering models to visualize system design remain the mo...
Security is a significant priority for cloud-native systems, regardless of the system size and complexity. Therefore, one must utilize a set of defensive mechanisms or controls to protect the system from exploitation by potential adversaries. There is an expanding amount of research on security issues, including attacks against individual microserv...
Understanding software systems written by others is often challenging. When we want to assess systems to reason about them, i.e., to understand dependencies, analyze evolution trade-offs, or to verify conformance to the original blueprint, we must invest broad efforts. This becomes difficult when considering decentralized systems. Microservice-base...
Microservice analysis has seen a surge of interest in recent years due to the challenges and rewards inherent in analyzing large distributed systems. Microservices are highly decentralized, providing many benefits, including improved performance, shorter development cycles, and enhanced scalability. However, these benefits come at the cost of hidin...
Poor coding practices, bad design decisions, and expedited software delivery can introduce technical debt. As software grows, manual detection and management of technical debt become increasingly difficult. To address these problems, recent research offers a variety of approaches for automating the process of recognizing and managing technical debt...
Understanding software systems written by others is often challenging. When we want to assess systems to reason about them, i.e., understand dependencies, analyze evolution trade-offs or verify conformance to the original blueprint, we must invest broad efforts in it. This becomes even hard when considering decentralized systems.
Microservice-based...
In the world of microservices, companies must be able to create systems that operate in the most efficient way. To achieve this, anti-patterns must be avoided because of their detriment to the quality of the system. Some of the most troubling anti-patterns are hard to detect because of their appearance at runtime. Effectively removing anti-patterns...
The surge in legal text production has amplified the workload for legal professionals, making many tasks repetitive and time-consuming. Furthermore, the complexity and specialized language of legal documents pose challenges not just for those in the legal domain but also for the general public. This emphasizes the potential role and impact of Legal...
As microservices become more popular, more drawbacks become apparent to developers. One issue that many teams face today is the failure to visualize the entire system architecture holistically. Without a full view of the system, the architecture can become convoluted as teams add and subtract from their system without reconciling their changes. One...
Although code smells are not categorized as a bug, the results can be long-lasting and decrease both maintainability and scalability of software projects. This paper presents findings from both former and current industry individuals, aiming to gauge their familiarity with such violations. Based on the feedback from these individuals, a collection...
With the rise of cloud computing, many applications have been implemented into microservices to fully utilize cloud computing for scalability and maintainability purposes. However, there are some traditional monolith applications that developers would like to partition into microservices. Unfortunately, it is difficult to find a solution when consi...