SlideShare a Scribd company logo
Software Evolution and Maintenance — Software
Evolution Understanding — Juana Approach
“Automatic Extraction of Software Identifiers Map for Object-Oriented
Software Systems”
Ra'Fat Al-Msie'deen
Department of Software Engineering, Faculty of IT, Mutah University, Mutah 61710, Karak, Jordan
E-mail address: rafatalmsiedeen@mutah.edu.jo
https://rafat66.github.io/Al-Msie-Deen/
Citation
• R. Al-Msie’deen and A. H. Blasi, “Software evolution understanding:
Automatic extraction of software identifiers map for object-oriented
software systems,” Journal of Communications Software and Systems,
vol. 17, no. 1, pp. 20–28, 2021.
Abstract
Software companies usually develop a set of product variants within the
same family that share certain functions and differ in others. Variations
across software variants occur to meet different customer requirements.
Thus, software product variants evolve overtime to cope with new
requirements. A software engineer who deals with this family may find it
difficult to understand the evolution scenarios that have taken place over
time. In addition, software identifier names are important resources to
understand the evolution scenarios in this family.
This paper introduces an automatic approach called Juana’s approach to
detect the evolution scenario across two product variants at the source
code level and identifies the common and unique software identifier names
across software variants source code. Juana’s approach refers to common
and unique identifier names as a software identifiers map and computes it
by comparing software variants to each other. Juana considers all software
identifier names such as package, class, attribute, and method.
The novelty of this approach is that it exploits common and unique
identifier names across the source code of software variants, to understand
the evolution scenarios across software family in an efficient way. For
validity, Juana was applied on ArgoUML and Mobile Media software
variants. The results of this evaluation validate the relevance and the
performance of the approach as all evolution scenarios were correctly
detected via a software identifiers map.
Index Terms
Software Engineering
Software Evolution
Software Identifiers Map
Formal Concept Analysis
Software Product Variant
Introduction
• Juana’s approach identifies the common and
unique software identifier names between two
Object-Oriented (OO) software variants.
• The common software identifiers are present in
two software variants.
• Furthermore, the unique software identifiers
have presented in one software variant, while
absent in another one.
• Juana computes common and unique software
identifier names by comparing software variants
to each other.
• However, the final result of Juana is the software
identifiers map, which is a visual presentation of
software variant identifier names, presented the
common and unique identifier names between
two product variants.
Juana
Introduction …
• The novelty of Juana is that it exploits all software identifier names of
product variants to identify the common and unique identifier names
across those variants.
• Juana separates the identifiers of two product variants into two subsets,
the common identifiers set, and the unique identifiers set.
• Indeed, common identifier names appear in all variants, while the unique
identifier names appear in one variant but not all variants.
• Manual reverse engineering of common and unique identifier names for
software product variants is a tedious process, time consuming, and
needs large efforts. Supporting this process would be of great aid.
The software
identifiers map
extraction process
Product variant A
Extracting the software identifiers
1
The software identifiers file A The software identifiers file B
Identifying the common and unique identifier names
2
The common identifier names The unique identifier names
Product variant B
Inputs
Software identifiers map
Software developers
Output
Common
Unique
Unique
&
The common and
unique identifiers of
two product variants
Product A
Product B
Legend
The common identifier names
The unique Identifier names
The Software
Identifiers Map
Extraction Process
The Software Identifiers Map Extraction Process
A. Extracting the Software Identifiers
B. Identifying the Common and Unique Identifier Names
Experiment Work Juana
Case studies
• To validate the proposed approach, experiments ran on two real case
studies: the mobile media [22] and ArgoUML [23].
• Mobile media software is a Java-based open-source application that
manipulates media on mobile devices.
• ArgoUML is a Java-based open-source software. ArgoUML tool
includes support for all standard UML diagrams.
Evaluation
Metrics
Juana
Juana
Conclusion
• This paper focused on detecting common and
unique software identifier names of software
product variants realized via code cloning.
• Juana’s approach aimed to find those identifier
names that are present in one variant of the
software and absent in another.
• The software family is usually well documented
but detecting the common and unique identifier
names in a given software variant still a
challenging task and imprecise in many cases.
• In this paper, Juana’s approach was based on
FCA to identify the common and unique
identifiers from the OO source code of two
software product variants.
• In fact, developers can use this approach to
understand the changes that have occurred
during program evolution.
Juana
Conclusion …
• The novelty of Juana is the exploiting of software identifier names to
understand the software evolution scenarios across the product
family.
• The proposed approach was applied to three case studies, and the
results proved the validity and accuracy in identifying the changes
that occurred during program evolution by comparing the result of
Juana with available documents for each case study.
Future Work
• For future work, Juana’s approach will be
extended by comparing more than two
software variants to identify common and
unique software identifier names.
• Also, Juana’s approach plans to apply the
tag cloud visualization technique [32 – 34,
47] on common and unique identifier
name blocks to present the most frequent
words in those blocks to software
engineers.
References
• http://code.google.com/p/erca/
• https://sdqweb.ipd.kit.edu/wiki/SPLevo/Case_Studies/ArgoUML-SPL
• http://www.ic.unicamp.br/~tizzei/mobilemedia/
• https://sites.google.com/site/ralmsideen/tools
• https://www.ifi.uzh.ch/en/seal/research/tools/changeDistiller.html
 All references:
