Davoud Mougouei

SE
16papers
161citations
Novelty32%
AI Score21

16 Papers

SEFeb 16, 2022
Knowledge Management for Cloud Computing Field

Mahdi Fahmideh, Jun Yan, Jun Shen et al.

Migration legacy systems to cloud platforms is a knowledge intensive process. There is an ever increasing body of knowledge reporting empirical scenarios of successful and problematic cloud migration. Reusing this body of knowledge, dispersed and fragmented over the academic/multi-vocal literature, has practical values to mitigate costly risks and pitfalls in further projects of legacy to-cloud and cloud-to-cloud migration. In line with this, knowledge management systems/platforms pertinent to cloud migration are a prime prerequisite and a strategic imperative for an organization. We have conducted a qualitative exploratory study to understand the benefits and challenges of developing Knowledge Management Systems (KMS) for cloud migration in real trials. Whilst our prototype system demonstration supported the importance and bene-fits of developing Cloud Migration KMS (CM-KMS), our semi-structured industry interview study with 11 participants highlighted challenging impediments against developing this class of KMS. As a result, this study proposes nine significant challenges that cause the abandon of the design and maintenance of CM-KMS, including continuous changes and updates, integration of knowledge, knowledge granularity, preservation of context, automation, deconstruction of traditional knowledge, dependency on experts, hybrid knowledge of both vendor-specific and vendor-neutral cloud platforms, and parsimony. Our results inform cloud architects to pay attention to adopt CM-KMS for the legacy-to-cloud migration in their organizations.

SESep 24, 2021
A Model-Driven Approach to Reengineering Processes in Cloud Computing

Mahdi Fahmideh, John Grundy, Ghassan Beydoun et al.

The reengineering process of large data-intensive legacy software applications to cloud platforms involves different interrelated activities. These activities are related to planning, architecture design, re-hosting/lift-shift, code refactoring, and other related ones. In this regard, the cloud computing literature has seen the emergence of different methods with a disparate point of view of the same underlying legacy application reengineering process to cloud platforms. As such, the effective interoperability and tailoring of these methods become problematic due to the lack of integrated and consistent standard models.

SEMay 5, 2021
Engineering Blockchain Based Software Systems: Foundations, Survey, and Future Directions

Mahdi Fahmideh, John Grundy, Aakash Ahmed et al.

Many scientific and practical areas have shown increasing interest in reaping the benefits of blockchain technology to empower software systems. However, the unique characteristics and requirements associated with Blockchain Based Software (BBS) systems raise new challenges across the development lifecycle that entail an extensive improvement of conventional software engineering. This article presents a systematic literature review of the state-of-the-art in BBS engineering research from a software engineering perspective. We characterize BBS engineering from the theoretical foundations, processes, models, and roles and discuss a rich repertoire of key development activities, principles, challenges, and techniques. The focus and depth of this survey not only gives software engineering practitioners and researchers a consolidated body of knowledge about current BBS development but also underpins a starting point for further research in this field.

SEMay 5, 2021
A Comprehensive Framework for Analyzing IoT Platforms: A Smart City Industrial Experience

Mahdi Fahmideh, Jun Yan, Jun Shen et al.

The compliance of IoT platforms to quality is paramount to achieve users satisfaction. Currently, we do not have a comprehensive set of guidelines to appraise and select the most suitable IoT platform architectures that meet relevant criteria. This paper is a tentative response to this critical knowledge gap where we adopted the design science research approach to develop a novel evaluation framework. Our research, on the one hand, stimulates an unbiased competition among IoT platform providers and, on the other hand, establishes a solid foundation for IoT platform consumers to make informed decisions in this multiplicity. The application of the framework is illustrated in example scenarios. Moreover, lessons learned from applying design science research are shared.

SEFeb 4, 2021
Human Values in Software Release Planning

Davoud Mougouei, Aditya Ghose, Hoa Dam et al.

Software products have become an integral part of human lives, and therefore need to account for human values such as privacy, fairness, and equality. Ignoring human values in software development leads to biases and violations of human values: racial biases in recidivism assessment and facial recognition software are well-known examples of such issues. One of the most critical steps in software development is Software Release Planning (SRP), where decisions are made about the presence or absence of the requirements (features) in the software. Such decisions are primarily guided by the economic value of the requirements, ignoring their impacts on a broader range of human values. That may result in ignoring (selecting) requirements that positively (negatively) impact human values, increasing the risk of value breaches in the software. To address this, we have proposed an Integer Programming approach to considering human values in software release planning. In this regard, an Integer Linear Programming (ILP) model has been proposed, that explicitly accounts for human values in finding an "optimal" subset of the requirements. The ILP model exploits the algebraic structure of fuzzy graphs to capture dependencies and conflicts among the values of the requirements.

