Software quality optimisation


ArcheOpterix is a generic platform for modelling, evaluating and optimising embedded systems. The main modules of ArcheOpterix are shown in the figure below.


The current implementation supports several quality attributes (service reliability, response time, data communication overhead, cost, data transmission reliability, energy consumption, and scheduling length), different optimisation algorithms (genetic algorithms, ant colony optimisation, local search methods, mixed integer linear programming, robust optimisation, etc.) and various parameter control mechanisms (probability matching, adaptive pursuit, dynamic multi-armed bandits, predictive parameter control, adaptive range parameter control, etc.).

download Download source code

  1. i) to run ArcheOpterix excecute

           java -jar dist/ArcheOpterix.jar -run ./utils/config/nsga_conf.xml

    (the nsga_conf.xml is the configuration file. Here you specify the optimisation algorithm, the quality attributes to be optimised, etc.)

  2. ii) the project jar file can be found in the dist folder

  3. iii) example problem instances can be found in utils/problems

  4. iv) to generate a new problem instance, execute

    java -jar ArcheOpterix.jar -gen *hosts* *comps* *buses* *services*

    • Eg : java -jar ArcheOpterix.jar -gen 10 20 2 2

    • *hosts* = number of electronic control units in the hardware architecture

    • *comps* = number of software components

    • *buses* = number of buses

    • *services* = number of services

    • (the definition of software service can be found in Indika Meedeniya, Bara Buhnova, Aldeida Aleti and Lars Grunske, Reliability-Driven Deployment Optimization for Embedded Systems, in Journal of Systems and Software, 2011, Volume 84, Issue 5, Pages 835-846, ISSN 0164-1212)