Alexander Chatzigeorgiou

Alexander Chatzigeorgiou
University of Macedonia | UOM · Department of Applied Informatics

PhD

About

278
Publications
74,535
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
4,454
Citations
Citations since 2017
121 Research Items
2700 Citations
20172018201920202021202220230100200300400500
20172018201920202021202220230100200300400500
20172018201920202021202220230100200300400500
20172018201920202021202220230100200300400500

Publications

Publications (278)
Article
Quality improvement can be performed at the: (a) micro-management level: interventions applied at a fine-grained level (e.g., at a class or method level, by applying a refactoring); or (b) macro-management level: interventions applied at a large-scale (e.g., at project level, by using a new framework or imposing a quality gate). By considering that...
Article
Design patterns are well-known solutions to recurring design problems that are widely adopted in the software industry, either as formal means of communication or as a way to improve structural quality, enabling proper software extension. However, the adoption and correct instantiation of patterns is not a trivial task and requires substantial desi...
Article
Context: Decision making pervades software and systems engineering. Intertemporal decisions involve trade-offs among outcomes at different points in time. They play a central role in systems design, as recognised since the inception of the software engineering (SE) fi�eld. They are also crucial factors in the sustainability of design decisions. How...
Article
Technical Debt (TD) is a successful metaphor in conveying the consequences of software inefficiencies and their elimination to both technical and non-technical stakeholders, primarily due to its monetary nature. The identification and quantification of TD rely heavily on the use of a small handful of sophisticated tools that check for violations of...
Article
Full-text available
The large amounts of information produced daily by organizations and enterprises have led to the development of specialized software that can process high volumes of data. Given that the technologies and methodologies used to develop software are constantly changing, offering significant market opportunities, organizations turn to patenting their i...
Conference Paper
Service-Oriented Architectures (SOA) have become a standard for developing software applications, including but not limited to cloud-based ones and enterprise systems. When using SOA, the software engineers organize the desired functionality into self-contained and independent services, that are invoked through end-points (API calls). At the mainte...
Conference Paper
Refactorings constitute the most direct and comprehensible approach for addressing software quality issues, stemming directly from identified code smells. Nevertheless, despite their popularity in both the research and industrial communities: (a) the effect of a refactoring is not guaranteed to be successful; and (b) the plethora of available refac...
Chapter
Service-Oriented Architectures (SOA) have become a standard for developing software applications, including but not limited to cloud-based ones and enterprise systems. When using SOA, the software engineers organize the desired functionality into self-contained and independent services, that are invoked through end-points (API calls). At the mainte...
Article
Full-text available
Software security is a critical aspect of modern software products. The vulnerabilities that reside in their source code could become a major weakness for enterprises that build or utilize these products, as their exploitation could lead to devastating financial consequences. Therefore, the development of mechanisms capable of identifying and disco...
Article
Full-text available
During software maintenance, it is often costlier to identify and understand the artifacts that need to be changed, rather than to actually apply the change. In addition to identifying the artifacts related to the change per se, one needs also to identify the artifacts that are changed due to ripple effects. In this paper, we focus on ripple effect...
Conference Paper
Despite the attention that Technical Debt has attracted over the last years, the quantification of TD Interest still remains rather vague (and abstract). TD Interest quantification is hindered by various factors that introduce a lot of uncertainty, such as: identifying the parts of the system that will be maintained , quantifying the load of mainte...
Conference Paper
Developing software based on services is one of the most emerging programming paradigms in software development. Service-based software development relies on the composition of services (i.e., pieces of code already built and deployed in the cloud) through orchestrated API calls. Black-box reuse can play a prominent role when using this programming...
Article
Technical Debt Management is of paramount importance for the software industry, since maintenance is the costlier activity in the software development lifecycle. In this paper we present the SDK4ED platform that enables efficient technical debt management (i.e., measurement, evolution analysis, prevention , etc.) at the code level, and evaluate its...
Article
Full-text available
Code Technical Debt (TD) is intentionally or unintentionally cre-ated when developers introduce inefficiencies in the codebase. This can be at-tributed to various reasons such as heavy workload, tight delivery schedule, ordevelopers’ lack of experience. Since a software system grows mostly throughthe addition of new code, it is interesting to study...
Article
Full-text available
Software security is a very important aspect for software development organizations who wish to provide high-quality and dependable software to their consumers. A crucial part of software security is the early detection of software vulnerabilities. Vulnerability prediction is a mechanism that facilitates the identification (and, in turn, the mitiga...
Article
While technical debt grows in absolute numbers as software systems evolve over time, the density of technical debt (technical debt divided by lines of code) is reduced in some cases. This can be explained by either the application of refactorings or the development of new artifacts with limited Technical Debt. In this paper we explore the second ex...
Article
Context The definition and assessment of software quality have not converged to a single specification. Each team may formulate its own notion of quality and tools and methodologies for measuring it. Software quality can be improved via code changes, most often as part of a software maintenance loop. Objective This manuscript contributes towards p...
Conference Paper
To date, the identification and quantification of Technical Debt (TD) rely heavily on a few sophisticated tools that check for violations of certain predefined rules, usually through static analysis. Different tools result in divergent TD estimates calling into question the reliability of findings derived by a single tool. To alleviate this issue,...
Conference Paper
Technical Debt estimation relies heavily on the use of static analysis tools looking for violations of pre-defined rules. Largely, Technical Debt principal is attributed to the presence of low-level code smells, unavoidably tying the effort for fixing the problems with mere coding inefficiencies. At the same time, despite their simple definition, t...
Article
Full-text available
DevOps is an emerging software development methodology, that differs from more traditional approaches due to the closer involvement of the customer and the adoption of “ continuous -*” (e.g., integration, deployment, delivery, etc.) practices. The vast research on DevOps (including numerous secondary studies) published in a short timeframe, and th...
Conference Paper
The last decade marked undeniably the leading role of web services and the establishment of service-oriented architectures. Indeed, it is nowadays hard to find a contemporary software application that does not use at least one third-party web service. The main driver for this paradigm shift, lies in the benefits that decoupled, cloud-based services...
Conference Paper
Scientific software development refers to a specific branch of software engineering that targets the development of scientific applications. Such applications are usually developed by non-expert software engineers (e.g., natural scientists, biologists, etc.) and pertain to special challenges. One such challenge (stemming from the lack of proper sof...
Article
As the number of heterogeneous embedded systems used in IoT applications increases, there is a lack of software tools to assist developers to meet the challenge of reducing energy consumption. Indeed, there are only few performance prediction tools for heterogeneous systems in the literature and they typically focus on the prediction of speedup by...
Conference Paper
Full-text available
Developing modern secure and low-energy applications in a short time imposes new challenges and creates the need of designing new software tools to assist developers in all phases of application development. The design of such tools cannot be considered a trivial task, as they should be able to provide optimization of multiple quality requirements....
Article
Game mechanics are high-level descriptions of common game requirements; however, they do not provide any guidance on their code implementation. Nevertheless, their implementation involves high volumes of essential complexity, which in turn leads to the introduction of accidental complexity (long methods, code repetition, etc.). A possible solution...
Conference Paper
This work describes a research collaboration between universities and industry with the aim to provide a low-cost prototype based on Augmented Reality technologies, that assists with maintaining correct information in Warehouse Management Systems. The component interacts with the central server of an existing commercial WMS to provide up-to-date in...
Conference Paper
Requirements’ engineering (elicitation and documentation) is considered to be one of the most crucial phases of the software development process. More specifically, many products fail to reach the market or to capture a respectable share of it, due to problems derived during requirements engineering. In any game the main requirement is expected to...
Conference Paper
Nowadays the majority of cloud applications are developed based on the Service-Oriented Architecture (SOA) paradigm. Large-scale applications are structured as a collection of well-integrated services that are deployed in public, private or hybrid cloud. Despite the inherent benefits that service-based cloud development provides, the process is far...
Conference Paper
Full-text available
Software security is a critical consideration for software development companies that want to provide their customers with high-quality and dependable software. The automated detection of software vulnerabilities is a critical aspect in software security. Vulnerability prediction is a mechanism that enables the detection and mitigation of software...
Article
Full-text available
Technical Debt (TD) is a software engineering metaphor that resembles the production of poor-quality code to going into debt. In particular, a development team that "saves" effort while developing by not removing inefficiencies, has to "pay-back" with interest, in the form of additional maintenance costs (i.e., fixing bugs, adding features, etc.) d...
Article
Full-text available
There are numerous commercial tools and research prototypes that offer support for measuring technical debt. However, different tools adopt different terms, metrics, and ways to identify and measure technical debt. These tools offer diverse features, and their popularity / community support varies significantly. Therefore, (a) practitioners face di...
Article
Background The development of scientific software applications is far from trivial, due to the constant increase in the necessary complexity of these applications, their increasing size, and their need for intensive maintenance and reuse. Aim To this end, developers of scientific software (who usually lack a formal computer science background) nee...
Article
Full-text available
Technical Debt (TD) interest refers to the extra maintenance costs incurred by the very existence of TD items in a system. The generation of TD interest can make or break a system: too little interest and the effect of TD is negligible; too much interest and the system becomes unsustainable. In this paper, we consider the generation of interest as...
Article
Full-text available
Technical debt (TD) describes quality compromises that can yield short-term benefits but may negatively affect the quality of software products in the long run. A wide range of tools and techniques have been introduced over the years in order for the developers to be able to determine and manage TD. However, being able to also predict its future ev...
Chapter
This paper describes the software architecture and the required hardware components of a Remote Warehouse Management System using Augmented Reality, designed in the context of the project called WMS & AR project. The system architecture will augment the capabilities of an existing WMS system [1]. The main services that the extended system will prov...
Article
Context Making architectural decisions is a crucial task but also very difficult, considering the scope of the decisions and their impact on quality attributes. To make matters worse, architectural decisions need to combine both technical and business factors, which are very dissimilar by nature. Objectives We provide a cost-benefit approach and s...
Article
Full-text available
Classical data envelopment analysis models have been applied to extract efficiency when time series data are used. However, these models do not always yield realistic results, especially when the purpose of the study is to identify the peers of the decision making unit (DMU) under investigation. This is due to the fact that apart from the spatial d...
Article
Context The cornerstones of technical debt (TD) are two concepts borrowed from economics: principal and interest. Although in economics the two terms are related, in TD there is no study on this direction so as to validate the strength of the metaphor. Objective We study the relation between Principal and Interest, and subsequently dig further int...
Conference Paper
Modularity is one of the four key principles of software design and architecture. According to this principle, software should be organized into modules that are tightly linked internally (high cohesion), whereas at the same time as independent from other modules as possible (low coupling). However, in practice, this principle is violated due to po...
Preprint
Full-text available
Background: The development of scientific software applications is far from trivial, due to the constant increase in the necessary complexity of these applications, their increasing size, and their need for intensive maintenance and reuse. Aim: To this end, developers of scientific software (who usually lack a formal computer science background) ne...
Preprint
Full-text available
While technical debt grows in absolute numbers as software systems evolve over time, the density of technical debt (technical debt divided by lines of code) is reduced in some cases. This can be explained by either the application of refactorings or the development of new artifacts with limited Technical Debt. In this paper we explore the second ex...
Chapter
The design constraints of Implantable Medical Devices (IMD), such as the low energy consumption, impose significant challenges to application developers. Software tools that improve the quality of the source code by means of technical debt management and provide energy consumption estimations are useful to IMD application developers for addressing...
Conference Paper
One the one hand, as a GitHub profile is becoming an essential part of a developer’s resume it becomes increasingly important to enable HR departments to extract someone’s expertise, through automated analysis of his/her contribution to open-source projects. On the other hand, having clear insights on the technologies used in a project can be very...
Preprint
A GitHub profile is becoming an essential part of a developer's resume enabling HR departments to extract someone's expertise, through automated analysis of his/her contribution to open-source projects. At the same time, having clear insights on the technologies used in a project can be very beneficial for resource allocation and project maintainab...
Preprint
Full-text available
Technical debt (TD) describes quality compromises that can yield short-term benefits but may negatively affect the quality of software products in the long run. A wide range of tools and techniques have been introduced over the years in order for the developers to be able to determine and manage TD. However, being able to also predict its future ev...
Conference Paper
Code Technical Debt (TD) is intentionally or unintentionally created when developers introduce ineffciencies in the codebase. This can be attributed to various reasons such as heavy workload, tight delivery schedule, unawareness of good practices, etc. To shed light into the context that leads to technical debt accumulation, in this paper we invest...
Conference Paper
Technical Debt Management (TDM) is a fast-growing field that in the last years has attracted the attention of both academia and industry. TDM is a complex process, in the sense that it relies on multiple and heterogeneous data sources (e.g., source code, feature requests, bugs, developers' activity, etc.), which cannot be straightforwardly synthesi...
Article
During the last years the TD community is striving to offer methods and tools for reducing the amount of TD, but also understand the underlying concepts. One popular practice that still has not been inves-tigated in the context of TD, is software reuse. The aim of this paper is to investigate the relation be-tween white-box code reuse and TD princi...
Article
Full-text available
Software teams are often asked to deliver new features within strict deadlines leading developers to deliberately or inadvertently serve “not quite right code” compromising software quality and maintainability. This non-ideal state of software is efficiently captured by the Technical Debt (TD) metaphor, which reflects the additional effort that has...
Chapter
Maintaining high level of quality with respect to important quality attributes is critical for the success of modern software applications. Hence, appropriate tooling is required to help developers and project managers monitor and optimize software quality throughout the overall Software Development Lifecycle (SDLC). Moreover, embedded software eng...
Chapter
Technical Debt Management (TDM) is a fast-growing field that in the last years has attracted the attention of both academia and industry. TDM is a complex process, in the sense that it relies on multiple and heterogeneous data sources (e.g., source code, feature requests, bugs, developers’ activity, etc.), which cannot be straightforwardly synthesi...
Chapter
Full-text available
Code Technical Debt (TD) is intentionally or unintentionally created when developers introduce inefficiencies in the codebase. This can be attributed to various reasons such as heavy work-load, tight delivery schedule, unawareness of good practices, etc. To shed light into the context that leads to technical debt accumulation, in this paper we inve...
Conference Paper
Due to the recent (and forthcoming) rapid advancements in the hardware architectures of High-Performance Computing infrastructures, new challenges have arisen in the development of scientific software applications. In particular, software that runs on Exascale machines, needs to be highly portable (so as to be executed in highly heterogenous platfo...
Chapter
Full-text available
Secondary studies review and compile data retrieved from primary studies and are vulnerable to factors that threaten their validity as any other research method. Considering that secondary studies are often used to support the evidence-based paradigm, it is crucial to properly manage their threats, i.e., identify, categorize, mitigate, and report t...
Preprint
Full-text available
Technical debt (TD) is commonly used to indicate additional costs caused by quality compromises that can yield short-term benefits in the software development process, but may negatively affect the long-term quality of software products. Predicting the future value of TD could facilitate decision-making tasks regarding software maintenance and assi...
Article
Technical debt (TD) is commonly used to indicate additional costs caused by quality compromises that can yield short-term benefits in the software development process, but may negatively affect the long-term quality of software products. Predicting the future value of TD could facilitate decision-making tasks regarding software maintenance and assi...
Book
Full-text available
ICDSST 2020 is EWG-DSS’s 6th International Conference, following the five previous successful International Conferences on Decision Support System Technology (ICDSST 2019 in Madeira; ICDSST 2018 in Crete; ICDSST 2017 in Namur; ICDSST 2016 in Plymouth; and ICDSST 2015 in Belgrade) as listed below. Since 1989 when the EWG-DSS was founded, the societ...
Chapter
This paper introduces a method to assess the complexity of process models by utilizing a cluster analysis technique. The presented method aims to facilitate multi-criteria decision making and process objective management, through the combination of specific quality indicators. This is achieved by leveraging established complexity metrics from liter...
Preprint
The Covid-19 outbreak, beyond its tragic effects, has changed to an unprecedented extent almost every aspect of human activity throughout the world. At the same time, the pandemic has stimulated enormous amount of research by scientists across various disciplines, seeking to study the phenomenon itself, its epidemiological characteristics and ways...
Conference Paper
Game development is one of the fastest growing industries. Since games' success is mostly related to users' enjoyment, one of the cornerstones of their quality assessment is the evaluation from the user perspective. According to literature, game scenario constitutes a key-factor that leads to users' enjoyment. Despite their importance, scenarios ar...
Conference Paper
This paper describes the software architecture and the required hardware compo-nents of a Remote Warehouse Management System using Augmented Reality, designed in the context of the project called WMS & AR project. The system ar-chitecture will augment the capabilities of an existing WMS system. The main services that the extended system will provid...
Preprint
Full-text available
While necessary for the successful embedded software development and maintenance, software quality optimization is a complex activity with immense issues. Various design and run-time qualities should be continuously monitored and optimized during the whole Software Development Life Cycle (SDLC). Moreover, embedded software engineers and developers...
Conference Paper
Software reuse is a well-established software engineering pro-cess that aims at improving development productivity. Although reuse can be performed in a very systematic way (e.g., through product lines), in practice, reuse is performed in many cases opportunistically, i.e., copying small code chunks either from the web or in-house developed project...
Article
To capitalize upon the benefits of software reuse, an efficient selection among candidate reusable assets should be performed in terms of functional fitness and adaptability. The reusability of assets is usually measured through reusability indices. However, these do not capture all facets of reusability, such as structural characteristics, externa...
Article
To capitalize upon the benefits of software reuse, an efficient selection among candidate reusa-ble assets should be performed in terms of functional fitness and adaptability. The reusability of assets is usually measured through reusability indices. However, these do not capture all fac-ets of reusability, such as structural characteristics, exter...
Preprint
Full-text available
Background: Many decisions made in Software Engineering practices are intertemporal choices: trade-offs in time between closer options with potential short-term benefit and future options with potential long-term benefit. However, how software professionals make intertemporal decisions is not well understood. Aim: This paper investigates how shifti...
Conference Paper
Technical Debt is a software engineering metaphor that refers to the intentional or unintentional production of software at a lower quality, to achieve business goals (e.g., shorten time to market). Nevertheless, similarly to financial debt, technical debt does not come without negative consequences. The accumulation of technical debt leads to addi...
Preprint
Full-text available
Technical debt (TD) is commonly used to indicate additional costs caused by quality compromises that can yield short-term benefits in the software development process, but may negatively affect the long-term quality of software products. Predicting the future value of TD could facilitate decision-making tasks regarding software maintenance and assi...
Conference Paper
Context: Technical Debt (TD) quantification has been studied in the literature and it is supported by various tools; however, there is no common ground on what information to present to stakeholders. Similarly to other quality monitoring processes, it is desirable to provide a view of quality levels through a dashboard, in which important metrics f...
Conference Paper
Refactoring is a prevalent technique that can be applied for improving software structural quality. Refactorings can be applied at different levels of granularity to resolve ‘bad smells’ that can be identified in various artifacts (e.g., methods, classes, packages). A fundamental software engineering principle that can be applied at various levels...
Conference Paper
Technical Debt (TD) reflects problems in software maintainability along evolution. TD principal is defined as the effort required for refactoring an existing system to an ideal one (a.k.a. optimal) that suffers from no maintainability problems. One of the open problems in the TD community is that ideal versions of systems do not exist, and there ar...