mdh.sePublications
Change search
Link to record
Permanent link

Direct link
BETA
Publications (10 of 38) Show all publications
Campeanu, G. & Saadatmand, M. (2019). A 2-layer Component-based Allocation for Embedded Systems with GPUs. Designs, 3, 1-14
Open this publication in new window or tab >>A 2-layer Component-based Allocation for Embedded Systems with GPUs
2019 (English)In: Designs, ISSN 2411-9660, Vol. 3, p. 1-14Article in journal (Refereed) Published
Abstract [en]

Component-based development is a software engineering paradigm that can facilitate the construction of embedded systems and tackle its complexities. The modern embedded systems have more and more demanding requirements. One way to cope with such versatile and growing set of requirements is to employ heterogeneous processing power, i.e., CPU-GPU architectures. The new CPU-GPU embedded boards deliver an increased performance but also introduce additional complexity and challenges. In this work, we address the component-to-hardware allocation for CPU-GPU embedded systems. The allocation for such systems is much complex due to the increased amount of GPU-related information. For example, while in traditional embedded systems the allocation mechanism may consider only the CPU memory usage of components to find an appropriate allocation scheme, in heterogeneous systems, the GPU memory usage needs also to be taken into account in the allocation process. This paper aims at decreasing the component-to-hardware allocation complexity by introducing a 2-layer component-based architecture for heterogeneous embedded systems. The detailed CPU-GPU information of the system is abstracted at a high-layer by compacting connected components into single units that behave as regular components. The allocator, based on the compacted information received from the high-level layer, computes, with a decreased complexity, feasible allocation schemes. In the last part of the paper, the 2-layer allocation method is evaluated using an existing embedded system demonstrator; namely, an underwater robot.

Place, publisher, year, edition, pages
Switzerland: , 2019
National Category
Engineering and Technology Computer Systems
Identifiers
urn:nbn:se:mdh:diva-43913 (URN)2411-9660 (ISRN)10.3390/designs3010006 (DOI)
Projects
TOCSYC - Testing of Critical System Characteristics (KKS)DPAC - Dependable Platforms for Autonomous systems and Control
Available from: 2019-06-11 Created: 2019-06-11 Last updated: 2019-06-11Bibliographically approved
Saadatmand, M. (2019). IntegrationDistiller: Automating Integration Analysis and Testing of Object-Oriented Applications. In: 20th IEEE International Conference on Industrial Technology ICIT 2019: . Paper presented at 20th IEEE International Conference on Industrial Technology ICIT 2019, 13 Feb 2019, Melbourne, Australia. (20)
Open this publication in new window or tab >>IntegrationDistiller: Automating Integration Analysis and Testing of Object-Oriented Applications
2019 (English)In: 20th IEEE International Conference on Industrial Technology ICIT 2019, 2019, no 20Conference paper, Published paper (Refereed)
Abstract [en]

Software systems typically consist of various interacting components and units. While these components can be tested and shown to work correctly in isolation, when integrated and start interacting with each other, they may fail to produce the desired behaviors and results. Integration testing plays an important role in revealing issues in interactions among cooperating components. Identifying different interaction scenarios, however, is not a trivial task when performing integration testing. On the other hand, most of the integration testing solutions proposed in the literature are manual which hinders their scalability and applicability when it comes to large industrial systems. In this paper we introduce IntegrationDistiller as an automated solution and tool to identify integration scenarios and generate test cases (in the form of method call sequences) for .NET applications. It works by analyzing the code and automatically identifying class couplings, interacting methods, as well as invocation points. Moreover, the tool also helps and supports testers in identifying timing issues at integration level by automatic code instrumentation at invocation points. The code analysis engine of IntegrationDistiller is built and automated using .NET compiler platform, known as Roslyn. Hence, this work is the first in utilizing Roslyn features for automatic integration analysis and integration test case generation. This work has been done as part of our collaboration with ABB Industrial Automation Control Technologies (IACT) in Västerås-Sweden to address the integration testing challenges of the software part of the ABB Ability™ 800xA distributed control systems.

