This paper introduces the Juana approach to automatically detect evolution scenarios between two software product variants by identifying their common and unique software identifiers. Juana extracts identifier names from the source code and computes a software identifiers map showing common and unique names. It was tested on ArgoUML and Mobile Media variants, correctly detecting evolution scenarios. Future work will apply Juana to more variants and use tag clouds to visualize frequent identifier names.
Actually, software products are increasing in a fast way and are used in almost all activities of human life.
Consequently measuring and evaluating the quality of a software product has become a critical task for
many companies. Several models have been proposed to help diverse types of users with quality issues. The
development of techniques for building software has influenced the creation of models to assess the quality.
Since 2000 the construction of software started to depend on generated or manufactured components and
gave rise to new challenges for assessing quality. These components introduce new concepts such as
configurability, reusability, availability, better quality and lower cost. Consequently the models are
classified in basic models which were developed until 2000, and those based on components called tailored
quality models. The purpose of this article is to describe the main models with their strengths and point out
some deficiencies. In this work, we conclude that in the present age, aspects of communications play an
important factor in the quality of software.
Actually, software products are increasing in a fast way and are used in almost all activities of human life.
Consequently measuring and evaluating the quality of a software product has become a critical task for
many companies. Several models have been proposed to help diverse types of users with quality issues. The
development of techniques for building software has influenced the creation of models to assess the quality.
Since 2000 the construction of software started to depend on generated or manufactured components and
gave rise to new challenges for assessing quality. These components introduce new concepts such as
configurability, reusability, availability, better quality and lower cost. Consequently the models are
classified in basic models which were developed until 2000, and those based on components called tailored
quality models. The purpose of this article is to describe the main models with their strengths and point out
some deficiencies. In this work, we conclude that in the present age, aspects of communications play an
important factor in the quality of software.
GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...ijseajournal
Software Product Lines (SPLs) refer to some software engineering methods, tools and techniques for creating a collection of similar software systems from a shared set of software assets using a common means of production. This concept is recognized as a successful approach to reuse in software development. Its purpose is to reduce production costs by reusing existing features and managing the variability between the different products with respect of particular constraints. Software Product Line engineering is the production process in product lines and the development of a family of systems by reusing core assets. It exploits the commonalities between software products and preserves the ability to vary the functionalities and features between these products. The adopted strategy for building SPL can be a top-down or bottom-up. Depending from the selected strategy, it is possible to face an inappropriate implementation in the SPL Model or the derived products during this process. The code can contain code smells or code anomalies. Code smells are considered as problems in source code which can have an impact on the quality of the derived products of an SPL. The same problem can be present in many derived products from an SPL due to reuse or in the obtained product line when the bottom-up strategy is selected. A possible solution to this problem can be the refactoring which can improve the internal structure of source code without altering external behavior. This paper proposes an approach for building SPL from source code using the bottom-up strategy. Its purpose is to reduce code smells in the obtained SPL using refactoring source code. This approach proposes a possible solution using reverse engineering to obtain the feature model of the SPL
GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...ijseajournal
Software Product Lines (SPLs) refer to some software engineering methods, tools and techniques for
creating a collection of similar software systems from a shared set of software assets using a common
means of production. This concept is recognized as a successful approach to reuse in software
development. Its purpose is to reduce production costs by reusing existing features and managing the
variability between the different products with respect of particular constraints. Software Product Line
engineering is the production process in product lines and the development of a family of systems by
reusing core assets. It exploits the commonalities between software products and preserves the ability to
vary the functionalities and features between these products. The adopted strategy for building SPL can be
a top-down or bottom-up. Depending from the selected strategy, it is possible to face an inappropriate
implementation in the SPL Model or the derived products during this process. The code can contain code
smells or code anomalies. Code smells are considered as problems in source code which can have an
impact on the quality of the derived products of an SPL. The same problem can be present in many derived
products from an SPL due to reuse or in the obtained product line when the bottom-up strategy is selected.
A possible solution to this problem can be the refactoring which can improve the internal structure of
source code without altering external behavior. This paper proposes an approach for building SPL from
source code using the bottom-up strategy. Its purpose is to reduce code smells in the obtained SPL using
refactoring source code. This approach proposes a possible solution using reverse engineering to obtain
the feature model of the SPL.
Generating Software Product Line Model by Resolving Code Smells in the Produc...ijseajournal
Software Product Lines (SPLs) refer to some software engineering methods, tools and techniques for
creating a collection of similar software systems from a shared set of software assets using a common
means of production. This concept is recognized as a successful approach to reuse in software
development. Its purpose is to reduce production costs by reusing existing features and managing the
variability between the different products with respect of particular constraints. Software Product Line
engineering is the production process in product lines and the development of a family of systems by
reusing core assets. It exploits the commonalities between software products and preserves the ability to
vary the functionalities and features between these products. The adopted strategy for building SPL can be
a top-down or bottom-up. Depending from the selected strategy, it is possible to face an inappropriate
implementation in the SPL Model or the derived products during this process. The code can contain code
smells or code anomalies. Code smells are considered as problems in source code which can have an
impact on the quality of the derived products of an SPL. The same problem can be present in many derived
products from an SPL due to reuse or in the obtained product line when the bottom-up strategy is selected.
A possible solution to this problem can be the refactoring which can improve the internal structure of
source code without altering external behavior. This paper proposes an approach for building SPL from
source code using the bottom-up strategy. Its purpose is to reduce code smells in the obtained SPL using
refactoring source code. This approach proposes a possible solution using reverse engineering to obtain
the feature model of the SPL.
Exploring the World of Software Testing.pdfKajal Digital
Software testing is a systematic process that involves evaluating and validating a software application to identify and rectify defects, ensuring it performs as intended. It plays a pivotal role in preventing potentially costly glitches and errors that could lead to system failures, security breaches, or dissatisfied users. By detecting and resolving issues at an early stage, software testing safeguards both the end-users and the reputation of organizations.
Software Development Today Everything You Need To Know.pdfchristiemarie4
Willing to develop software for your enterprise, but confused about where to start? Here is the blog that explains everything you need to know about software development.
Modern gadgets and machines such as medical equipments, mobile phones, cars and even military hardware run on software. The operational efficiency and accuracy of these machines are critical to life and the well being of modern civilization. When the software powering these machines fail it exposes life to danger and can cause the failure of businesses. In this paper, software quality measure is presented with the emphasis on improving standard and controlling damages that may result from badly developed application. The research shows various software quality standards and quality metrics and how they can be applied. The application of the metrics in measuring software quality in the research produced results which shows that the code metrics performance is better than the design metrics performance and points to a new way of improving quality by refactoring application code instead of developing new designs. This is believed to ensure reusability and reduced failure rate when software is developed
'Mixing Open And Commercial Tools' by Mauro GarofaloTEST Huddle
Mixing open source and commercial software is a challenge we face today. The right combined solution offers advantages in flexibility, functionality, performance, and management that aren't available when either open source or commercial technologies are used alone. But one of the major issues is that they don’t always play well together. Some of them can’t be loaded together or they fail to integrate properly.
In this presentation we will provide a case study of successful blending open source and commercial software for testing Java applications. The testing environment consisted of using Subversion as versioned repository for tests, JIRA for issue management and in mixing IBM Rational Functional Tester with an open framework for automated functional, regression and GUI testing. These tools provide a rich set of high-level Java API useful for integrating with each other, by minimizing the integration costs. During the presentation, we will explore the costs (open tools used have no fees, integration and training costs …), the advantage (innovation, products that are best-of-breed …), the risks (dedicated support, community feedbacks, ability to add extensions …) and the product’s quality achieved by our solution compared to a full open source or commercial approach. By our experience, we will provide some hints and tips to guide testers and managers to choose a good mix between open and commercial tools based on: budget, technology, know-how and requested quality.
Programmer Productivity Enhancement Through Controlled Natural Language Inputijseajournal
We have created CABERNET, a Controlled Nature Language (CNL) based approach to program creation. CABERNET allows programmers to use a simple outline-based syntax. This allows increased programmer efficiency and syntax flexibility. CNLs have successfully been used for writing requirements documents. We propose taking this approach well beyond this to fully functional programs. Through the use of heuristics and inference to analyze and determine the programmer’s intent we are able to create fully functional mobile applications. The goal is for programs to be aligned with the way that the humans think rather than the way computers process information. Through the use of templates a CABERNET application can be processed to run on multiple run time environments. Because processing of a CABERNET program file results in native application program performance is maintained.
A metrics suite for variable categorizationt to support program invariants[IJCSEA Journal
Invariants are generally implicit. Explicitly stating program invariants, help programmers to identify
program properties that must be preserved while modifying the code. Existing dynamic techniques detect
invariants which includes both relevant and irrelevant/unused variables and thereby relevant and
irrelevant invariants involved in the program. Due to the presence of irrelevant variables and irrelevant
invariants, speed and efficiency of techniques are affected. Also, displaying properties about irrelevant
variables and irrelevant invariants distracts the user from concentrating on properties of relevant
variables. To overcome these deficiencies only relevant variables are considered by ignoring irrelevant
variables. Further, relevant variables are categorized as design variables and non-design variables. For
this purpose a metrics suite is proposed. These metrics are validated against Weyuker’s principles and
applied on RFV and JLex open source software. Similarly, relevant invariants are categorized as design
invariants, non-design invariants and hybrid invariants. For this purpose a set of rules are proposed. This
entire process enormously improves the speed and efficiency of dynamic invariant detection techniques
Visualizing Object-oriented Software for Understanding and Documentation Ra'Fat Al-Msie'deen
Understanding or comprehending source code is one of
the core activities of software engineering. Understanding object-oriented source code is essential and required when a programmer maintains, migrates, reuses, documents or enhances source code. The source code that is not comprehended cannot be changed. The comprehension of object-oriented source code is a difficult problem solving process. In order to document object-oriented software system there are needs to understand its source code. To do so, it is necessary to mine source code dependencies in addition to quantitative information in source code such as the
number of classes. This paper proposes an automatic approach, which aims to document object-oriented software by visualizing its source code. The design of the object-oriented source code and its main characteristics are represented in the visualization. Package content, class information, relationships between classes, dependencies between methods and software metrics is displayed. The extracted views are very helpful to understand and document the object-oriented software. The novelty of this approach is the exploiting of code dependencies and quantitative information in source code to document object-oriented software efficiently by means of a set of graphs. To validate the approach, it has been applied to several case studies. The results of this evaluation showed that most of the object-oriented software systems have been documented correctly.
Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components.
MODULE 1 :
Software Product and Process
Introduction –FAQs About Software Engineering,
Definition Of Software Engineering,
Difference Between Software Engineering And Computer Science,
Difference Between Software Engineering And System Engineering,
Software Process,
Software Process Models,
The Waterfall Model,
Incremental Process Models,
Evolutionary Process Models
Spiral Development, Prototyping,
Component Based Software Engineering ,
The Unified Process, Attributes Of Good Software,
Key Challenges Facing By Software Engineering,
Verification – Validation,
Computer Based System,
Business Process Engineering,
International Journal of Soft Computing and Engineering (IJShildredzr1di
International Journal of Soft Computing and Engineering (IJSCE)
ISSN: 2231-2307, Volume-2, Issue-3, July 2012
251
Abstract— In recent years, software testing is becoming more
popular and important in the software development industry.
Indeed, software testing is a broad term encircling a variety of
activities along the development cycle and beyond, aimed at
different goals. Hence, software testing research faces a collection
of challenges. A consistent roadmap of most relevant challenges is
proposed here. In it, the starting point is constituted by some
important past achievements, while the destination consists of two
major identified goals to which research ultimately leads, but
which remains as reachable as goals. The routes from the
achievements to the goals are paved by outstanding research
challenges, which are discussed in the paper along with the
ongoing work.
Software testing is as old as the hills in the history of digital
computers. The testing of software is an important means of
assessing the software to determine its quality. Since testing
typically consumes 40~50% of development efforts, and consumes
more effort for systems that require higher levels of reliability, it is
a significant part of the software engineering
Software testing is a very broad area, which involves many
other technical and non-technical areas, such as specification,
design and implementation, maintenance, process and
management issues in software engineering. Our study focuses on
the state of the art in testing techniques, as well as the latest
techniques which representing the future direction of this area.
Today, testing is the most challenging and dominating activity
used by industry, therefore, improvement in its effectiveness, both
with respect to the time and resources, is taken as a major factor
by many researchers
The purpose of testing can be quality assurance, verification,
and validation or reliability estimation. It is a tradeoff between
budget, time and quality. Software Quality is the central concern
of software engineering. Testing is the single most widely used
approach to ensuring software quality.
(Keywords: SDLC, Software quality, Testing techniq
Technique .)
I. INTRODUCTION
I. Introduction: Software Testing
Software testing is the process of executing a program or
system with the intent of finding errors. Software is not unlike
other physical processes where inputs are received and
outputs are produced. Where software differs is in the manner
in which it fails. Most physical systems fail in a fixed (and
reasonably small) set of ways. By contrast, software can fail in
Manuscript received: on July, 2012
Maneela Tuteja, Department of Information TechnologyDronacharya
College of Engineering, Gurgaon, Haryana,.
Gaurav Dubey, Amity School of Computer Sciences, Amity University,
Uttar Pradesh,India.,
.
many bizarre ways. Detec ...
In this presentation, it will cover different software development methodologies. These include the common types of SDM, and the pros and cons.
A software development methodology involves several steps. These include planning, structuring, and performance tracking.
In some instances, it may also include extreme programming. The objective is to streamline the process when developing software or any product.
Almost all software development methodologies are non-technical. This means they do not deal with the technical aspects of software design and development. They focus more on the internal operations, and other processes involved in the project.
Take note that each has its specific features. Gauge your options, and choose the best one that suits your needs.
SoftCloud: A Tool for Visualizing Software Artifacts as Tag Clouds.pdfRa'Fat Al-Msie'deen
Software artifacts visualization helps software developers to manage the size and complexity of the software system. The tag cloud technique visualizes tags within the cloud according to their frequencies in software artifacts. A font size of the tag within the cloud indicates its frequency within a software artifact, while the color of a tag within the cloud uses just for aesthetic purposes. This paper suggests a new approach (SoftCloud) to visualize software artifacts as a tag cloud. The originality of SoftCloud is visualizing all the artifacts available to the software program as a tag cloud. Experiments have conducted on different software artifacts to validate SoftCloud and demonstrate its strengths. The results showed the ability of SoftCloud to correctly retrieve all tags and their frequencies from available software artifacts.
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports.pdfRa'Fat Al-Msie'deen
A Bug Tracking System (BTS), such as Bugzilla, is generally utilized to track submitted Bug Reports (BRs) for a particular software system. Duplicate Bug Report (DBR) retrieval is the process of obtaining a DBR in the BTS. This process is important to avoid needless work from engineers on DBRs. To prevent wasting engineer resources, such as effort and time, on previously submitted (or duplicate) BRs, it is essential to find and retrieve DBRs as soon as they are submitted by software users. Thus, this paper proposes an automatic approach (called BushraDBR) that aims to assist an engineer (called a triager) to retrieve DBRs and stop the duplicates before they start. Where BushraDBR stands for Bushra Duplicate Bug Reports retrieval process. Therefore, when a new BR is sent to the Bug Repository (BRE), an engineer checks whether it is a duplicate of an existing BR in BRE or not via BushraDBR approach. If it is, the engineer marks it as DBR, and the BR is excluded from consideration for any additional work; otherwise, the BR is added to the BRE. BushraDBR approach relies on Textual Similarity (TS) between the newly submitted BR and the rest of the BRs in BRE to retrieve DBRs. BushraDBR exploits unstructured data from BRs to apply Information Retrieval (IR) methods in an efficient way. BushraDBR approach uses two techniques to retrieve DBRs: Latent Semantic Indexing (LSI) and Formal Concept Analysis (FCA). The originality of BushraDBR is to stop DBRs before they occur by comparing the newly reported BR with the rest of the BRs in the BTS, thus saving time and effort during the Software Maintenance (SM) process. BushraDBR also uniquely retrieves DBR through the use of LSI and FCA techniques. BushraDBR approach had been validated and evaluated on several publicly available data sets from Bugzilla. Experiments show the ability of BushraDBR approach to retrieve DBRs in an efficient and accurate manner.
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...ijseajournal
Software Product Lines (SPLs) refer to some software engineering methods, tools and techniques for creating a collection of similar software systems from a shared set of software assets using a common means of production. This concept is recognized as a successful approach to reuse in software development. Its purpose is to reduce production costs by reusing existing features and managing the variability between the different products with respect of particular constraints. Software Product Line engineering is the production process in product lines and the development of a family of systems by reusing core assets. It exploits the commonalities between software products and preserves the ability to vary the functionalities and features between these products. The adopted strategy for building SPL can be a top-down or bottom-up. Depending from the selected strategy, it is possible to face an inappropriate implementation in the SPL Model or the derived products during this process. The code can contain code smells or code anomalies. Code smells are considered as problems in source code which can have an impact on the quality of the derived products of an SPL. The same problem can be present in many derived products from an SPL due to reuse or in the obtained product line when the bottom-up strategy is selected. A possible solution to this problem can be the refactoring which can improve the internal structure of source code without altering external behavior. This paper proposes an approach for building SPL from source code using the bottom-up strategy. Its purpose is to reduce code smells in the obtained SPL using refactoring source code. This approach proposes a possible solution using reverse engineering to obtain the feature model of the SPL
GENERATING SOFTWARE PRODUCT LINE MODEL BY RESOLVING CODE SMELLS IN THE PRODUC...ijseajournal
Software Product Lines (SPLs) refer to some software engineering methods, tools and techniques for
creating a collection of similar software systems from a shared set of software assets using a common
means of production. This concept is recognized as a successful approach to reuse in software
development. Its purpose is to reduce production costs by reusing existing features and managing the
variability between the different products with respect of particular constraints. Software Product Line
engineering is the production process in product lines and the development of a family of systems by
reusing core assets. It exploits the commonalities between software products and preserves the ability to
vary the functionalities and features between these products. The adopted strategy for building SPL can be
a top-down or bottom-up. Depending from the selected strategy, it is possible to face an inappropriate
implementation in the SPL Model or the derived products during this process. The code can contain code
smells or code anomalies. Code smells are considered as problems in source code which can have an
impact on the quality of the derived products of an SPL. The same problem can be present in many derived
products from an SPL due to reuse or in the obtained product line when the bottom-up strategy is selected.
A possible solution to this problem can be the refactoring which can improve the internal structure of
source code without altering external behavior. This paper proposes an approach for building SPL from
source code using the bottom-up strategy. Its purpose is to reduce code smells in the obtained SPL using
refactoring source code. This approach proposes a possible solution using reverse engineering to obtain
the feature model of the SPL.
Generating Software Product Line Model by Resolving Code Smells in the Produc...ijseajournal
Software Product Lines (SPLs) refer to some software engineering methods, tools and techniques for
creating a collection of similar software systems from a shared set of software assets using a common
means of production. This concept is recognized as a successful approach to reuse in software
development. Its purpose is to reduce production costs by reusing existing features and managing the
variability between the different products with respect of particular constraints. Software Product Line
engineering is the production process in product lines and the development of a family of systems by
reusing core assets. It exploits the commonalities between software products and preserves the ability to
vary the functionalities and features between these products. The adopted strategy for building SPL can be
a top-down or bottom-up. Depending from the selected strategy, it is possible to face an inappropriate
implementation in the SPL Model or the derived products during this process. The code can contain code
smells or code anomalies. Code smells are considered as problems in source code which can have an
impact on the quality of the derived products of an SPL. The same problem can be present in many derived
products from an SPL due to reuse or in the obtained product line when the bottom-up strategy is selected.
A possible solution to this problem can be the refactoring which can improve the internal structure of
source code without altering external behavior. This paper proposes an approach for building SPL from
source code using the bottom-up strategy. Its purpose is to reduce code smells in the obtained SPL using
refactoring source code. This approach proposes a possible solution using reverse engineering to obtain
the feature model of the SPL.
Exploring the World of Software Testing.pdfKajal Digital
Software testing is a systematic process that involves evaluating and validating a software application to identify and rectify defects, ensuring it performs as intended. It plays a pivotal role in preventing potentially costly glitches and errors that could lead to system failures, security breaches, or dissatisfied users. By detecting and resolving issues at an early stage, software testing safeguards both the end-users and the reputation of organizations.
Software Development Today Everything You Need To Know.pdfchristiemarie4
Willing to develop software for your enterprise, but confused about where to start? Here is the blog that explains everything you need to know about software development.
Modern gadgets and machines such as medical equipments, mobile phones, cars and even military hardware run on software. The operational efficiency and accuracy of these machines are critical to life and the well being of modern civilization. When the software powering these machines fail it exposes life to danger and can cause the failure of businesses. In this paper, software quality measure is presented with the emphasis on improving standard and controlling damages that may result from badly developed application. The research shows various software quality standards and quality metrics and how they can be applied. The application of the metrics in measuring software quality in the research produced results which shows that the code metrics performance is better than the design metrics performance and points to a new way of improving quality by refactoring application code instead of developing new designs. This is believed to ensure reusability and reduced failure rate when software is developed
'Mixing Open And Commercial Tools' by Mauro GarofaloTEST Huddle
Mixing open source and commercial software is a challenge we face today. The right combined solution offers advantages in flexibility, functionality, performance, and management that aren't available when either open source or commercial technologies are used alone. But one of the major issues is that they don’t always play well together. Some of them can’t be loaded together or they fail to integrate properly.
In this presentation we will provide a case study of successful blending open source and commercial software for testing Java applications. The testing environment consisted of using Subversion as versioned repository for tests, JIRA for issue management and in mixing IBM Rational Functional Tester with an open framework for automated functional, regression and GUI testing. These tools provide a rich set of high-level Java API useful for integrating with each other, by minimizing the integration costs. During the presentation, we will explore the costs (open tools used have no fees, integration and training costs …), the advantage (innovation, products that are best-of-breed …), the risks (dedicated support, community feedbacks, ability to add extensions …) and the product’s quality achieved by our solution compared to a full open source or commercial approach. By our experience, we will provide some hints and tips to guide testers and managers to choose a good mix between open and commercial tools based on: budget, technology, know-how and requested quality.
Programmer Productivity Enhancement Through Controlled Natural Language Inputijseajournal
We have created CABERNET, a Controlled Nature Language (CNL) based approach to program creation. CABERNET allows programmers to use a simple outline-based syntax. This allows increased programmer efficiency and syntax flexibility. CNLs have successfully been used for writing requirements documents. We propose taking this approach well beyond this to fully functional programs. Through the use of heuristics and inference to analyze and determine the programmer’s intent we are able to create fully functional mobile applications. The goal is for programs to be aligned with the way that the humans think rather than the way computers process information. Through the use of templates a CABERNET application can be processed to run on multiple run time environments. Because processing of a CABERNET program file results in native application program performance is maintained.
A metrics suite for variable categorizationt to support program invariants[IJCSEA Journal
Invariants are generally implicit. Explicitly stating program invariants, help programmers to identify
program properties that must be preserved while modifying the code. Existing dynamic techniques detect
invariants which includes both relevant and irrelevant/unused variables and thereby relevant and
irrelevant invariants involved in the program. Due to the presence of irrelevant variables and irrelevant
invariants, speed and efficiency of techniques are affected. Also, displaying properties about irrelevant
variables and irrelevant invariants distracts the user from concentrating on properties of relevant
variables. To overcome these deficiencies only relevant variables are considered by ignoring irrelevant
variables. Further, relevant variables are categorized as design variables and non-design variables. For
this purpose a metrics suite is proposed. These metrics are validated against Weyuker’s principles and
applied on RFV and JLex open source software. Similarly, relevant invariants are categorized as design
invariants, non-design invariants and hybrid invariants. For this purpose a set of rules are proposed. This
entire process enormously improves the speed and efficiency of dynamic invariant detection techniques
Visualizing Object-oriented Software for Understanding and Documentation Ra'Fat Al-Msie'deen
Understanding or comprehending source code is one of
the core activities of software engineering. Understanding object-oriented source code is essential and required when a programmer maintains, migrates, reuses, documents or enhances source code. The source code that is not comprehended cannot be changed. The comprehension of object-oriented source code is a difficult problem solving process. In order to document object-oriented software system there are needs to understand its source code. To do so, it is necessary to mine source code dependencies in addition to quantitative information in source code such as the
number of classes. This paper proposes an automatic approach, which aims to document object-oriented software by visualizing its source code. The design of the object-oriented source code and its main characteristics are represented in the visualization. Package content, class information, relationships between classes, dependencies between methods and software metrics is displayed. The extracted views are very helpful to understand and document the object-oriented software. The novelty of this approach is the exploiting of code dependencies and quantitative information in source code to document object-oriented software efficiently by means of a set of graphs. To validate the approach, it has been applied to several case studies. The results of this evaluation showed that most of the object-oriented software systems have been documented correctly.
Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components.
MODULE 1 :
Software Product and Process
Introduction –FAQs About Software Engineering,
Definition Of Software Engineering,
Difference Between Software Engineering And Computer Science,
Difference Between Software Engineering And System Engineering,
Software Process,
Software Process Models,
The Waterfall Model,
Incremental Process Models,
Evolutionary Process Models
Spiral Development, Prototyping,
Component Based Software Engineering ,
The Unified Process, Attributes Of Good Software,
Key Challenges Facing By Software Engineering,
Verification – Validation,
Computer Based System,
Business Process Engineering,
International Journal of Soft Computing and Engineering (IJShildredzr1di
International Journal of Soft Computing and Engineering (IJSCE)
ISSN: 2231-2307, Volume-2, Issue-3, July 2012
251
Abstract— In recent years, software testing is becoming more
popular and important in the software development industry.
Indeed, software testing is a broad term encircling a variety of
activities along the development cycle and beyond, aimed at
different goals. Hence, software testing research faces a collection
of challenges. A consistent roadmap of most relevant challenges is
proposed here. In it, the starting point is constituted by some
important past achievements, while the destination consists of two
major identified goals to which research ultimately leads, but
which remains as reachable as goals. The routes from the
achievements to the goals are paved by outstanding research
challenges, which are discussed in the paper along with the
ongoing work.
Software testing is as old as the hills in the history of digital
computers. The testing of software is an important means of
assessing the software to determine its quality. Since testing
typically consumes 40~50% of development efforts, and consumes
more effort for systems that require higher levels of reliability, it is
a significant part of the software engineering
Software testing is a very broad area, which involves many
other technical and non-technical areas, such as specification,
design and implementation, maintenance, process and
management issues in software engineering. Our study focuses on
the state of the art in testing techniques, as well as the latest
techniques which representing the future direction of this area.
Today, testing is the most challenging and dominating activity
used by industry, therefore, improvement in its effectiveness, both
with respect to the time and resources, is taken as a major factor
by many researchers
The purpose of testing can be quality assurance, verification,
and validation or reliability estimation. It is a tradeoff between
budget, time and quality. Software Quality is the central concern
of software engineering. Testing is the single most widely used
approach to ensuring software quality.
(Keywords: SDLC, Software quality, Testing techniq
Technique .)
I. INTRODUCTION
I. Introduction: Software Testing
Software testing is the process of executing a program or
system with the intent of finding errors. Software is not unlike
other physical processes where inputs are received and
outputs are produced. Where software differs is in the manner
in which it fails. Most physical systems fail in a fixed (and
reasonably small) set of ways. By contrast, software can fail in
Manuscript received: on July, 2012
Maneela Tuteja, Department of Information TechnologyDronacharya
College of Engineering, Gurgaon, Haryana,.
Gaurav Dubey, Amity School of Computer Sciences, Amity University,
Uttar Pradesh,India.,
.
many bizarre ways. Detec ...
In this presentation, it will cover different software development methodologies. These include the common types of SDM, and the pros and cons.
A software development methodology involves several steps. These include planning, structuring, and performance tracking.
In some instances, it may also include extreme programming. The objective is to streamline the process when developing software or any product.
Almost all software development methodologies are non-technical. This means they do not deal with the technical aspects of software design and development. They focus more on the internal operations, and other processes involved in the project.
Take note that each has its specific features. Gauge your options, and choose the best one that suits your needs.
Similar to Software evolution understanding: Automatic extraction of software identifiers map for object-oriented software systems (20)
SoftCloud: A Tool for Visualizing Software Artifacts as Tag Clouds.pdfRa'Fat Al-Msie'deen
Software artifacts visualization helps software developers to manage the size and complexity of the software system. The tag cloud technique visualizes tags within the cloud according to their frequencies in software artifacts. A font size of the tag within the cloud indicates its frequency within a software artifact, while the color of a tag within the cloud uses just for aesthetic purposes. This paper suggests a new approach (SoftCloud) to visualize software artifacts as a tag cloud. The originality of SoftCloud is visualizing all the artifacts available to the software program as a tag cloud. Experiments have conducted on different software artifacts to validate SoftCloud and demonstrate its strengths. The results showed the ability of SoftCloud to correctly retrieve all tags and their frequencies from available software artifacts.
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports.pdfRa'Fat Al-Msie'deen
A Bug Tracking System (BTS), such as Bugzilla, is generally utilized to track submitted Bug Reports (BRs) for a particular software system. Duplicate Bug Report (DBR) retrieval is the process of obtaining a DBR in the BTS. This process is important to avoid needless work from engineers on DBRs. To prevent wasting engineer resources, such as effort and time, on previously submitted (or duplicate) BRs, it is essential to find and retrieve DBRs as soon as they are submitted by software users. Thus, this paper proposes an automatic approach (called BushraDBR) that aims to assist an engineer (called a triager) to retrieve DBRs and stop the duplicates before they start. Where BushraDBR stands for Bushra Duplicate Bug Reports retrieval process. Therefore, when a new BR is sent to the Bug Repository (BRE), an engineer checks whether it is a duplicate of an existing BR in BRE or not via BushraDBR approach. If it is, the engineer marks it as DBR, and the BR is excluded from consideration for any additional work; otherwise, the BR is added to the BRE. BushraDBR approach relies on Textual Similarity (TS) between the newly submitted BR and the rest of the BRs in BRE to retrieve DBRs. BushraDBR exploits unstructured data from BRs to apply Information Retrieval (IR) methods in an efficient way. BushraDBR approach uses two techniques to retrieve DBRs: Latent Semantic Indexing (LSI) and Formal Concept Analysis (FCA). The originality of BushraDBR is to stop DBRs before they occur by comparing the newly reported BR with the rest of the BRs in the BTS, thus saving time and effort during the Software Maintenance (SM) process. BushraDBR also uniquely retrieves DBR through the use of LSI and FCA techniques. BushraDBR approach had been validated and evaluated on several publicly available data sets from Bugzilla. Experiments show the ability of BushraDBR approach to retrieve DBRs in an efficient and accurate manner.
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug ReportsRa'Fat Al-Msie'deen
A Bug Tracking System (BTS), such as Bugzilla, is generally utilized to track submitted Bug Reports (BRs) for a particular software system. Duplicate Bug Report (DBR) retrieval is the process of obtaining a DBR in the BTS. This process is important to avoid needless work from engineers on DBRs. To prevent wasting engineer resources, such as effort and time, on previously submitted (or duplicate) BRs, it is essential to find and retrieve DBRs as soon as they are submitted by software users. Thus, this paper proposes an automatic approach (called BushraDBR) that aims to assist an engineer (called a triager) to retrieve DBRs and stop the duplicates before they start. Where BushraDBR stands for Bushra Duplicate Bug Reports retrieval process. Therefore, when a new BR is sent to the Bug Repository (BRE), an engineer checks whether it is a duplicate of an existing BR in BRE or not via BushraDBR approach. If it is, the engineer marks it as DBR, and the BR is excluded from consideration for any additional work; otherwise, the BR is added to the BRE. BushraDBR approach relies on Textual Similarity (TS) between the newly submitted BR and the rest of the BRs in BRE to retrieve DBRs. BushraDBR exploits unstructured data from BRs to apply Information Retrieval (IR) methods in an efficient way. BushraDBR approach uses two techniques to retrieve DBRs: Latent Semantic Indexing (LSI) and Formal Concept Analysis (FCA). The originality of BushraDBR is to stop DBRs before they occur by comparing the newly reported BR with the rest of the BRs in the BTS, thus saving time and effort during the Software Maintenance (SM) process. BushraDBR also uniquely retrieves DBR through the use of LSI and FCA techniques. BushraDBR approach had been validated and evaluated on several publicly available data sets from Bugzilla. Experiments show the ability of BushraDBR approach to retrieve DBRs in an efficient and accurate manner.
Source code summarization is a process of generating summaries that describes software code, the majority of source code summarization usually generated manually, where the summaries are written by software developers. Recently, new automated approaches are becoming more useful. These approaches have been found to be effective in some cases. The main weaknesses of these approaches are that they never exploit code dependencies and summarize either the software classes or methods but not both. This paper proposes a source code summarization approach (Suncode) that produces a short description for each class and method in the software system. To validate the approach, it has been applied on several case studies. Moreover, the generated summaries are compared to summaries that written by human experts and to summaries that written by a state-of-the-art solution. Results of this paper found that Suncode summaries provide better information about code dependencies comparing with other studies. In addition, Suncode summaries can improve and support the current software documentation. The results found that manually written summaries were more precise and short as well.
FeatureClouds: Naming the Identified Feature Implementation Blocks from Softw...Ra'Fat Al-Msie'deen
Identifying software identifiers that implement a particular feature of a software product is known as feature identification. Feature identification is one of the most critical and popular processes performed by software engineers during software maintenance activity. However, a meaningful name must be assigned to the Identified Feature Implementation Block (IFIB) to complete the feature identification process. The feature naming process remains a challenging task, where the majority of existing approaches manually assign the name of the IFIB. In this paper, the approach called FeatureClouds was proposed, which can be exploited by software developers to name the IFIBs from software code. FeatureClouds approach incorporates word clouds visualization technique to name Feature Blocks (FBs) by using the most frequent words across these blocks. FeatureClouds had evaluated by assessing its added benefit to the current approaches in the literature, where limited tool support was supplied to software developers to distinguish feature names of the IFIBs. For validity, FeatureClouds had applied to draw shapes and ArgoUML software. The findings showed that the proposed approach achieved promising results according to well-known metrics in terms of Precision and Recall.
YamenTrace: Requirements Traceability - Recovering and Visualizing Traceabili...Ra'Fat Al-Msie'deen
YamenTrace - Requirements Traceability: Recovering and Visualizing Traceability Links Between Requirements and Source Code of Object-oriented Software Systems (Presentation 2023)
Automatic Labeling of the Object-oriented Source Code: The Lotus ApproachRa'Fat Al-Msie'deen
Most of open-source software systems become available on the internet today. Thus, we need automatic methods to label software code. Software code can be labeled with a set of keywords. These keywords in this paper referred as software labels. The goal of this paper is to provide a quick view of the software code vocabulary. This paper proposes an automatic approach to document the object-oriented software by labeling its code. The approach exploits all software identifiers to label software code. The paper presents the results of study conducted on the ArgoUML and drawing shapes case studies. Results showed that all code labels were correctly identified.
Constructing a software requirements specification and design for electronic ...Ra'Fat Al-Msie'deen
Requirements engineering process intends to obtain software services and constraints. This process is essential to meet the customer's needs and expectations. This process includes three main activities in general. These are detecting requirements by interacting with software stakeholders, transferring these requirements into a standard document, and examining that the requirements really define the software that the client needs. Functional requirements are services that the software should deliver to the end-user. In addition, functional requirements describe how the software should respond to specific inputs, and how the software should behave in certain circumstances. This paper aims to develop a software requirements specification document of the electronic IT news magazine system. The electronic magazine provides users to post and view up-to-date IT news. Still, there is a lack in the literature of comprehensive studies about the construction of the electronic magazine software specification and design in conformance with the contemporary software development processes. Moreover, there is a need for a suitable research framework to support the requirements engineering process. The novelty of this paper is the construction of software specification and design of the electronic magazine by following the Al-Msie'deen research framework. All the documents of software requirements specification and design have been constructed to conform to the agile usage-centered design technique and the proposed research framework. A requirements specification and design are suggested and followed for the construction of the electronic magazine software. This study proved that involving users extensively in the process of software requirements specification and design will lead to the creation of dependable and acceptable software systems.
Detecting commonality and variability in use-case diagram variantsRa'Fat Al-Msie'deen
The use-case diagram is a software artifact. Thus, as with any software artifact, the use-case diagrams change across time through the software development life cycle. Therefore, several versions of the same diagram are existed at distinct times. Thus, comparing all use-case diagram variants to detect common and variable use-cases becomes one of the main challenges in the product line reengineering field. The contribution of this paper is to suggest an automatic approach to compare a collection of use-case diagram variants and detect both commonality and variability. In our work, every use-case represents a feature. The proposed approach visualizes the detected features using formal concept analysis, where common and variable features are introduced to software engineers. The proposed approach was applied on a mobile media case study to be validated. The findings confirm the importance and the performance of the suggested approach as all common and variable features were precisely detected via formal concept analysis and latent semantic indexing.
Naming the Identified Feature Implementation Blocks from Software Source CodeRa'Fat Al-Msie'deen
Identifying software identifiers that implement a particular feature of a software product is known as feature identification. Feature identification is one of the most critical and popular processes performed by software engineers during software maintenance activity. However, a meaningful name must be assigned to the Identified Feature Implementation Block (IFIB) to complete the feature identification process. The feature naming process remains a challenging task, where the majority of existing approaches manually assign the name of the IFIB. In this paper, the approach called FeatureClouds was proposed, which can be exploited by software developers to name the IFIBs from software code. FeatureClouds approach incorporates word clouds visualization technique to name Feature Blocks (FBs) by using the most frequent words across these blocks. FeatureClouds had evaluated by assessing its added benefit to the current approaches in the literature, where limited tool support was supplied to software developers to distinguish feature names of the IFIBs. For validity, FeatureClouds had applied to draw shapes and ArgoUML software. The findings showed that the proposed approach achieved promising results according to well-known metrics in terms of Precision and Recall.
How to Position Your Globus Data Portal for Success Ten Good PracticesGlobus
Science gateways allow science and engineering communities to access shared data, software, computing services, and instruments. Science gateways have gained a lot of traction in the last twenty years, as evidenced by projects such as the Science Gateways Community Institute (SGCI) and the Center of Excellence on Science Gateways (SGX3) in the US, The Australian Research Data Commons (ARDC) and its platforms in Australia, and the projects around Virtual Research Environments in Europe. A few mature frameworks have evolved with their different strengths and foci and have been taken up by a larger community such as the Globus Data Portal, Hubzero, Tapis, and Galaxy. However, even when gateways are built on successful frameworks, they continue to face the challenges of ongoing maintenance costs and how to meet the ever-expanding needs of the community they serve with enhanced features. It is not uncommon that gateways with compelling use cases are nonetheless unable to get past the prototype phase and become a full production service, or if they do, they don't survive more than a couple of years. While there is no guaranteed pathway to success, it seems likely that for any gateway there is a need for a strong community and/or solid funding streams to create and sustain its success. With over twenty years of examples to draw from, this presentation goes into detail for ten factors common to successful and enduring gateways that effectively serve as best practices for any new or developing gateway.
In software engineering, the right architecture is essential for robust, scalable platforms. Wix has undergone a pivotal shift from event sourcing to a CRUD-based model for its microservices. This talk will chart the course of this pivotal journey.
Event sourcing, which records state changes as immutable events, provided robust auditing and "time travel" debugging for Wix Stores' microservices. Despite its benefits, the complexity it introduced in state management slowed development. Wix responded by adopting a simpler, unified CRUD model. This talk will explore the challenges of event sourcing and the advantages of Wix's new "CRUD on steroids" approach, which streamlines API integration and domain event management while preserving data integrity and system resilience.
Participants will gain valuable insights into Wix's strategies for ensuring atomicity in database updates and event production, as well as caching, materialization, and performance optimization techniques within a distributed system.
Join us to discover how Wix has mastered the art of balancing simplicity and extensibility, and learn how the re-adoption of the modest CRUD has turbocharged their development velocity, resilience, and scalability in a high-growth environment.
Developing Distributed High-performance Computing Capabilities of an Open Sci...Globus
COVID-19 had an unprecedented impact on scientific collaboration. The pandemic and its broad response from the scientific community has forged new relationships among public health practitioners, mathematical modelers, and scientific computing specialists, while revealing critical gaps in exploiting advanced computing systems to support urgent decision making. Informed by our team’s work in applying high-performance computing in support of public health decision makers during the COVID-19 pandemic, we present how Globus technologies are enabling the development of an open science platform for robust epidemic analysis, with the goal of collaborative, secure, distributed, on-demand, and fast time-to-solution analyses to support public health.
Designing for Privacy in Amazon Web ServicesKrzysztofKkol1
Data privacy is one of the most critical issues that businesses face. This presentation shares insights on the principles and best practices for ensuring the resilience and security of your workload.
Drawing on a real-life project from the HR industry, the various challenges will be demonstrated: data protection, self-healing, business continuity, security, and transparency of data processing. This systematized approach allowed to create a secure AWS cloud infrastructure that not only met strict compliance rules but also exceeded the client's expectations.
Listen to the keynote address and hear about the latest developments from Rachana Ananthakrishnan and Ian Foster who review the updates to the Globus Platform and Service, and the relevance of Globus to the scientific community as an automation platform to accelerate scientific discovery.
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
The Earth System Grid Federation (ESGF) is a global network of data servers that archives and distributes the planet’s largest collection of Earth system model output for thousands of climate and environmental scientists worldwide. Many of these petabyte-scale data archives are located in proximity to large high-performance computing (HPC) or cloud computing resources, but the primary workflow for data users consists of transferring data, and applying computations on a different system. As a part of the ESGF 2.0 US project (funded by the United States Department of Energy Office of Science), we developed pre-defined data workflows, which can be run on-demand, capable of applying many data reduction and data analysis to the large ESGF data archives, transferring only the resultant analysis (ex. visualizations, smaller data files). In this talk, we will showcase a few of these workflows, highlighting how Globus Flows can be used for petabyte-scale climate analysis.
Experience our free, in-depth three-part Tendenci Platform Corporate Membership Management workshop series! In Session 1 on May 14th, 2024, we began with an Introduction and Setup, mastering the configuration of your Corporate Membership Module settings to establish membership types, applications, and more. Then, on May 16th, 2024, in Session 2, we focused on binding individual members to a Corporate Membership and Corporate Reps, teaching you how to add individual members and assign Corporate Representatives to manage dues, renewals, and associated members. Finally, on May 28th, 2024, in Session 3, we covered questions and concerns, addressing any queries or issues you may have.
For more Tendenci AMS events, check out www.tendenci.com/events
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
Strategies for Successful Data Migration Tools.pptxvarshanayak241
Data migration is a complex but essential task for organizations aiming to modernize their IT infrastructure and leverage new technologies. By understanding common challenges and implementing these strategies, businesses can achieve a successful migration with minimal disruption. Data Migration Tool like Ask On Data play a pivotal role in this journey, offering features that streamline the process, ensure data integrity, and maintain security. With the right approach and tools, organizations can turn the challenge of data migration into an opportunity for growth and innovation.
Check out the webinar slides to learn more about how XfilesPro transforms Salesforce document management by leveraging its world-class applications. For more details, please connect with sales@xfilespro.com
If you want to watch the on-demand webinar, please click here: https://www.xfilespro.com/webinars/salesforce-document-management-2-0-smarter-faster-better/
A Comprehensive Look at Generative AI in Retail App Testing.pdfkalichargn70th171
Traditional software testing methods are being challenged in retail, where customer expectations and technological advancements continually shape the landscape. Enter generative AI—a transformative subset of artificial intelligence technologies poised to revolutionize software testing.
Understanding Globus Data Transfers with NetSageGlobus
NetSage is an open privacy-aware network measurement, analysis, and visualization service designed to help end-users visualize and reason about large data transfers. NetSage traditionally has used a combination of passive measurements, including SNMP and flow data, as well as active measurements, mainly perfSONAR, to provide longitudinal network performance data visualization. It has been deployed by dozens of networks world wide, and is supported domestically by the Engagement and Performance Operations Center (EPOC), NSF #2328479. We have recently expanded the NetSage data sources to include logs for Globus data transfers, following the same privacy-preserving approach as for Flow data. Using the logs for the Texas Advanced Computing Center (TACC) as an example, this talk will walk through several different example use cases that NetSage can answer, including: Who is using Globus to share data with my institution, and what kind of performance are they able to achieve? How many transfers has Globus supported for us? Which sites are we sharing the most data with, and how is that changing over time? How is my site using Globus to move data internally, and what kind of performance do we see for those transfers? What percentage of data transfers at my institution used Globus, and how did the overall data transfer performance compare to the Globus users?
Software Engineering, Software Consulting, Tech Lead.
Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Security,
Spring Transaction, Spring MVC,
Log4j, REST/SOAP WEB-SERVICES.
Why React Native as a Strategic Advantage for Startup Innovation.pdfayushiqss
Do you know that React Native is being increasingly adopted by startups as well as big companies in the mobile app development industry? Big names like Facebook, Instagram, and Pinterest have already integrated this robust open-source framework.
In fact, according to a report by Statista, the number of React Native developers has been steadily increasing over the years, reaching an estimated 1.9 million by the end of 2024. This means that the demand for this framework in the job market has been growing making it a valuable skill.
But what makes React Native so popular for mobile application development? It offers excellent cross-platform capabilities among other benefits. This way, with React Native, developers can write code once and run it on both iOS and Android devices thus saving time and resources leading to shorter development cycles hence faster time-to-market for your app.
Let’s take the example of a startup, which wanted to release their app on both iOS and Android at once. Through the use of React Native they managed to create an app and bring it into the market within a very short period. This helped them gain an advantage over their competitors because they had access to a large user base who were able to generate revenue quickly for them.
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?XfilesPro
Worried about document security while sharing them in Salesforce? Fret no more! Here are the top-notch security standards XfilesPro upholds to ensure strong security for your Salesforce documents while sharing with internal or external people.
To learn more, read the blog: https://www.xfilespro.com/how-does-xfilespro-make-document-sharing-secure-and-seamless-in-salesforce/
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
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.
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
&
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.
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.