Keeping Pace with Changes - Towards Supporting Continuous Improvements and Extensive Updates in Manufacturing Automation Software - Haubeck, Christopher; Wior, Ireneus; Braubach, Lars; Pokahr, Alexander; Ladiges, Jan; Fay, Alexander; Lamersdorf, Winfried (Electronic Communications of the EASST, 2013)
Every long-term used software system ages. Even though intangible goods like software do not degenerate in the proper sense, each software system degenerates in relation to the everlasting changes of requirements, usage scenarios and environmental conditions. Accordingly, operational software is commonly situated in a continuous evolution process in which manually conducted modifications and adaptations try to preserve or reinforce its quality. Unfortunately, such an unmanaged evolution inevitably leads to a discrepancy between the obsolete originally documented requirements and the updated software itself. For this reason, our contribution presents a coherent vision of an anti-aging cycle that preserves (non-)functional requirements as explicit runtime artefacts. The fulfilment of these requirements is validated based on conditionally triggered online test cases. In order to achieve an enhanced semantic test coverage, these test cases are adapted by monitoring, analysing and learning typical system behaviours. To explain our vision in more detail and demonstrate the benefit of a managed software evolution, our anti-aging cycle is exemplarily applied on the domain of manufacturing automation.