2016 |
Laperdrix, Pierre; Rudametkin, Walter; Baudry, Benoit Beauty and the Beast: Diverting modern web browsers to build unique browser fingerprints (Inproceeding) Proc. of the IEEE Symposium on Security and Privacy (S&P'16), 2016. @inproceedings{laperdrix16, title = {Beauty and the Beast: Diverting modern web browsers to build unique browser fingerprints}, author = {Pierre Laperdrix and Walter Rudametkin and Benoit Baudry}, url = {https://hal.inria.fr/hal-01285470/file/beauty-sp16.pdf}, year = {2016}, date = {2016-05-23}, booktitle = {Proc. of the IEEE Symposium on Security and Privacy (S&P'16)}, abstract = {Worldwide, the number of people and the time spent browsing the web keeps increasing. Accordingly, the technologies to enrich the user experience are evolving at an amazing pace. Many of these evolutions provide for a more interactive web (e.g., boom of JavaScript libraries, weekly innovations in HTML5), a more available web (e.g., explosion of mobile devices), a more secure web (e.g., Flash is disappearing, NPAPI plugins are being deprecated), and a more private web (e.g., increased legislation against cookies, huge success of extensions such as Ghostery and AdBlock). Nevertheless, modern browser technologies, which provide the beauty and power of the web, also provide a darker side, a rich ecosystem of exploitable data that can be used to build unique browser fingerprints. Our work explores the validity of browser fingerprinting in today’s environment. Over the past year, we have collected 118,934 fingerprints composed of 17 attributes gathered thanks to the most recent web technologies. We show that innovations in HTML5 provide access to highly discriminating attributes, notably with the use of the Canvas API which relies on multiple layers of the user’s system. In addition, we show that browser fingerprinting is as effective on mobile devices as it is on desktops and laptops, albeit for radically different reasons due to their more constrained hardware and software environments. We also evaluate how browser fingerprinting could stop being a threat to user privacy if some technological evolutions continue (e.g., disappearance of plugins) or are embraced by browser vendors (e.g., standard HTTP headers).}, keywords = {}, tppubtype = {inproceedings} tpstatus = {published} } Worldwide, the number of people and the time spent browsing the web keeps increasing. Accordingly, the technologies to enrich the user experience are evolving at an amazing pace. Many of these evolutions provide for a more interactive web (e.g., boom of JavaScript libraries, weekly innovations in HTML5), a more available web (e.g., explosion of mobile devices), a more secure web (e.g., Flash is disappearing, NPAPI plugins are being deprecated), and a more private web (e.g., increased legislation against cookies, huge success of extensions such as Ghostery and AdBlock). Nevertheless, modern browser technologies, which provide the beauty and power of the web, also provide a darker side, a rich ecosystem of exploitable data that can be used to build unique browser fingerprints. Our work explores the validity of browser fingerprinting in today’s environment. Over the past year, we have collected 118,934 fingerprints composed of 17 attributes gathered thanks to the most recent web technologies. We show that innovations in HTML5 provide access to highly discriminating attributes, notably with the use of the Canvas API which relies on multiple layers of the user’s system. In addition, we show that browser fingerprinting is as effective on mobile devices as it is on desktops and laptops, albeit for radically different reasons due to their more constrained hardware and software environments. We also evaluate how browser fingerprinting could stop being a threat to user privacy if some technological evolutions continue (e.g., disappearance of plugins) or are embraced by browser vendors (e.g., standard HTTP headers). |
Nallur, Vivek; O'Toole, Eamonn; Cardozo, Nicolas; and Clarke, Siobhan Algorithm Diversity - A Mechanism for Distributive Justive in a Socio-Technical MAS (Inproceeding) Proc. of the Autonomous Agent and MultiAgent Systems International Conference (AAMAS'16), 2016. @inproceedings{nallur16, title = {Algorithm Diversity - A Mechanism for Distributive Justive in a Socio-Technical MAS }, author = {Vivek Nallur and Eamonn O'Toole and Nicolas Cardozo and and Siobhan Clarke}, url = {http://diversify-project.eu/papers/nallur16.pdf}, year = {2016}, date = {2016-05-09}, booktitle = {Proc. of the Autonomous Agent and MultiAgent Systems International Conference (AAMAS'16)}, abstract = {Socio-technical MAS are an intrinsic part of our daily lives. Domains like energy, transport, etc. are increasingly using technology to allow individual users to adapt to, and even influence the aggregate performance of the system. This raises expectations of fairness and equitability, while being engaged in such MAS. Given the autonomous and decentralized nature of socio-technical MAS, it can be difficult to ensure that each agent gets a fair reward for participating in the system. We introduce the notion of algorithmic diversity as a mechanism for nudging the system, in a decentralized manner, to a more equitable state. We use the minority game as an exemplar of a transportation network in a city, and show how diversity of algorithms results in a fairer reward distribution than any individual algorithm alone.}, keywords = {}, tppubtype = {inproceedings} tpstatus = {published} } Socio-technical MAS are an intrinsic part of our daily lives. Domains like energy, transport, etc. are increasingly using technology to allow individual users to adapt to, and even influence the aggregate performance of the system. This raises expectations of fairness and equitability, while being engaged in such MAS. Given the autonomous and decentralized nature of socio-technical MAS, it can be difficult to ensure that each agent gets a fair reward for participating in the system. We introduce the notion of algorithmic diversity as a mechanism for nudging the system, in a decentralized manner, to a more equitable state. We use the minority game as an exemplar of a transportation network in a city, and show how diversity of algorithms results in a fairer reward distribution than any individual algorithm alone. |
Saiz, Hugo; Bittebiere, Anne-Kristel; Benot, Marie-Lise; Jung, Vincent; Mony, Cendrine Understanding clonal plants competition for space over time: a fine scale approach based on experimental communities (Journal Article) Journal of Vegetation Science, 2016. @article{saiz16, title = {Understanding clonal plants competition for space over time: a fine scale approach based on experimental communities}, author = {Hugo Saiz and Anne-Kristel Bittebiere and Marie-Lise Benot and Vincent Jung and Cendrine Mony}, url = {http://diversify-project.eu/papers/Saiz16.pdf}, year = {2016}, date = {2016-01-01}, journal = {Journal of Vegetation Science}, keywords = {}, tppubtype = {article} tpstatus = {published} } |
Rodriguez-Cancio, Marcelino; Combemale, Benoit; Baudry, Benoit Automatic Microbenchmark Generation to Prevent Dead Code Elimination and Constant Folding (Inproceeding) Proc. of the Int. Conf. on Automated Software Engineering (ASE 2016) , Singapore, Singapore, 2016. @inproceedings{rodriguezcancio:hal-01343818, title = {Automatic Microbenchmark Generation to Prevent Dead Code Elimination and Constant Folding}, author = {Rodriguez-Cancio, Marcelino and Combemale, Benoit and Baudry, Benoit}, url = {http://diversify-project.eu/papers/rodriguez-cancio16.pdf}, year = {2016}, date = {2016-01-01}, booktitle = {Proc. of the Int. Conf. on Automated Software Engineering (ASE 2016) }, address = {Singapore, Singapore}, keywords = {}, tppubtype = {inproceedings} tpstatus = {published} } |
2015 |
Cardozo, Nicolas; Nallur, Vivek; Clarke, Siobhan Enabling Participatory Routing Using a Smart Routing Platform (Inproceeding) IEEE International Smart Cities Conference, IEEE, Guadalajara, Mexico, 2015. @inproceedings{cardozo15isc2, title = {Enabling Participatory Routing Using a Smart Routing Platform}, author = {Nicolas Cardozo and Vivek Nallur and Siobhan Clarke}, url = {http://diversify-project.eu/papers/cardozo15.pdf}, year = {2015}, date = {2015-10-01}, booktitle = {IEEE International Smart Cities Conference}, publisher = {IEEE}, address = {Guadalajara, Mexico}, series = {ISC2'15}, abstract = {Participatory sensing has been advocated as a decentralized mechanism for getting up-to-date data about a city. However, this leads to data flowing only in one direction, from the citizen to the data collector. We advocate closing the loop, by creating a platform that aggregates participatory data, visualizes it, and provides utility from the data. We argue that this will lead to greater participation, as well as greater interest in various aspects of a city that can be collaboratively mapped. }, keywords = {}, tppubtype = {inproceedings} tpstatus = {published} } Participatory sensing has been advocated as a decentralized mechanism for getting up-to-date data about a city. However, this leads to data flowing only in one direction, from the citizen to the data collector. We advocate closing the loop, by creating a platform that aggregates participatory data, visualizes it, and provides utility from the data. We argue that this will lead to greater participation, as well as greater interest in various aspects of a city that can be collaboratively mapped. |
Yeboah-Antwi, Kwaku; Baudry, Benoit Embedding Adaptivity in Software Systems using the ECSELR framework (Inproceeding) Proc. of the Genetic Improvement Workshop, 2015. @inproceedings{Yeboah15, title = {Embedding Adaptivity in Software Systems using the ECSELR framework}, author = {Yeboah-Antwi, Kwaku and Baudry, Benoit}, url = {http://diversify-project.eu/papers/Yeboah15.pdf}, year = {2015}, date = {2015-07-25}, booktitle = {Proc. of the Genetic Improvement Workshop}, abstract = {We present, ECSELR, an ecologically-inspired approach to software evolution that allows for environmentally driven evolution in extant software systems at runtime without relying n any offline components or management. ECSELR embeds adaption snd evolution inside the target software system allowing such systems to transform themselves via darwinian evolutionary mechanisms and adapt in a self contained manner. This allows such software system to benefit from the useful byproducts of evolution like adaptivity, bio-diversity without having to worry about problems involved in engineering and maintaining such properties. ECSELR allows the software systems to address changing environments at runtime enabling benefits like mitigation of attacks, memory-optimization among others while avoiding time-consuming and costly maintenance and downtime. ECSELR differs from existing work in that, 1) adaption is embedded in the target system, 2) evolution and adaptation happens online(ie in-situ at runtime) and 3) ECSELR is able to embed adaptation inside systems that have been already started and are in the midst of execution. We demonstrate the use of ECSELR and present results on an experiments in using the ECSELR framework to slim a software system. }, keywords = {}, tppubtype = {inproceedings} tpstatus = {published} } We present, ECSELR, an ecologically-inspired approach to software evolution that allows for environmentally driven evolution in extant software systems at runtime without relying n any offline components or management. ECSELR embeds adaption snd evolution inside the target software system allowing such systems to transform themselves via darwinian evolutionary mechanisms and adapt in a self contained manner. This allows such software system to benefit from the useful byproducts of evolution like adaptivity, bio-diversity without having to worry about problems involved in engineering and maintaining such properties. ECSELR allows the software systems to address changing environments at runtime enabling benefits like mitigation of attacks, memory-optimization among others while avoiding time-consuming and costly maintenance and downtime. ECSELR differs from existing work in that, 1) adaption is embedded in the target system, 2) evolution and adaptation happens online(ie in-situ at runtime) and 3) ECSELR is able to embed adaptation inside systems that have been already started and are in the midst of execution. We demonstrate the use of ECSELR and present results on an experiments in using the ECSELR framework to slim a software system. |
Fleurey, Franck; Baudry, Benoit; Gauzens, Benoit; Elie, Andr{'e}; Yeboah-Antwi, Kwaku Emergent Robustness in Software Systems through Decentralized Adaptation: an Ecologically-Inspired ALife Approach (Inproceeding) Proc. of the European Conference on Artificial Life, 2015. @inproceedings{fleurey15, title = {Emergent Robustness in Software Systems through Decentralized Adaptation: an Ecologically-Inspired ALife Approach}, author = {Fleurey, Franck and Baudry, Benoit and Gauzens, Benoit and Elie, Andr{\'e} and Yeboah-Antwi, Kwaku}, url = {http://diversify-project.eu/papers/Fleurey15.pdf}, year = {2015}, date = {2015-07-20}, booktitle = {Proc. of the European Conference on Artificial Life}, abstract = { The ecosystem of web applications faces a critical paradox: on one hand, the Internet is a constantly evolving and unpredictable computing platform, on the other hand, the software services that run on top of it hardly have the ability to adapt to the evolution of this platform. Among the software services, we distinguish between \\emph{service providers} that provide micro services and service consumers that aggregate several micro services to deliver macro services to customers. Providers and consumers must handle uncertainty: providers cannot know in advance what consumers need; consumers rely on third-parties that can disappear at any time. Our proposal analogizes the software consumer / provider network to a bipartite ecological graph. This analogy provides the foundations for the design of EvoServ, an individual-based ALife simulator used to experiment with decentralized adaptation strategies for providers and consumers. The initial model of a software network is tuned according to observations gathered from real-world software networks. The key insights about our experiments are that, 1) we can successfully model software systems as an ALife system, and 2) we succeed in emerging a global property from local decisions: when consumers and providers adapt with local decision strategies, the global robustness of the network increases. We show that these results hold with different initial situations, different scales and different topological constraints on the network. }, keywords = {}, tppubtype = {inproceedings} tpstatus = {published} } The ecosystem of web applications faces a critical paradox: on one hand, the Internet is a constantly evolving and unpredictable computing platform, on the other hand, the software services that run on top of it hardly have the ability to adapt to the evolution of this platform. Among the software services, we distinguish between \emph{service providers} that provide micro services and service consumers that aggregate several micro services to deliver macro services to customers. Providers and consumers must handle uncertainty: providers cannot know in advance what consumers need; consumers rely on third-parties that can disappear at any time. Our proposal analogizes the software consumer / provider network to a bipartite ecological graph. This analogy provides the foundations for the design of EvoServ, an individual-based ALife simulator used to experiment with decentralized adaptation strategies for providers and consumers. The initial model of a software network is tuned according to observations gathered from real-world software networks. The key insights about our experiments are that, 1) we can successfully model software systems as an ALife system, and 2) we succeed in emerging a global property from local decisions: when consumers and providers adapt with local decision strategies, the global robustness of the network increases. We show that these results hold with different initial situations, different scales and different topological constraints on the network. |
Saiz, Hugo; Gomez-Gardenes, Jesus; Nuche-Galvez, Paloma; Giron, Andrea; Pueyo, Yolanda; López Alados, Concepción Signed networks in ecology: new challenges for understanding ecological communities (Inproceeding) International School and Conference on Network Science, Netsci2015, 2015. @inproceedings{saiz15, title = {Signed networks in ecology: new challenges for understanding ecological communities}, author = {Saiz, Hugo and Gomez-Gardenes, Jesus and Nuche-Galvez, Paloma and Giron, Andrea and Pueyo, Yolanda and López Alados, Concepción}, url = {http://diversify-project.eu/papers/Saiz15.pdf}, year = {2015}, date = {2015-06-01}, booktitle = {International School and Conference on Network Science, Netsci2015}, keywords = {}, tppubtype = {inproceedings} tpstatus = {published} } |
Laperdrix, Pierre; Rudametkin, Walter; Baudry, Benoit Mitigating browser fingerprint tracking: multi-level reconfiguration and diversification (Inproceeding) Proceedings of the International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS'15), 2015. @inproceedings{laperdrix15, title = {Mitigating browser fingerprint tracking: multi-level reconfiguration and diversification}, author = {Laperdrix, Pierre and Rudametkin, Walter and Baudry, Benoit}, url = {http://diversify-project.eu/papers/laperdrix15.pdf}, year = {2015}, date = {2015-05-15}, booktitle = {Proceedings of the International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS'15)}, abstract = {The diversity of software components (e.g., browsers, plugins, fonts) is a wonderful opportunity for users to customize their platforms. Yet, this massive customization creates a privacy issue: all browsers are now slightly different from one another, allowing third parties to collect unique and stable fingerprints to track users. Although software diversity appears to be the source of this privacy issue, we claim that this same diversity, combined with automatic reconfiguration techniques, provides the essential ingredients to constantly change browsing platforms. Constant change acts as a moving target defense strategy against browser fingerprint tracking by breaking an essential property for the exploitation of a browser fingerprint: its stability over time. We leverage virtualization and modular software architectures to automatically assemble and reconfigure a user\'s software components at multiple levels. We operate on the operating system, the browser, the lists of fonts and plugins. This work is the first application of software reconfiguration to build a moving target defense against browser fingerprint tracking. The main objective is to automatically modify the fingerprint a platform exhibits. We have developed a prototype called \\textit{Blink} to experiment the effectiveness of our approach at randomizing fingerprints. We have assembled and reconfigured thousands of platforms, and we observe that all of them exhibit different fingerprints, and that commercial fingerprinting solutions are not able to detect that the different platforms actually correspond to a single user.}, keywords = {}, tppubtype = {inproceedings} tpstatus = {published} } The diversity of software components (e.g., browsers, plugins, fonts) is a wonderful opportunity for users to customize their platforms. Yet, this massive customization creates a privacy issue: all browsers are now slightly different from one another, allowing third parties to collect unique and stable fingerprints to track users. Although software diversity appears to be the source of this privacy issue, we claim that this same diversity, combined with automatic reconfiguration techniques, provides the essential ingredients to constantly change browsing platforms. Constant change acts as a moving target defense strategy against browser fingerprint tracking by breaking an essential property for the exploitation of a browser fingerprint: its stability over time. We leverage virtualization and modular software architectures to automatically assemble and reconfigure a user's software components at multiple levels. We operate on the operating system, the browser, the lists of fonts and plugins. This work is the first application of software reconfiguration to build a moving target defense against browser fingerprint tracking. The main objective is to automatically modify the fingerprint a platform exhibits. We have developed a prototype called \textit{Blink} to experiment the effectiveness of our approach at randomizing fingerprints. We have assembled and reconfigured thousands of platforms, and we observe that all of them exhibit different fingerprints, and that commercial fingerprinting solutions are not able to detect that the different platforms actually correspond to a single user. |
Gauzens, Benoit; Thébault, Elisa; Lacroix, Gérard; Legendre, Stéphane Trophic groups and modules: two levels of group detection in food webs (Journal Article) Journal of the Royal Society Interface, 2015. @article{gauzens15, title = {Trophic groups and modules: two levels of group detection in food webs}, author = {Benoit Gauzens and Elisa Thébault and Gérard Lacroix and Stéphane Legendre}, url = {http://diversify-project.eu/papers/Gauzens15a.pdf}, year = {2015}, date = {2015-04-01}, journal = {Journal of the Royal Society Interface}, keywords = {}, tppubtype = {article} tpstatus = {published} } |
Allier, Simon; Barais, Olivier; Baudry, Benoit; Bourcier, Johann; Daubert, Erwan; Fleurey, Franck; Monperrus, Martin; Song, Hui; Tricoire, Maxime Multi-tier diversification in Web-based software applications (Journal Article) IEEE Software, 32 (1), pp. 83-90, 2015. @article{allier15, title = {Multi-tier diversification in Web-based software applications}, author = { Simon Allier and Olivier Barais and Benoit Baudry and Johann Bourcier and Erwan Daubert and Franck Fleurey and Martin Monperrus and Hui Song and Maxime Tricoire}, url = {https://hal.inria.fr/hal-01089268/document}, year = {2015}, date = {2015-01-01}, journal = {IEEE Software}, volume = {32}, number = {1}, pages = {83-90}, publisher = {IEEE}, abstract = {The development of web applications massively benefits from modular architectures and reuse. This excellent software engineering practice, is also the source of a new form of monoculture in application-level code, which creates a potential risk for dependability. We propose using software diversification in multiple components of web applications to reconcile the tension between reuse and dependability. We identify key enablers for the effective diversification of software, especially at the application-code level. Our vision is that it is possible to combine different software diversification strategies, from the deployment of different vendor solutions, to fine-grained code transformations, in order to provide different forms of protection. }, keywords = {}, tppubtype = {article} tpstatus = {published} } The development of web applications massively benefits from modular architectures and reuse. This excellent software engineering practice, is also the source of a new form of monoculture in application-level code, which creates a potential risk for dependability. We propose using software diversification in multiple components of web applications to reconcile the tension between reuse and dependability. We identify key enablers for the effective diversification of software, especially at the application-code level. Our vision is that it is possible to combine different software diversification strategies, from the deployment of different vendor solutions, to fine-grained code transformations, in order to provide different forms of protection. |
Song, Hui; Elgammal, Amal; Nallur, Vivek; Chauvel, Franck; Fleurey, Franck; Clarke, Siobh'an On Architectural Diversity of Dynamic Adaptive Systems (Inproceeding) International Conference on Software Engineering, the New Ideas and Emerging Results (NIER) track,, 2015, ( to appear). @inproceedings{Song2015, title = {On Architectural Diversity of Dynamic Adaptive Systems}, author = {Song, Hui and Elgammal, Amal and Nallur, Vivek and Chauvel, Franck and Fleurey, Franck and Clarke, Siobh'an }, url = {http://diversify-project.eu/papers/song15.pdf}, year = {2015}, date = {2015-01-01}, booktitle = {International Conference on Software Engineering, the New Ideas and Emerging Results (NIER) track,}, abstract = {We introduce a novel concept of ``architecture diversity\'\' for adaptive systems and posit that increased diversity has an inverse correlation with adaptation costs. We propose an index to quantify diversity and a static method to estimate the adaptation cost, and conduct an initial experiment on an exemplar cloud-based system which reveals the posited correlation.}, note = { to appear}, keywords = {}, tppubtype = {inproceedings} tpstatus = {published} } We introduce a novel concept of ``architecture diversity'' for adaptive systems and posit that increased diversity has an inverse correlation with adaptation costs. We propose an index to quantify diversity and a static method to estimate the adaptation cost, and conduct an initial experiment on an exemplar cloud-based system which reveals the posited correlation. |
Nallur, Vivek; Elgammal, Amal; Clarke, Siobhan Smart Route Planning Using Open Data and Participatory Sensing (Inproceeding) Proceedings of the International Conference on Open Source Systems (OSS'15), co-located with ICSE'15, Springer, Italy, 2015. @inproceedings{Nallur15, title = {Smart Route Planning Using Open Data and Participatory Sensing}, author = { Vivek Nallur and Amal Elgammal and Siobhan Clarke}, url = {http://diversify-project.eu/papers/nallur15.pdf}, year = {2015}, date = {2015-01-01}, booktitle = {Proceedings of the International Conference on Open Source Systems (OSS'15), co-located with ICSE'15}, publisher = {Springer}, address = {Italy}, abstract = {Smart cities are not merely the infusion of technology into a city\'s infrastructure, but also require citizens interacting with their urban environment in a smart and informed manner. Transportation is key aspect of smart cities. In this paper, we present a smart route planning open-source system; SMART-GH utilizes open data and participatory sensing, where citizens actively participate in collecting data about the city in their daily environment, e.g., noise, air pollution, etc. SMART-GH then augments the routing logic with sensor data to answer queries such as `return the least noisy route\'. SMART-GH enables citizens to make smarter decisions about their daily commute, and subsequently improve their quality of life.}, keywords = {}, tppubtype = {inproceedings} tpstatus = {published} } Smart cities are not merely the infusion of technology into a city's infrastructure, but also require citizens interacting with their urban environment in a smart and informed manner. Transportation is key aspect of smart cities. In this paper, we present a smart route planning open-source system; SMART-GH utilizes open data and participatory sensing, where citizens actively participate in collecting data about the city in their daily environment, e.g., noise, air pollution, etc. SMART-GH then augments the routing logic with sensor data to answer queries such as `return the least noisy route'. SMART-GH enables citizens to make smarter decisions about their daily commute, and subsequently improve their quality of life. |
Baudry, Benoit; Monperrus, Martin The Multiple Facets of Software Diversity: Recent Developments in Year 2000 and Beyond (Journal Article) ACM Computing Surveys, 2015. @article{baudry15, title = {The Multiple Facets of Software Diversity: Recent Developments in Year 2000 and Beyond}, author = { Benoit Baudry and Martin Monperrus}, url = {https://hal.inria.fr/hal-01182103/document}, year = {2015}, date = {2015-01-01}, journal = {ACM Computing Surveys}, abstract = {Early experiments with software diversity in the mid 1970\'s investigated N-version programming and recovery blocks to increase the reliability of embedded systems. Four decades later, the literature about software diversity has expanded in multiple directions: goals (fault-tolerance, security, software engineering); means (managed or automated diversity) and analytical studies (quantification of diversity and its impact). Our paper contributes to the field of software diversity as the first paper that adopts an inclusive vision of the area, with an emphasis on the most recent advances in the field. This survey includes classical work about design and data diversity for fault tolerance, as well as the cybersecurity literature that investigates randomization at different system levels. It broadens this standard scope of diversity, to include the study and exploitation of natural diversity and the management of diverse software products. Our survey includes the most recent works, with an emphasis from 2000 to present. The targeted audience is researchers and practitioners in one of the surveyed fields, who miss the big picture of software diversity. Assembling the multiple facets of this fascinating topic sheds a new light on the field.}, keywords = {}, tppubtype = {article} tpstatus = {published} } Early experiments with software diversity in the mid 1970's investigated N-version programming and recovery blocks to increase the reliability of embedded systems. Four decades later, the literature about software diversity has expanded in multiple directions: goals (fault-tolerance, security, software engineering); means (managed or automated diversity) and analytical studies (quantification of diversity and its impact). Our paper contributes to the field of software diversity as the first paper that adopts an inclusive vision of the area, with an emphasis on the most recent advances in the field. This survey includes classical work about design and data diversity for fault tolerance, as well as the cybersecurity literature that investigates randomization at different system levels. It broadens this standard scope of diversity, to include the study and exploitation of natural diversity and the management of diverse software products. Our survey includes the most recent works, with an emphasis from 2000 to present. The targeted audience is researchers and practitioners in one of the surveyed fields, who miss the big picture of software diversity. Assembling the multiple facets of this fascinating topic sheds a new light on the field. |
Filho, João Bosco Ferreira; Allier, Simon; Barais, Olivier; Acher, Mathieu; Baudry, Benoit Assessing Product Line Derivation Operators Applied to Java Source Code: An Empirical Study (Inproceeding) Proc. of the Int. Software Product Line Conference (SPLC), pp. 36-45, Nashville, TN, United States, 2015. @inproceedings{filho15, title = {Assessing Product Line Derivation Operators Applied to Java Source Code: An Empirical Study}, author = { João Bosco Ferreira Filho and Simon Allier and Olivier Barais and Mathieu Acher and Benoit Baudry}, url = {http://diversify-project.eu/papers/filho15.pdf}, year = {2015}, date = {2015-01-01}, booktitle = {Proc. of the Int. Software Product Line Conference (SPLC)}, pages = {36-45}, address = {Nashville, TN, United States}, abstract = {Product Derivation is a key activity in Software Product Line Engineering. During this process, derivation operators modify or create core assets (e.g., model elements, source code instructions, components) by adding, removing or substituting them according to a given configuration. The result is a derived product that generally needs to conform to a programming or modeling language. Some operators lead to invalid products when applied to certain assets, some others do not; knowing this in advance can help to better use them, however this is challenging, specially if we consider assets expressed in extensive and complex languages such as Java. In this paper, we empirically answer the following question: which product line operators, applied to which program elements , can synthesize variants of programs that are incorrect , correct or perhaps even conforming to test suites? We implement source code transformations, based on the derivation operators of the Common Variability Language. We automatically synthesize more than 370,000 program variants from a set of 8 real large Java projects (up to 85,000 lines of code), obtaining an extensive panorama of the sanity of the operations. }, keywords = {}, tppubtype = {inproceedings} tpstatus = {published} } Product Derivation is a key activity in Software Product Line Engineering. During this process, derivation operators modify or create core assets (e.g., model elements, source code instructions, components) by adding, removing or substituting them according to a given configuration. The result is a derived product that generally needs to conform to a programming or modeling language. Some operators lead to invalid products when applied to certain assets, some others do not; knowing this in advance can help to better use them, however this is challenging, specially if we consider assets expressed in extensive and complex languages such as Java. In this paper, we empirically answer the following question: which product line operators, applied to which program elements , can synthesize variants of programs that are incorrect , correct or perhaps even conforming to test suites? We implement source code transformations, based on the derivation operators of the Common Variability Language. We automatically synthesize more than 370,000 program variants from a set of 8 real large Java projects (up to 85,000 lines of code), obtaining an extensive panorama of the sanity of the operations. |
Chauvel, Franck; Song, Hui; Ferry, Nicolas; Fleurey, Franck Evaluating robustness of cloud-based systems (Journal Article) Journal of Cloud Computing, 4 (1), pp. 18, 2015, ISSN: 2192-113X. @article{, title = {Evaluating robustness of cloud-based systems}, author = { Franck Chauvel and Hui Song and Nicolas Ferry and Franck Fleurey}, url = {http://www.journalofcloudcomputing.com/content/4/1/18}, doi = {10.1186/s13677-015-0043-7}, issn = {2192-113X}, year = {2015}, date = {2015-01-01}, journal = {Journal of Cloud Computing}, volume = {4}, number = {1}, pages = {18}, abstract = {Various services are now available in the Cloud, ranging from turnkey databases and application servers to high-level services such as continuous integration or source version control. To stand out of this diversity, robustness of service compositions is an important selling argument, but which remains difficult to understand and estimate as it does not only depend on services but also on the underlying platform and infrastructure. Yet, choosing a specific service composition may fail to deliver the expected robustness, but reverting early choices may jeopardise the success of any Cloud project.Inspired by existing models used in Biology to quantify the robustness of ecosystems, we show how to tailor them to obtain early indicators of robustness for cloud-based deployments. This technique helps identify weakest parts in the overall architecture and in turn mitigates the risk of having to revert key architectural choices. We illustrate our approach by comparing the robustness of four alternative deployments of the SensApp application, which includes a MongoDB database, four REST services and a graphical web-front end.}, keywords = {}, tppubtype = {article} tpstatus = {published} } Various services are now available in the Cloud, ranging from turnkey databases and application servers to high-level services such as continuous integration or source version control. To stand out of this diversity, robustness of service compositions is an important selling argument, but which remains difficult to understand and estimate as it does not only depend on services but also on the underlying platform and infrastructure. Yet, choosing a specific service composition may fail to deliver the expected robustness, but reverting early choices may jeopardise the success of any Cloud project.Inspired by existing models used in Biology to quantify the robustness of ecosystems, we show how to tailor them to obtain early indicators of robustness for cloud-based deployments. This technique helps identify weakest parts in the overall architecture and in turn mitigates the risk of having to revert key architectural choices. We illustrate our approach by comparing the robustness of four alternative deployments of the SensApp application, which includes a MongoDB database, four REST services and a graphical web-front end. |
Song, Hui; Chauvel, Franck; Fleurey, Franck; Ferry, Nicolas; Solberg, Arnor Consolas: A Model-Based Tool for Automatic Configuration and Deployment of Cloud Applications (Inproceeding) International Conference on Model-Driven Engineering Languages and Systems, the Poster and Demo Track, 2015. @inproceedings{ferry2013towards, title = {Consolas: A Model-Based Tool for Automatic Configuration and Deployment of Cloud Applications}, author = {Hui Song and Franck Chauvel and Franck Fleurey and Nicolas Ferry and Arnor Solberg}, url = {http://ceur-ws.org/Vol-1554/PD_MoDELS_2015_paper_3.pdf}, year = {2015}, date = {2015-01-01}, booktitle = {International Conference on Model-Driven Engineering Languages and Systems, the Poster and Demo Track}, keywords = {}, tppubtype = {inproceedings} tpstatus = {published} } |
Nallur, Vivek; Monteil, Julien; Sammons, Tyler; Bouroche, Mélanie; Clarke, Siobhán Increasing Information in a Socio-Technical MAS Considered Contentious (Conference) Proceedings of the Ninth IEEE International Conference on Self-Adaptive and Self-Organizing Systems Workshops (SASOW), 2015. @conference{Nallur2015, title = {Increasing Information in a Socio-Technical MAS Considered Contentious}, author = { Vivek Nallur and Julien Monteil and Tyler Sammons and Mélanie Bouroche and Siobhán Clarke}, url = {http://diversify-project.eu/papers/nallur15b.pdf}, year = {2015}, date = {2015-01-01}, booktitle = {Proceedings of the Ninth IEEE International Conference on Self-Adaptive and Self-Organizing Systems Workshops (SASOW)}, keywords = {}, tppubtype = {conference} tpstatus = {published} } |
Gauzens, Benoit; Legendre, Stéphane; Lazzaro, Xavier; Lacroix, Gérard Intermediate predation pressure leads to maximal complexity in food webs (Journal Article) Oikos, 2015. @article{gaunzens15b, title = {Intermediate predation pressure leads to maximal complexity in food webs}, author = {Benoit Gauzens and Stéphane Legendre and Xavier Lazzaro and Gérard Lacroix}, url = {http://diversify-project.eu/papers/Gauzens15b.pdf}, year = {2015}, date = {2015-01-01}, journal = {Oikos}, keywords = {}, tppubtype = {article} tpstatus = {published} } |
2014 |
Biazzini, Marco; Monperrus, Martin; Baudry, Benoit On Analyzing the Topology of Commit Histories in Decentralized Version Control Systems (Inproceeding) Proc. of the Int. Conf. on Software Maintenance and Evolution (ICSME), 2014. @inproceedings{biazzini14, title = {On Analyzing the Topology of Commit Histories in Decentralized Version Control Systems}, author = {Biazzini, Marco and Monperrus, Martin and Baudry, Benoit}, url = {http://hal.archives-ouvertes.fr/docs/01/06/37/89/PDF/main.pdf}, year = {2014}, date = {2014-10-01}, booktitle = {Proc. of the Int. Conf. on Software Maintenance and Evolution (ICSME)}, abstract = {Empirical analysis of software repositories usually deals with linear histories derived from centralized versioning systems. Decentralized version control systems allow a much richer structure of commit histories, which presents features that are typical of complex graph models. In this paper we bring some evidences of how the very structure of these commit histories carries relevant information about the distributed development process. By means of a novel data structure that we formally define, we analyze the topological characteristics of commit graphs of a sample of git projects. Our findings point out the existence of common recurrent structural patterns which identically occur in different projects and can be consider building blocks of distributed collaborative development. }, keywords = {}, tppubtype = {inproceedings} tpstatus = {published} } Empirical analysis of software repositories usually deals with linear histories derived from centralized versioning systems. Decentralized version control systems allow a much richer structure of commit histories, which presents features that are typical of complex graph models. In this paper we bring some evidences of how the very structure of these commit histories carries relevant information about the distributed development process. By means of a novel data structure that we formally define, we analyze the topological characteristics of commit graphs of a sample of git projects. Our findings point out the existence of common recurrent structural patterns which identically occur in different projects and can be consider building blocks of distributed collaborative development. |
Baudry, Benoit; Allier, Simon; Monperrus, Martin Tailored Source Code Transformations to Synthesize Computationally Diverse Program Variants (Inproceeding) Proc. of the Int. Symp. on Software Testing and Analysis (ISSTA), 2014. @inproceedings{Baudry2014, title = {Tailored Source Code Transformations to Synthesize Computationally Diverse Program Variants}, author = {Baudry, Benoit and Allier, Simon and Monperrus, Martin}, url = {http://arxiv.org/pdf/1401.7635.pdf}, year = {2014}, date = {2014-07-21}, booktitle = {Proc. of the Int. Symp. on Software Testing and Analysis (ISSTA)}, abstract = {The predictability of program execution provides attackers a rich source of knowledge who can exploit it to spy or remotely control the program. Moving target defense ad- dresses this issue by constantly switching between many di- verse variants of a program, which reduces the certainty that an attacker can have about the program execution. The ef- fectiveness of this approach relies on the availability of a large number of software variants that exhibit dierent ex- ecutions. However, current approaches rely on the natural diversity provided by o-the-shelf components, which is very limited. In this paper, we explore the automatic synthe- sis of large sets of program variants, called sosies . Sosies provide the same expected functionality as the original pro- gram, while exhibiting dierent executions. They are said to be computationally diverse. This work addresses two objectives: comparing dierent transformations for increasing the likelihood of sosie synthe- sis (densifying the search space for sosies); demonstrating computation diversity in synthesized sosies. We synthesized 30 184 sosies in total, for 9 large, real-world, open source ap- plications. For all these programs we identied one type of program analysis that systematically increases the density of sosies; we measured computation diversity for sosies of 3 programs and found diversity in method calls or data in more than 40% of sosies. This is a step towards controlled massive unpredictability of software.}, keywords = {}, tppubtype = {inproceedings} tpstatus = {published} } The predictability of program execution provides attackers a rich source of knowledge who can exploit it to spy or remotely control the program. Moving target defense ad- dresses this issue by constantly switching between many di- verse variants of a program, which reduces the certainty that an attacker can have about the program execution. The ef- fectiveness of this approach relies on the availability of a large number of software variants that exhibit dierent ex- ecutions. However, current approaches rely on the natural diversity provided by o-the-shelf components, which is very limited. In this paper, we explore the automatic synthe- sis of large sets of program variants, called sosies . Sosies provide the same expected functionality as the original pro- gram, while exhibiting dierent executions. They are said to be computationally diverse. This work addresses two objectives: comparing dierent transformations for increasing the likelihood of sosie synthe- sis (densifying the search space for sosies); demonstrating computation diversity in synthesized sosies. We synthesized 30 184 sosies in total, for 9 large, real-world, open source ap- plications. For all these programs we identied one type of program analysis that systematically increases the density of sosies; we measured computation diversity for sosies of 3 programs and found diversity in method calls or data in more than 40% of sosies. This is a step towards controlled massive unpredictability of software. |
Monperrus, Martin Proceedings of the International Conference on Software Engineering (ICSE), pp. 234-242, 2014. @inproceedings{Monperrus2014, title = {A Critical Review of "Automatic Patch Generation Learned from Human-Written Patches": Essay on the Problem Statement and the Evaluation of Automatic Software Repair}, author = {Martin Monperrus}, url = {http://www.monperrus.net/martin/essay-on-automatic-software-repair.pdf}, year = {2014}, date = {2014-05-24}, booktitle = {Proceedings of the International Conference on Software Engineering (ICSE)}, pages = {234-242}, abstract = {At ICSE\'2013, there was the first session ever dedicated to automatic program repair. In this session, Kim et al. presented PAR, a novel template-based approach for fixing Java bugs. We strongly disagree with key points of this paper. Our critical review has two goals. First, we aim at explaining why we disagree with Kim and colleagues and why the reasons behind this disagreement are important for research on automatic software repair in general. Second, we aim at contributing to the field with a clarification of the essential ideas behind automatic software repair. In particular we discuss the main evaluation criteria of automatic software repair: understandability, correctness and completeness. We show that depending on how one sets up the repair scenario, the evaluation goals may be contradictory. Eventually, we discuss the nature of fix acceptability and its relation to the notion of software correctness.}, keywords = {}, tppubtype = {inproceedings} tpstatus = {published} } At ICSE'2013, there was the first session ever dedicated to automatic program repair. In this session, Kim et al. presented PAR, a novel template-based approach for fixing Java bugs. We strongly disagree with key points of this paper. Our critical review has two goals. First, we aim at explaining why we disagree with Kim and colleagues and why the reasons behind this disagreement are important for research on automatic software repair in general. Second, we aim at contributing to the field with a clarification of the essential ideas behind automatic software repair. In particular we discuss the main evaluation criteria of automatic software repair: understandability, correctness and completeness. We show that depending on how one sets up the repair scenario, the evaluation goals may be contradictory. Eventually, we discuss the nature of fix acceptability and its relation to the notion of software correctness. |
Baudry, Benoit; Monperrus, Martin; Mony, Cendrine; Chauvel, Franck; Fleurey, Franck; Clarke, Siobhan DIVERSIFY: Ecology-Inspired Software Evolution for Diversity Emergence (Inproceeding) Proc. of the Int. Conf. on Software Maintenance and Reengineering (CSMR), pp. 444-447, Belgium, 2014. @inproceedings{baudry14, title = {DIVERSIFY: Ecology-Inspired Software Evolution for Diversity Emergence}, author = {Baudry, Benoit and Monperrus, Martin and Mony, Cendrine and Chauvel, Franck and Fleurey, Franck and Clarke, Siobhan}, url = {http://hal.inria.fr/docs/00/91/62/81/PDF/csmr14-diversify.pdf}, year = {2014}, date = {2014-01-01}, booktitle = {Proc. of the Int. Conf. on Software Maintenance and Reengineering (CSMR)}, pages = {444-447}, address = {Belgium}, abstract = {DIVERSIFY is an EU funded project, which aims at favoring spontaneous diversification in software systems in order to increase their adaptive capacities. This objective is founded on three observations: software has to constantly evolve to face unpredictable changes in its requirements, execution environment or to respond to failure (bugs, attacks, etc.); the emergence and maintenance of high levels of diversity are essential to provide adaptive capacities to many forms of complex systems, ranging from ecological and biological systems to social and economical systems; diversity levels tend to be very low in software systems. DIVERSIFY explores how the biological evolutionary mechanisms, which sustain high levels of biodiversity in ecosystems (speciation, phenotypic plasticity and natural selection) can be translated in software evolution principles. In this work, we consider evolution as a driver for diversity as a means to increase resilience in software systems. In particular, we are inspired by bipartite ecological relationships to investigate the automatic diversification of the server side of a client-server architecture. This type of software diversity aims at mitigating the risks of software monoculture. The consortium gathers researchers from the software-intensive, distributed systems and the ecology areas in order to transfer ecological concepts and processes as software design principles.}, keywords = {}, tppubtype = {inproceedings} tpstatus = {published} } DIVERSIFY is an EU funded project, which aims at favoring spontaneous diversification in software systems in order to increase their adaptive capacities. This objective is founded on three observations: software has to constantly evolve to face unpredictable changes in its requirements, execution environment or to respond to failure (bugs, attacks, etc.); the emergence and maintenance of high levels of diversity are essential to provide adaptive capacities to many forms of complex systems, ranging from ecological and biological systems to social and economical systems; diversity levels tend to be very low in software systems. DIVERSIFY explores how the biological evolutionary mechanisms, which sustain high levels of biodiversity in ecosystems (speciation, phenotypic plasticity and natural selection) can be translated in software evolution principles. In this work, we consider evolution as a driver for diversity as a means to increase resilience in software systems. In particular, we are inspired by bipartite ecological relationships to investigate the automatic diversification of the server side of a client-server architecture. This type of software diversity aims at mitigating the risks of software monoculture. The consortium gathers researchers from the software-intensive, distributed systems and the ecology areas in order to transfer ecological concepts and processes as software design principles. |
Song, Hui; Zhang, Xiaodong; Ferry, Nicolas; Chauvel, Franck; Solberg, Arnor; Huang, Gang Modelling Adaptation Policies as Domain-Specific Constraints (Inproceeding) Proc. of the Model-Driven Engineering Languages and Systems Conf. (MODELS), Springer, 2014. @inproceedings{song2014self, title = {Modelling Adaptation Policies as Domain-Specific Constraints}, author = { Hui Song and Xiaodong Zhang and Nicolas Ferry and Franck Chauvel and Arnor Solberg and Gang Huang}, url = {http://diversify-project.eu/papers/song14.pdf}, year = {2014}, date = {2014-01-01}, booktitle = {Proc. of the Model-Driven Engineering Languages and Systems Conf. (MODELS)}, publisher = {Springer}, abstract = {In order to develop appropriate adaptation policies for self-adaptive systems, developers usually have to accomplish two main tasks: (i) identify the application-level constraints that regulate the desired system states for the various contexts, and (ii) figure out how to transform the system to satisfy these constraints. The second task is challenging because typically there is complex interaction among constraints, and a significant gap between application domain expertice and state transition expertice. In this paper, we present a model-driven approach that relieves developers from this second task, allowing them to directly write domain-specific constraints as adaptation policies. We provide a language to model both the domain concepts and the application-level constraints. Our runtime engine transforms the model into a Satisfiability Modulo Theory problem, optimises it by pre-processing on the current system state at runtime, and computes required modifications according to the specified constraints using constraints solving. We evaluate the approach addressing a virtual machine placement problem in cloud computing.}, keywords = {}, tppubtype = {inproceedings} tpstatus = {published} } In order to develop appropriate adaptation policies for self-adaptive systems, developers usually have to accomplish two main tasks: (i) identify the application-level constraints that regulate the desired system states for the various contexts, and (ii) figure out how to transform the system to satisfy these constraints. The second task is challenging because typically there is complex interaction among constraints, and a significant gap between application domain expertice and state transition expertice. In this paper, we present a model-driven approach that relieves developers from this second task, allowing them to directly write domain-specific constraints as adaptation policies. We provide a language to model both the domain concepts and the application-level constraints. Our runtime engine transforms the model into a Satisfiability Modulo Theory problem, optimises it by pre-processing on the current system state at runtime, and computes required modifications according to the specified constraints using constraints solving. We evaluate the approach addressing a virtual machine placement problem in cloud computing. |
Chauvel, Franck; Song, Hui; Ferry, Nicolas; Fleurey, Franck Robustness Indicators for Cloud-based Systems Topologies (Inproceeding) Proceedings of the International conference of Utility and Cloud Computing (UCC), IEEE, 2014. @inproceedings{CSF+2014, title = {Robustness Indicators for Cloud-based Systems Topologies}, author = {Franck Chauvel and Hui Song and Nicolas Ferry and Franck Fleurey}, url = {http://diversify-project.eu/papers/chauvel14.pdf}, year = {2014}, date = {2014-01-01}, booktitle = {Proceedings of the International conference of Utility and Cloud Computing (UCC)}, publisher = {IEEE}, abstract = {Various services are now available in the Cloud, ranging from turnkey databases and application servers to high-level services such as continuous integration or source version control. To stand out of this diversity, robustness of service compositions is an important selling argument, but which remains difficult to understand and estimate as it does not only depend on services but also on the underlying platform and infrastructure. Yet, choosing a specific service composition may fail to deliver the expected robustness, but reverting early choices may jeopardise the success of any Cloud project. Inspired by existing models used in Biology to quantify the robustness of ecosystems, we show how to tailor them to obtain early indicators of robustness for cloud-based deployments. This technique helps identify weakest services in the overall architecture and in turn mitigates the risk of having to revert key architectural choices. We illustrate our approach by comparing the robustness of four alternative deployments of the SensApp application, which includes a MongoDB database, four REST services and a graphical web-front end.}, keywords = {}, tppubtype = {inproceedings} tpstatus = {published} } Various services are now available in the Cloud, ranging from turnkey databases and application servers to high-level services such as continuous integration or source version control. To stand out of this diversity, robustness of service compositions is an important selling argument, but which remains difficult to understand and estimate as it does not only depend on services but also on the underlying platform and infrastructure. Yet, choosing a specific service composition may fail to deliver the expected robustness, but reverting early choices may jeopardise the success of any Cloud project. Inspired by existing models used in Biology to quantify the robustness of ecosystems, we show how to tailor them to obtain early indicators of robustness for cloud-based deployments. This technique helps identify weakest services in the overall architecture and in turn mitigates the risk of having to revert key architectural choices. We illustrate our approach by comparing the robustness of four alternative deployments of the SensApp application, which includes a MongoDB database, four REST services and a graphical web-front end. |
2013 |
Mendez, Diego; Baudry, Benoit; Monperrus, Martin Empirical Evidence of Large-Scale Diversity in API Usage of Object-Oriented Software (Inproceeding) Proc. of the Int. Working Conf. on Source Code Analysis and Manipulation (SCAM), 2013. @inproceedings{Mendez2013, title = {Empirical Evidence of Large-Scale Diversity in API Usage of Object-Oriented Software}, author = {Diego Mendez and Benoit Baudry and Martin Monperrus}, url = {https://hal.inria.fr/hal-00844753v2/document}, year = {2013}, date = {2013-01-01}, booktitle = {Proc. of the Int. Working Conf. on Source Code Analysis and Manipulation (SCAM)}, abstract = {n this paper, we study how object-oriented classes are used across thousands of software packages. We concentrate on “usage diversity”, defined as the different statically observable combinations of methods called on the same object. We present empirical evidence that there is a significant usage diversity for many classes. For instance, we observe in our dataset that Java’s String is used in 2 460 manners. We discuss the reasons of this observed diversity and the consequences on software engineering knowledge and research.}, keywords = {}, tppubtype = {inproceedings} tpstatus = {published} } n this paper, we study how object-oriented classes are used across thousands of software packages. We concentrate on “usage diversity”, defined as the different statically observable combinations of methods called on the same object. We present empirical evidence that there is a significant usage diversity for many classes. For instance, we observe in our dataset that Java’s String is used in 2 460 manners. We discuss the reasons of this observed diversity and the consequences on software engineering knowledge and research. |
Chauvel, Franck; Ferry, Nicolas; Morin, Brice; Rossini, Alessandro; Solberg, Arnor Models@Runtime to support the Iterative and Continuous Design of Autonomous Reasoners (Inproceeding) Proc. of the Workshop on Models@run.time at MODELS 2013, 2013. @inproceedings{ChauvelFerryMRS13, title = {Models@Runtime to support the Iterative and Continuous Design of Autonomous Reasoners}, author = {Franck Chauvel and Nicolas Ferry and Brice Morin and Alessandro Rossini and Arnor Solberg}, url = {http://diversify-project.eu/papers/chauvel13.pdf}, year = {2013}, date = {2013-01-01}, booktitle = {Proc. of the Workshop on Models@run.time at MODELS 2013}, abstract = {Modern software systems evolve in a highly dynamic and open environment, where their supporting platforms and infrastructures can change on demand. Designing and operating holistic controllers able to leverage the adaptation capabilities of the complete software stack is a complex task, as it is no longer possible to foresee all possible enviroment states and system configurations that would properly compensate for them. This paper presents our experience in using models@runtime to foster the systematic design and evaluation of self-adaptive systems, by enabling the coevolution of the reasoning engine and its environment. This research was carried out in the context of the Diversify project, which explores how bio-diversity can be used to enhanced the design of self-adaptive mechanisms.}, keywords = {}, tppubtype = {inproceedings} tpstatus = {published} } Modern software systems evolve in a highly dynamic and open environment, where their supporting platforms and infrastructures can change on demand. Designing and operating holistic controllers able to leverage the adaptation capabilities of the complete software stack is a complex task, as it is no longer possible to foresee all possible enviroment states and system configurations that would properly compensate for them. This paper presents our experience in using models@runtime to foster the systematic design and evaluation of self-adaptive systems, by enabling the coevolution of the reasoning engine and its environment. This research was carried out in the context of the Diversify project, which explores how bio-diversity can be used to enhanced the design of self-adaptive mechanisms. |
We also prepare a survey about software diversity