https://www.scopus.com/record/display.uri?eid=2-s2.0-
85103149543&origin=resultslist
Juana Approach: Software Evolution and Maintenance — Software
Evolution Understanding
Software Evolution and Maintenance — Software
Evolution Understanding — Juana Approach
“Automatic Extraction of Software Identifiers Map for Object-Oriented
Software Systems”
Ra'Fat Al-Msie'deen
Department of Software Engineering, Faculty of IT, Mutah University, Mutah 61710, Karak, Jordan
E-mail address: rafatalmsiedeen@mutah.edu.jo
https://rafat66.github.io/Al-Msie-Deen/

More Related Content

Similar to Software evolution understanding: Automatic extraction of software identifiers map for object-oriented software systems

GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...
GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...
GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...
ijseajournal
 
GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...
GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...
GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...
ijseajournal
 
Generating Software Product Line Model by Resolving Code Smells in the Produc...
Generating Software Product Line Model by Resolving Code Smells in the Produc...Generating Software Product Line Model by Resolving Code Smells in the Produc...
Generating Software Product Line Model by Resolving Code Smells in the Produc...
ijseajournal
 
Exploring the World of Software Testing.pdf
Exploring the World of Software Testing.pdfExploring the World of Software Testing.pdf
Exploring the World of Software Testing.pdf
Kajal Digital
 
Software testing
Software testingSoftware testing
Software testing
Dolly Sharma
 
Software Development Today Everything You Need To Know.pdf
Software Development Today Everything You Need To Know.pdfSoftware Development Today Everything You Need To Know.pdf
Software Development Today Everything You Need To Know.pdf
christiemarie4
 
Software Quality Measure
Software Quality MeasureSoftware Quality Measure
Software Quality Measure
Editor IJCATR
 
Software Development Life Cycle
Software Development Life Cycle Software Development Life Cycle
Software Development Life Cycle
Dr. Ranjan Kumar Mishra
 
'Mixing Open And Commercial Tools' by Mauro Garofalo
'Mixing Open And Commercial Tools' by Mauro Garofalo'Mixing Open And Commercial Tools' by Mauro Garofalo
'Mixing Open And Commercial Tools' by Mauro Garofalo
TEST Huddle
 
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
ijseajournal
 
