A new metric was introduced to calculate the distance between actively modified files in a source code repository and the files, which are rarely modified and may be considered abandoned or even dead. It was empirically demonstrated that larger repositories have larger values of the introduced metric. The metric may be used for earlier detection of code maintenance anomalies and helping software developers make the decision of splitting the repository into smaller ones in order to prevent maintainability issues.
This paper reports on the experience we carried out in the last years for the definition of a model-based technique for the automatic generation of chatbots for data exploration. We illustrate how this technique has been integrated within a no-code platform offering visual notations to index relational data sources and bind them to conversation flows for data exploration.
Natural language is the dominant form of writing software requirements. Its essential ambiguity causes inconsistency of requirements, which leads to scope creep. On the other hand, formal requirements specification notations such as Z, Petri Nets, SysML, and others are difficult to understand by non-technical project stakeholders. They often become a barrier between developers and requirements providers. The article presents a controlled natural language that looks like English but is a strongly typed object-oriented language compiled to UML/XMI. Thus, it is easily understood, at the same time, by non-technical people, programmers, and computers. Moreover, it is formally verifiable and testable. It was designed, developed, and tested in three commercial software projects in order to validate the assumption that object-oriented design can be applied to requirements engineering at the level of specifications writing. The article outlines key features of the language and summarizes the experience obtained during its practical application.
This research analyzes the top-performing software applications to identify the Pareto distribution of the features and accordingly proposes the use of no-code tools to increase the efficiency of software developers.
Coding assistance with deep learning is an emerging concern that has recently attracted much attention in the software development community. To integrate coding assistance with deep learning compactly, we focus on neural machine translation (NMT), which allows users to translate natural language descriptions into expressions in a programming language such as Python. A rising problem here is the limited availability of parallel corpora, which is essential to train better NMT models.
To overcome the problem, we propose a transcompiler-based back-translation, a data augmentation method that generates parallel corpora from numerous source code repositories. In this paper, we present our initial experimental results by comparing several NMT models that are built upon the existing corpora and our corpora. The resulting BLEU indicates that our proposed model is accurate enough to allow coding assistance in the future.
This paper provides a highly opinionated and biased vision and a two-stage plan with guidelines to reach a new era of software development, where anyone can create software without bothering to write code. Moreover, this paper explores in depth the first of these stages, which consists of creating a no-code tool based on six principles: configuration driven development, APIs, open-source, cross-platform, cloud computing, and design systems. An examination of each principle is presented and a case is made for why such a combination of principles would lay the foundation for future development efforts. Possible enquiries are addressed and a path is laid out for future works.