SlideShare a Scribd company logo
1 of 1
Download to read offline
Identification and Analysis of the Impact of Patterns on the Quality
of Multi-language Systems
Mouna Abidi and Yann-Gaël Guéhéneuc
GIGL, Polytechnique Montréal
2- Objectives
We want to
• Collect and categorize the different sets of programming languages
existing in the literature and systems developed with more than one
programming language.
• Detect the existence of design patterns in multi-language programs
to be able to track bugs, conclude a pattern catalog specified for
these systems types and to provide best practices to develop well
with more than one language and avoid bugs.
• Identify automatically design patterns and design defects in multi-
language systems
• Study the impact of design patterns on the quality of these systems
and their possible resolution of identified problems.
3- Contributions
Thus, we can
• Provide a catalog of multi-language design patterns and design
defects.
• Propose a detection tool for multi-language design patterns and
design defects.
• Study the impact of those occurrences on software quality attributes.
6- Work in progress
• We are working on one hand on a systematic literature review to find the
most important sets of combinations of programming languages studied in
the literature. On the other hand, we are performing an empirical study in
OpenHub to find the sets of languages used by developers. We will
contrast these sets with the literature.
• We aim to find out the patterns used in mutli-language systems to provide
a catalog with the best and bad practices to adopt to ensure good quality in
multi-language.
• We are studying how anti-patterns impact developers efforts at
maintenance activities.
1- Introduction
Multi-language systems become prevalent with the technological
advances. Many systems with which we interact daily like Android
Applications, Google, Facebook... are build using more than one
programming language.
However, multi-language systems introduce different challenges and
bugs that developers must deal with. Due to the complex interactions
and the heterogeneity of the languages, multi-language systems may
have inconsistencies, dependency issues, and bugs and needs more
effort for comprehension and maintenance. In addition, the detection of
occurrences of design patterns and design defects and their impacts on
multi-language systems is not well established in the literature.
5- Preliminary results
7- Conclusion and Future Works
The objective of this research project is to define and establish the best
practices to be adopted and bad practices to avoid to improve the quality
of multi-language systems. We plan to provide a tool that can
automatically detect occurrences of multi-language patterns and
investigate their impact on the quality of multi-language systems.
4- Methodology
Build Pattern Model
2- Detection of patterns occurrences
Correspondence Matching
Patterns OccurencesPOM Metrics (Ptidej)
1-Definition and identification of patterns in multi-language systems
3- Impact of patterns
Systematic Literature Review (Mouna Abidi, Manel Grichi, Diana Masri, and Yann-GaelGuéhéneuc)
State of practices of JNI Usage (Mouna Abidi, Manel Grichi, and Yann-GaelGuéhéneuc)
Practice Description
AccessController to
load libraries.
A safe way to make sure the library cannot be loaded by code which do not have permissions.
Take care of the
Strings
It is the developer’s responsibility to release the character arrays explicitly using the
ReleaseString or ReleaseStringUTF functions.
Always check return
values
Instead of Exceptions the JNI API functions rely on their return values to indicate any errors
during the execution of the API call.
Never Cache Local
References
JVM garbage collectors boundaries are limited to the Java space only. So the JVM garbage
collector cannot free the memory that application allocates in the native space.
Use List of Probable
Paths
When bundling dynamic library within the JAR it is necessary to extract the library into file
system before loading it.
Mix in JNI Mixing JNI with business/platform code makes it harder to share common code.
Binaries in repo Without using a proper dependency resolver, the library sources will need to be found and
rebuilt whenever a new OS is to be supported.
JNI implementation
functions
Use of JNIEnv, JNICALL, macros. Use of JNI_OnLoad.
Qualitative Analysis
AST
Output
8- References
[1] B. Lee, M. Hirzel, R. Grimm, and K. S. McKinley, “Debug all your code: portable mixed-environment
debugging,” in Proc. ACM, Oct. 2009.
[2] P. K. Linos, Z. hong Chen, S. Berrier, and B. O’Rourke, “A
tool for understanding multi-language program dependencies,” in
IWPC ’03. USA: IEEE Computer Society, 2003, p. 64.
[3] G. Tan and J. Croft. An empirical security study of the native code in the JDK. In 17th Usenix Security
Symposium, pages 365–377, 2008.
Training
Validation
Testing
Fig: Return types analysis
Fig: Modifier analysis
Fig: Set of programming languages in practiceFig: Multi-language Mechanisms
Fig: Category of multi-language papers
THE CONSORTIUM FOR SOFTWARE ENGINEERING RESEARCH (CSER) 2018 FALL MEETING, LONDON ONTARIO, CANADA

More Related Content

Similar to Mouna Abidi

