scholarly journals Engineering testable and maintainable software with Spring Boot and React

Author(s):  
Conor Muldoon ◽  
Levent Görgü ◽  
John J. O’Sullivan ◽  
Wim G. Meijer ◽  
Gregory M. P. O’Hare

<pre>The paper discusses practices and patterns for the development of maintainable and testable software using the React and Spring Boot frameworks. There have been many textbooks written on both React and Spring Boot, but little in the way of comprehensive research studies and critical analyses in the literature. The paper draws from a well-known software development guideline for encapsulation and modularity, namely the `Law of Demeter’, but differs from it in a number of ways. It extends the application of the principle of least knowledge to non-pure object-oriented programming languages, first-class JavaScript functions, and the properties of React components. Additionally, it introduces component closure factories, which address the prop drilling problem in React. Component closure factories differ from other solutions to this problem that make state global and make it more difficult to reuse components. Providing guidelines in relation to the development of testable React and Spring Boot applications is important in that these technologies are widely used in industry. In addition to the principle of least knowledge and component closure factories, the paper discusses a number of supplementary practices and provides a case study. </pre><div><br></div>

2021 ◽  
Author(s):  
Conor Muldoon ◽  
Levent Görgü ◽  
John J. O’Sullivan ◽  
Wim G. Meijer ◽  
Bartholomew Masterson ◽  
...  

<pre>The paper discusses practices and patterns for the development of maintainable and testable software in relation to the development applications that use the React and Spring Boot frameworks. There have been many textbooks written on both React and Spring Boot, but little in the way of comprehensive research studies and critical analyses in the literature. The paper draws from a well-known software development guideline for encapsulation and modularity, namely the `Law of Demeter’, but differs from it in a number of ways. It extends the application of the principle of least knowledge to non-pure object-oriented programming languages, first-class JavaScript functions, and the properties of React components. Additionally, it introduces component closure factories, which address the prop drilling problem in React. Component closure factories differ from other solutions to this problem that make state global and make it more difficult to reuse components. Providing guidelines in relation to the development of testable React and Spring Boot applications is important in that these technologies are widely used in industry. In addition to the principle of least knowledge and component closure factories, the paper discusses a number of supplementary practices and provides a case study. </pre><div><br></div>


2021 ◽  
Author(s):  
Conor Muldoon ◽  
Levent Görgü ◽  
John J. O’Sullivan ◽  
Wim G. Meijer ◽  
Bartholomew Masterson ◽  
...  

<pre>The paper discusses practices and patterns for the development of maintainable and testable software using the React and Spring Boot frameworks. There have been many textbooks written on both React and Spring Boot, but little in the way of comprehensive research studies and critical analyses in the literature. The paper draws from a well-known software development guideline for encapsulation and modularity, namely the `Law of Demeter’, but differs from it in a number of ways. It extends the application of the principle of least knowledge to non-pure object-oriented programming languages, first-class JavaScript functions, and the properties of React components. Additionally, it introduces component closure factories, which address the prop drilling problem in React. Component closure factories differ from other solutions to this problem that make state global and make it more difficult to reuse components. Providing guidelines in relation to the development of testable React and Spring Boot applications is important in that these technologies are widely used in industry. In addition to the principle of least knowledge and component closure factories, the paper discusses a number of supplementary practices and provides a case study. </pre><div><br></div>


2021 ◽  
Author(s):  
Conor Muldoon ◽  
Levent Görgü ◽  
John J. O’Sullivan ◽  
Wim G. Meijer ◽  
Bartholomew Masterson ◽  
...  

<pre>The paper discusses practices and patterns for the development of maintainable and testable software using the React and Spring Boot frameworks. There have been many textbooks written on both React and Spring Boot, but little in the way of comprehensive research studies and critical analyses in the literature. The paper draws from a well-known software development guideline for encapsulation and modularity, namely the `Law of Demeter’, but differs from it in a number of ways. It extends the application of the principle of least knowledge to non-pure object-oriented programming languages, first-class JavaScript functions, and the properties of React components. Additionally, it introduces component closure factories, which address the prop drilling problem in React. Component closure factories differ from other solutions to this problem that make state global and make it more difficult to reuse components. Providing guidelines in relation to the development of testable React and Spring Boot applications is important in that these technologies are widely used in industry. In addition to the principle of least knowledge and component closure factories, the paper discusses a number of supplementary practices and provides a case study. </pre><div><br></div>


Author(s):  
Ricardo Timarán Pereira ◽  
Javier Jiménez Toledo ◽  
Anivar Chaves Torres

