  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.