Keywords
Integration Testing, Test Case Generation, Timing Properties, Extra-Functional Properties, Non-Functional Properties
National Category
Engineering and Technology Computer Systems
Identifiers
urn:nbn:se:mdh:diva-41733 (URN)
Conference
20th IEEE International Conference on Industrial Technology ICIT 2019, 13 Feb 2019, Melbourne, Australia
Projects
TOCSYC - Testing of Critical System Characteristics (KKS)TESTOMAT Project - The Next Level of Test AutomationXIVT - eXcellence in Variant Testing
Available from: 2018-12-18 Created: 2018-12-18 Last updated: 2018-12-18Bibliographically approved
Helali Moghadam, M., Saadatmand, M., Bohlin, M., Lisper, B. & Borg, M. (2018). Adaptive Runtime Response Time Control in PLC-based Real-Time Systems using Reinforcement Learning. In: ACM/IEEE 13th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, SEAMS 2018, , co-located with International Conference on Software Engineering, ICSE 2018; Gothenburg; Sweden; 28 May 2018 through 29 May 2018; Code 138312: . Paper presented at 13th International Symposium on Software Engineering for Adaptive and Self-Managing Systems SEAMS 18, 28 May 2018, Gothenburg, Sweden (pp. 217-223). , 28 May
Open this publication in new window or tab >>Adaptive Runtime Response Time Control in PLC-based Real-Time Systems using Reinforcement Learning
Show others...
2018 (English)In: ACM/IEEE 13th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, SEAMS 2018, , co-located with International Conference on Software Engineering, ICSE 2018; Gothenburg; Sweden; 28 May 2018 through 29 May 2018; Code 138312, 2018, Vol. 28 May, p. 217-223Conference paper, Published paper (Refereed)
Abstract [en]

Timing requirements such as constraints on response time are key characteristics of real-time systems and violations of these requirements might cause a total failure, particularly in hard real-time systems. Runtime monitoring of the system properties is of great importance to detect and mitigate such failures. Thus, a runtime control to preserve the system properties could improve the robustness of the system with respect to timing violations. Common control approaches may require a precise analytical model of the system which is difficult to be provided at design time. Reinforcement learning is a promising technique to provide adaptive model-free control when the environment is stochastic, and the control problem could be formulated as a Markov Decision Process. In this paper, we propose an adaptive runtime control using reinforcement learning for real-time programs based on Programmable Logic Controllers (PLCs), to meet the response time requirements. We demonstrate through multiple experiments that our approach could control the response time efficiently to satisfy the timing requirements.

Series
Proceedings - International Conference on Software Engineering, ISSN 0270-5257
Keywords
Adaptive response time control, PLC-based real-time programs, Runtime monitoring, Reinforcement learning
National Category
Computer Systems
Identifiers
urn:nbn:se:mdh:diva-38955 (URN)10.1145/3194133.3194153 (DOI)000458799600029 ()2-s2.0-85051555083 (Scopus ID)
Conference
13th International Symposium on Software Engineering for Adaptive and Self-Managing Systems SEAMS 18, 28 May 2018, Gothenburg, Sweden
Available from: 2018-05-15 Created: 2018-05-15 Last updated: 2019-03-07Bibliographically approved
Saadatmand, M., Lindström, B. & Aichernig, B. K. (2018). Message from the ITEQS 2018 Workshop Chairs. In: ICST Workshop on Testing Extra-Functional Properties and Quality Characteristics of Software Systems ITEQS'18: . Paper presented at ICST Workshop on Testing Extra-Functional Properties and Quality Characteristics of Software Systems ITEQS'18, 09 Apr 2018, VästerÃ¥s, Sweden. VästerÃ¥s, Sweden
Open this publication in new window or tab >>Message from the ITEQS 2018 Workshop Chairs
2018 (English)In: ICST Workshop on Testing Extra-Functional Properties and Quality Characteristics of Software Systems ITEQS'18, Västerås, Sweden, 2018Conference paper, Published paper (Other (popular science, discussion, etc.))
Place, publisher, year, edition, pages
Västerås, Sweden: , 2018
National Category
Engineering and Technology Computer Systems
Identifiers
urn:nbn:se:mdh:diva-41705 (URN)10.1109/ICSTW.2018.00008 (DOI)978-1-5386-6352-3 (ISBN)
Conference
ICST Workshop on Testing Extra-Functional Properties and Quality Characteristics of Software Systems ITEQS'18, 09 Apr 2018, Västerås, Sweden
Projects
TOCSYC - Testing of Critical System Characteristics (KKS)
Available from: 2018-12-21 Created: 2018-12-21 Last updated: 2018-12-21Bibliographically approved
Saadatmand, M. (2017). Towards Automating Integration Testing of .NET Applications using Roslyn. In: The 2017 IEEE International Conference on Software Quality, Reliability and Security QRS 2017: . Paper presented at The 2017 IEEE International Conference on Software Quality, Reliability and Security QRS 2017, 25 Jul 2017, Prague, Czech Republic (pp. 573-574).
Open this publication in new window or tab >>Towards Automating Integration Testing of .NET Applications using Roslyn
2017 (English)In: The 2017 IEEE International Conference on Software Quality, Reliability and Security QRS 2017, 2017, p. 573-574Conference paper, Published paper (Refereed)
Abstract [en]

