Skip to main content

Showing 1–12 of 12 results for author: Bugayenko, Y

Searching in archive cs. Search in all archives.
.
  1. arXiv:2410.10425  [pdf, ps, other

    cs.SE

    The Impact of Mutability on Cyclomatic Complexity in Java

    Authors: Marat Bagaev, Alisa Khabibrakhmanova, Georgy Sabaev, Yegor Bugayenko

    Abstract: In Java, some object attributes are mutable, while others are immutable (with the "final" modifier attached to them). Objects that have at least one mutable attribute may be referred to as "mutable" objects. We suspect that mutable objects have higher McCabe's Cyclomatic Complexity (CC) than immutable ones. To validate this intuition, we analysed 862,446 Java files from 1,000 open-GitHub repositor… ▽ More

    Submitted 14 October, 2024; originally announced October 2024.

  2. arXiv:2410.06416  [pdf, other

    cs.SE

    Evaluating the Dependency Between Cyclomatic Complexity and Response For Class

    Authors: Maxim Stavtsev, Yegor Bugayenko

    Abstract: In object-oriented programming, it is reasonable to hypothesize that smaller classes with fewer methods are less complex. Should this hypothesis hold true, it would be advisable for programmers to design classes with fewer methods, as complexity significantly contributes to poor maintainability. To test this assumption, we analyzed 862,517 Java classes from 1,000 open GitHub repositories. Our find… ▽ More

    Submitted 8 October, 2024; originally announced October 2024.

  3. arXiv:2410.05631  [pdf, other

    cs.SE cs.PL

    Embracing Objects Over Statics: An Analysis of Method Preferences in Open Source Java Frameworks

    Authors: Vladimir Zakharov, Yegor Bugayenko

    Abstract: In today's software development landscape, the extent to which Java applications utilize object-oriented programming paradigm remains a subject of interest. Although some researches point to the considerable overhead associated with object orientation, one might logically assume that modern Java applications would lean towards a procedural style to boost performance, favoring static over instance… ▽ More

    Submitted 7 October, 2024; originally announced October 2024.

  4. arXiv:2403.17430  [pdf, other

    cs.PL

    Java Classes with "-Er" and "-Utils" Suffixes Have Higher Complexity

    Authors: Anna Sukhova, Alexey Akhundov, Efim Verzakov, Yegor Bugayenko

    Abstract: In object-oriented programming languages, a belief exists that classes with -Er/-Or and -Utils suffixes are "code smells" because they take over a lot of functional responsibility, turning out to be bulky and complicated, and therefore making it more difficult to maintain the code. In order to validate this intuition, we analyzed complexity and cohesion of 13,861 Java classes from 212 unique open-… ▽ More

    Submitted 26 March, 2024; originally announced March 2024.

  5. arXiv:2403.15021  [pdf, ps, other

    cs.SE

    Programmers Prefer Individually Assigned Tasks vs. Shared Responsibility

    Authors: Adela Krylova, Roman Makarov, Sergei Pasynkov, Yegor Bugayenko

    Abstract: In traditional management, tasks are typically assigned to individuals, with each worker taking full responsibility for the success or failure of a task. In contrast, modern Agile, Lean, and eXtreme Programming practices advocate for shared responsibility, where an entire group is accountable for the outcome of a project or task. Despite numerous studies in other domains, the preferences of progra… ▽ More

    Submitted 22 March, 2024; originally announced March 2024.

  6. arXiv:2403.10806  [pdf, other

    cs.SE

    Developers' Perception: Fixed Bugs Often Overlooked as Quality Contributions

    Authors: Vitaly Alifanov, Kamil Almetov, Ivan Kornienko, Arsen Mutalapov, Yegor Bugayenko

    Abstract: High-quality software products rely on both well-written source code and timely detection and thorough reporting of bugs. However, some programmers view bug reports as negative assessments of their work, leading them to withhold reporting bugs, thereby detrimentally impacting projects. Through a survey of 102 programmers, we discovered that only a third of them perceive the quantity of bugs found… ▽ More

    Submitted 16 March, 2024; originally announced March 2024.

  7. arXiv:2403.08488  [pdf, ps, other

    cs.SE

    CAM: A Collection of Snapshots of GitHub Java Repositories Together with Metrics

    Authors: Yegor Bugayenko

    Abstract: Even though numerous researchers require stable datasets along with source code and basic metrics calculated on them, neither GitHub nor any other code hosting platform provides such a resource. Consequently, each researcher must download their own data, compute the necessary metrics, and then publish the dataset somewhere to ensure it remains accessible indefinitely. Our CAM (stands for ``Classes… ▽ More

    Submitted 13 March, 2024; originally announced March 2024.

  8. arXiv:2403.06695  [pdf, other

    cs.PL

    Heap vs. Stack: Analyzing Memory Allocations in C and C++ Open Source Software

    Authors: Roman Korostinskiy, Eugene Darashkevich, Roman Rusyaev, Yegor Bugayenko

    Abstract: In C++, objects can be allocated in static memory, on the stack, or on the heap -- the latter being significantly more performance-costly than the former options. We hypothesized that programmers, particularly those involved in widely-used open-source projects, would be conscious of these performance costs and consequently avoid heap allocations. To test this hypothesis, we compiled and executed 7… ▽ More

    Submitted 7 October, 2024; v1 submitted 11 March, 2024; originally announced March 2024.

  9. arXiv:2212.09910  [pdf, other

    cs.SE

    An experience in automatically extracting CAPAs from code repositories

    Authors: Yegor Bugayenko, Imre Delgado, Firas Jolha, Zamira Kholmatova, Artem Kruglov, Witold Pedrycz, Giancarlo Succi, Xavier Vasquez

    Abstract: TOM (stands for Theoretically Objective Measurements of Software Development Projects) is a set of services that are in charge of helping developers or teams in the process of identifying anomilies within their software development process, and providing a list of preventive or corrective actions (aka CAPAS) that positively impact the process. and in this way to improve the quality of the final pr… ▽ More

    Submitted 19 December, 2022; originally announced December 2022.

    Comments: 7 pages, 4 figures

  10. arXiv:2206.02585  [pdf, other

    cs.PL

    On the Origins of Objects by Means of Careful Selection

    Authors: Yegor Bugayenko

    Abstract: We introduce a taxonomy of objects for EO programming language. This taxonomy is designed with a few principles in mind: non-redundancy, simplicity, and so on. The taxonomy is supposed to be used as a navigation map by EO programmers. It may also be helpful as a guideline for designers of other object-oriented languages or libraries for them.

    Submitted 10 April, 2024; v1 submitted 6 June, 2022; originally announced June 2022.

  11. arXiv:2112.11988  [pdf, other

    cs.PL

    Reducing Programs to Objects

    Authors: Yegor Bugayenko

    Abstract: C++, Java, C#, Python, Ruby, JavaScript are the most powerful object-oriented programming languages, if language power would be defined as the number of features available for a programmer. EO, on the other hand, is an object-oriented programming language with a reduced set of features: it has nothing by objects and mechanisms of their composition and decoration. We are trying to answer the follow… ▽ More

    Submitted 27 October, 2023; v1 submitted 17 December, 2021; originally announced December 2021.

  12. arXiv:2111.13384  [pdf, other

    cs.PL

    EOLANG and $\varphi$-calculus

    Authors: Yegor Bugayenko

    Abstract: Object-oriented programming (OOP) is one of the most popular paradigms used for building software systems. However, despite its industrial and academic popularity, OOP is still missing a formal apparatus similar to $λ$-calculus, which functional programming is based on. There were a number of attempts to formalize OOP, but none of them managed to cover all the features available in modern OO progr… ▽ More

    Submitted 1 March, 2024; v1 submitted 26 November, 2021; originally announced November 2021.