Mehrdad Saadatmand

Dr. Mehrdad Saadatmand

orcid

Research Focus & Metrics

Academic Career Length

16Years (2011-Present)

(Calculated once Scilit publication data is synced: current year − year of first publication + 1)

Representative Publications

View All Publications
18 January 2022 in Requirements Engineering
Verified
Journal Article
Open access
PDF file
MAMuhammad Abbas
Muhammad Abbas
Alessio FerrariAlessio Ferrari
Alessio Ferrari
ASAnas Shatnawi
Anas Shatnawi
Eduard EnoiuEduard Enoiu
Eduard Enoiu
MSMehrdad Saadatmand
Mehrdad Saadatmand
DSDaniel Sundmark
Daniel Sundmark
Recommender systems for requirements are typically built on the assumption that similar requirements can be used as proxies to retrieve similar software. When a stakeholder proposes a new requirement, natural language processing (NLP)-based similarity metrics can be exploited to retrieve existing requirements, and in turn, identify previously developed code. Several NLP approaches for similarity computation between requirements are available. However, there is little empirical evidence on their effectiveness for code retrieval. This study compares different NLP approaches, from lexical ones to semantic, deep-learning techniques, and correlates the similarity among requirements with the similarity of their associated software. The evaluation is conducted on real-world requirements from two industrial projects from a railway company. Specifically, the most similar pairs of requirements across two industrial projects are automatically identified using six language models. Then, the trace links between requirements and software are used to identify the software pairs associated with each requirements pair. The software similarity between pairs is then automatically computed with JPLag. Finally, the correlation between requirements similarity and software similarity is evaluated to see which language model shows the highest correlation and is thus more appropriate for code retrieval. In addition, we perform a focus group with members of the company to collect qualitative data. Results show a moderately positive correlation between requirements similarity and software similarity, with the pre-trained deep learning-based BERT language model with preprocessing outperforming the other models. Practitioners confirm that requirements similarity is generally regarded as a proxy for software similarity. However, they also highlight that additional aspect comes into play when deciding software reuse, e.g., domain/project knowledge, information coming from test cases, and trace links. Our work is among the first ones to explore the relationship between requirements and software similarity from a quantitative and qualitative standpoint. This can be useful not only in recommender systems but also in other requirements engineering tasks in which similarity computation is relevant, such as tracing and change impact analysis.

1 August 2014
Verified
Conference Paper
Closed access
RMRaluca Marinescu
Raluca Marinescu
MSMehrdad Saadatmand
Mehrdad Saadatmand
ABAlessio Bucaioni
Alessio Bucaioni
CSCristina Seceleanu
Cristina Seceleanu
PPPaul Pettersson
Paul Pettersson
Architectural models, such as those described in the east language, represent convenient abstractions to reason about automotive embedded software systems. To enjoy the fully-fledged advantages of reasoning, EAST-ADL models could benefit from a component-aware analysis framework that provides, ideally, both verification and model-based test-case generation capabilities. While different verification techniques have been developed for architectural models, only a few target EAST-ADL. In this paper, we present a methodology for code validation, starting from EAST-ADL artifacts. The methodology relies on: (i) automated model-based test-case generation for functional requirements criteria based on the EAST-ADL model extended with timed automata semantics, and (ii) validation of system implementation by generating Python test scripts based on the abstract test-cases. The scripts represent concrete test-cases that are executable on the system implementation. We apply our methodology to analyze the ABS function implementation of the Brake-by-Wire system prototype.

4 April 2023
Verified
Book Chapter
Closed access
PDF file
SBSarmad Bashir
Sarmad Bashir
MAMuhammad Abbas
Muhammad Abbas
MSMehrdad Saadatmand
Mehrdad Saadatmand
Eduard EnoiuEduard Enoiu
Eduard Enoiu
MBMarkus Bohlin
Markus Bohlin
PLPernilla Lindberg
Pernilla Lindberg

19 October 2020
Verified
Conference Paper
Open access
MAMuhammad Abbas
Muhammad Abbas
RJRobbert Jongeling
Robbert Jongeling
CLClaes Lindskog
Claes Lindskog
Eduard EnoiuEduard Enoiu
Eduard Enoiu
MSMehrdad Saadatmand
Mehrdad Saadatmand
DSDaniel Sundmark
Daniel Sundmark
The software system controlling a train is typically deployed on various hardware architectures and must process various signals across those deployments. The increase of such customization scenarios and the needed adherence of the software to various safety standards in different application domains has led to the adoption of product line engineering within the railway domain. This paper explores the current state-of-practice of software product line development within a team developing industrial embedded software for a train propulsion control system. Evidence is collected using a focus group session with several engineers and through inspection of archival data. We report several benefits and challenges experienced during product line adoption and deployment. Furthermore, we identify and discuss improvement opportunities, focusing mainly on product line evolution and test automation.

10 March 2021 in Software Quality Journal
Verified
Journal Article
Open access
PDF file
MMMahshid Helali Moghadam
Mahshid Helali Moghadam
MSMehrdad Saadatmand
Mehrdad Saadatmand
MBMarkus Borg
Markus Borg
MBMarkus Bohlin
Markus Bohlin
BLBjörn Lisper
Björn Lisper
Test automation brings the potential to reduce costs and human effort, but several aspects of software testing remain challenging to automate. One such example is automated performance testing to find performance breaking points. Current approaches to tackle automated generation of performance test cases mainly involve using source code or system model analysis or use-case-based techniques. However, source code and system models might not always be available at testing time. On the other hand, if the optimal performance testing policy for the intended objective in a testing process instead could be learned by the testing system, then test automation without advanced performance models could be possible. Furthermore, the learned policy could later be reused for similar software systems under test, thus leading to higher test efficiency. We propose SaFReL, a self-adaptive fuzzy reinforcement learning-based performance testing framework. SaFReL learns the optimal policy to generate performance test cases through an initial learning phase, then reuses it during a transfer learning phase, while keeping the learning running and updating the policy in the long term. Through multiple experiments in a simulated performance testing setup, we demonstrate that our approach generates the target performance test cases for different programs more efficiently than a typical testing process and performs adaptively without access to source code and performance models.

1 July 2018
Verified
Conference Paper
Closed access
STSahar Tahvili
Sahar Tahvili
MAMarcus Ahlberg
Marcus Ahlberg
EFEric Fornander
Eric Fornander
WAWasif Afzal
Wasif Afzal
MSMehrdad Saadatmand
Mehrdad Saadatmand
MSMahdi Sarabi
Mahdi Sarabi
This paper presents a natural language processing (NLP) based approach that, given software requirements specification, allows the functional dependency detection between integration test cases. We analyze a set of internal signals to the implemented modules for detecting dependencies between requirements and thereby identifying dependencies between test cases such that: module 2 depends on module 1 if an output internal signal from module 1 enters as an input internal signal to the module 2. Consequently, all requirements (and thereby test cases) for module 2 are dependent on all the designed requirements (and test cases) for module 1. The dependency information between requirements (and thus corresponding test cases) can be utilized for test case prioritization and scheduling. We have implemented our approach as a tool and the feasibility is evaluated through an industrial use case in the railway domain at Bombardier Transportation (BT), Sweden.