A metrics suite for variable categorizationt to support program invariants[
A metrics suite for variable categorizationt to support program invariants[A metrics suite for variable categorizationt to support program invariants[
A metrics suite for variable categorizationt to support program invariants[
IJCSEA Journal
 
Visualizing Object-oriented Software for Understanding and Documentation
Visualizing Object-oriented Software for Understanding and Documentation Visualizing Object-oriented Software for Understanding and Documentation
Visualizing Object-oriented Software for Understanding and Documentation
Ra'Fat Al-Msie'deen
 
Software Engineering Unit-1
Software Engineering Unit-1Software Engineering Unit-1
Software Engineering Unit-1
Samura Daniel
 
7a Good Programming Practice.pptx
7a Good Programming Practice.pptx7a Good Programming Practice.pptx
7a Good Programming Practice.pptx
DylanTilbury1
 
Slcm sharbani bhattacharya
Slcm sharbani bhattacharyaSlcm sharbani bhattacharya
Slcm sharbani bhattacharya
Sharbani Bhattacharya
 
Software engineering
Software engineeringSoftware engineering
Software engineering
AnanthiP8
 
Software developer
Software developerSoftware developer
Software developer
ashrafulislam293
 
MODULE 1 Software Product and Process_ SW ENGG 22CSE141.pdf
MODULE 1 Software Product and Process_ SW ENGG  22CSE141.pdfMODULE 1 Software Product and Process_ SW ENGG  22CSE141.pdf
MODULE 1 Software Product and Process_ SW ENGG 22CSE141.pdf
Jayanthi Kannan MK
 
International Journal of Soft Computing and Engineering (IJS
International Journal of Soft Computing and Engineering (IJSInternational Journal of Soft Computing and Engineering (IJS
International Journal of Soft Computing and Engineering (IJS
hildredzr1di
 
Software Development Methodologies.pptx
Software Development Methodologies.pptxSoftware Development Methodologies.pptx
Software Development Methodologies.pptx
MohamedElshaikh10
 

Similar to Software evolution understanding: Automatic extraction of software identifiers map for object-oriented software systems (20)

GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...
GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...
GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...
 
GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...
GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...
GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...
 
Generating Software Product Line Model by Resolving Code Smells in the Produc...
Generating Software Product Line Model by Resolving Code Smells in the Produc...Generating Software Product Line Model by Resolving Code Smells in the Produc...
Generating Software Product Line Model by Resolving Code Smells in the Produc...
 
Exploring the World of Software Testing.pdf
Exploring the World of Software Testing.pdfExploring the World of Software Testing.pdf
Exploring the World of Software Testing.pdf
 
Software testing
Software testingSoftware testing
Software testing
 
Software Development Today Everything You Need To Know.pdf
Software Development Today Everything You Need To Know.pdfSoftware Development Today Everything You Need To Know.pdf
Software Development Today Everything You Need To Know.pdf
 
Software Quality Measure
Software Quality MeasureSoftware Quality Measure
Software Quality Measure
 
Software Development Life Cycle
Software Development Life Cycle Software Development Life Cycle
Software Development Life Cycle
 
'Mixing Open And Commercial Tools' by Mauro Garofalo
'Mixing Open And Commercial Tools' by Mauro Garofalo'Mixing Open And Commercial Tools' by Mauro Garofalo
'Mixing Open And Commercial Tools' by Mauro Garofalo
 
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
 
A metrics suite for variable categorizationt to support program invariants[
A metrics suite for variable categorizationt to support program invariants[A metrics suite for variable categorizationt to support program invariants[
A metrics suite for variable categorizationt to support program invariants[
 
Visualizing Object-oriented Software for Understanding and Documentation
Visualizing Object-oriented Software for Understanding and Documentation Visualizing Object-oriented Software for Understanding and Documentation
Visualizing Object-oriented Software for Understanding and Documentation
 
Software Engineering Unit-1
Software Engineering Unit-1Software Engineering Unit-1
Software Engineering Unit-1
 
7a Good Programming Practice.pptx
7a Good Programming Practice.pptx7a Good Programming Practice.pptx
7a Good Programming Practice.pptx
 
Slcm sharbani bhattacharya
Slcm sharbani bhattacharyaSlcm sharbani bhattacharya
Slcm sharbani bhattacharya
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Software developer
Software developerSoftware developer
Software developer
 
MODULE 1 Software Product and Process_ SW ENGG 22CSE141.pdf
MODULE 1 Software Product and Process_ SW ENGG  22CSE141.pdfMODULE 1 Software Product and Process_ SW ENGG  22CSE141.pdf
MODULE 1 Software Product and Process_ SW ENGG 22CSE141.pdf
 
International Journal of Soft Computing and Engineering (IJS
International Journal of Soft Computing and Engineering (IJSInternational Journal of Soft Computing and Engineering (IJS
International Journal of Soft Computing and Engineering (IJS
 
Software Development Methodologies.pptx
Software Development Methodologies.pptxSoftware Development Methodologies.pptx
Software Development Methodologies.pptx
 

More from Ra'Fat Al-Msie'deen

SoftCloud: A Tool for Visualizing Software Artifacts as Tag Clouds.pdf
SoftCloud: A Tool for Visualizing Software Artifacts as Tag Clouds.pdfSoftCloud: A Tool for Visualizing Software Artifacts as Tag Clouds.pdf
SoftCloud: A Tool for Visualizing Software Artifacts as Tag Clouds.pdf
Ra'Fat Al-Msie'deen
 
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports.pdf
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports.pdfBushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports.pdf
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports.pdf
Ra'Fat Al-Msie'deen
 
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug ReportsBushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
Ra'Fat Al-Msie'deen
 
Source Code Summarization
Source Code SummarizationSource Code Summarization
Source Code Summarization
Ra'Fat Al-Msie'deen
 
FeatureClouds: Naming the Identified Feature Implementation Blocks from Softw...
FeatureClouds: Naming the Identified Feature Implementation Blocks from Softw...FeatureClouds: Naming the Identified Feature Implementation Blocks from Softw...
FeatureClouds: Naming the Identified Feature Implementation Blocks from Softw...
Ra'Fat Al-Msie'deen
 
YamenTrace: Requirements Traceability - Recovering and Visualizing Traceabili...
YamenTrace: Requirements Traceability - Recovering and Visualizing Traceabili...YamenTrace: Requirements Traceability - Recovering and Visualizing Traceabili...
YamenTrace: Requirements Traceability - Recovering and Visualizing Traceabili...
Ra'Fat Al-Msie'deen
 
Requirements Traceability: Recovering and Visualizing Traceability Links Betw...
Requirements Traceability: Recovering and Visualizing Traceability Links Betw...Requirements Traceability: Recovering and Visualizing Traceability Links Betw...
Requirements Traceability: Recovering and Visualizing Traceability Links Betw...
Ra'Fat Al-Msie'deen
 
Automatic Labeling of the Object-oriented Source Code: The Lotus Approach
Automatic Labeling of the Object-oriented Source Code: The Lotus ApproachAutomatic Labeling of the Object-oriented Source Code: The Lotus Approach
Automatic Labeling of the Object-oriented Source Code: The Lotus Approach
Ra'Fat Al-Msie'deen
 
Constructing a software requirements specification and design for electronic ...
Constructing a software requirements specification and design for electronic ...Constructing a software requirements specification and design for electronic ...
Constructing a software requirements specification and design for electronic ...
Ra'Fat Al-Msie'deen
 
Detecting commonality and variability in use-case diagram variants
Detecting commonality and variability in use-case diagram variantsDetecting commonality and variability in use-case diagram variants
Detecting commonality and variability in use-case diagram variants
Ra'Fat Al-Msie'deen
 
Naming the Identified Feature Implementation Blocks from Software Source Code
Naming the Identified Feature Implementation Blocks from Software Source CodeNaming the Identified Feature Implementation Blocks from Software Source Code
Naming the Identified Feature Implementation Blocks from Software Source Code
Ra'Fat Al-Msie'deen
 
Application architectures - Software Architecture and Design
Application architectures - Software Architecture and DesignApplication architectures - Software Architecture and Design
Application architectures - Software Architecture and Design
Ra'Fat Al-Msie'deen
 
Planning and writing your documents - Software documentation
Planning and writing your documents - Software documentationPlanning and writing your documents - Software documentation
Planning and writing your documents - Software documentation
Ra'Fat Al-Msie'deen
 
Requirements management planning & Requirements change management
Requirements management planning & Requirements change managementRequirements management planning & Requirements change management
Requirements management planning & Requirements change management
Ra'Fat Al-Msie'deen
 
Requirements change - requirements engineering
Requirements change - requirements engineeringRequirements change - requirements engineering
Requirements change - requirements engineering
Ra'Fat Al-Msie'deen
 
Requirements validation - requirements engineering
Requirements validation - requirements engineeringRequirements validation - requirements engineering
Requirements validation - requirements engineering
Ra'Fat Al-Msie'deen
 
Software Documentation - writing to support - references
Software Documentation - writing to support - referencesSoftware Documentation - writing to support - references
Software Documentation - writing to support - references
Ra'Fat Al-Msie'deen
 
Algorithms - "heap sort"
Algorithms - "heap sort"Algorithms - "heap sort"
Algorithms - "heap sort"
Ra'Fat Al-Msie'deen
 
Algorithms - "quicksort"
Algorithms - "quicksort"Algorithms - "quicksort"
Algorithms - "quicksort"
Ra'Fat Al-Msie'deen
 
Software Architecture and Design
Software Architecture and DesignSoftware Architecture and Design
Software Architecture and Design
Ra'Fat Al-Msie'deen
 

More from Ra'Fat Al-Msie'deen (20)

SoftCloud: A Tool for Visualizing Software Artifacts as Tag Clouds.pdf
SoftCloud: A Tool for Visualizing Software Artifacts as Tag Clouds.pdfSoftCloud: A Tool for Visualizing Software Artifacts as Tag Clouds.pdf
SoftCloud: A Tool for Visualizing Software Artifacts as Tag Clouds.pdf
 
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports.pdf
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports.pdfBushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports.pdf
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports.pdf
 
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug ReportsBushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
 
Source Code Summarization
Source Code SummarizationSource Code Summarization
Source Code Summarization
 
FeatureClouds: Naming the Identified Feature Implementation Blocks from Softw...
FeatureClouds: Naming the Identified Feature Implementation Blocks from Softw...FeatureClouds: Naming the Identified Feature Implementation Blocks from Softw...
FeatureClouds: Naming the Identified Feature Implementation Blocks from Softw...
 
YamenTrace: Requirements Traceability - Recovering and Visualizing Traceabili...
YamenTrace: Requirements Traceability - Recovering and Visualizing Traceabili...YamenTrace: Requirements Traceability - Recovering and Visualizing Traceabili...
YamenTrace: Requirements Traceability - Recovering and Visualizing Traceabili...
 
Requirements Traceability: Recovering and Visualizing Traceability Links Betw...
Requirements Traceability: Recovering and Visualizing Traceability Links Betw...Requirements Traceability: Recovering and Visualizing Traceability Links Betw...
Requirements Traceability: Recovering and Visualizing Traceability Links Betw...
 
Automatic Labeling of the Object-oriented Source Code: The Lotus Approach
Automatic Labeling of the Object-oriented Source Code: The Lotus ApproachAutomatic Labeling of the Object-oriented Source Code: The Lotus Approach
Automatic Labeling of the Object-oriented Source Code: The Lotus Approach
 
Constructing a software requirements specification and design for electronic ...
Constructing a software requirements specification and design for electronic ...Constructing a software requirements specification and design for electronic ...
Constructing a software requirements specification and design for electronic ...
 
Detecting commonality and variability in use-case diagram variants
Detecting commonality and variability in use-case diagram variantsDetecting commonality and variability in use-case diagram variants
Detecting commonality and variability in use-case diagram variants
 
Naming the Identified Feature Implementation Blocks from Software Source Code
Naming the Identified Feature Implementation Blocks from Software Source CodeNaming the Identified Feature Implementation Blocks from Software Source Code
Naming the Identified Feature Implementation Blocks from Software Source Code
 
Application architectures - Software Architecture and Design
Application architectures - Software Architecture and DesignApplication architectures - Software Architecture and Design
Application architectures - Software Architecture and Design
 
Planning and writing your documents - Software documentation
Planning and writing your documents - Software documentationPlanning and writing your documents - Software documentation
Planning and writing your documents - Software documentation
 
Requirements management planning & Requirements change management
Requirements management planning & Requirements change managementRequirements management planning & Requirements change management
Requirements management planning & Requirements change management
 
Requirements change - requirements engineering
Requirements change - requirements engineeringRequirements change - requirements engineering
Requirements change - requirements engineering
 
Requirements validation - requirements engineering
Requirements validation - requirements engineeringRequirements validation - requirements engineering
Requirements validation - requirements engineering
 
Software Documentation - writing to support - references
Software Documentation - writing to support - referencesSoftware Documentation - writing to support - references
Software Documentation - writing to support - references
 
Algorithms - "heap sort"
Algorithms - "heap sort"Algorithms - "heap sort"
Algorithms - "heap sort"
 
Algorithms - "quicksort"
Algorithms - "quicksort"Algorithms - "quicksort"
Algorithms - "quicksort"
 
Software Architecture and Design
Software Architecture and DesignSoftware Architecture and Design
Software Architecture and Design
 

Recently uploaded

How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
KrzysztofKkol1
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
MayankTawar1
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Strategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptxStrategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptx
varshanayak241
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Why React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdfWhy React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdf
ayushiqss
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
XfilesPro
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 

Recently uploaded (20)

How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Strategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptxStrategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptx
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Why React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdfWhy React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdf
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 

Software evolution understanding: Automatic extraction of software identifiers map for object-oriented software systems

  • 1. Software Evolution and Maintenance — Software Evolution Understanding — Juana Approach “Automatic Extraction of Software Identifiers Map for Object-Oriented Software Systems” Ra'Fat Al-Msie'deen Department of Software Engineering, Faculty of IT, Mutah University, Mutah 61710, Karak, Jordan E-mail address: rafatalmsiedeen@mutah.edu.jo https://rafat66.github.io/Al-Msie-Deen/
  • 2. Citation • R. Al-Msie’deen and A. H. Blasi, “Software evolution understanding: Automatic extraction of software identifiers map for object-oriented software systems,” Journal of Communications Software and Systems, vol. 17, no. 1, pp. 20–28, 2021.
  • 3. Abstract Software companies usually develop a set of product variants within the same family that share certain functions and differ in others. Variations across software variants occur to meet different customer requirements. Thus, software product variants evolve overtime to cope with new requirements. A software engineer who deals with this family may find it difficult to understand the evolution scenarios that have taken place over time. In addition, software identifier names are important resources to understand the evolution scenarios in this family. This paper introduces an automatic approach called Juana’s approach to detect the evolution scenario across two product variants at the source code level and identifies the common and unique software identifier names across software variants source code. Juana’s approach refers to common and unique identifier names as a software identifiers map and computes it by comparing software variants to each other. Juana considers all software identifier names such as package, class, attribute, and method. The novelty of this approach is that it exploits common and unique identifier names across the source code of software variants, to understand the evolution scenarios across software family in an efficient way. For validity, Juana was applied on ArgoUML and Mobile Media software variants. The results of this evaluation validate the relevance and the performance of the approach as all evolution scenarios were correctly detected via a software identifiers map.
  • 4. Index Terms Software Engineering Software Evolution Software Identifiers Map Formal Concept Analysis Software Product Variant
  • 5. Introduction • Juana’s approach identifies the common and unique software identifier names between two Object-Oriented (OO) software variants. • The common software identifiers are present in two software variants. • Furthermore, the unique software identifiers have presented in one software variant, while absent in another one. • Juana computes common and unique software identifier names by comparing software variants to each other. • However, the final result of Juana is the software identifiers map, which is a visual presentation of software variant identifier names, presented the common and unique identifier names between two product variants. Juana
  • 6. Introduction … • The novelty of Juana is that it exploits all software identifier names of product variants to identify the common and unique identifier names across those variants. • Juana separates the identifiers of two product variants into two subsets, the common identifiers set, and the unique identifiers set. • Indeed, common identifier names appear in all variants, while the unique identifier names appear in one variant but not all variants. • Manual reverse engineering of common and unique identifier names for software product variants is a tedious process, time consuming, and needs large efforts. Supporting this process would be of great aid.
  • 8. Product variant A Extracting the software identifiers 1 The software identifiers file A The software identifiers file B Identifying the common and unique identifier names 2 The common identifier names The unique identifier names Product variant B Inputs Software identifiers map Software developers Output Common Unique Unique &
  • 9. The common and unique identifiers of two product variants
  • 10. Product A Product B Legend The common identifier names The unique Identifier names
  • 11.
  • 13. The Software Identifiers Map Extraction Process A. Extracting the Software Identifiers B. Identifying the Common and Unique Identifier Names
  • 15. Case studies • To validate the proposed approach, experiments ran on two real case studies: the mobile media [22] and ArgoUML [23]. • Mobile media software is a Java-based open-source application that manipulates media on mobile devices. • ArgoUML is a Java-based open-source software. ArgoUML tool includes support for all standard UML diagrams.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 24.
  • 25.
  • 26. Conclusion • This paper focused on detecting common and unique software identifier names of software product variants realized via code cloning. • Juana’s approach aimed to find those identifier names that are present in one variant of the software and absent in another. • The software family is usually well documented but detecting the common and unique identifier names in a given software variant still a challenging task and imprecise in many cases. • In this paper, Juana’s approach was based on FCA to identify the common and unique identifiers from the OO source code of two software product variants. • In fact, developers can use this approach to understand the changes that have occurred during program evolution. Juana
  • 27. Conclusion … • The novelty of Juana is the exploiting of software identifier names to understand the software evolution scenarios across the product family. • The proposed approach was applied to three case studies, and the results proved the validity and accuracy in identifying the changes that occurred during program evolution by comparing the result of Juana with available documents for each case study.
  • 28. Future Work • For future work, Juana’s approach will be extended by comparing more than two software variants to identify common and unique software identifier names. • Also, Juana’s approach plans to apply the tag cloud visualization technique [32 – 34, 47] on common and unique identifier name blocks to present the most frequent words in those blocks to software engineers.
  • 30. • http://code.google.com/p/erca/ • https://sdqweb.ipd.kit.edu/wiki/SPLevo/Case_Studies/ArgoUML-SPL • http://www.ic.unicamp.br/~tizzei/mobilemedia/ • https://sites.google.com/site/ralmsideen/tools • https://www.ifi.uzh.ch/en/seal/research/tools/changeDistiller.html  All references: https://www.scopus.com/record/display.uri?eid=2-s2.0- 85103149543&origin=resultslist
  • 31. Juana Approach: Software Evolution and Maintenance — Software Evolution Understanding
  • 32.
  • 33. Software Evolution and Maintenance — Software Evolution Understanding — Juana Approach “Automatic Extraction of Software Identifiers Map for Object-Oriented Software Systems” Ra'Fat Al-Msie'deen Department of Software Engineering, Faculty of IT, Mutah University, Mutah 61710, Karak, Jordan E-mail address: rafatalmsiedeen@mutah.edu.jo https://rafat66.github.io/Al-Msie-Deen/