SOMCA stands for “Self-Optimization of service-oriented architectures for Mobile and Cloud Applications”. It is an associate team between the Spirals Inria project-team (Lille, France) and the UQAM LATECE team (Montréal, Canada). The objective of this collaboration is to propose a novel methodology to support the runtime detection and correction of Service-Oriented Architecture (SOA) anti-patterns in Mobile and Cloud Applications.

The SOMCA associate team focuses on improving the software quality of mobile applications by leveraging the wisdom of the crowd. We address the key challenge of continuously improving software quality in the context of mobile-oriented applications. In this context, our ambition is to promote a novel form of crowdsourced platform to optimize the quality of mobile apps. This program is novel and original as we target software systems of prominent importance, mobile apps, which are constantly evolving, together with their underlying frameworks, and updated much more frequently than other traditional software systems.

The last decade has witnessed a huge increase in the number of mobile applications (or apps) made available to end-users. Mobile apps invaded all areas of our daily lives: not only games, entertainment, and social networking, but also business, education, finance, and health. The ever-increasing user requirements and popularity of mobile apps have led mobile developers to implement, maintain, and evolve apps rapidly and under pressure. Hence, software engineers may not always follow good design and implementation practices, or patterns, and may instead adopt bad practices, called by opposition antipatterns. However, the presence of antipatterns may not only lead to poor software quality, but may also introduce potential vulnerabilities in terms of security and privacy. Such threats are inevitably hindering the evolution of apps and degrading the quality of the end-user experience.

To achieve our objective of optimizing the quality of mobile apps, we therefore intend to adopt an empirical methodology by studying the source code of mobile applications and the routines of developers in order to identify code smells and potential remediations. By leveraging the wisdom of the crowd, composed of developers and users, we intend to identify code smells and recommend potential fixes.