Programmer Productivity Enhancement Through Controlled Natural Language Input
Programmer Productivity Enhancement Through Controlled Natural Language InputProgrammer Productivity Enhancement Through Controlled Natural Language Input
Programmer Productivity Enhancement Through Controlled Natural Language Inputijseajournal
 
Introduction to java
Introduction to  javaIntroduction to  java
Introduction to javaKalai Selvi
 
Grade 8: Introduction To Java
Grade 8: Introduction To JavaGrade 8: Introduction To Java
Grade 8: Introduction To Javanandanrocker
 
Pair Programming with a Large Language Model
Pair Programming with a Large Language ModelPair Programming with a Large Language Model
Pair Programming with a Large Language ModelKnoldus Inc.
 
Machine Learning in Static Analysis of Program Source Code
Machine Learning in Static Analysis of Program Source CodeMachine Learning in Static Analysis of Program Source Code
Machine Learning in Static Analysis of Program Source CodeAndrey Karpov
 
STATICMOCK : A Mock Object Framework for Compiled Languages
STATICMOCK : A Mock Object Framework for Compiled Languages STATICMOCK : A Mock Object Framework for Compiled Languages
STATICMOCK : A Mock Object Framework for Compiled Languages ijseajournal
 
Usability evaluation of Domain-Specific Languages
Usability evaluation of Domain-Specific LanguagesUsability evaluation of Domain-Specific Languages
Usability evaluation of Domain-Specific LanguagesAnkica Barisic
 
Unit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptxUnit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptxAsst.prof M.Gokilavani
 
software development and programming languages
software development and programming languages software development and programming languages
software development and programming languages PraShant Kumar
 
ML Tutorial Introduction
ML Tutorial IntroductionML Tutorial Introduction
ML Tutorial Introductionelbop
 
Advantages and Disadvantages of a Monolithic Repository
Advantages and Disadvantages of a Monolithic RepositoryAdvantages and Disadvantages of a Monolithic Repository
Advantages and Disadvantages of a Monolithic Repositorymustafa sarac
 
Java-centered Translator-based Multi-paradigm Software Development Environment
Java-centered Translator-based Multi-paradigm Software Development EnvironmentJava-centered Translator-based Multi-paradigm Software Development Environment
Java-centered Translator-based Multi-paradigm Software Development EnvironmentWaqas Tariq
 
Increasing Quality with DevOps
Increasing Quality with DevOpsIncreasing Quality with DevOps
Increasing Quality with DevOpsCoveros, Inc.
 
Feb 2013Lesson 38 Software Acquisition Development
Feb 2013Lesson 38 Software Acquisition DevelopmentFeb 2013Lesson 38 Software Acquisition Development
Feb 2013Lesson 38 Software Acquisition DevelopmentBarb Tillich
 
Smart modeling of smart software
Smart modeling of smart softwareSmart modeling of smart software
Smart modeling of smart softwareJordi Cabot
 
DevOps interview questions and answers
DevOps interview questions and answersDevOps interview questions and answers
DevOps interview questions and answersHopeTutors1
 
CHAPTER 1 OBJECT ORIENTED NOTES SLIDE PRESENTATION
CHAPTER 1 OBJECT ORIENTED NOTES SLIDE PRESENTATIONCHAPTER 1 OBJECT ORIENTED NOTES SLIDE PRESENTATION
CHAPTER 1 OBJECT ORIENTED NOTES SLIDE PRESENTATIONTSha7
 
Scalable architectures for phenotype libraries
Scalable architectures for phenotype librariesScalable architectures for phenotype libraries
Scalable architectures for phenotype librariesMartin Chapman
 
2014 IEEE DOTNET SOFTWARE ENGINEERING PROJECT Automatic summarization of bug ...
2014 IEEE DOTNET SOFTWARE ENGINEERING PROJECT Automatic summarization of bug ...2014 IEEE DOTNET SOFTWARE ENGINEERING PROJECT Automatic summarization of bug ...
2014 IEEE DOTNET SOFTWARE ENGINEERING PROJECT Automatic summarization of bug ...IEEEBEBTECHSTUDENTSPROJECTS
 

Similar to Mouna Abidi (20)

Programmer Productivity Enhancement Through Controlled Natural Language Input
Programmer Productivity Enhancement Through Controlled Natural Language InputProgrammer Productivity Enhancement Through Controlled Natural Language Input
Programmer Productivity Enhancement Through Controlled Natural Language Input
 
Introduction to java
Introduction to  javaIntroduction to  java
Introduction to java
 
Grade 8: Introduction To Java
Grade 8: Introduction To JavaGrade 8: Introduction To Java
Grade 8: Introduction To Java
 
Pair Programming with a Large Language Model
Pair Programming with a Large Language ModelPair Programming with a Large Language Model
Pair Programming with a Large Language Model
 