The increasing complexity and size of software products combined with pressure to have shorter time-to-market is making manual testing techniques too costly and unscalable. This is particularly observed in industrial systems where continuous integration and deployment are applied. Therefore, there is a growing need to automate the testing process and make it scalable with respect to the context of real-world and large industrial applications. While there are already some solutions for generation of unit level test cases, automatic generation of integration level test cases to verify interaction of software components poses specific challenges especially in object-oriented applications. In this paper, we describe our on going work in introducing a solution to automate generation of integration test cases for C# applications by exploiting the code analysis capabilities of Microsoft .NET compiler platform known as Roslyn. This is done in collaboration with ABB Process Automation Control Technologies (PACT) in Västerås-Sweden, where the software for 800xA distributed control system is developed.

National Category
Computer Systems
Identifiers
urn:nbn:se:mdh:diva-35516 (URN)10.1109/QRS-C.2017.99 (DOI)000426819400092 ()2-s2.0-85034441611 (Scopus ID)978-1-5386-2072-4 (ISBN)
Conference
The 2017 IEEE International Conference on Software Quality, Reliability and Security QRS 2017, 25 Jul 2017, Prague, Czech Republic
Projects
TOCSYC - Testing of Critical System Characteristics (KKS)
Available from: 2017-06-01 Created: 2017-06-01 Last updated: 2018-12-11Bibliographically approved
Tahvili, S., Saadatmand, M., Bohlin, M., Afzal, W. & Hasan Ameerjan, S. (2017). Towards Execution Time Prediction for Test Cases from Test Specification. In: 2017 43RD EUROMICRO CONFERENCE ON SOFTWARE ENGINEERING AND ADVANCED APPLICATIONS (SEAA): . Paper presented at 43rd Euromicro Conference on Software Engineering and Advanced Applications SEAA'17, 30 Aug 2017, Vienna, Austria (pp. 421-425). Vienna, Austria
Open this publication in new window or tab >>Towards Execution Time Prediction for Test Cases from Test Specification
Show others...
2017 (English)In: 2017 43RD EUROMICRO CONFERENCE ON SOFTWARE ENGINEERING AND ADVANCED APPLICATIONS (SEAA), Vienna, Austria, 2017, p. 421-425Conference paper, Published paper (Refereed)
Abstract [en]

Knowing the execution time of test cases is important to perform test scheduling, prioritization and progress monitoring. This short paper presents a novel approach for predicting the execution time of test cases based on test specifications and available historical data on previously executed test cases. Our approach works by extracting timing information (measured and maximum execution time) for various steps in manual test cases. This information is then used to estimate the maximum time for test steps that have not previously been executed, but for which textual specifications exist. As part of our approach natural language parsing of the specifications is performed to identify word combinations to check whether existing timing information on various test activities already exists or not. Finally, linear regression is used to predict the actual execution time for test cases. A proof-of-concept use-case at Bombardier transportation serves to evaluate the proposed approach.

Place, publisher, year, edition, pages
Vienna, Austria: , 2017
Keywords
Software TestingOptimizationExecution TimeLinear RegressionNLPTest SpecificationEstimation
National Category
Computer Systems
Identifiers
urn:nbn:se:mdh:diva-35512 (URN)10.1109/SEAA.2017.10 (DOI)000426074600062 ()978-1-5386-2141-7 (ISBN)
Conference
43rd Euromicro Conference on Software Engineering and Advanced Applications SEAA'17, 30 Aug 2017, Vienna, Austria
Projects
ITS-EASY Post Graduate School for Embedded Software and SystemsTOCSYC - Testing of Critical System Characteristics (KKS)MegaMaRt2 - Megamodelling at Runtime (ECSEL/Vinnova)
Available from: 2017-06-05 Created: 2017-06-05 Last updated: 2018-03-15Bibliographically approved
Campeanu, G. & Saadatmand, M. (2016). A 2-layer component-based architecture for heterogeneous CPU-GPU embedded systems. In: Advances in Intelligent Systems and Computing, Volume 448: . Paper presented at 13th International Conference on Information Technology, ITNG 2016, April 11-13, 2016, Las Vegas, Nevada, USA (pp. 629-639).
Open this publication in new window or tab >>A 2-layer component-based architecture for heterogeneous CPU-GPU embedded systems
2016 (English)In: Advances in Intelligent Systems and Computing, Volume 448, 2016, p. 629-639Conference paper, Published paper (Refereed)
Abstract [en]