SEMar 11, 2020
Dependency-Aware Software Requirements Selection using Fuzzy Graphs and Integer Programming

Davoud Mougouei, David M W Powers

Software requirements selection aims to find an optimal subset of the requirements with the highest value while respecting the project constraints. But the value of a requirement may depend on the presence or absence of other requirements in the optimal subset. Such Value Dependencies, however, are imprecise and hard to capture. In this paper, we propose a method based on integer programming and fuzzy graphs to account for value dependencies and their imprecision in software requirements selection. The proposed method, referred to as Dependency-Aware Software Requirements Selection (DARS), is comprised of three components: (i) an automated technique for the identification of value dependencies from user preferences, (ii) a modeling technique based on fuzzy graphs that allows for capturing the imprecision of value dependencies, and (iii) an Integer Linear Programming (ILP) model that takes into account user preferences and value dependencies identified from those preferences to reduce the risk of value loss in software projects. Our work is verified by studying a real-world software project. The results show that our proposed method reduces the value loss in software projects and is scalable to large requirement sets.

SEMar 10, 2020
A Fuzzy-Based Optimization Method for Integrating Value Dependencies into Software Requirement Selection

Davoud Mougouei, David Powers

Software requirement selection aims to find an optimal subset of the requirements with the highest value while respecting the budget. But the value of a requirement may depend on the presence or absence of other requirements in the optimal subset. Existing requirement selection methods, however, do not consider Value Dependencies, thus increasing the risk of value loss. To address this, we have proposed Dependency-Aware Requirement Selection (DARS) method with two main components: (i) a fuzzy-based technique for identifying and modeling value dependencies, and (ii) an Integer Programming model that takes into account value dependencies in software requirement selection. We have further, proposed an alternative optimization model for situations where quantifying value dependencies is hard. The scalability of DARS and its effectiveness in reducing the risk of value loss are demonstrated through exhaustive simulations.

SEMar 10, 2020
Engineering Human Values in Software through Value Programming

Davoud Mougouei

Ignoring human values in software development may disadvantage users by breaching their values and introducing biases in software. This can be mitigated by informing developers about the value implications of their choices and taking initiatives to account for human values in software. To this end, we propose the notion of Value Programming with three principles: (P1) annotating source code and related artifacts with respect to values; (P2) inspecting source code to detect conditions that lead to biases and value breaches in software, i.e., (P3) making recommendations to mitigate biases and value breaches. To facilitate value programming, we propose a framework that allows for automated annotation of software code with respect to human values. The proposed framework lays a solid foundation for inspecting human values in code and making recommendations to overcome biases and value breaches in software.

SEMar 9, 2020
An Integer Programming Model for Embedding Social Values into Software Requirement Selection

Davoud Mougouei

The existing software requirement selection methods have mainly focused on optimizing the economic value of a software product while ignoring its social values and their long-term impacts on the society. Social values however, are also important and need to be taken into account in software requirement selection. Moreover, social values of software requirements may change in the presence or absence of other requirements due to the value dependencies among those requirements. These dependencies are imprecise and hard to specify in software projects. This paper presents an Integer Programming (IP) model for the integration of social values and dependencies among them into software requirement selection. We further, account for the imprecision of social values and dependencies among them using the algebraic structure of fuzzy graphs.

SEMar 3, 2020
Dependency-Aware Release Planning for Software Projects using Fuzzy Graphs and Integer Programming

Davoud Mougouei, David M W Powers

Software Release Planning (SRP) is to find, for the software, a subset of the requirements with the highest value while respecting the budget. The value of a requirement however may, to various degrees, depend on selecting or ignoring other requirements. However, existing SRP models ignore either Value-Related Dependencies altogether or the strengths of those dependencies even if they consider them. This paper presents an Integer Programming model for software release planning, which considers the variances of strengths of positive and negative value-related dependencies among software requirements. To capture the imprecision associated with strengths of value-related dependencies we have made use of the algebraic structure of fuzzy graphs. We have further, contributed a scalable technique for automated identification of value-related dependencies based on user preferences for software requirements. The validity of the work is verified through simulations.

SEMar 3, 2020
Modeling and Selection of Interdependent Software Requirements using Fuzzy Graphs

Davoud Mougouei, David M. W. Powers