Resumen Para el desarrollo de software se cuenta con varios paradigmas de programación, cada uno provisto de sus metodologías, técnicas y herramientas y orientado a un determinado campo o a un conjunto de problemas, y por ende, ninguno es suficiente por sí mismo para solucionar todos los problemas que se puedan suscitar. En este artículo se presentan los resultados del proyecto de investigación que tiene como objetivo la apropiación y aplicación del modelo de programación multiparadigma con el entorno Mozart-Oz para el desarrollo de software en el programa Ingeniería de Sistemas de la Universidad de Nariño. Esta investigación se realizó en tres fases en las que se estudian y evalúan la programación estructurada y orientada a objetos, la programación funcional y la programación por restricciones, con el fin de desarrollar en los estudiantes las competencias específicas en la solución de problemas utilizando estos modelos y entorno. Palabras ClaveProgramación Multiparadigma, Entorno de Desarrollo Mozart-Oz, Aprendizaje de Lenguajes de Programación.  Abstract For software development has several programming paradigms, each equipped with their methodologies, techniques and tools aimed at a particular field or set of problems, and therefore, none is sufficient by itself to solve all problems that can inspire. This paper presents the results of the research project that aims at the appropriation and application of multiparadigm programming model with the Mozart-Oz environment for software development in the Systems Engineer program at the Universidad of Nariño. This research was conducted in three phases in which structured and object-oriented programming, functional programming and constraints programming was studied and evaluated, in order to develop in students the specific skills to solve problems using these models and environment.KeywordsMultiparadigm Programming, the Mozart-Oz Development Environment, Learning Programming Languages 


2016 ◽  
Vol 20 (1) ◽  
pp. 27-35 ◽  
Author(s):  
Ruslan Batdalov ◽  
Oksana Ņikiforova ◽  
Adrian Giurca

Abstract We consider the problem of comparison of programming languages with respect to their ability to express programmers’ ideas. Our assumption is that the way of programmers’ thinking is reflected in languages used to describe software systems and programs (modelling languages, type theory, pattern languages). We have developed a list of criteria based on these languages and applied it to comparison of a number of widely used programming languages. The obtained result may be used to select a language for a particular task and choose evolution directions of programming languages.


2016 ◽  
Vol 12 (30) ◽  
pp. 40
Author(s):  
Rais Aziz Ahmad

Software requirements are one of the root causes of failure for IT software development projects. Reasons for this may be that the requirements are high-level, many might simply be wishes, or frequently changed, or they might be unclear, missing, for example, goals, objectives, strategies, and so on. Another major reason for projects’ failure may also be the use of improper techniques for software requirements specification. Currently, most IT software development projects utilise textual techniques like use cases, user stories, scenarios, and features for software requirements elicitation, analysis and specification. While IT software development processes can construct software in different programming languages, the primary focus here will be those IT projects using object-oriented programming languages. Object-oriented programming itself has several characteristics worth noting, such as its popularity, reusability, modularity, concurrency, abstraction and encapsulation. Object-oriented analysis and design transforms software requirements gathered with textual techniques into object-oriented programming. This transformation can cause complexity in identifying objects, classes and interfaces, which, in turn, complicates the object-oriented analysis and design. Because requirements can change over the course of a project and, likewise, software design can evolve during software construction, the traceability of software requirements with objects and components can become difficult. Apart from leading to project complexity, such a process can impact software quality and, in the worst-case scenario, cause the project to fail entirely. The goal of this article is to provide interface-driven techniques that will reduce ambiguity among software requirements, improve traceability and simplify software requirements modelling.


2018 ◽  
Vol 4 (2) ◽  
Author(s):  
Eugenio Scalise ◽  
Nancy Zambrano

In this paper it is presented a software development model based on transformations that allows to derive, in an automatic way, classes in object-oriented programming languages (Ada 95, C++, Eiffel and Java) starting from formal specifications. The set of transformations that conforms the software development model are a systematic steps, which starts from the algebraic specification of a type. This algebraic specification describes the abstract behavior of a type (type of interest) by means of other type, previously specified and implemented (representation type). In a progressive way, the transformations steps allow get a program (class) nearby to the initial specification (type of interest). These transformations obtain -in the first step- an intermediate specification (class specification) that it describes the operations of the type of interest by means of pre and post-conditions. Then, the intermediate specification is used to obtain imperative code in language-independent notation (pseudo-class); and finally the pseudo-class is transformed to any object- oriented programming language for which it has been defined transformations.


2015 ◽  
Vol 131 ◽  
pp. 333-342 ◽  
Author(s):  
Victor Berdonosov ◽  
Alena Zhivotova ◽  
Tatiana Sycheva

Author(s):  
A. A. Solomashkin ◽  
M. N. Kostomakhin

Two basic functions of the machine, consumer and technical are given. Application the law of conservation of energy is shown in case of the description of an energy balance of an element of the machine. The expanded concept of technical condition in relation to the machine is this, parameters of technical condition are justified. Communications of technical condition with operability and working capacity and also communication of operability of an element of the machine with its efficiency are defined. The possibility of representation of technical condition in the form of сlass in object-oriented programming is revealed.


Sign in / Sign up

Export Citation Format

Share Document