Machine Learning in Static Analysis of Program Source Code
Machine Learning in Static Analysis of Program Source CodeMachine Learning in Static Analysis of Program Source Code
Machine Learning in Static Analysis of Program Source Code
 
STATICMOCK : A Mock Object Framework for Compiled Languages
STATICMOCK : A Mock Object Framework for Compiled Languages STATICMOCK : A Mock Object Framework for Compiled Languages
STATICMOCK : A Mock Object Framework for Compiled Languages
 
Usability evaluation of Domain-Specific Languages
Usability evaluation of Domain-Specific LanguagesUsability evaluation of Domain-Specific Languages
Usability evaluation of Domain-Specific Languages
 
Unit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptxUnit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptx
 
software development and programming languages
software development and programming languages software development and programming languages
software development and programming languages
 
ML Tutorial Introduction
ML Tutorial IntroductionML Tutorial Introduction
ML Tutorial Introduction
 
Advantages and Disadvantages of a Monolithic Repository
Advantages and Disadvantages of a Monolithic RepositoryAdvantages and Disadvantages of a Monolithic Repository
Advantages and Disadvantages of a Monolithic Repository
 
Java-centered Translator-based Multi-paradigm Software Development Environment
Java-centered Translator-based Multi-paradigm Software Development EnvironmentJava-centered Translator-based Multi-paradigm Software Development Environment
Java-centered Translator-based Multi-paradigm Software Development Environment
 
Increasing Quality with DevOps
Increasing Quality with DevOpsIncreasing Quality with DevOps
Increasing Quality with DevOps
 
Feb 2013Lesson 38 Software Acquisition Development
Feb 2013Lesson 38 Software Acquisition DevelopmentFeb 2013Lesson 38 Software Acquisition Development
Feb 2013Lesson 38 Software Acquisition Development
 
Smart modeling of smart software
Smart modeling of smart softwareSmart modeling of smart software
Smart modeling of smart software
 
DevOps interview questions and answers
DevOps interview questions and answersDevOps interview questions and answers
DevOps interview questions and answers
 
CHAPTER 1 OBJECT ORIENTED NOTES SLIDE PRESENTATION
CHAPTER 1 OBJECT ORIENTED NOTES SLIDE PRESENTATIONCHAPTER 1 OBJECT ORIENTED NOTES SLIDE PRESENTATION
CHAPTER 1 OBJECT ORIENTED NOTES SLIDE PRESENTATION
 
Unit 1 OOSE
Unit 1 OOSEUnit 1 OOSE
Unit 1 OOSE
 
Scalable architectures for phenotype libraries
Scalable architectures for phenotype librariesScalable architectures for phenotype libraries
Scalable architectures for phenotype libraries
 
2014 IEEE DOTNET SOFTWARE ENGINEERING PROJECT Automatic summarization of bug ...
2014 IEEE DOTNET SOFTWARE ENGINEERING PROJECT Automatic summarization of bug ...2014 IEEE DOTNET SOFTWARE ENGINEERING PROJECT Automatic summarization of bug ...
2014 IEEE DOTNET SOFTWARE ENGINEERING PROJECT Automatic summarization of bug ...
 

More from Ptidej Team

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software MiniaturisationPtidej Team
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel BriandPtidej Team
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel AbdellatifPtidej Team
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh KermansaraviPtidej Team
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano PolitowskiPtidej Team
 
Will io t trigger the next software crisis
Will io t trigger the next software crisisWill io t trigger the next software crisis
Will io t trigger the next software crisisPtidej Team
 
Thesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptThesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptPtidej Team
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptPtidej Team
 
Thesis+of+étienne+duclos.ppt
Thesis+of+étienne+duclos.pptThesis+of+étienne+duclos.ppt
Thesis+of+étienne+duclos.pptPtidej Team
 

More from Ptidej Team (20)

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software Miniaturisation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel Briand
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel Abdellatif
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh Kermansaravi
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano Politowski
 
Will io t trigger the next software crisis
Will io t trigger the next software crisisWill io t trigger the next software crisis
Will io t trigger the next software crisis
 
MIPA
MIPAMIPA
MIPA
 
Thesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptThesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.ppt
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.ppt
 
Medicine15.ppt
Medicine15.pptMedicine15.ppt
Medicine15.ppt
 
Qrs17b.ppt
Qrs17b.pptQrs17b.ppt
Qrs17b.ppt
 
Icpc11c.ppt
Icpc11c.pptIcpc11c.ppt
Icpc11c.ppt
 
Icsme16.ppt
Icsme16.pptIcsme16.ppt
Icsme16.ppt
 
Msr17a.ppt
Msr17a.pptMsr17a.ppt
Msr17a.ppt
 
Icsoc15.ppt
Icsoc15.pptIcsoc15.ppt
Icsoc15.ppt
 