Software requirement selection is to find an optimal set of requirements that gives the highest value for a release of software while keeping the cost within the budget. However, value-related dependencies among software requirements may impact the value of an optimal set. Moreover, value-related dependencies can be of varying strengths. Hence, it is important to consider both the existence and the strengths of value-related dependencies during a requirement selection. The existing selection models however, either assume that software requirements are independent or they ignore strengths of requirement dependencies. This paper presents a cost-value optimization model that considers the impacts of value-related requirement dependencies on the value of selected requirements (optimal set). We have exploited algebraic structure of fuzzy graphs for modeling value-related requirement dependencies and their strengths. Validity and practicality of the work are verified through carrying out several simulations and studying a real world software project.

SEJul 18, 2019
A Study on the Prevalence of Human Values in Software Engineering Publications, 2015-2018

Harsha Perera, Arif Nurwidyantoro, Waqar Hussain et al.

Failure to account for human values in software (e.g., equality and fairness) can result in user dissatisfaction and negative socio-economic impact. Engineering these values in software, however, requires technical and methodological support throughout the development life cycle. This paper investigates to what extent software engineering (SE) research has considered human values. We investigate the prevalence of human values in recent (2015 - 2018) publications at some of the top-tier SE conferences and journals. We classify SE publications, based on their relevance to different values, against a widely used value structure adopted from social sciences. Our results show that: (a) only a small proportion of the publications directly consider values, classified as relevant publications; (b) for the majority of the values, very few or no relevant publications were found; and (c) the prevalence of the relevant publications was higher in SE conferences compared to SE journals. This paper shares these and other insights that motivate research on human values in software engineering.

SEJun 1, 2017
PAPS: A Scalable Framework for Prioritization and Partial Selection of Security Requirements

Davoud Mougouei

Owing to resource constraints, the existing prioritization and selection techniques for software security requirements (countermeasures) find a subset of higher-priority security requirements ignoring lower-priority requirements or postponing them to the future releases. Ignoring or postponing security requirements however, may on one hand leave some of the security threats (vulnerabilities) unattended and on the other hand influence other security requirements that rely on the ignored or postponed requirements. To address this, we have proposed considering partial satisfaction of security requirements when tolerated rather than ignoring those requirements or postponing them to the future. In doing so, we have contributed a goal-based framework that enables prioritization and partial selection of security requirements with respect to security goals. The proposed framework helps reduce the number of ignored (postponed) security requirements and consequently reduce the adverse impacts of ignoring security requirements in software products.

AIFeb 22, 2017
An Integer Programming Model for Binary Knapsack Problem with Value-Related Dependencies among Elements

Davoud Mougouei, David M. W. Powers, Asghar Moeini

Binary Knapsack Problem (BKP) is to select a subset of an element (item) set with the highest value while keeping the total weight within the capacity of the knapsack. This paper presents an integer programming model for a variation of BKP where the value of each element may depend on selecting or ignoring other elements. Strengths of such Value-Related Dependencies are assumed to be imprecise and hard to specify. To capture this imprecision, we have proposed modeling value-related dependencies using fuzzy graphs and their algebraic structure.

SEFeb 18, 2017
Dependency-Aware Software Release Planning through Mining User Preferences

Davoud Mougouei, David M. W. Powers

Considering user preferences is a determining factor in optimizing the value of a software release. This is due to the fact that user preferences for software features specify the values of those features and consequently determine the value of the release. Certain features of a software however, may encourage or discourage users to prefer (select or use) other features. As such, value of a software feature could be positively or negatively influenced by other features. Such influences are known as Value-related Feature (Requirement) Dependencies. Value-related dependencies need to be considered in software release planning as they influence the value of the optimal subset of the features selected by the release planning models. Hence, we have proposed considering value-related feature dependencies in software release planning through mining user preferences for software features. We have demonstrated the validity and practicality of the proposed approach by studying a real world software project.

AIDec 9, 2016
GOTM: a Goal-Oriented Framework for Capturing Uncertainty of Medical Treatments

Davoud Mougouei, David Powers

It has been widely recognized that uncertainty is an inevitable aspect of diagnosis and treatment of medical disorders. Such uncertainties hence, need to be considered in computerized medical models. The existing medical modeling techniques however, have mainly focused on capturing uncertainty associated with diagnosis of medical disorders while ignoring uncertainty of treatments. To tackle this issue, we have proposed using a fuzzy-based modeling and description technique for capturing uncertainties in treatment plans. We have further contributed a formal framework which allows for goal-oriented modeling and analysis of medical treatments.