Search-based Automated Program Repair of CPS Controllers Modeled in Simulink-Stateflow
<|reference_start|>Search-based Automated Program Repair of CPS Controllers Modeled in Simulink-Stateflow: Stateflow models are widely used in the industry to model the high-level control logic of Cyber-Physical Systems (CPSs) in Simulink--the defacto CPS simulator. Many approaches exist to test Simulink models, but once a fault is detected, the process to repair it remains manual. Such a manual process increases the software development cost, making it paramount to develop novel techniques that reduce this cost. Automated Program Repair (APR) techniques can significantly reduce the time for fixing bugs by automatically generating patches. However, current approaches face scalability issues to be applicable in the CPS context. To deal with this problem, we propose an automated search-based approach called FlowRepair, explicitly designed to repair Stateflow models. The novelty of FlowRepair includes, (1) a new algorithm that combines global and local search for patch generation; (2) a definition of novel repair objectives (e.g., the time a fault remained active) specifically designed for repairing CPSs; and (3) a set of mutation operators to repair Stateflow models automatically. We evaluated FlowRepair with three different case study systems and a total of nine faulty stateflow models. Our experiments suggest that (1) Flo wRepaircan fix bugs in stateflow models, including models with multiple faults; (2) FlowRepair surpasses or performs similarly to a baseline APR technique inspired by a well-known CPS program repair approach. Besides, we provide both a replication package and a live repository, paving the way towards the APR of CPSs modeled in Simulink.<|reference_end|>
@article{arrieta2024search-based,
    title={Search-based Automated Program Repair of CPS Controllers Modeled in
  Simulink-Stateflow},
    author={Aitor Arrieta, Pablo Valle, Shaukat Ali},
    journal={arXiv preprint arXiv:2404.04688},
    year={2024},
    archivePrefix={arXiv},
    eprint={2404.04688},
    primaryClass={cs.SE}
}