Conf-Adaption: Adaptive Adjustment of Software Configuration On UAV by Resource Dependency Analysis

With the rapid growth of software scale and complexity, the runtime behavior of software is increasingly dependent on system resources. Nowadays, more and more software failures are caused by resources available to the system, which call for software capability to be adaptive to resource changes. Previous research mainly focused on building adaptive models for the target software. However, building an adaptive model can be very complex and expensive. Our investigation on the UAV (Unmanned Aerial Vehicle) flight control software demonstrate that configuration options could directly affect the consumption of UAV power, which shed light on the design of Conf-Adaption, a tool that could automatically adjust the software configuration based on the changes of system resource according to the external environment. Specifically, we design a lightweight method to analyze the dependency between software configuration and resource, and obtain configuration options that strongly affect resource consumption. Conf-Adaption then adaptively adjusts the configuration to adapt or meet the flight mission. Our experiments on the UAV software demonstrate that when the mission of the UAV changes, Conf-Adaption can automatically adjust the UAV configuration and the 91.7% adjustments can meet the requirements of the mission and effectively extend the flight time.

[1]  Ilias Gerostathopoulos,et al.  Intelligent Ensembles - a Declarative Group Description Language and Java Framework (Artifact) , 2017, Dagstuhl Artifacts Ser..

[2]  Luis Corral,et al.  Energy-Aware Performance Evaluation of Android Custom Kernels , 2015, 2015 IEEE/ACM 4th International Workshop on Green and Sustainable Software.

[3]  Marin Litoiu,et al.  Hogna: A Platform for Self-Adaptive Applications in Cloud Environments , 2015, 2015 IEEE/ACM 10th International Symposium on Software Engineering for Adaptive and Self-Managing Systems.

[4]  Xiaodong Liu,et al.  ConfMapper: Automated Variable Finding for Configuration Items in Source Code , 2016, 2016 IEEE International Conference on Software Quality, Reliability and Security Companion (QRS-C).

[5]  Randy H. Katz,et al.  Precomputing possible configuration error diagnoses , 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).

[6]  Jonathan I. Maletic,et al.  srcSlice: A Tool for Efficient Static Forward Slicing , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering Companion (ICSE-C).

[7]  Bo Zhang,et al.  Hadoop-Benchmark: Rapid Prototyping and Evaluation of Self-Adaptive Behaviors in Hadoop Clusters , 2017, 2017 IEEE/ACM 12th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[8]  Grace A. Lewis,et al.  A catalog of architectural tactics for cyber-foraging , 2015, 2015 11th International ACM SIGSOFT Conference on Quality of Software Architectures (QoSA).

[9]  Sebastián Uchitel,et al.  MORPH: a reference architecture for configuration and behaviour self-adaptation , 2015, CTSE@SIGSOFT FSE.

[10]  Suresh Jagannathan,et al.  Building Resource Adaptive Software Systems (BRASS) , 2016, ACM SIGSOFT Softw. Eng. Notes.

[11]  Evilásio Costa Junior,et al.  Lotus@Runtime: A Tool for Runtime Monitoring and Verification of Self-Adaptive Systems , 2017, 2017 IEEE/ACM 12th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[12]  Ariel S. Rabkin,et al.  Using Program Analysis to Reduce Misconfiguration in Open Source Systems Software , 2012 .

[13]  Sven Apel,et al.  Using bad learners to find good configurations , 2017, ESEC/SIGSOFT FSE.

[14]  Frank Tip,et al.  A survey of program slicing techniques , 1994, J. Program. Lang..

[15]  Henry Hoffmann,et al.  Automated design of self-adaptive software with control-theoretical formal guarantees , 2014, Software Engineering & Management.

[16]  Josep Silva,et al.  A vocabulary of program slicing-based techniques , 2012, CSUR.