Traditional embedded systems are evolving into heterogeneous systems in order to address new and more demanding software requirements. Modern embedded systems are constructed by combining different computation units, such as traditional CPUs with Graphics Processing Units (GPUs). Adding GPUs to conventional CPU-based embedded systems enhances the computation power but also increases the complexity in developing software applications. A method that can help to tackle and address the software complexity issue of heterogeneous systems is component-based development. The allocation of the software application onto the appropriate computation node is greatly influenced by the system information load. The allocation process is increased in difficulty when we use, instead of common CPU-based systems, complex CPU-GPU systems. This paper presents a 2-layer component-based architecture for heterogeneous embedded systems, which has the purpose to ease the software-to-hardware allocation process. The solution abstracts the CPU-GPU detailed component-based design into single software components in order to decrease the amount of information delivered to the allocator. The last part of the paper describes the activities of the allocation process while using our proposed solution, when applied on a real system demonstrator.

National Category
Embedded Systems
Identifiers
urn:nbn:se:mdh:diva-31480 (URN)10.1007/978-3-319-32467-8_55 (DOI)000385289400055 ()2-s2.0-84962730953 (Scopus ID)9783319324661 (ISBN)
Conference
13th International Conference on Information Technology, ITNG 2016, April 11-13, 2016, Las Vegas, Nevada, USA
Available from: 2016-04-28 Created: 2016-04-28 Last updated: 2016-11-10Bibliographically approved
Abbaspour Asadollah, S., Saadatmand, M., Eldh, S., Sundmark, D. & Hansson, H. (2016). A Model for Systematic Monitoring and Debugging of Starvation Bugs in Multicore Software. In: 2016 ASE Workshop on Specification, Comprehension, Testing and Debugging of Concurrent Programs SCTDCP2016: . Paper presented at 2016 ASE Workshop on Specification, Comprehension, Testing and Debugging of Concurrent Programs SCTDCP2016, 3-7 Sep 2016, Singapore, Singapore.
Open this publication in new window or tab >>A Model for Systematic Monitoring and Debugging of Starvation Bugs in Multicore Software
Show others...
2016 (English)In: 2016 ASE Workshop on Specification, Comprehension, Testing and Debugging of Concurrent Programs SCTDCP2016, 2016Conference paper, Published paper (Refereed)
Abstract [en]

With the development of multicore hardware, concurrent, parallel and multicore software are becoming increasingly popular. Software companies are spending a huge amount of time and resources to nd and debug the bugs. Among all types of software bugs, concurrency bugs are also important and troublesome. This type of bugs is increasingly becoming an issue particularly due to the growing prevalence of multicore hardware. In this position paper, we propose a model for monitoring and debugging Starvation bugs as a type of concurrency bugs in multicore software. The model is composed into three phases: monitoring, detecting and debugging. The monitoring phase can support detecting phase by storing collected data from the system execution. The detecting phase can support debugging phase by comparing the stored data with starvation bug's properties, and the debugging phase can help in reproducing and removing the Starvation bug from multicore software. Our intention is that our model is the basis for developing tool(s) to enable solving Starvation bugs in software for multicore platforms.

National Category
Computer Systems
Identifiers
urn:nbn:se:mdh:diva-32885 (URN)2-s2.0-85054810213 (Scopus ID)
Conference
2016 ASE Workshop on Specification, Comprehension, Testing and Debugging of Concurrent Programs SCTDCP2016, 3-7 Sep 2016, Singapore, Singapore
Projects
SYNOPSIS - Safety Analysis for Predictable Software Intensive Systems
Available from: 2016-08-26 Created: 2016-08-24 Last updated: 2018-10-26Bibliographically approved
Tahvili, S., Bohlin, M., Saadatmand, M., Larsson, S., Afzal, W. & Sundmark, D. (2016). Cost-Benefit Analysis of Using Dependency Knowledge at Integration Testing. In: Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics): . Paper presented at THE 17TH INTERNATIONAL CONFERENCE ON PRODUCT-FOCUSED SOFTWARE PROCESS IMPROVEMENT PROFES'16, 22-24 Nov 2016, TRONDHEIM, Norway (pp. 268-284). , 10027
Open this publication in new window or tab >>Cost-Benefit Analysis of Using Dependency Knowledge at Integration Testing
Show others...
2016 (English)In: Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 2016, Vol. 10027, p. 268-284Conference paper, Published paper (Refereed)
Abstract [en]

