Pooyan Jamshidi

dblp:57/2301 · DBLP profile ↗
← Back
49ranked-venue papers
7as first author
11since 2021 · last 2025
0000-0002-9342-0703ORCID · corroborated

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

Software engineering, systems software and programming languages · 25 · 4 first-author · 4 since 2021Systems, architecture and hardware · 11 · 2 first-author · 3 since 2021Artificial intelligence and machine learning · 4 · 2 since 2021Applied, interdisciplinary, general and emerging computing · 3 · 2 since 2021Computer networks · 1Graphics, computer vision, multimedia, augmented reality and games · 1 · 1 since 2021
YearPublicationVenuePosition
2025 Introduction to the SEAMS 2023 Special Issue
Raffaela Mirandola, Radu Calinescu, Pooyan Jamshidi
ACM Trans. Auton. Adapt. Syst.3
2025 Introducing Interactions in Multi-Objective Optimization of Software Architectures
abstract
Software architecture optimization aims to enhance non-functional attributes like performance and reliability while meeting functional requirements. Multi-objective optimization employs metaheuristic search techniques, such as genetic algorithms, to explore feasible architectural changes and propose alternatives to designers. However, this resource-intensive process may not always align with practical constraints. This study investigates the impact of designer interactions on multi-objective software architecture optimization. Designers can intervene at intermediate points in the fully automated optimization process, making choices that guide exploration towards more desirable solutions. Through several controlled experiments as well as an initial user study (14 subjects), we compare this interactive approach with a fully automated optimization process, which serves as a baseline. The findings demonstrate that designer interactions lead to a more focused solution space, resulting in improved architectural quality. By directing the search toward regions of interest, the interaction uncovers architectures that remain unexplored in the fully automated process. In the user study, participants found that our interactive approach provides a better trade-off between sufficient exploration of the solution space and the required computation time.
Vittorio Cortellessa, Jorge Andrés Díaz Pace, Daniele Di Pompeo, Sebastian Frank 0001, Pooyan Jamshidi, Michele Tucci 0001, André van Hoorn
ACM Trans. Softw. Eng. Methodol.5
2025 CURE: Simulation-Augmented Autotuning in Robotics
abstract
Robotic systems are typically composed of various subsystems, such as localization and navigation, each encompassing numerous configurable components (e.g., selecting different planning algorithms). Once an algorithm has been selected for a component, its associated configuration options must be set to the appropriate values. Configuration options across the system stack interact nontrivially. Finding optimal configurations for highly configurable robots to achieve desired performance poses a significant challenge due to the interactions between configuration options across software and hardware that result in an exponentially large and complex configuration space. These challenges are further compounded by the need for transferability between different environments and robotic platforms. Data efficient optimization algorithms (e.g., Bayesian optimization) have been increasingly employed to automate the tuning of configurable parameters in cyber-physical systems. However, such optimization algorithms converge at later stages, often after exhausting the allocated budget (e.g., optimization steps, allotted time) and lacking transferability. This article proposes causal understanding and remediation for enhancing robot performance (CURE)—a method that identifies causally relevant configuration options, enabling the optimization process to operate in a reduced search space, thereby enabling faster optimization of robot performance.CUREabstracts the causal relationships between various configuration options and the robot performance objectives by learning a causal model in the source (a low-cost environment such as the Gazebo simulator) and applying the learned knowledge to perform optimization in the target (e.g.,Turtlebot 3physical robot). We demonstrate the effectiveness and transferability ofCUREby conducting experiments that involve varying degrees of deployment changes in both physical robots and simulation.
Md. Abir Hossen, Sonam Kharade, Jason M. O'Kane, Bradley R. Schmerl, David Garlan, Pooyan Jamshidi
IEEE Trans. Robotics6
2024 FlexiBO: A Decoupled Cost-Aware Multi-objective Optimization Approach for Deep Neural Networks (Abstract Reprint)
abstract
The design of machine learning systems often requires trading off different objectives, for example, prediction error and energy consumption for deep neural networks (DNNs). Typically, no single design performs well in all objectives; therefore, finding Pareto-optimal designs is of interest. The search for Pareto-optimal designs involves evaluating designs in an iterative process, and the measurements are used to evaluate an acquisition function that guides the search process. However, measuring different objectives incurs different costs. For example, the cost of measuring the prediction error of DNNs is orders of magnitude higher than that of measuring the energy consumption of a pre-trained DNN as it requires re-training the DNN. Current state-of-the-art methods do not consider this difference in objective evaluation cost, potentially incurring expensive evaluations of objective functions in the optimization process. In this paper, we develop a novel decoupled and cost-aware multi-objective optimization algorithm, which we call Flexible Multi-Objective Bayesian Optimization (FlexiBO) to address this issue. For evaluating each design, FlexiBO selects the objective with higher relative gain by weighting the improvement of the hypervolume of the Pareto region with the measurement cost of each objective. This strategy, therefore, balances the expense of collecting new information with the knowledge gained through objective evaluations, preventing FlexiBO from performing expensive measurements for little to no gain. We evaluate FlexiBO on seven state-of-the-art DNNs for image recognition, natural language processing (NLP), and speech-to-text translation. Our results indicate that, given the same total experimental budget, FlexiBO discovers designs with 4.8% to 12.4% lower hypervolume error than the best method in state-of-the-art multi-objective optimization.
Md Shahriar Iqbal, Jianhai Su, Lars Kotthoff, Pooyan Jamshidi
AAAI4
2023 CAMEO: A Causal Transfer Learning Approach for Performance Optimization of Configurable Computer Systems
abstract
Modern computer systems are highly configurable, with hundreds of configuration options that interact, resulting in an enormous configuration space. As a result, optimizing performance goals (e.g., latency) in such systems is challenging due to frequent uncertainties in their environments (e.g., workload fluctuations). Lately, there has been a utilization of transfer learning to tackle this issue, leveraging information obtained from configuration measurements in less expensive source environments, as opposed to the costly or sometimes impossible interventions required in the target environment. Recent empirical research showed that statistical models can perform poorly when the deployment environment changes because the behavior of certain variables in the models can change dramatically from source to target. To address this issue, we propose Cameo---a method that identifies invariant causal predictors under environmental changes, allowing the optimization process to operate in a reduced search space, leading to faster optimization of system performance. We demonstrate significant performance improvements over state-of-the-art optimization methods in MLperf deep learning systems, a video analytics pipeline, and a database system.
Md Shahriar Iqbal, Ziyuan Zhong, Iftakhar Ahmad, Baishakhi Ray, Pooyan Jamshidi
SoCC5
2023 FlexiBO: A Decoupled Cost-Aware Multi-Objective Optimization Approach for Deep Neural Networks
abstract
The design of machine learning systems often requires trading off different objectives, for example, prediction error and energy consumption for deep neural networks (DNNs). Typically, no single design performs well in all objectives; therefore, finding Pareto-optimal designs is of interest. The search for Pareto-optimal designs involves evaluating designs in an iterative process, and the measurements are used to evaluate an acquisition function that guides the search process. However, measuring different objectives incurs different costs. For example, the cost of measuring the prediction error of DNNs is orders of magnitude higher than that of measuring the energy consumption of a pre-trained DNN as it requires re-training the DNN. Current state-of-the-art methods do not consider this difference in objective evaluation cost, potentially incurring expensive evaluations of objective functions in the optimization process. In this paper, we develop a novel decoupled and cost-aware multi-objective optimization algorithm, which we call Flexible Multi-Objective Bayesian Optimization (FlexiBO) to address this issue. For evaluating each design, FlexiBO selects the objective with higher relative gain by weighting the improvement of the hypervolume of the Pareto region with the measurement cost of each objective. This strategy, therefore, balances the expense of collecting new information with the knowledge gained through objective evaluations, preventing FlexiBO from performing expensive measurements for little to no gain. We evaluate FlexiBO on seven state-of-the-art DNNs for image recognition, natural language processing (NLP), and speech-to-text translation. Our results indicate that, given the same total experimental budget, FlexiBO discovers designs with 4.8% to 12.4% lower hypervolume error than the best method in state-of-the-art multi-objective optimization.
Md Shahriar Iqbal, Jianhai Su, Lars Kotthoff, Pooyan Jamshidi
J. Artif. Intell. Res.4
2022 FELARE: Fair Scheduling of Machine Learning Tasks on Heterogeneous Edge Systems
abstract
Edge computing enables smart IoT-based systems via concurrent and continuous execution of latency-sensitive machine learning (ML) applications. These edge-based machine learning systems are often battery-powered (i.e., energy-limited). They use heterogeneous resources with diverse computing performance (e.g., CPU, GPU, and/or FPGA) to fulfill the latency constraints of ML applications. The challenge is to allocate user requests for different ML applications on the Heterogeneous Edge Computing Systems (HEC) with respect to both the energy and latency constraints of these systems. To this end, we study and analyze resource allocation solutions that can increase the on-time task completion rate while considering the energy constraint. Importantly, we investigate edge-friendly (lightweight) multi-objective mapping heuristics that do not become biased toward a particular application type to achieve the objectives; instead, the heuristics consider "fairness" across the concurrent ML applications in their mapping decisions. Performance evaluations demonstrate that the proposed heuristic outperforms widely-used heuristics in heterogeneous systems in terms of the latency and energy objectives, particularly, at low to moderate request arrival rates. We observed 8.9% improvement in on-time task completion rate and 12.6% in energy-saving without imposing any significant overhead on the edge system.
Ali Mokhtari, Md. Abir Hossen, Pooyan Jamshidi, Mohsen Amini Salehi
CLOUD3
2022 Unicorn: reasoning about configurable system performance through the lens of causality
abstract
Modern computer systems are highly configurable, with the total variability space sometimes larger than the number of atoms in the universe. Understanding and reasoning about the performance behavior of highly configurable systems, over a vast and variable space, is challenging. State-of-the-art methods for performance modeling and analyses rely on predictive machine learning models, therefore, they become (i) unreliable in unseen environments (e.g., different hardware, workloads), and (ii) may produce incorrect explanations. To tackle this, we propose a new method, called Unicorn, which (i) captures intricate interactions between configuration options across the software-hardware stack and (ii) describes how such interactions can impact performance variations via causal inference. We evaluated Unicorn on six highly configurable systems, including three on-device machine learning systems, a video encoder, a database management system, and a data analytics pipeline. The experimental results indicate that Unicorn outperforms state-of-the-art performance debugging and optimization methods in finding effective repairs for performance faults and finding configurations with near-optimal performance. Further, unlike the existing methods, the learned causal performance models reliably predict performance for new environments.
Md Shahriar Iqbal, Rahul Krishna, Mohammad Ali Javidian, Baishakhi Ray, Pooyan Jamshidi
EuroSys5
2022 On Debugging the Performance of Configurable Software Systems: Developer Needs and Tailored Tool Support
abstract
Determining whether a configurable software system has a performance bug or it was misconfigured is often challenging. While there are numerous debugging techniques that can support developers in this task, there is limited empirical evidence of how useful the techniques are to address the actual needs that developers have when debugging the performance of configurable software systems; most techniques are often evaluated in terms of technical accuracy instead of their usability. In this paper, we take a human-centered approach to identify, design, implement, and evaluate a solution to support developers in the process of debugging the performance of configurable software systems. We first conduct an exploratory study with 19 developers to identify the information needs that developers have during this process. Subsequently, we design and implement a tailored tool, adapting techniques from prior work, to support those needs. Two user studies, with a total of 20 developers, validate and confirm that the information that we provide helps developers debug the performance of configurable software systems.
Miguel Velez, Pooyan Jamshidi, Norbert Siegmund, Sven Apel, Christian Kästner
ICSE2
2021 White-Box Analysis over Machine Learning: Modeling Performance of Configurable Systems
abstract
Performance-influence models can help stakeholders understand how and where configuration options and their interactions influence the performance of a system. With this understanding, stakeholders can debug performance behavior and make deliberate configuration decisions. Current black-box techniques to build such models combine various sampling and learning strategies, resulting in tradeoffs between measurement effort, accuracy, and interpretability. We present Comprex, a white-box approach to build performance-influence models for configurable systems, combining insights of local measurements, dynamic taint analysis to track options in the implementation, compositionality, and compression of the configuration space, without relying on machine learning to extrapolate incomplete samples. Our evaluation on 4 widely-used, open-source projects demonstrates that Comprex builds similarly accurate performance-influence models to the most accurate and expensive black-box approach, but at a reduced cost and with additional benefits from interpretable and local models.
Miguel Velez, Pooyan Jamshidi, Norbert Siegmund, Sven Apel, Christian Kästner
ICSE2
2021 Whence to Learn? Transferring Knowledge in Configurable Systems Using BEETLE
abstract
As software systems grow in complexity and the space of possible configurations increases exponentially, finding the near-optimal configuration of a software system becomes challenging. Recent approaches address this challenge by learning performance models based on a sample set of configurations. However, collecting enough sample configurations can be very expensive since each such sample requires configuring, compiling, and executing the entire system using a complex test suite. When learning on new data is too expensive, it is possible to useTransfer Learningto “transfer” old lessons to the new context. Traditional transfer learning has a number of challenges, specifically, (a) learning from excessive data takes excessive time, and (b) the performance of the models built via transfer can deteriorate as a result of learning from a poor source. To resolve these problems, we propose a novel transfer learning framework called BEETLE, which is a “bellwether”-based transfer learner that focuses on identifying and learning from the most relevant source from amongst the old data. This paper evaluates BEETLE with 57 different software configuration problems based on five software systems (a video encoder, an SAT solver, a SQL database, a high-performance C-compiler, and a streaming data analytics tool). In each of these cases, BEETLE found configurations that are as good as or better than those found by other state-of-the-art transfer learners while requiring only a fraction ($\frac{1}{7}$th) of the measurements needed by those other methods. Based on these results, we say that BEETLE is a new high-water mark in optimally configuring software.
Rahul Krishna, Vivek Nair, Pooyan Jamshidi, Tim Menzies
IEEE Trans. Software Eng.3
2020 VisArch: Visualisation of Performance-based Architectural Refactorings
Catia Trubiani, Aldeida Aleti, Sarah Goodwin, Pooyan Jamshidi, André van Hoorn, Samuel Gratzl
ECSA4
2020 Kuksa*: Self-adaptive Microservices in Automotive Systems
Ahmad Banijamali, Pasi Kuvaja, Markku Oivo, Pooyan Jamshidi
PROFES4
2020 Learning LWF Chain Graphs: A Markov Blanket Discovery Approach
abstract
This paper provides a graphical characterization of Markov blankets in chaingraphs (CGs) under the Lauritzen-Wermuth-Frydenberg (LWF) interpretation. The characterization is different from the well-known one for Bayesian networks and generalizes it. We provide a novel scalable and sound algorithmfor Markov blanket discovery in LWF CGs and prove that the Grow-Shrink algorithm, the IAMB algorithm, and its variants are still correct for Markov blanket discovery in LWF CGs under the same assumptions as for Bayesian networks. We provide a sound and scalable constraint-based framework for learning the structure of LWF CGs from faithful causally sufficient data and prove its correctness when the Markov blanket discovery algorithms in this paper are used. Our proposed algorithms compare positively/competitively against the state-of-the-art LCD (Learn Chain graphs via Decomposition) algorithm, depending on the algorithm that is used for Markov blanket discovery. Our proposed algorithms make a broad range of inference/learning problems computationallytractable and more reliable because they exploit locality.
Mohammad Ali Javidian, Marco Valtorta, Pooyan Jamshidi
UAI3
2020 ConfigCrusher: towards white-box performance analysis for configurable systems
Miguel Velez, Pooyan Jamshidi, Florian Sattler, Norbert Siegmund, Sven Apel, Christian Kästner
Autom. Softw. Eng.2
2020 AMP Chain Graphs: Minimal Separators and Structure Learning Algorithms
abstract
This paper deals with chain graphs (CGs) under the Andersson–Madigan–Perlman (AMP) interpretation. We address the problem of finding a minimal separator in an AMP CG, namely, finding a set Z of nodes that separates a given non-adjacent pair of nodes such that no proper subset of Z separates that pair. We analyze several versions of this problem and offer polynomial time algorithms for each. These include finding a minimal separator from a restricted set of nodes, finding a minimal separator for two given disjoint sets, and testing whether a given separator is minimal. To address the problem of learning the structure of AMP CGs from data, we show that the PC-like algorithm is order dependent, in the sense that the output can depend on the order in which the variables are given. We propose several modifications of the PC-like algorithm that remove part or all of this order-dependence. We also extend the decomposition-based approach for learning Bayesian networks (BNs) to learn AMP CGs, which include BNs as a special case, under the faithfulness assumption. We prove the correctness of our extension using the minimal separator results. Using standard benchmarks and synthetically generated models and data in our experiments demonstrate the competitive performance of our decomposition-based method, called LCD-AMP, in comparison with the (modified versions of) PC-like algorithm. The LCD-AMP algorithm usually outperforms the PC-like algorithm, and our modifications of the PC-like algorithm learn structures that are more similar to the underlying ground truth graphs than the original PC-like algorithm, especially in high-dimensional settings. In particular, we empirically show that the results of both algorithms are more accurate and stabler when the sample size is reasonably large and the underlying graph is sparse
Mohammad Ali Javidian, Marco Valtorta, Pooyan Jamshidi
J. Artif. Intell. Res.3
2019 Understanding similarities and differences in software development practices across domains
abstract
Since software engineering is globalized and not a homogeneous whole, we expect that development practices are differently adopted across domains. However, little is known about how practices are followed in different software domains (e.g., healthcare, banking, and Oil and gas). In this paper, we report the results of an exploratory and inductive research, in which we seek differences and similarities regarding the adoption of several widespread practices across 13 domains. We interviewed 19 worldwide developers with experience in multiple domains (i.e., cross-domain developers) from large multinational companies, such as Facebook, Google, and Macy's. We also run a Web survey to confirm (or not) the interview results. Our findings show that, in fact, different domains adopt practices in a different fashion. We identified that continuous integration practices are interrupted during important commerce periods (e.g., Black Friday) in the financial domains. We also noticed the company's culture and policies strongly influence the adopted practices, instead of the domain itself. Our study also has important implications for global software engineering practices. For instance, companies should provide targeted training for their development teams and new interdisciplinary courses in software engineering and other domains, such as healthcare, are highly recommended.
Markos Viggiato, Johnatan Oliveira, Eduardo Figueiredo 0001, Pooyan Jamshidi, Christian Kästner
ICGSE4
2019 How Do Code Changes Evolve in Different Platforms? A Mining-Based Investigation
abstract
Code changes are performed differently in the mobile and non-mobile platforms. Prior work has investigated the differences in specific platforms. However, we still lack a deeper understanding of how code changes evolve across different software platforms. In this paper, we present a study aiming at investigating the frequency of changes and how source code, build and test changes co-evolve in mobile and non-mobile platforms. We developed regression models to explain which factors influence the frequency of changes and applied the Apriori algorithm to find types of changes that frequently co-occur. Our findings show that non-mobile repositories have a higher number of commits per month and our regression models suggest that being mobile significantly impacts on the number of commits in a negative direction when controlling for confound factors, such as code size. We also found that developers do not usually change source code files together with build or test files. We argue that our results can provide valuable information for developers on how changes are performed in different platforms so that practices adopted in successful software systems can be followed.
Markos Viggiato, Johnatan Oliveira, Eduardo Figueiredo 0001, Pooyan Jamshidi, Christian Kästner
ICSME4
2019 Kuksa: A Cloud-Native Architecture for Enabling Continuous Delivery in the Automotive Domain
Ahmad Banijamali, Pooyan Jamshidi, Pasi Kuvaja, Markku Oivo
PROFES2
2019 How is Performance Addressed in DevOps?
abstract
DevOps is a modern software engineering paradigm that is gaining widespread adoption in industry. The goal of DevOps is to bring software changes into production with a high frequency and fast feedback cycles. This conflicts with software quality assurance activities, particularly with respect to performance. For instance, performance evaluation activities --- such as load testing --- require a considerable amount of time to get statistically significant results.
Cor-Paul Bezemer, Simon Eismann, Vincenzo Ferme, Johannes Grohmann, Robert Heinrich, Pooyan Jamshidi, Weiyi Shang, André van Hoorn, Mónica Villavicencio, Jürgen Walter, Felix Willnecker
ICPE6
2019 Cloud Container Technologies: A State-of-the-Art Review
abstract
Containers as a lightweight technology to virtualise applications have recently been successful, particularly to manage applications in the cloud. Often, the management of clusters of containers becomes essential and the orchestration of the construction and deployment becomes a central problem. This emerging topic has been taken up by researchers, but there is currently no secondary study to consolidate this research. We aim to identify, taxonomically classify and systematically compare the existing research body on containers and their orchestration and specifically the application of this technology in the cloud. We have conducted a systematic mapping study of 46 selected studies. We classified and compared the selected studies based on a characterisation framework. This results in a discussion of agreed and emerging concerns in the container orchestration space, positioning it within the cloud context, but also moving it closer to current concerns in cloud platforms, microservices and continuous development.
Claus Pahl, Antonio Brogi, Jacopo Soldani, Pooyan Jamshidi
IEEE Trans. Cloud Comput.4
2018 Evaluating domain-specific metric thresholds: an empirical study
abstract
Software metrics and thresholds provide means to quantify several quality attributes of software systems. Indeed, they have been used in a wide variety of methods and tools for detecting different sorts of technical debts, such as code smells. Unfortunately, these methods and tools do not take into account characteristics of software domains, as the intrinsic complexity of geo-localization and scientific software systems or the simple protocols employed by messaging applications. Instead, they rely on generic thresholds that are derived from heterogeneous systems. Although derivation of reliable thresholds has long been a concern, we still lack empirical evidence about threshold variation across distinct software domains. To tackle this limitation, this paper investigates whether and how thresholds vary across domains by presenting a large-scale study on 3,107 software systems from 15 domains. We analyzed the derivation and distribution of thresholds based on 8 well-known source code metrics. As a result, we observed that software domain and size are relevant factors to be considered when building benchmarks for threshold derivation. Moreover, we also observed that domain-specific metric thresholds are more appropriated than generic ones for code smell detection.
Allan Mori, Gustavo Vale, Markos Viggiato, Johnatan Oliveira, Eduardo Figueiredo 0001, Elder Cirilo, Pooyan Jamshidi, Christian Kästner
TechDebt@ICSE7
2018 Learning to sample: exploiting similarities across environments to learn performance models for configurable systems
abstract
Most software systems provide options that allow users to tailor the system in terms of functionality and qualities. The increased flexibility raises challenges for understanding the configuration space and the effects of options and their interactions on performance and other non-functional properties. To identify how options and interactions affect the performance of a system, several sampling and learning strategies have been recently proposed. However, existing approaches usually assume a fixed environment (hardware, workload, software release) such that learning has to be repeated once the environment changes. Repeating learning and measurement for each environment is expensive and often practically infeasible. Instead, we pursue a strategy that transfers knowledge across environments but sidesteps heavyweight and expensive transfer-learning strategies. Based on empirical insights about common relationships regarding (i) influential options, (ii) their interactions, and (iii) their performance distributions, our approach, L2S (Learning to Sample), selects better samples in the target environment based on information from the source environment. It progressively shrinks and adaptively concentrates on interesting regions of the configuration space. With both synthetic benchmarks and several real systems, we demonstrate that L2S outperforms state of the art performance learning and transfer-learning approaches in terms of measurement effort and learning accuracy.
Pooyan Jamshidi, Miguel Velez, Christian Kästner, Norbert Siegmund
ESEC/SIGSOFT FSE1
2018 An efficient method for uncertainty propagation in robust software performance estimation
Aldeida Aleti, Catia Trubiani, André van Hoorn, Pooyan Jamshidi
J. Syst. Softw.4
2018 Microservices migration patterns
abstract
Summary Microservices architectures are becoming the defacto standard for building continuously deployed systems. At the same time, there is a substantial growth in the demand for migrating on‐premise legacy applications to the cloud. In this context, organizations tend to migrate their traditional architectures into cloud‐native architectures using microservices. This article reports a set of migration and rearchitecting design patterns that we have empirically identified and collected from industrial‐scale software migration projects. These migration patterns can help information technology organizations plan their migration projects toward microservices more efficiently and effectively. In addition, the proposed patterns facilitate the definition of migration plans by pattern composition. Qualitative empirical research is used to evaluate the validity of the proposed patterns. Our findings suggest that the proposed patterns are evident in other architectural refactoring and migration projects and strong candidates for effective patterns in system migrations.
Armin Balalaie, Abbas Heydarnoori, Pooyan Jamshidi, Damian A. Tamburri, Theo Lynn
Softw. Pract. Exp.3
2018 A Classification and Comparison Framework for Cloud Service Brokerage Architectures
abstract
Cloud service brokerage and related management and marketplace concepts have been identified as key concerns for future cloud technology development and research. Cloud service management is an important building block of cloud architectures that can be extended to act as a broker service layer between consumers and providers, and even to form marketplace services. We present a three-pronged classification and comparison framework for broker platforms and applications. A range of specific broker development concerns like architecture, programming and quality are investigated. Based on this framework, selected management, brokerage and marketplace solutions will be compared, not only to demonstrate the utility of the framework, but also to identify challenges and wider research objectives based on an identification of cloud broker architecture concerns and technical requirements for service brokerage solutions. We also discuss emerging cloud architecture concerns such as commoditisation and federation of integrated, vertical cloud stacks.
Frank Fowley, Claus Pahl, Pooyan Jamshidi, Daren Fang, Xiaodong Liu 0002
IEEE Trans. Cloud Comput.3
2018 Architectural Principles for Cloud Software
abstract
A cloud is a distributed Internet-based software system providing resources as tiered services. Through service-orientation and virtualization for resource provisioning, cloud applications can be deployed and managed dynamically. We discuss the building blocks of an architectural style for cloud-based software systems. We capture style-defining architectural principles and patterns for control-theoretic, model-based architectures for cloud software. While service orientation is agreed on in the form of service-oriented architecture and microservices, challenges resulting from multi-tiered, distributed and heterogeneous cloud architectures cause uncertainty that has not been sufficiently addressed. We define principles and patterns needed for effective development and operation of adaptive cloud-native systems.
Claus Pahl, Pooyan Jamshidi, Olaf Zimmermann
ACM Trans. Internet Techn.2
2017 A Comparison of Reinforcement Learning Techniques for Fuzzy Cloud Auto-Scaling
abstract
A goal of cloud service management is to design self-adaptable auto-scaler to react to workload fluctuations and changing the resources assigned. The key problem is how and when to add/remove resources in order to meet agreed service-level agreements. Reducing application cost and guaranteeing service-level agreements (SLAs) are two critical factors of dynamic controller design. In this paper, we compare two dynamic learning strategies based on a fuzzy logic system, which learns and modifies fuzzy scaling rules at runtime. A self-adaptive fuzzy logic controller is combined with two reinforcement learning (RL) approaches: (i) Fuzzy SARSA learning FSL and (ii) Fuzzy Q-learning FQL. As an off-policy approach, Q-learning learns independent of the policy currently followed, whereas SARSA as an on-policy always incorporates the actual agent's behavior and leads to faster learning. Both approaches are implemented and compared in their advantages and disadvantages, here in the OpenStack cloud platform. We demonstrate that both auto-scaling approaches can handle various load traffic situations, sudden and periodic, and delivering resources on demand while reducing operating costs and preventing SLA violations. The experimental results demonstrate that FSL and FQL have acceptable performance in terms of adjusted number of virtual machine targeted to optimize SLA compliance and response time.
Hamid Arabnejad, Claus Pahl, Pooyan Jamshidi, Giovani Estrada
CCGrid3
2017 Transfer learning for performance modeling of configurable systems: an exploratory analysis
abstract
Modern software systems provide many configuration options which significantly influence their non-functional properties. To understand and predict the effect of configuration options, several sampling and learning strategies have been proposed, albeit often with significant cost to cover the highly dimensional configuration space. Recently, transfer learning has been applied to reduce the effort of constructing performance models by transferring knowledge about performance behavior across environments. While this line of research is promising to learn more accurate models at a lower cost, it is unclear why and when transfer learning works for performance modeling. To shed light on when it is beneficial to apply transfer learning, we conducted an empirical study on four popular software systems, varying software configurations and environmental conditions, such as hardware, workload, and software versions, to identify the key knowledge pieces that can be exploited for transfer learning. Our results show that in small environmental changes (e.g., homogeneous workload change), by applying a linear transformation to the performance model, we can understand the performance behavior of the target environment, while for severe environmental changes (e.g., drastic workload change) we can transfer only knowledge that makes sampling more efficient, e.g., by reducing the dimensionality of the configuration space.
Pooyan Jamshidi, Norbert Siegmund, Miguel Velez, Christian Kästner, Akshay Patel, Yuvraj Agarwal
ASE1
2017 Cloud architecture continuity: Change models and change rules for sustainable cloud software architectures
abstract
Abstract Cloud systems provide elastic execution environments of resources that link application and infrastructure/platform components, which are both exposed to uncertainties and change. Change appears in 2 forms: the evolution of architectural components under changing requirements and the adaptation of the infrastructure running applications. Cloud architecture continuity refers to the ability of a cloud system to change its architecture and maintain the validity of the goals that determine the architecture. Goal validity implies the satisfaction of goals in adapting or evolving systems. Architecture continuity aids technical sustainability, that is, the longevity of information, systems, and infrastructure and their adequate evolution with changing conditions. In a cloud setting that requires both steady alignment with technological evolution and availability, architecture continuity directly impacts economic sustainability. We investigate change models and change rules for managing change to support cloud architecture continuity. These models and rules define transformations of architectures to maintain system goals: Evolution is about unanticipated change of structural aspects of architectures, and adaptation is about anticipated change of architecture configurations. Both are driven by quality and cost, and both represent multidimensional decision problems under uncertainty. We have applied the models and rules for adaptation and evolution in research and industry consultancy projects.
Claus Pahl, Pooyan Jamshidi, Danny Weyns
J. Softw. Evol. Process.2
2017 Pattern-based multi-cloud architecture migration
abstract
Summary Many organizations migrate on‐premise software applications to the cloud. However, current coarse‐grained cloud migration solutions have made such migrations a non transparent task, an endeavor based on trial‐and‐error. This paper presents Variability‐based, Pattern‐driven Architecture Migration (V‐PAM), a migration method based on (i) a catalogue of fine‐grained service‐based cloud architecture migration patterns that target multi‐cloud, (ii) a situational migration process framework to guide pattern selection and composition, and (iii) a variability model to structure system migration into a coherent framework. The proposed migration patterns are based on empirical evidence from several migration projects, best practice for cloud architectures and a systematic literature review of existing research. Variability‐based, Pattern‐driven Architecture Migration allows an organization to (i) select appropriate migration patterns, (ii) compose them to define a migration plan, and (iii) extend them based on the identification of new patterns in new contexts. The patterns are at the core of our solution, embedded into a process model, with their selection governed by a variability model. Copyright © 2016 John Wiley & Sons, Ltd.
Pooyan Jamshidi, Claus Pahl, Nabor das Chagas Mendonça
Softw. Pract. Exp.1
2017 Control Strategies for Self-Adaptive Software Systems
abstract
The pervasiveness and growing complexity of software systems are challenging software engineering to design systems that can adapt their behavior to withstand unpredictable, uncertain, and continuously changing execution environments. Control theoretical adaptation mechanisms have received growing interest from the software engineering community in the last few years for their mathematical grounding, allowing formal guarantees on the behavior of the controlled systems. However, most of these mechanisms are tailored to specific applications and can hardly be generalized into broadly applicable software design and development processes. This article discusses a reference control design process, from goal identification to the verification and validation of the controlled system. A taxonomy of the main control strategies is introduced, analyzing their applicability to software adaptation for both functional and nonfunctional goals. A brief extract on how to deal with uncertainty complements the discussion. Finally, the article highlights a set of open challenges, both for the software engineering and the control theory research communities.
Antonio Filieri, Martina Maggio, Konstantinos Angelopoulos, Nicolás D'Ippolito, Ilias Gerostathopoulos, Andreas B. Hempel, Henry Hoffmann, Pooyan Jamshidi, Evangelia Kalyvianaki, Cristian Klein, Filip Krikava, Sasa Misailovic, Alessandro Vittorio Papadopoulos, Suprio Ray, Amir Molzam Sharifloo, Stepan Shevtsov, Mateusz Ujma, Thomas Vogel 0001
ACM Trans. Auton. Adapt. Syst.8
2016 Microservices: A Systematic Mapping Study
abstract
Microservices have recently emerged as an architectural style, addressing how to build, manage, and evolve architectures out of small, self-contained units. Particularly in the cloud, the microservices architecture approach seems to be an ideal complementation of container technology at the PaaS level However, there is currently no secondary study to consolidate this research. We aim here to identify, taxonomically classify and systematically compare the existing research body on microservices and their application in the cloud. We have conducted a systematic mapping study of 21 selected studies, published over the last two years until end of 2015 since the emergence of the microservices pattern. We classified and compared the selected studies based on a characterization framework. This results in a discussion of the agreed and emerging concerns within the microservices architectural style, positioning it within a continuous development context, but also moving it closer to cloud and container technology.
Claus Pahl, Pooyan Jamshidi
CLOSER (1)2
2016 An Uncertainty-Aware Approach to Optimal Configuration of Stream Processing Systems
abstract
Finding optimal configurations for Stream Processing Systems (SPS) is a challenging problem due to the large number of parameters that can influence their performance and the lack of analytical models to anticipate the effect of a change. To tackle this issue, we consider tuning methods where an experimenter is given a limited budget of experiments and needs to carefully allocate this budget to find optimal configurations. We propose in this setting Bayesian Optimization for Configuration Optimization (BO4CO), an auto-tuning algorithm that leverages Gaussian Processes (GPs) to iteratively capture posterior distributions of the configuration spaces and sequentially drive the experimentation. Validation based on Apache Storm demonstrates that our approach locates optimal configurations within a limited experimental budget, with an improvement of SPS performance typically of at least an order of magnitude compared to existing configuration algorithms.
Pooyan Jamshidi, Giuliano Casale
MASCOTS1
2016 Continuous Architecting of Stream-Based Systems
abstract
Big data architectures have been gaining momentum in recent years. For instance, Twitter uses stream processing frameworks like Storm to analyse billions of tweets per minute and learn the trending topics. However, architectures that process big data involve many different components interconnected via semantically different connectors making it a difficult task for software architects to refactor the initial designs. As an aid to designers and developers, we developed OSTIA (On-the-fly Static Topology Inference Analysis) that allows: (a) visualising big data architectures for the purpose of design-time refactoring while maintaining constraints that would only be evaluated at later stages such as deployment and run-time, (b) detecting the occurrence of common anti-patterns across big data architectures, (c) exploiting software verification techniques on the elicited architectural models. This paper illustrates OSTIA and evaluates its uses and benefits on three industrial-scale case studies.
Marcello M. Bersani, Francesco Marconi, Damian A. Tamburri, Pooyan Jamshidi, Andrea Nodari
WICSA4
2016 An agility-oriented and fuzziness-embedded semantic model for collaborative cloud service search, retrieval and recommendation
Daren Fang, Xiaodong Liu 0002, Imed Romdhani, Pooyan Jamshidi, Claus Pahl
Future Gener. Comput. Syst.4
2016 A hybrid cloud controller for vertical memory elasticity: A control-theoretic approach
Soodeh Farokhi, Pooyan Jamshidi, Ewnetu Bayuh Lakew, Ivona Brandic, Erik Elmroth
Future Gener. Comput. Syst.2
2015 Software Architecture for the Cloud - A Roadmap Towards Control-Theoretic, Model-Based Cloud Architecture
Claus Pahl, Pooyan Jamshidi
ECSA2
2014 Classification and comparison of architecture evolution reuse knowledge - a systematic review
abstract
ABSTRACT Context Architecture‐centric software evolution (ACSE) enables changes in system's structure and behaviour while maintaining a global view of the software to address evolution‐centric trade‐offs. The existing research and practices for ACSE primarily focus ondesign‐time evolutionandruntime adaptationsto accommodate changing requirements in existing architectures. Objectives We aim toidentify, taxonomicallyclassifyand systematicallycomparethe existing research focused on enabling or enhancing change reuse to support ACSE. Method We conducted a systematic literature review of 32 qualitatively selected studies and taxonomically classified these studies based on solutions that enable (i)empirical acquisitionand (ii)systematic applicationof architecture evolution reuse knowledge (AERK) to guide ACSE. Results We identified six distinct research themes that support acquisition and application of AERK. We investigated (i)howevolution reuse knowledge is defined, classified and represented in the existing research to support ACSE and (ii)whatare the existing methods, techniques and solutions to support empirical acquisition and systematic application of AERK. Conclusions Change patterns(34% of selected studies) represent a predominant solution, followed byevolution styles(25%) andadaptation strategies and policies(22%) to enable application of reuse knowledge. Empirical methods for acquisition of reuse knowledge represent 19% includingpattern discovery,configuration analysis,evolution and maintenance predictiontechniques (approximately 6% each). A lack of focus on empirical acquisition of reuse knowledge suggests the need of solutions witharchitecture change miningas a complementary and integrated phase forarchitecture change execution. Copyright © 2014 John Wiley & Sons, Ltd.
Aakash Ahmad, Pooyan Jamshidi, Claus Pahl
J. Softw. Evol. Process.2
2014 Enhancing the OPEN Process Framework with service-oriented method fragments
Mahdi Fahmideh, Mohsen Sharifi, Pooyan Jamshidi
Softw. Syst. Model.3
2013 Cloud Migration Research: A Systematic Review
abstract
Background--By leveraging cloud services, organizations can deploy their software systems over a pool of resources. However, organizations heavily depend on their business-critical systems, which have been developed over long periods. These legacy applications are usually deployed on-premise. In recent years, research in cloud migration has been carried out. However, there is no secondary study to consolidate this research. Objective--This paper aims to identify, taxonomically classify, and systematically compare existing research on cloud migration. Method--We conducted a systematic literature review (SLR) of 23 selected studies, published from 2010 to 2013. We classified and compared the selected studies based on a characterization framework that we also introduce in this paper. Results--The research synthesis results in a knowledge base of current solutions for legacy-to-cloud migration. This review also identifies research gaps and directions for future research. Conclusion--This review reveals that cloud migration research is still in early stages of maturity, but is advancing. It identifies the needs for a migration framework to help improving the maturity level and consequently trust into cloud migration. This review shows a lack of tool support to automate migration tasks. This study also identifies needs for architectural adaptation and self-adaptive cloud-enabled systems.
Pooyan Jamshidi, Aakash Ahmad, Claus Pahl
IEEE Trans. Cloud Comput.1
2012 Business process and software architecture model co-evolution patterns
abstract
Software systems are subject to change. To embrace change, the systems should be equipped with automated mechanisms. Business process and software architecture models are two artifacts that are subject to change in an interrelated manner that requires them co-evolve. As opposed to the traditional batch-based model transformation, we propose a comprehensive set of structural and behavioral evolution patterns that enable to incrementally reflect the impact of change of business processes to their associated architecture models by applying reusable patterns. A basis for automation is provided through a graph-based formalism.
Pooyan Jamshidi, Claus Pahl
MiSE1
2012 Pattern-driven Reuse in Architecture-centric Evolution for Service Software
abstract
Service-based architectures implement business processes as technical software services to develop enterprise software.As a consequence of frequent business and technical change cycles, the architect requires a reusecentered approach to systematically accommodate recurring changes in existing software.Our 'Pat-Evol' project aims at supporting pattern-driven reuse in architecture-centric evolution for service software.We propose architecture change mining as a complementary phase to a systematic architecture change execution.Therefore, we investigate the 'history' of sequential changes -exploiting change logs -to discover patterns of change that occur during evolution.To foster reuse, a pattern catalogue maintains an updated collection with once-off specification for identified pattern instances.This allows us to exploit change pattern as a generic, first class abstractions (that can be operationalised and parameterised) to support reuse in architecture-centric software evolution.The notion of 'build-once, use-often' empowers the role of an architect to model and execute generic and potentially reusable solution to recurring architecture evolution problems.
Aakash Ahmad, Pooyan Jamshidi, Claus Pahl
ICSOFT2
2011 Process patterns for service-oriented software development
abstract
Software systems development nowadays has moved towards dynamic composition of services that run on distributed infrastructures aligned with continuous changes in the system requirements. Consequently, software developers need to tailor project specific methodologies to fit their methodology requirements. Process patterns present a suitable solution by providing reusable method chunks of software development methodologies for constructing methodologies to fit specific requirements. In this paper, we propose a set of high-level service-oriented process patterns that can be used for constructing and enhancing situational service-oriented methodologies. We show how these patterns are used to construct a specific service-oriented methodology for the development of a sample system.
Mahdi Fahmideh, Mohsen Sharifi, Pooyan Jamshidi, Fereidoon Shams Aliee, Hassan Haghighi
RCIS3
2011 A Genetic Algorithm Based Approach to Service Identification
abstract
One of the key activities in service-oriented solution development is the identification of services according to a set of predefined design principles. Existing service identification approaches are often prescriptive and based on the architect's experience, therefore might lead to non-optimal designs which results in lower performance, reduced scalability, and complicated dependencies between services. In this paper, an automated method for identifying business services has been proposed by adopting design metrics based on top-down decomposition of processes. This method takes a set of enterprise business processes as input and produces a set of non-dominated solutions representing appropriate business services using a multi-objective genetic algorithm. The method has been realized in form of a tool implementation and a case study has been conducted to show its applicability.
Ali Kazemi, Ali Rostampour, Pooyan Jamshidi, Eslam Nazemi, Fereidoon Shams Aliee, Ali Nasirzadeh Azizkandi
SERVICES3
2011 Metrics for BPEL process context-independency analysis
Alireza Khoshkbarforoushha, Pooyan Jamshidi, Ali Nikravesh, Fereidoon Shams Aliee
Serv. Oriented Comput. Appl.2
2010 Towards a Metrics Suite for Measuring Composite Service Granularity Level Appropriateness
abstract
One of the prominent principles of designing services is the matter of how abstract services should be i.e. granularity. Since service-oriented analysis and design methods lack on providing a quantitative model for service granularity level evaluation, identification of optimally granular services is the key challenge in service-oriented solution development. This article through a systematic process proposes a model namely Weighted Granularity Level Appropriateness (WGLA) which leverages and consolidates four metrics to constitute quantitative basis for granularity appropriateness analysis. These metrics are, indeed, the four quantified attributes of service granularity including business value, reusability, context-independency, and complexity. Our preliminary controlled experiment confirms the correctness of the quantitative model. In fact, by adopting WGLA metric, service granularity appropriateness analysis could be conduct quantitatively that leads to realize an optimized service-oriented solution in terms of its granularity.
Alireza Khoshkbarforoushha, R. Tabein, Pooyan Jamshidi, Fereidoon Shams Aliee
SERVICES3
2009 ASSM: Toward an automated method for service specification
abstract
One of the key activities needed to construct a quality service-oriented solution is specification of the architectural elements. Selection of an appropriate and proven method for specification of the elements consisted of services, flows, and components is thus fundamental to successful service-oriented system development in an enterprise. Existing methods for service specification ignore the automation capability while providing human-based prescriptive guidelines, which mostly are not applicable at enterprise scales. This paper proposes a novel method called ASSM (Automated Service Specification Method) that automatically specifies the architecturally significant elements of service-oriented systems. Therefore, ASSM effectively specifies the architectural elements of the service models. Model transformations such as ASSM, automate the labor-intensive activities and lead the architect to focus on more important activities, which need human intelligence, and eventually enable efficient development of service-based solutions.
Pooyan Jamshidi, Sedigheh Khoshnevis, R. Teimourzadegan, Ali Nikravesh, Alireza Khoshkbarforoushha, Fereidoon Shams Aliee
APSCC1
2009 Model driven approach to Service oriented Enterprise Architecture
abstract
Enterprise Architecture (EA) has become an important means to acquire and maintain knowledge about the structure and behavior of the enterprises and to develop the required IT systems. Two main goals in architecture - high flexibility and low complexity- are addressed in a new architectural style called Service Oriented Architecture (SOA). In this paper, we discuss approaches to have SOA models in the enterprise architecture framework. Based on an analysis of these approaches, we propose an extension to the Zachman Framework called SOEAF, in order to provide the framework with the capability to include service-oriented artifacts representing services aspect of the enterprise. Then we will propose a Model Driven Approach (MDA) to Service Oriented Enterprise Architecture (SOEA), in which, MDA concepts, standards and tools help us achieve a semi-automated service-based analysis and design of the enterprise IT systems. The proposed approach can be very beneficial for increasing efficiency to reach enterprise-wide goals.
Sedigheh Khoshnevis, Fereidoon Shams Aliee, Pooyan Jamshidi
APSCC3