Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Ehsan Kouroshfar

dblp:83/7074 · DBLP profile ↗
← Back
5ranked-venue papers
2as first author
1since 2021 · last 2022
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 5 · 2 first-author · 1 since 2021Databases, data management, data science and information retrieval · 1 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
4 papers
Requirements engineering and software design · 65% Empirical software engineering · 25% Software testing · 11%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Embedded and real-time systems · 100%

Topics — the 8 heaviest of 8, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Requirements engineering and software design › software architecture › software architecture evolution
architectural decay
0.612022
Forecasting Architectural Decay From Evolutionary History · IEEE Trans. Software Eng. 2022
Requirements engineering and software design
software architecture
0.322022
Forecasting Architectural Decay From Evolutionary History · IEEE Trans. Software Eng. 2022
Taming uncertainty in self-adaptive software · SIGSOFT FSE 2011
Empirical software engineering › mining software repositories › version history analysis
co-change analysis
0.212013
Studying the effect of co-change dispersion on software quality · ICSE 2013
Empirical software engineering
mining software repositories
0.212013
Studying the effect of co-change dispersion on software quality · ICSE 2013
Software testing
software reliability
0.212013
Proactive Self-Adaptation for Improving the Reliability of Mission-Critical, Embedded, and Mobile Software · IEEE Trans. Software Eng. 2013
Embedded and real-time systems
embedded software
0.212013
Proactive Self-Adaptation for Improving the Reliability of Mission-Critical, Embedded, and Mobile Software · IEEE Trans. Software Eng. 2013
Requirements engineering and software design › software architecture
self-adaptive systems
0.112011
Taming uncertainty in self-adaptive software · SIGSOFT FSE 2011
Empirical software engineering › mining software repositories
defect prediction
0.012013
Studying the effect of co-change dispersion on software quality · ICSE 2013

Methods — techniques the papers use, named apart from their topics

machine learning prediction model · 0.6architectural metrics · 0.6runtime reliability prediction · 0.3replication · 0.3component reallocation · 0.3statistical regression · 0.2possibility theory · 0.1
YearPublicationVenuePosition
2022 Forecasting Architectural Decay From Evolutionary History
abstract
As a software system evolves, its architecture tends to decay, leading to the occurrence of architectural elements that become resistant to maintenance or prone to defects. To address this problem, engineers can significantly benefit from determining which architectural elements will decay before that decay actually occurs. Forecasting decay allows engineers to take steps to prevent decay, such as focusing maintenance resources on the architectural elements most likely to decay. To that end, we construct novel models that predict the quality of an architectural element by utilizing multiple architectural views (both structural and semantic) and architectural metrics as features for prediction. We conduct an empirical study using our prediction models on 38 versions of five systems. Our findings show that we can predict low architectural quality, i.e., architectural decay, with high performance—even for cases of decay that suddenly occur in an architectural module. We further report the factors that best predict architectural quality.
Joshua Garcia, Ehsan Kouroshfar, Negar Ghorbani, Sam Malek
IEEE Trans. Software Eng.2
2015 A Study on the Role of Software Architecture in the Evolution and Quality of Software
abstract
Conventional wisdom suggests that a software system's architecture has a significant impact on its evolution. Prior research has studied the evolution of software using the information of how its files have changed together in their revision history. No prior study, however, has investigated the impact of architecture on the evolution of software from its change history. This is mainly because most open-source software systems do not document their architectures. We have overcome this challenge using several architecture recovery techniques. We used the recovered models to examine if co-changes spanning multiple architecture modules are more likely to introduce bugs than co-changes that are within modules. The results show that the co-changes that cross architectural module boundaries are more correlated with defects than co-changes within modules, implying that, to improve accuracy, bug predictors should also take the software architecture of the system into consideration.
Ehsan Kouroshfar, Mehdi Mirakhorli, Hamid Bagheri, Lu Xiao 0001, Sam Malek, Yuanfang Cai
MSR1
2013 Studying the effect of co-change dispersion on software quality
abstract
Software change history plays an important role in measuring software quality and predicting defects. Co-change metrics such as number of files changed together has been used as a predictor of bugs. In this study, we further investigate the impact of specific characteristics of co-change dispersion on software quality. Using statistical regression models we show that co-changes that include files from different subsystems result in more bugs than co-changes that include files only from the same subsystem. This can be used to improve bug prediction models based on co-changes.
Ehsan Kouroshfar
ICSE1
2013 Proactive Self-Adaptation for Improving the Reliability of Mission-Critical, Embedded, and Mobile Software
abstract
Embedded and mobile software systems are marked with a high degree of unpredictability and dynamism in the execution context. At the same time, such systems are often mission-critical, meaning that they need to satisfy strict reliability requirements. Most current software reliability analysis approaches are not suitable for these types of software systems, as they do not take the changes in the execution context of the system into account. We propose an approach geared to such systems which continuously furnishes refined reliability predictions at runtime by incorporating various sources of information, including the execution context of the system. The reliability predictions are leveraged to proactively place the software in the (near-)optimal configuration with respect to changing conditions. Our approach considers two representative architectural reconfiguration decisions that impact the system's reliability: reallocation of components to processes and changing the number of component replicas. We have realized the approach as part of a framework intended for mission-critical settings, called REsilient SItuated SofTware system (RESIST), and evaluated it using a mobile emergency response system.
Deshan Cooray, Ehsan Kouroshfar, Sam Malek, Roshanak Roshandel
IEEE Trans. Software Eng.2
2011 Taming uncertainty in self-adaptive software
abstract
Self-adaptation endows a software system with the ability to satisfy certain objectives by automatically modifying its behavior. While many promising approaches for the construction of self-adaptive software systems have been developed, the majority of them ignore the uncertainty underlying the adaptation decisions. This has been one of the key obstacles to wide-spread adoption of self-adaption techniques in risk-averse real-world settings. In this paper, we describe an approach, called POssIbilistic SElf-aDaptation (POISED), for tackling the challenge posed by uncertainty in making adaptation decisions. POISED builds on possibility theory to assess both the positive and negative consequences of uncertainty. It makes adaptation decisions that result in the best range of potential behavior. We demonstrate POISED's application to the problem of improving a software system's quality of service via runtime reconfiguration of its customizable software components. We have extensively evaluated POISED using a prototype of a robotic software system.
Naeem Esfahani, Ehsan Kouroshfar, Sam Malek
SIGSOFT FSE2