In software system development, testing can take considerable time and resources, and there are numerous examples in the literature of how to improve the testing process. In particular, methods for selection and prioritization of test cases can play a critical role in efficient use of testing resources. This paper focuses on the problem of selection and ordering of integration-level test cases. Integration testing is performed to evaluate the correctness of several units in composition. Further, for reasons of both effectiveness and safety, many embedded systems are still tested manually. To this end, we propose a process, supported by an online decision support system, for ordering and selection of test cases based on the test result of previously executed test cases. To analyze the economic efficiency of such a system, a customized return on investment (ROI) metric tailored for system integration testing is introduced. Using data collected from the development process of a large-scale safety-critical embedded system, we perform Monte Carlo simulations to evaluate the expected ROI of three variants of the proposed new process. The results show that our proposed decision support system is beneficial in terms of ROI at system integration testing and thus qualifies as an important element in improving the integration testing process.

Keywords
Process improvement, Software testing, Decision support system, Integration testing, Test case selection, Prioritization, Optimization, Return on investment
National Category
Computer Systems
Identifiers
urn:nbn:se:mdh:diva-32887 (URN)10.1007/978-3-319-49094-6_17 (DOI)2-s2.0-84998880972 (Scopus ID)
Conference
THE 17TH INTERNATIONAL CONFERENCE ON PRODUCT-FOCUSED SOFTWARE PROCESS IMPROVEMENT PROFES'16, 22-24 Nov 2016, TRONDHEIM, Norway
Projects
ITS-EASY Post Graduate School for Embedded Software and SystemsTOCSYC - Testing of Critical System Characteristics (KKS)IMPRINT - Innovative Model-Based Product Integration Testing (Vinnova)
Available from: 2016-08-29 Created: 2016-08-24 Last updated: 2018-11-01Bibliographically approved
Tahvili, S., Saadatmand, M., Larsson, S., Afzal, W., Bohlin, M. & Sundmark, D. (2016). Dynamic Integration Test Selection Based on Test Case Dependencies. In: 2016 IEEE NINTH INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION WORKSHOPS (ICSTW): . Paper presented at 9th IEEE International Conference on Software Testing, Verification and Validation Workshops (ICSTW) (pp. 277-286). Chicago, United States
Open this publication in new window or tab >>Dynamic Integration Test Selection Based on Test Case Dependencies
Show others...
2016 (English)In: 2016 IEEE NINTH INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION WORKSHOPS (ICSTW), Chicago, United States, 2016, p. 277-286Conference paper, Published paper (Refereed)
Abstract [en]

Prioritization, selection and minimization of test cases are well-known problems in software testing. Test case prioritization deals with the problem of ordering an existing set of test cases, typically with respect to the estimated likelihood of detecting faults. Test case selection addresses the problem of selecting a subset of an existing set of test cases, typically by discarding test cases that do not add any value in improving the quality of the software under test. Most existing approaches for test case prioritization and selection suffer from one or several drawbacks. For example, they to a large extent utilize static analysis of code for that purpose, making them unfit for higher levels of testing such as integration testing. Moreover, they do not exploit the possibility of dynamically changing the prioritization or selection of test cases based on the execution results of prior test cases. Such dynamic analysis allows for discarding test cases that do not need to be executed and are thus redundant. This paper proposes a generic method for prioritization and selection of test cases in integration testing that addresses the above issues. We also present the results of an industrial case study where initial evidence suggests the potential usefulness of our approach in testing a safety-critical train control management subsystem.

Place, publisher, year, edition, pages
Chicago, United States: , 2016
Keywords
Software testing, Integration testing, Test selection, Test prioritization, Fuzzy, AHP, Optimization
National Category
Engineering and Technology Electrical Engineering, Electronic Engineering, Information Engineering
Identifiers
urn:nbn:se:mdh:diva-33116 (URN)10.1109/ICSTW.2016.14 (DOI)000382490200038 ()2-s2.0-84992215253 (Scopus ID)978-1-5090-3674-5 (ISBN)
Conference
9th IEEE International Conference on Software Testing, Verification and Validation Workshops (ICSTW)
Projects
ITS-EASY Post Graduate School for Embedded Software and SystemsTOCSYC - Testing of Critical System Characteristics (KKS)IMPRINT - Innovative Model-Based Product Integration Testing (Vinnova)
Available from: 2016-09-08 Created: 2016-09-08 Last updated: 2018-11-01Bibliographically approved
Organisations
Identifiers
ORCID iD: ORCID iD iconorcid.org/0000-0002-1512-0844

Search in DiVA

Show all publications