jhipster
3891296
Test them all, is it worth it? Assessing configuration sampling on the JHipster Web development stack
Many approaches for testing configurable software systems start from the same assumption: it is impossible to test all configurations. This motivated the definition of variability aware abstractions and sampling techniques to cope with large configuration spaces. Yet, there is no theoretical barrier that prevents the exhaustive testing of all configurations by simply enumerating them if the effort required to do so remains acceptable. Not only this: we believe there is a lot to be learned by systematically and exhaustively testing a configurable system. In this case study, we report on the first ever endeavour to test all possible configurations of the industry strength, open source configurable software system JHipster, a popular code generator for web applications. We built a testing scaffold for the 26,000+ configurations of JHipster using a cluster of 80 machines during 4 nights for a total of 4,376 hours (182 days) CPU time. We find that 35.70% configurations fail and we identify the feature interactions that cause the errors. We show that sampling strategies (like dissimilarity and 2 wise) (1) are more effective to find faults than the 12 default configurations used in the JHipster continuous integration; (2) can be too costly and exceed the available testing budget. We cross this quantitative analysis with the qualitative assessment of JHipster's lead developers.
Empirical Software Engineering
Axel Halin Alexandre Nuttinck Mathieu Acher Xavier Devroey Gilles Perrouin Benoit Baudry
208995895
Full Stack Development with Jhipster
N SendilKumar Deepu K Sasidharan
17390020
Yo variability! JHipster: a playground for web apps analyses
Though variability is everywhere, there has always been a shortage of publicly available cases for assessing variability aware tools and techniques as well as supports for teaching variability related concepts. Historical software product lines contains industrial secrets their owners do not want to disclose to a wide audience. The open source community contributed to large scale cases such as Eclipse, Linux kernels, or web based plugin systems (Drupal, WordPress) To assess accuracy of sampling and prediction approaches (bugs, performance) a case where all products can be enumerated is desirable. As configuration issues do not lie within only one place but are scattered across technologies and assets, a case exposing such diversity is an additional asset. To this end, we present in this paper our efforts in building an explicit product line on top of JHipster, an industrial open source Web app configurator that is both manageable in terms of configurations 163,000) and diverse in terms of technologies used. We present our efforts in building a variability aware chain on top of JHipster's configurator and lessons learned using it as a teaching case at the University of Rennes. We also sketch the diversity of analyses that can be performed with our infrastructure as well as early issues found using it. Our long term goal is both to support students and researchers studying variability analysis and JHipster developers in the maintenance and evolution of their tools.
VaMoS
Axel Halin Alexandre Nuttinck Mathieu Acher Xavier Devroey Gilles Perrouin Patrick Heymans
212998418
PRIMENA SPRING CLOUD PROGRAMSKOG OKVIRA ZA RAZVOJ MIKROSERVISNIH APLIKACIJA
Representation of basic advantages and flaws in the microservice architecture, as well as a concrete implementation through use of Spring Cloud Framework and Jhipster generator.
Stefan Bratic
195346880
Test them all, is it worth it? A ground truth comparison of configuration sampling strategies
Many approaches for testing configurable software systems start from the same assumption: it is impossible to test all configurations. This motivated the definition of variability aware abstractions and sampling techniques to cope with large configuration spaces. Yet, there is no theoretical barrier that prevents the exhaustive testing of all configurations by simply enumerating them, if the effort required to do so remains acceptable. Not only this: we believe there is lots to be learned by systematically and exhaustively testing a configurable system. In this article, we report on the first ever endeavor to test all possible configurations of an industry strength, open source configurable software system, JHipster, a popular code generator for web applications. We built a testing scaffold for the 26,000+ configurations of JHipster using a cluster of 80 machines during 4 nights for a total of 4,376 hours (182 days) CPU time. We find that 35.70% configurations fail and we identify the feature interactions that cause the errors. We show that sampling testing strategies (like dissimilarity and 2 wise) (1) are more effective to find faults than the 12 default configurations used in the JHipster continuous integration; (2) can be too costly and exceed the available testing budget. We cross this quantitative analysis with the qualitative assessment of JHipster's lead developers.
ArXiv
Axel Halin Alexandre Nuttinck Mathieu Acher Xavier Devroey Gilles Perrouin Benoit Baudry
1548088
Testing Variability Intensive Systems
Cost effective techniques to test software in the presence of variability are popular in academia but are not systematically applied in practice yet. This half day tutorial offers an overview of the state of the art of some of the hottest topics in the field such as (dis)similarity search based testing, model based testing or mutation analysis. We will present the most significant results obtained during the last five years ranging from conceptual foundations to readily usable tools. In particular, we will rely on VIBeS, a model based open source framework we developed to test product lines behaviour. We will illustrate all these concepts on JHipster, a variability intensive web development stack.
SPLC
Gilles Perrouin Xavier Devroey Maxime Cordy
181946836
Web aplikacija za upravljanje rezervacijama opreme
U okviru ovog rada bilo je potrebno koristenjem JHipster generatora, izraditi web aplikaciju za upravljanje rezervacijama opreme. JHipster je bespla
Karlo Sambolec
10685156
Adding Semantics to Model Driven ApplicationDevelopment with CVtec and SparqlMap
Model driven software development tools and methods allow fast bootstrapping of software applications and can improve their quality. Using a domain model and adhering to a framework specific set of conventions leverages the generation of objects and services in both frontend and backend and an accompanying database schema. However, rapid application development frameworks like JHipster or Spring Roo lack a deep integration of semantic technologies which allow exploration and analytics beyond the operations defined as services. A post deployment integration of semantic technologies into an existing application can be cumbersome, as knowledge about the domain model can get lost and additional components require deployment. We therefore enrich UML domain models in order to generate database mappings and additional ontologies for exposing both the conceptual model and instance data as RDF. Ultimately, this allows using the expressive power of SPARQL for analytic queries while still using established development frameworks for implementing enterprise applications.
SEMANTiCS
Jorg Unbehauen Andreas Nareike Johannes Schmidt
219164109
Strumenti per la generazione automatica di applicazioni web full stack: un caso d'uso reale Tools for automatic generation of full stack web applications: a real use case
Negli ultimi anni gli strumenti per la generazione del codice hanno acquisito sempre piu importanza nei processi di sviluppo del software. Questo e dovuto al fatto che la loro introduzione nel flusso di lavoro puo portare notevoli benefici: realizzare codice robusto e di qualita, semplificarne la manutenibilita, diminuire tempi e costi dello sviluppo, incrementare la produttivita. Gli ambiti in cui questi strumenti trovano applicazione sono molteplici. L'obiettivo di questo lavoro di tesi e quello di focalizzarsi sugli strumenti che riguardano la generazione automatica di applicazioni web. Innanzitutto, viene fatta una panoramica sulla generazione del codice in generale, analizzandone i principali casi d'uso, i vantaggi e gli svantaggi che essa comporta e i diversi approcci utilizzati. In seguito la trattazione si e spostata sulla generazione del codice nell'ambito specifico delle web application. Lo sviluppo di applicazioni web e stato uno dei settori piu in evoluzione nella recente ingegneria del software; tuttavia quest'evoluzione ha fatto registrare anche una crescita della complessita architetturale delle applicazioni web. 'E in questo scenario che si e affermato sempre di piu l'approccio Model Driven e la diffusione di framework per la generazione di applicazioni web complesse basate su di esso. Sono stati approfonditi due dei framework di questo tipo piu diffusi: Spring Roo, uno strumento RAD per lo sviluppo rapido di applicazioni web; JHipster, un generatore di applicazioni web basato sul tool di scaffolding Yeoman. Inoltre, si e ritenuto fondamentale approfondire anche Yeoman con l'obiettivo di avere una panoramica piu chiara sull'architettura di JHipster. Infine si e scelto di sperimentare l'utilizzo di JHipster in un caso d'uso reale, mettendo in luce quali sono stati i reali benefici dall'averlo adottato e quali difficolta sono state incontrate.
Gianluca Giavatto
155098824
AjiL A Graphical Modeling Language for the Development of Microservice Architectures
Microservice Architecture (MSA) represents an architectural style for distributed and servicebased systems [3] As such, MSA emphasizes loosely coupling between services whereby each service is realized as an independent process that can be designed and operated autonomously. Each individual service corresponds to a certain business capability. For communication, MSAs rely on smart endpoints and simple message based protocols like RESTful HTTP. MSA is well suited to address the rising demand for cloud applications as well as shorter and more agile development cycles [3] However, this comes at the cost of more complexity in certain areas, e.g. distributed data models or the need to prepare well defined endpoints for each service to consider possible choreography based calls from other services. Additionally, the development of an MSA is marked by writing a lot of boilerplate code to set up the necessary infrastructure, e.g. service discovery or an API gateway, rather than implementing actual business logic [5] This paper aims to bridge this conceptual gap between the actual problem domain of an MSA and its infrastructure centered implementation with the help of Model Driven Engineering (MDE) MDE leverages models as an abstraction of an actual software system and its components to tame its complexity [2] Therefore, we propose the Aji Modeling Language (AjiL) as a supportive tool to describe and create MSAs. AjiL and its sources can be accessed on the AjiL GitHub repository. Besides AjiL, there are various tools to ease the development of MSAs. For example, MAGMA [5] is a tool to create microservices based on Maven archetypes. Another tool is JHipster which provides customized microservices based on a web dialog. However, to the best of our knowledge there is currently no graphical diagram tooling solely dedicated to MSA besides AjiL.
Jonas Sorgalla