Search papers, labs, and topics across Lattice.
This paper tackles the challenge of maintaining architectural quality in automatically generated mobile applications by capturing and exploiting the variability of software design patterns. By employing the Universal Variability Language (UVL) to model design patterns like Singleton and Strategy, the authors integrate these models with reusable Jinja templates for Swift code generation. The approach not only enhances the customization and structural integrity of mobile applications but also provides insights into the complexity of design pattern variability, ultimately promoting better software engineering practices.
Capturing design pattern variability could revolutionize mobile app generation, ensuring both customization and architectural integrity.
The increasing reliance on automatic code generation in mobile application development often leads to code that neglects fundamental design principles and architectural quality. In this work, we address this challenge by capturing and exploiting the inherent variability of software design patterns to systematically generate customizable and well-structured mobile applications. We propose the use of the Universal Variability Language (UVL) to explicitly model the structural and behavioral variation points of common design patterns, such as Singleton, Strategy, Observer, Adapter, and Factory Method. These models are integrated with reusable Jinja templates, enabling code generation in Swift. Our approach leverages Software Product Line (SPL) engineering principles, treating design patterns as configurable assets within a product line and supporting automated generation of custom design patterns. We also analyze the configuration space of the modeled patterns, offering insights into their variability complexity. By formalizing design pattern variability and embedding it into the generation process, our work bridges model-driven engineering with practical mobile development, promoting the production of maintainable, reusable, and architecturally sound applications.