Pooyan Jamshidi

Learn More
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(More)
Cloud elasticity provides a software system with the ability to maintain optimal user experience by automatically acquiring and releasing resources, while paying only for what has been consumed. The mechanism for automatically adding or removing resources on the fly is referred to as auto-scaling. The state-of-the-practice with respect to auto-scaling(More)
One of the key activities that are needed to construct a quality service-oriented solution is the identification of its architectural elements with the right granularity. The selection of an appropriate method for identification of services from business models of an enterprise is thus quite crucial to the success of any service-oriented solution for that(More)
Context: A key activity in the construction of any enterprise-wide service-oriented system is the identification of enterpriselevel services from business models based on required quality attributes. Conventional service-identification methods rely heavily on the experiences of architects to direct them in the identification of services and architectural(More)
One of the key issues that should be considered when addressing reliable evolution is to place a software system in a consistent status before and after change. This issue becomes more critical at runtime because it may lead to the failure on running mission-critical systems. In order to place the affected elements in a safe state before dynamic changes(More)
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(More)
Migration to the cloud has been a popular topic in industry and academia in recent years. Despite many benefits that the cloud presents, such as high availability and scalability, most of the on-premise application architectures are not ready to fully exploit the benefits of this environment, and adapting them to this environment is a non-trivial task.(More)
The software engineering community has proposed numerous approaches for making software self-adaptive. These approaches take inspiration from machine learning and control theory, constructing software that monitors and modifies its own behavior to meet goals. Control theory, in particular, has received considerable attention as it represents a general(More)