1,310 research outputs found
30 Years of Software Refactoring Research: A Systematic Literature Review
Peer Reviewedhttps://deepblue.lib.umich.edu/bitstream/2027.42/155872/4/30YRefactoring.pd
30 Years of Software Refactoring Research:A Systematic Literature Review
Due to the growing complexity of software systems, there has been a dramatic
increase and industry demand for tools and techniques on software refactoring
in the last ten years, defined traditionally as a set of program
transformations intended to improve the system design while preserving the
behavior. Refactoring studies are expanded beyond code-level restructuring to
be applied at different levels (architecture, model, requirements, etc.),
adopted in many domains beyond the object-oriented paradigm (cloud computing,
mobile, web, etc.), used in industrial settings and considered objectives
beyond improving the design to include other non-functional requirements (e.g.,
improve performance, security, etc.). Thus, challenges to be addressed by
refactoring work are, nowadays, beyond code transformation to include, but not
limited to, scheduling the opportune time to carry refactoring, recommendations
of specific refactoring activities, detection of refactoring opportunities, and
testing the correctness of applied refactorings. Therefore, the refactoring
research efforts are fragmented over several research communities, various
domains, and objectives. To structure the field and existing research results,
this paper provides a systematic literature review and analyzes the results of
3183 research papers on refactoring covering the last three decades to offer
the most scalable and comprehensive literature review of existing refactoring
research studies. Based on this survey, we created a taxonomy to classify the
existing research, identified research trends, and highlighted gaps in the
literature and avenues for further research.Comment: 23 page
A fuzzy method for propagating functional architecture constraints to physical architecture.
International audienceModular product design has received great attention for about 10 years, but few works have proposed tools to either jointly design the functional and physical architectures or propagate the impact of evolutions from one domain to another. In this paper, we present a new method supporting the product architecture design. In new product development situations or in reengineering projects, system architects could use this method in the early design stages to predetermine cohesive modules and integrative elements and to simulate a domain architecture by propagating architecture choices from another domain. To illustrate our approach, we present an industrial case study concerning the design of a new automobile powertrain
Source code independent reverse engineering of dynamic web sites
This paper describes source code independent reverse engineering of dynamic
web sites. The tool Revangie builds a form-oriented analysis model solely from
the usage of a web application. The recovered models can be, for example,
exploited for the purpose of requirements engineering and load test
development. Revangie can explore a given web application fully automatically
or can passively record its usages. The collected data, i.e., data about
screens, server-side programs, and system responsiveness, are analyzed in
order to build a user interface model. The paper presents several adequate
screen classifications, which are utilized to yield significant models
Automatic Semantic Causal Map Integration
Causal map integration is helpful to broaden group member’s eyesight and sheds insight on the detection of overall group’s cognition tendencies. However the existing causal map integration approaches are either based on human intervention mechanism that is criticized with researcher bias, or based on syntactic mechanism that lacks of semantic. In order to improve the current causal map integration methodology and practice, this study proposes the conceptualization and formalization of an innovative causal map integration approach, automatic semantic causal map integration, grounded on the Sowa’s Conceptual Graph Theory and Kosko’s Fuzzy Knowledge Combination Theory. The system prototype with an example is also illustrated
A Hybrid Data-Driven Web-Based UI-UX Assessment Model
Today, a large proportion of end user information systems have their
Graphical User Interfaces (GUI) built with web-based technology (JavaScript,
CSS, and HTML). Some of these web-based systems include: Internet of Things
(IOT), Infotainment (in vehicles), Interactive Display Screens (for digital
menu boards, information kiosks, digital signage displays at bus stops or
airports, bank ATMs, etc.), and web applications/services (on smart devices).
As such, web-based UI must be evaluated in order to improve upon its ability to
perform the technical task for which it was designed. This study develops a
framework and a processes for evaluating and improving the quality of web-based
user interface (UI) as well as at a stratified level. The study develops a
comprehensive framework which is a conglomeration of algorithms such as the
multi-criteria decision making method of analytical hierarchy process (AHP) in
coefficient generation, sentiment analysis, K-means clustering algorithms and
explainable AI (XAI)
Feature-based methodology for supporting architecture refactoring and maintenance of long-life software systems
Zusammenfassung
Langlebige Software-Systeme durchlaufen viele bedeutende Veraenderungen im Laufe ihres Lebenszyklus,
um der Weiterentwicklung der Problemdomaenen zu folgen. Normalerweise ist es schwierig eine
Software-Systemarchitektur den schnellen Weiterentwicklungen einer Problemdomaene anzupassen und
mit der Zeit wird der Unterschied zwischen der Problemdomaene und der Software-Systemarchitektur
zu groĂź, um weitere Softwareentwicklung sinnvoll fortzufuehren. Fristgerechte Refactorings der Systemarchitektur
sind notwendig, um dieses Problem zu vermeiden.
Aufgrund des verhaeltnismaeĂźig hohen Gefahrenpotenzials und des zeitlich stark verzoegerten Nutzens
von Refactorings, werden diese MaĂźnahmen normalerweise bis zum letztmoeglichen Zeitpunkt hinausgeschoben.
In der Regel ist das Management abgeneigt Architektur-Refactorings zu akzeptieren,
auĂźer diese sind absolut notwendig. Die bevorzugte Vorgehensweise ist, neue Systemmerkmale ad hoc
hinzuzufuegen und nach dem Motto ”Aendere nie etwas an einem funktionierenden System!” vorzugehen.
Letztlich ist das Ergebnis ein Architekturzerfall (Architekturdrift). Die Notwendigkeit kleiner
Refactoring-Schritte fuehrt zur Notwendigkeit des Architektur-Reengineerings. Im Gegensatz zum
Refactoring, das eine normale Entwicklungstaetigkeit darstellt, ist Reengineering eine Form der Software-
”Revolution”. Reengineeringprojekte sind sehr riskant und kostspielig. Der Nutzen des Reengineerings
ist normalerweise nicht so hoch wie erwartet. Wenn nach dem Reengineering schlieĂźlich die erforderlichen
Architekturaenderungen statt.nden, kann dies zu spaet sein. Trotz der enormen in das Projekt
gesteckten Bemuehungen erfuellen die Resultate des Reengineerings normalerweise nicht die Erwartungen.
Es kann passieren, dass sehr bald ein neues, kostspieliges Reengineering erforderlich wird.
In dieser Arbeit werden das Problem der Softwareevolution und der Zerfall von Softwarearchitekturen
behandelt. Eine Methode wird vorgestellt, welche die Softwareentwicklung in ihrer entscheidenden
Phase, dem Architekturrefactoring, unterstuetzt. Die Softwareentwicklung wird sowohl in technischer
als auch organisatorischer Hinsicht unterstuetzt. Diese Arbeit hat neue Techniken entwickelt,
welche die Reverse-Engineering-, Architecture-Recovery- und Architecture-Redesign-Taetigkeiten unterst
uetzen. Sie schlaegt auch Aenderungen des Softwareentwicklungsprozesses vor, die fristgerechte Architekturrefactorings
erzwingen koennen und damit die Notwendigkeit der Durchfuehrung eines Architektur-
Reengineerings vermeiden.
In dieser Arbeit wird die Merkmalmodellierung als Hauptinstrument verwendet. Merkmale werden
genutzt, um die Abstraktionsluecke zwischen den Anforderungen der Problemdomaene und der Systemarchitektur
zu fuellen. Merkmalmodelle werden auch als erster Grundriss fr die Wiederherstellung
der verlorenen Systemarchitektur genutzt. Merkmalbasierte Analysen fuehren zu diversen, nuetzlichen
Hinweisen fuer den erneuten Entwurf (das Re-Design) einer Architektur. SchlieĂźlich wird die Merkmalmodellierung
als Kommunikationsmittel zwischen unterschiedlichen Projektbeteiligten (Stakeholdern)
im Verlauf des Softwareengineering-Prozesses verwendet und auf dieser Grundlage wird ein neuer
Anforderungsde.nitionsprozess vorgeschlagen, der die erforderlichen Architekturrefactorings erzwingt.The long-life software systems withstand many significant changes throughout their life-cycle in order
to follow the evolution of the problem domains. Usually, the software system architecture can not
follow the rapid evolution of a problem domain and with time, the diversion of the architecture in
respect to the domain features becomes prohibiting for software evolution. For avoiding this problem,
periodical refactorings of the system architecture are required.
Usually, architecture refactorings are postponed until the very last moment, because of the relatively
high risk involved and the lack of short-term profit. As a rule, the management is unwilling to accept
architecture refactorings unless they become absolutely necessary. The preferred way of working is to
add new system features in an ad-hoc manner and to keep the rule ”Never touch a running system!”.
The final result is an architecture decay. The need of performing small refactoring activities turns into
need for architecture reengineering. In contrast to refactoring, which is a normal evolutionary activity,
reengineering is a kind of software ”revolution”. Reengineering projects are risky and expensive. The
effectiveness of reengineering is also usually not as high as expected. When finally after reengineering
the required architecture changes take place, it can be too late. Despite the enormous invested efforts,
the results of the reengineering usually do not satisfy the expectations. It might happen that very
soon a new expensive reengineering is required.
This thesis deals with the problem of software evolution and the decay of software architectures.
It presents a method, which assists software evolution in its crucial part, the architecture refactoring.
The assistance is performed for both technical and organizational aspects of the software evolution.
The thesis provides new techniques for supporting reverse engineering, architecture recovery and redesigning
activities. It also proposes changes to the software engineering process, which can force
timely architecture refactorings and thus avoid the need of performing architecture reengineering.
For the work in this thesis feature modeling is utilized as a main asset. Features are used to fill the
abstraction gap between domain requirements and system architecture. Feature models are also used
as an outline for recovering of lost system architectures. Through feature-based analyses a number of
useful hints and clues for architecture redesign are produced. Finally, feature modeling is used as a
communication between different stakeholders of the software engineering process and on this basis a
new requirements engineering process is proposed, which forces the needed architecture refactorings
A Sentiment Analysis Using Fuzzy Support Vector Machine Algorithm
The Ministry of Communication and Information and the Ministry of BUMN of The Republic of Indonesia designed a mobile app “Peduli Lindungi” to be used to help the public and related government agencies in carrying out screening and tracing people's movement to stop the spread of Corona Virus Disease (Covid-19).The existence of a mobile app, “Peduli Lindungi” triggers abundant different sentiments from the Indonesian community, either positive or negative sentiments. Based on the positive sentiment, the government of the Republic of Indonesia may have some feedback about the aspects of the app that should be maintained. In contrast, negative sentiments can be used as initial points of the potential improvement of the mobile app. This study applies a Fuzzy Support Vector Machine (FSVM) model to classify the user's reviews on Peduli Lindungi Application. FSVM can classify customers’ reviews into two or more classes and relatively results in higher accuracy than other classification approaches. The results of this study indicate that the classification of reviews with FSVM produces quite good accuracy  with a value of 77%. A total correct prediction is 2192 reviews out of 2813 reviews
Impact of Fuzzy Logic in Object-Oriented Database Through Blockchain
In this article, we show that applying fuzzy reasoning to an object-arranged data set produces noticeably better results than applying it to a social data set by applying it to both social and object-situated data sets. A Relational Data Base Management System (RDBMS) product structure offers a practical and efficient way to locate, store, and retrieve accurate data included inside a data collection. In any case, clients typically have to make vague, ambiguous, or fanciful requests. Our work allows clients the freedom to utilise FRDB to examine the database in everyday language, enabling us to provide a range of solutions that would benefit clients in a variety of ways. Given that the degree of attributes in a fuzzy knowledge base goes from 0 to 1, the term "fuzzy" was coined. This is due to the base's fictitious formalization's reliance on fuzzy reasoning. In order to lessen the fuzziness of the fuzzy social data set as a result of the abundance of uncertainty and vulnerabilities in clinical medical services information, a fuzzy article located information base is designed here for the Health-Care space. In order to validate the presentation and sufficiency of the fuzzy logic on both data sets, certain fuzzy questions are thus posed of the fuzzy social data set and the fuzzy item-situated information base.
- …