Tom Černý

Tom Černý
University of Arizona | UA · System and Industrial Engineering

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
Baylor University
Position
  • Professor (Assistant)
February 2017 - August 2017
Baylor University
Position
  • PostDoc Position
May 2010 - August 2010
Baylor University
Position
  • Researcher
Education
January 2007 - May 2009
Baylor University
Field of study
  • Computer Science
September 2002 - June 2009
Czech Technical University in Prague
Field of study
  • Computer Science and Engineering

Publications

Publications (221)
Preprint
Full-text available
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...
Article
Full-text available
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...
Article
Full-text available
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...
Preprint
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...
Conference Paper
Full-text available
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...
Conference Paper
Full-text available
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...
Preprint
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...
Preprint
Full-text available
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...
Article
Full-text available
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...
Article
Full-text available
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...
Article
Full-text available
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...
Article
Full-text available
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...
Conference Paper
Full-text available
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...
Article
Full-text available
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...
Article
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...
Article
Full-text available
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...
Conference Paper
Full-text available
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...
Chapter
Full-text available
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...
Chapter
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...
Chapter
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...
Preprint
Full-text available
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...
Conference Paper
Full-text available
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...
Conference Paper
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...
Conference Paper
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...
Preprint
Full-text available
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...
Preprint
Full-text available
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...
Conference Paper
Full-text available
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...
Article
Full-text available
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...
Article
Full-text available
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...
Preprint
Full-text available
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...
Article
Full-text available
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...
Preprint
Full-text available
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...
Article
Full-text available
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...
Article
Full-text available
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...
Chapter
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...
Chapter
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...
Article
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...
Article
Full-text available
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...
Article
Full-text available
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...
Article
Full-text available
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...
Conference Paper
Full-text available
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...
Conference Paper
Full-text available
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...