Tid: 16:e Juni, kl 10.15 Plats: Zeta, Mälardalens Högskola, Västerås Granskare: Bengt Jonsson, Uppsala Universitet Peter Eriksson, ABB Robotics Examinator: Hans Hansson, Mälardalens Högskola Handledare: Christer Norström, Mälardalens Högskola Anders Wall, ABB Corporate Research Björn Lisper, Mälardalens Högskola
Software embedded in complex products such as cars, telecom systems and industrial robots are typically very large, contain millions of lines of code, and have been developed by hundreds of engineers over many years. We refer to this type of software systems as complex embedded systems. The complexity of these systems is partly from the sheer size of the system; it is difficult to grasp and understand such large sized systems. Another factor contributing to the complexity is the years of software maintenance; many changes are made to the original implementation in order to fix bugs, add new features or make adaptations for e.g. new hardware.
Due to the high complexity, when maintaining complex embedded systems it is hard to predict how specific changes to the system may the impact the system’s behavior. This is especially true for the temporal properties of the system, e.g. response times, since the temporal behavior is dependent on many factors not visible in the implementation, such as execution time. The state-of-practice is therefore often the trial-and-error approach, i.e. implement the proposed change and test the new system version as much as possible in order to identify any errors. However, errors related to the temporal behavior may occur in rare situations only and may therefore not be discovered during testing of the system. If such latent errors occur after the software has been delivered to the company’s customers, the customers may suffer major economic losses, which strikes back on the company. The later such errors are discovered the more expensive they are to fix.
This thesis presents a method for finding these kinds of errors early in development. The specific method proposed is called behavior impact analysis, which aims to predict if a specific change to the system may result in errors related to the temporal behavior. The method especially targets complex embedded systems. By using this analysis method in the software development process, product developing company can avoid errors related to the temporal behavior of the software system. This results in an increased productivity in maintenance and an improvement in system reliability.
The behavior impact analysis requires a model describing the system’s temporal behavior. The model is used for prototyping the change that is to be analyzed. By analyzing the modified model containing the prototype change, the impacts of the change can be identified by comparing the analysis result with results from an analysis of the original model.
The focus in this thesis is on the development and validation of the temporal behavior model. We present a process for development of temporal behavior models from existing implementations of complex embedded systems, using dynamic analysis and reverse engineering. Further, the thesis discuss the concept of model validity and presents a five-step process for validation of temporal behavior models, as well as a set of tools supporting the steps in the modeling and model validation processes.