Thesis+of+étienne+duclos.ppt
Thesis+of+étienne+duclos.pptThesis+of+étienne+duclos.ppt
Thesis+of+étienne+duclos.ppt
 
Icsoc16b.ppt
Icsoc16b.pptIcsoc16b.ppt
Icsoc16b.ppt
 

Recently uploaded

chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 

Recently uploaded (20)

chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 

Mouna Abidi

  • 1. Identification and Analysis of the Impact of Patterns on the Quality of Multi-language Systems Mouna Abidi and Yann-Gaël Guéhéneuc GIGL, Polytechnique Montréal 2- Objectives We want to • Collect and categorize the different sets of programming languages existing in the literature and systems developed with more than one programming language. • Detect the existence of design patterns in multi-language programs to be able to track bugs, conclude a pattern catalog specified for these systems types and to provide best practices to develop well with more than one language and avoid bugs. • Identify automatically design patterns and design defects in multi- language systems • Study the impact of design patterns on the quality of these systems and their possible resolution of identified problems. 3- Contributions Thus, we can • Provide a catalog of multi-language design patterns and design defects. • Propose a detection tool for multi-language design patterns and design defects. • Study the impact of those occurrences on software quality attributes. 6- Work in progress • We are working on one hand on a systematic literature review to find the most important sets of combinations of programming languages studied in the literature. On the other hand, we are performing an empirical study in OpenHub to find the sets of languages used by developers. We will contrast these sets with the literature. • We aim to find out the patterns used in mutli-language systems to provide a catalog with the best and bad practices to adopt to ensure good quality in multi-language. • We are studying how anti-patterns impact developers efforts at maintenance activities. 1- Introduction Multi-language systems become prevalent with the technological advances. Many systems with which we interact daily like Android Applications, Google, Facebook... are build using more than one programming language. However, multi-language systems introduce different challenges and bugs that developers must deal with. Due to the complex interactions and the heterogeneity of the languages, multi-language systems may have inconsistencies, dependency issues, and bugs and needs more effort for comprehension and maintenance. In addition, the detection of occurrences of design patterns and design defects and their impacts on multi-language systems is not well established in the literature. 5- Preliminary results 7- Conclusion and Future Works The objective of this research project is to define and establish the best practices to be adopted and bad practices to avoid to improve the quality of multi-language systems. We plan to provide a tool that can automatically detect occurrences of multi-language patterns and investigate their impact on the quality of multi-language systems. 4- Methodology Build Pattern Model 2- Detection of patterns occurrences Correspondence Matching Patterns OccurencesPOM Metrics (Ptidej) 1-Definition and identification of patterns in multi-language systems 3- Impact of patterns Systematic Literature Review (Mouna Abidi, Manel Grichi, Diana Masri, and Yann-GaelGuéhéneuc) State of practices of JNI Usage (Mouna Abidi, Manel Grichi, and Yann-GaelGuéhéneuc) Practice Description AccessController to load libraries. A safe way to make sure the library cannot be loaded by code which do not have permissions. Take care of the Strings It is the developer’s responsibility to release the character arrays explicitly using the ReleaseString or ReleaseStringUTF functions. Always check return values Instead of Exceptions the JNI API functions rely on their return values to indicate any errors during the execution of the API call. Never Cache Local References JVM garbage collectors boundaries are limited to the Java space only. So the JVM garbage collector cannot free the memory that application allocates in the native space. Use List of Probable Paths When bundling dynamic library within the JAR it is necessary to extract the library into file system before loading it. Mix in JNI Mixing JNI with business/platform code makes it harder to share common code. Binaries in repo Without using a proper dependency resolver, the library sources will need to be found and rebuilt whenever a new OS is to be supported. JNI implementation functions Use of JNIEnv, JNICALL, macros. Use of JNI_OnLoad. Qualitative Analysis AST Output 8- References [1] B. Lee, M. Hirzel, R. Grimm, and K. S. McKinley, “Debug all your code: portable mixed-environment debugging,” in Proc. ACM, Oct. 2009. [2] P. K. Linos, Z. hong Chen, S. Berrier, and B. O’Rourke, “A tool for understanding multi-language program dependencies,” in IWPC ’03. USA: IEEE Computer Society, 2003, p. 64. [3] G. Tan and J. Croft. An empirical security study of the native code in the JDK. In 17th Usenix Security Symposium, pages 365–377, 2008. Training Validation Testing Fig: Return types analysis Fig: Modifier analysis Fig: Set of programming languages in practiceFig: Multi-language Mechanisms Fig: Category of multi-language papers THE CONSORTIUM FOR SOFTWARE ENGINEERING RESEARCH (CSER) 2018 FALL MEETING, LONDON ONTARIO, CANADA