The document discusses context-oriented programming (COP) and an approach called Auto-COP to generate adaptations from system execution using reinforcement learning. COP allows a system's behavior to dynamically change based on its context. Auto-COP monitors a system's execution trace to extract the contexts and related behaviors. It uses reinforcement learning to learn action sequences that optimize a goal for different system states, with the aim of generating adaptations without needing them to be predefined by developers.
International Journal of Computational Engineering Research(IJCER) ijceronline
nternational Journal of Computational Engineering Research (IJCER) is dedicated to protecting personal information and will make every reasonable effort to handle collected information appropriately. All information collected, as well as related requests, will be handled as carefully and efficiently as possible in accordance with IJCER standards for integrity and objectivity.
Towards Automated Engineering for Collective Adaptive Systems: Vision and Res...Roberto Casadei
The opportunities and challenges of recent and
forthcoming distributed computing scenarios have been promot-
ing research on languages and paradigms aimed at modelling the
macro/collective behaviour of systems as well as mechanisms to
endow them with self-* capabilities. One example is the aggregate
computing paradigm, which supports the development of self-
organising systems (e.g., robot swarms, computational ecosys-
tems, and crowd-based services) through various formalisms and
tools developed over a decade. However, very limited work has
been done by a methodological and automation perspective. In
this paper, we explore the issue of organising the development
process of aggregate computing systems. Accordingly, we outline
novel research directions that arise from careful analysis of
the peculiar issues in collective and self-organising systems, the
cornerstones of effective software engineering practices, and
recent scientific trends and insights.
International Journal of Computational Engineering Research(IJCER) ijceronline
nternational Journal of Computational Engineering Research (IJCER) is dedicated to protecting personal information and will make every reasonable effort to handle collected information appropriately. All information collected, as well as related requests, will be handled as carefully and efficiently as possible in accordance with IJCER standards for integrity and objectivity.
Towards Automated Engineering for Collective Adaptive Systems: Vision and Res...Roberto Casadei
The opportunities and challenges of recent and
forthcoming distributed computing scenarios have been promot-
ing research on languages and paradigms aimed at modelling the
macro/collective behaviour of systems as well as mechanisms to
endow them with self-* capabilities. One example is the aggregate
computing paradigm, which supports the development of self-
organising systems (e.g., robot swarms, computational ecosys-
tems, and crowd-based services) through various formalisms and
tools developed over a decade. However, very limited work has
been done by a methodological and automation perspective. In
this paper, we explore the issue of organising the development
process of aggregate computing systems. Accordingly, we outline
novel research directions that arise from careful analysis of
the peculiar issues in collective and self-organising systems, the
cornerstones of effective software engineering practices, and
recent scientific trends and insights.
On Execution Platforms for Large-Scale Aggregate ComputingRoberto Casadei
Aggregate computing is proposed as a computational model and associated toolchain to engineer adaptive large-scale situated systems, including IoT and wearable computing systems. Though originated in the context of WSN-like (peer-to-peer and fully distributed) systems, we argue it is a model that can transparently fit a variety of execution platforms (decentralised, server-mediated, cloud/fog-oriented), due to its ability of declaratively designing systems by global-level abstractions: it opens the possibility of intrinsically supporting forms of load balancing, elasticity and toleration of medium- and long-term changes of computational infrastructures. To ground the discussion, we present ongoing work in the context of scafi, a language and platform support for computational fields based on the Scala programming language and Akka actor framework.
Scheduling in Virtual Infrastructure for High-Throughput Computing IJCSEA Journal
For the execution of the scientific applications, different methods have been proposed to dynamically provide execution environments for such applications that hide the complexity of underlying distributed and heterogeneous infrastructures. Recently virtualization has emerged as a promising technology to provide such environments. Virtualization is a technology that abstracts away the details of physical hardware and provides virtualized resources for high-level scientific applications. Virtualization offers a cost-effective and flexible way to use and manage computing resources. Such an abstraction is appealing in Grid computing and Cloud computing for better matching jobs (applications) to computational resources. This work applies the virtualization concept to the Condor dynamic resource management system by using Condor Virtual Universe to harvest the existing virtual computing resources to their maximum utility. It allows existing computing resources to be dynamically provisioned at run-time by users based on application requirements instead of statically at design-time thereby lay the basis for efficient use of the
available resources, thus providing way for the efficient use of the available resources.
International Journal of Engineering Research and DevelopmentIJERD Editor
Electrical, Electronics and Computer Engineering,
Information Engineering and Technology,
Mechanical, Industrial and Manufacturing Engineering,
Automation and Mechatronics Engineering,
Material and Chemical Engineering,
Civil and Architecture Engineering,
Biotechnology and Bio Engineering,
Environmental Engineering,
Petroleum and Mining Engineering,
Marine and Agriculture engineering,
Aerospace Engineering.
Providing a multi-objective scheduling tasks by Using PSO algorithm for cost ...Editor IJCATR
This article is intended to use the multi-PSO algorithm for scheduling tasks for cost management in cloud computing. This means that
any migration costs due to supply failure consider as a one objective and each task is a little particle and recognize by use of the
appropriate fitness schedule function (how the particles arrangement) that cost at least amount of total expense. In addition to, the weight
is granted to the each expenditure that reflects the importance of cost. The data which is used to simulate proposed method are series of
academic and research data that are prepared from the Internet and MATLAB software is used for simulation. We simulate two issues,
in the first issue, consider four task by four vehicles and divide tasks. In the second issue, make the issue more complicated and consider
six tasks by four vehicles. We write PSO's output for each two issues of various iterations. Finally, the particles dispersion and as well
as the output of the cost function were computed for each pa
CS266 Software Reverse Engineering (SRE)
Reengineering and Reuse of Legacy Software
Teodoro (Ted) Cipresso, teodoro.cipresso@sjsu.edu
Department of Computer Science
San José State University
Spring 2015
[JIST] Programming language implementations for context-oriented self-adaptiv...Universidad de los Andes
Context
The context-oriented programming paradigm is designed to enable self-adaptation, or dynamic behavior modification of software systems, in response to changes in their surrounding environment. Contextoriented programming offers an adaptation model, from a programming language perspective, that maintains a clean modularisation between the application and adaptation logic, as well as between the components providing adaptations.
Objective
We use three implementation techniques for context-oriented programming languages to assess their appropriateness to foster self-adaptive systems. These approaches take advantage of the capabilities offered by the host programming language to realize self-adaptation as proposed by context-oriented languages.
Method
We evaluate each of these approaches by assessing their modularity and complexity when defining adaptations, and by comparing their run-time performance on a simple benchmark.
Results
Our results show a higher modularity than that for common architecture based self-adaptive systems, while maintaining comparable performance.
Conclusion
We conclude that context-oriented programming is an appropriate paradigm to realize self-adaptation.
Link to the paper: https://doi.org/10.1016/j.infsof.2021.106789
An introductory lecture on Context-Oriented Programming, part of the course LINGI2252 “Software Maintenance and Evolution”, given by Prof. Kim Mens at UCL, Belgium. This particular lecture was made by Dr. Sebastian Gonzalez in close collaboration with Prof. Kim Mens.
Transfer Learning for Performance Analysis of Highly-Configurable SoftwarePooyan Jamshidi
A wide range of modern software-intensive systems (e.g., autonomous systems, big data analytics, robotics, deep neural architectures) are built configurable. These systems offer a rich space for adaptation to different domains and tasks. Developers and users often need to reason about the performance of such systems, making tradeoffs to change specific quality attributes or detecting performance anomalies. For instance, developers of image recognition mobile apps are not only interested in learning which deep neural architectures are accurate enough to classify their images correctly, but also which architectures consume the least power on the mobile devices on which they are deployed. Recent research has focused on models built from performance measurements obtained by instrumenting the system. However, the fundamental problem is that the learning techniques for building a reliable performance model do not scale well, simply because the configuration space is exponentially large that is impossible to exhaustively explore. For example, it will take over 60 years to explore the whole configuration space of a system with 25 binary options.
In this talk, I will start motivating the configuration space explosion problem based on my previous experience with large-scale big data systems in industry. I will then present my transfer learning solution to tackle the scalability challenge: instead of taking the measurements from the real system, we learn the performance model using samples from cheap sources, such as simulators that approximate the performance of the real system, with a fair fidelity and at a low cost. Results show that despite the high cost of measurement on the real system, learning performance models can become surprisingly cheap as long as certain properties are reused across environments. In the second half of the talk, I will present empirical evidence, which lays a foundation for a theory explaining why and when transfer learning works by showing the similarities of performance behavior across environments. I will present observations of environmental changes‘ impacts (such as changes to hardware, workload, and software versions) for a selected set of configurable systems from different domains to identify the key elements that can be exploited for transfer learning. These observations demonstrate a promising path for building efficient, reliable, and dependable software systems. Finally, I will share my research vision for the next five years and outline my immediate plans to further explore the opportunities of transfer learning.
Related Papers:
https://arxiv.org/pdf/1709.02280
https://arxiv.org/pdf/1704.00234
https://arxiv.org/pdf/1606.06543
A hybrid approach for scheduling applications in cloud computing environment IJECEIAES
Cloud computing plays an important role in our daily life. It has direct and positive impact on share and update data, knowledge, storage and scientific resources between various regions. Cloud computing performance heavily based on job scheduling algorithms that are utilized for queue waiting in modern scientific applications. The researchers are considered cloud computing a popular platform for new enforcements. These scheduling algorithms help in design efficient queue lists in cloud as well as they play vital role in reducing waiting for processing time in cloud computing. A novel job scheduling is proposed in this paper to enhance performance of cloud computing and reduce delay time in queue waiting for jobs. The proposed algorithm tries to avoid some significant challenges that throttle from developing applications of cloud computing. However, a smart scheduling technique is proposed in our paper to improve performance processing in cloud applications. Our experimental result of the proposed job scheduling algorithm shows that the proposed schemes possess outstanding enhancing rates with a reduction in waiting time for jobs in queue list.
RESEARCH ON DISTRIBUTED SOFTWARE TESTING PLATFORM BASED ON CLOUD RESOURCEijcses
In order to solve the low efficiency problem of large-scale distributed software testing , CBDSTP(
Cloud-Based Distributed Software Testing Platform) is put forward.This platform can provide continous
integration and automation of testing for large software systems, which can make full use of resources on
the cloud clients, achieving testing result s in the real environment and reasonable allocating testing jobs,
to resolve the Web application software configuration test, compatibility test and distributed test problems,
to reduce costs, improve efficiency. Through making MySQL testing on this prototype system, the
verification is made for platform architecture and job allocation effectiveness.
An expressive and modular layer activation mechanism for Context-Oriented Pro...Universidad de los Andes
Abstract: Context. There is a trend in the software industry towards building systems that dynamically adapt their behavior in response to their surrounding environment, given the proliferation of various technological devices, such as notebooks, smartphones, and wearables, capable of capturing their execution context. Context-oriented Programming (COP) allows developers to use layer abstractions to adapt software behavior to the context. A layer is associated with a context and can be dynamically activated in direct response to gathered information from its surrounding execution environment. However, most existing layer activation mechanisms have been tailored specifically to address a particular concern; implying that developers need to tweak layer definitions in contortive ways or create new specialized activation mechanisms altogether if their specific needs are not supported. Objective. Complementing ideas to expressively declare activation mechanism models with interfaces that define conditionals of activation mechanisms modularly, this paper proposes an Expressive and Modular Activation mechanism, named EMA. Method. To propose EMA, we analyze existing activation mechanisms in COP regarding activation features and scope strategies. After, we propose the design of EMA and validate it with a case study discussion. Results. Using a concrete JavaScript implementation of EMA, named EMAjs, we can implement two Web applications: a smartphone application as an example to illustrate EMAjs in action, and an application of home automation to discuss and compare our proposal. Conclusion. Our proposed mechanism allows developers to instantiate different activation scope strategies and interfaces to decouple the declaration of activation mechanism conditionals from the base code.
Paper presentation: https://youtu.be/76RgVB6JihQ?si=-uylVc4Xnqnh4zbl
Paper presented at the 2023 Formal Techniques for Java-like Programs.
Abstract: Static analyses, as points-to analysis, are useful to determine and assure different properties about a program, such as security or type safety. While existing analyses are effective in programs restricted to static features, precision declines in the presence of dynamic language features, and even further when the system behavior changes dynamically. As a consequence, improved points-to sets algorithms taking into account such language features and uses are required. In this paper, we present and extension of the point-to sets analysis to incorporate the language abstractions introduced by context-oriented programming adding the capability for programs to adapt their behavior dynamically to the system’s execution context. To do this, we extend WALA to detect the context-oriented language abstractions, and their representation within the system, to capture the dynamic behavior, in the particular case of the Context Traits JavaScript language extension. To prove the effectiveness of our extension, we evaluate the precision of the points-to set analysis with respect to the state of the art, over four context-oriented programs taken from the literature.
Contenu connexe
Similaire à Generating Adaptations from the System Execution using Reinforcement Learning Options
On Execution Platforms for Large-Scale Aggregate ComputingRoberto Casadei
Aggregate computing is proposed as a computational model and associated toolchain to engineer adaptive large-scale situated systems, including IoT and wearable computing systems. Though originated in the context of WSN-like (peer-to-peer and fully distributed) systems, we argue it is a model that can transparently fit a variety of execution platforms (decentralised, server-mediated, cloud/fog-oriented), due to its ability of declaratively designing systems by global-level abstractions: it opens the possibility of intrinsically supporting forms of load balancing, elasticity and toleration of medium- and long-term changes of computational infrastructures. To ground the discussion, we present ongoing work in the context of scafi, a language and platform support for computational fields based on the Scala programming language and Akka actor framework.
Scheduling in Virtual Infrastructure for High-Throughput Computing IJCSEA Journal
For the execution of the scientific applications, different methods have been proposed to dynamically provide execution environments for such applications that hide the complexity of underlying distributed and heterogeneous infrastructures. Recently virtualization has emerged as a promising technology to provide such environments. Virtualization is a technology that abstracts away the details of physical hardware and provides virtualized resources for high-level scientific applications. Virtualization offers a cost-effective and flexible way to use and manage computing resources. Such an abstraction is appealing in Grid computing and Cloud computing for better matching jobs (applications) to computational resources. This work applies the virtualization concept to the Condor dynamic resource management system by using Condor Virtual Universe to harvest the existing virtual computing resources to their maximum utility. It allows existing computing resources to be dynamically provisioned at run-time by users based on application requirements instead of statically at design-time thereby lay the basis for efficient use of the
available resources, thus providing way for the efficient use of the available resources.
International Journal of Engineering Research and DevelopmentIJERD Editor
Electrical, Electronics and Computer Engineering,
Information Engineering and Technology,
Mechanical, Industrial and Manufacturing Engineering,
Automation and Mechatronics Engineering,
Material and Chemical Engineering,
Civil and Architecture Engineering,
Biotechnology and Bio Engineering,
Environmental Engineering,
Petroleum and Mining Engineering,
Marine and Agriculture engineering,
Aerospace Engineering.
Providing a multi-objective scheduling tasks by Using PSO algorithm for cost ...Editor IJCATR
This article is intended to use the multi-PSO algorithm for scheduling tasks for cost management in cloud computing. This means that
any migration costs due to supply failure consider as a one objective and each task is a little particle and recognize by use of the
appropriate fitness schedule function (how the particles arrangement) that cost at least amount of total expense. In addition to, the weight
is granted to the each expenditure that reflects the importance of cost. The data which is used to simulate proposed method are series of
academic and research data that are prepared from the Internet and MATLAB software is used for simulation. We simulate two issues,
in the first issue, consider four task by four vehicles and divide tasks. In the second issue, make the issue more complicated and consider
six tasks by four vehicles. We write PSO's output for each two issues of various iterations. Finally, the particles dispersion and as well
as the output of the cost function were computed for each pa
CS266 Software Reverse Engineering (SRE)
Reengineering and Reuse of Legacy Software
Teodoro (Ted) Cipresso, teodoro.cipresso@sjsu.edu
Department of Computer Science
San José State University
Spring 2015
[JIST] Programming language implementations for context-oriented self-adaptiv...Universidad de los Andes
Context
The context-oriented programming paradigm is designed to enable self-adaptation, or dynamic behavior modification of software systems, in response to changes in their surrounding environment. Contextoriented programming offers an adaptation model, from a programming language perspective, that maintains a clean modularisation between the application and adaptation logic, as well as between the components providing adaptations.
Objective
We use three implementation techniques for context-oriented programming languages to assess their appropriateness to foster self-adaptive systems. These approaches take advantage of the capabilities offered by the host programming language to realize self-adaptation as proposed by context-oriented languages.
Method
We evaluate each of these approaches by assessing their modularity and complexity when defining adaptations, and by comparing their run-time performance on a simple benchmark.
Results
Our results show a higher modularity than that for common architecture based self-adaptive systems, while maintaining comparable performance.
Conclusion
We conclude that context-oriented programming is an appropriate paradigm to realize self-adaptation.
Link to the paper: https://doi.org/10.1016/j.infsof.2021.106789
An introductory lecture on Context-Oriented Programming, part of the course LINGI2252 “Software Maintenance and Evolution”, given by Prof. Kim Mens at UCL, Belgium. This particular lecture was made by Dr. Sebastian Gonzalez in close collaboration with Prof. Kim Mens.
Transfer Learning for Performance Analysis of Highly-Configurable SoftwarePooyan Jamshidi
A wide range of modern software-intensive systems (e.g., autonomous systems, big data analytics, robotics, deep neural architectures) are built configurable. These systems offer a rich space for adaptation to different domains and tasks. Developers and users often need to reason about the performance of such systems, making tradeoffs to change specific quality attributes or detecting performance anomalies. For instance, developers of image recognition mobile apps are not only interested in learning which deep neural architectures are accurate enough to classify their images correctly, but also which architectures consume the least power on the mobile devices on which they are deployed. Recent research has focused on models built from performance measurements obtained by instrumenting the system. However, the fundamental problem is that the learning techniques for building a reliable performance model do not scale well, simply because the configuration space is exponentially large that is impossible to exhaustively explore. For example, it will take over 60 years to explore the whole configuration space of a system with 25 binary options.
In this talk, I will start motivating the configuration space explosion problem based on my previous experience with large-scale big data systems in industry. I will then present my transfer learning solution to tackle the scalability challenge: instead of taking the measurements from the real system, we learn the performance model using samples from cheap sources, such as simulators that approximate the performance of the real system, with a fair fidelity and at a low cost. Results show that despite the high cost of measurement on the real system, learning performance models can become surprisingly cheap as long as certain properties are reused across environments. In the second half of the talk, I will present empirical evidence, which lays a foundation for a theory explaining why and when transfer learning works by showing the similarities of performance behavior across environments. I will present observations of environmental changes‘ impacts (such as changes to hardware, workload, and software versions) for a selected set of configurable systems from different domains to identify the key elements that can be exploited for transfer learning. These observations demonstrate a promising path for building efficient, reliable, and dependable software systems. Finally, I will share my research vision for the next five years and outline my immediate plans to further explore the opportunities of transfer learning.
Related Papers:
https://arxiv.org/pdf/1709.02280
https://arxiv.org/pdf/1704.00234
https://arxiv.org/pdf/1606.06543
A hybrid approach for scheduling applications in cloud computing environment IJECEIAES
Cloud computing plays an important role in our daily life. It has direct and positive impact on share and update data, knowledge, storage and scientific resources between various regions. Cloud computing performance heavily based on job scheduling algorithms that are utilized for queue waiting in modern scientific applications. The researchers are considered cloud computing a popular platform for new enforcements. These scheduling algorithms help in design efficient queue lists in cloud as well as they play vital role in reducing waiting for processing time in cloud computing. A novel job scheduling is proposed in this paper to enhance performance of cloud computing and reduce delay time in queue waiting for jobs. The proposed algorithm tries to avoid some significant challenges that throttle from developing applications of cloud computing. However, a smart scheduling technique is proposed in our paper to improve performance processing in cloud applications. Our experimental result of the proposed job scheduling algorithm shows that the proposed schemes possess outstanding enhancing rates with a reduction in waiting time for jobs in queue list.
RESEARCH ON DISTRIBUTED SOFTWARE TESTING PLATFORM BASED ON CLOUD RESOURCEijcses
In order to solve the low efficiency problem of large-scale distributed software testing , CBDSTP(
Cloud-Based Distributed Software Testing Platform) is put forward.This platform can provide continous
integration and automation of testing for large software systems, which can make full use of resources on
the cloud clients, achieving testing result s in the real environment and reasonable allocating testing jobs,
to resolve the Web application software configuration test, compatibility test and distributed test problems,
to reduce costs, improve efficiency. Through making MySQL testing on this prototype system, the
verification is made for platform architecture and job allocation effectiveness.
An expressive and modular layer activation mechanism for Context-Oriented Pro...Universidad de los Andes
Abstract: Context. There is a trend in the software industry towards building systems that dynamically adapt their behavior in response to their surrounding environment, given the proliferation of various technological devices, such as notebooks, smartphones, and wearables, capable of capturing their execution context. Context-oriented Programming (COP) allows developers to use layer abstractions to adapt software behavior to the context. A layer is associated with a context and can be dynamically activated in direct response to gathered information from its surrounding execution environment. However, most existing layer activation mechanisms have been tailored specifically to address a particular concern; implying that developers need to tweak layer definitions in contortive ways or create new specialized activation mechanisms altogether if their specific needs are not supported. Objective. Complementing ideas to expressively declare activation mechanism models with interfaces that define conditionals of activation mechanisms modularly, this paper proposes an Expressive and Modular Activation mechanism, named EMA. Method. To propose EMA, we analyze existing activation mechanisms in COP regarding activation features and scope strategies. After, we propose the design of EMA and validate it with a case study discussion. Results. Using a concrete JavaScript implementation of EMA, named EMAjs, we can implement two Web applications: a smartphone application as an example to illustrate EMAjs in action, and an application of home automation to discuss and compare our proposal. Conclusion. Our proposed mechanism allows developers to instantiate different activation scope strategies and interfaces to decouple the declaration of activation mechanism conditionals from the base code.
Paper presentation: https://youtu.be/76RgVB6JihQ?si=-uylVc4Xnqnh4zbl
Paper presented at the 2023 Formal Techniques for Java-like Programs.
Abstract: Static analyses, as points-to analysis, are useful to determine and assure different properties about a program, such as security or type safety. While existing analyses are effective in programs restricted to static features, precision declines in the presence of dynamic language features, and even further when the system behavior changes dynamically. As a consequence, improved points-to sets algorithms taking into account such language features and uses are required. In this paper, we present and extension of the point-to sets analysis to incorporate the language abstractions introduced by context-oriented programming adding the capability for programs to adapt their behavior dynamically to the system’s execution context. To do this, we extend WALA to detect the context-oriented language abstractions, and their representation within the system, to capture the dynamic behavior, in the particular case of the Context Traits JavaScript language extension. To prove the effectiveness of our extension, we evaluate the precision of the points-to set analysis with respect to the state of the art, over four context-oriented programs taken from the literature.
Reinforcement Learning (RL) is being increasingly used to learn and adapt application behavior in many domains, including large-scale and safety critical systems, as for example, autonomous driving. With the advent of plug-n-play RL libraries, its applicability has further increased, enabling integration of RL algorithms by users. We note, however, that the majority of such code is not developed by RL engineers, which as a consequence, may lead to poor program quality yielding bugs, suboptimal performance, maintainability, and evolution problems for RL-based projects. In this paper we begin the exploration of this hypothesis, specific to code utilizing RL, analyzing different projects found in the wild, to assess their quality from a software engineering perspective. Our study includes 24 popular RL-based Python projects, analyzed with standard software engineering metrics. Our results, aligned with similar analyses for ML code in general, show that popular and widely reused RL repositories contain many code smells (3.95% of the code base on average), significantly affecting the projects’ maintainability. The most common code smells detected are long method and long method chain, highlighting problems in the definition and interaction of agents. Detected code smells suggest problems in responsibility separation, and the appropriateness of current abstractions for the definition of RL algorithms.
paper preprint: https://arxiv.org/abs/2303.10236
Clon detection provides insight about replicated fragments in a code base. With the rise of multi-language code bases, new techniques addressing cross-language code clone detection enable the analysis of polyglot systems. Such techniques have not yet been applied to the mobile apps’ domain, which are naturally polyglot. Native mobile app developers must synchronize their code base in at least two different programming languages. App synchronization is a difficult and time-consuming maintenance task, as features can rapidly diverge between platforms, and feature identification must be performed manually. Our goal is to provide an analysis framework to reduce the impact of app synchronization. A first step in this direction consists on a structural algorithm for cross-language clone detection exploiting the idea behind enriched concrete syntax trees. Such trees are used as a common intermediate representation built from programming languages’ grammars, to detect similarities between app code bases. Our technique finds code similarities with 79% precision for controlled tests where Type 1-3 clones are manually injected for the analysis of both single- and cross-language cases for Kotlin and Dart. We evaluate our tool on a corpus of 52 mobile apps identifying code similarities with a precision of 65% to 84% for the full application logic.
recorrido sobre las características principales de LaTeX y lagunas librerías útiles para escribir documentos más fácilmente.
Temas tratados:
Estructura de documentos
Paquetes
Elementos básicos (secciones, listas)
Figuras
Tablas
Entornos matemáticos (ecuaciones anotadas https://github.com/synercys/annotated_latex_equations)
Fragmentos de código
Referencias
Acrónimos y comandos
[JPDC,JCC@LMN22] Ad hoc systems Management and specification with distributed...Universidad de los Andes
This presents the main ideas behind Distributed ad hoc Petri nets (DaPNs). A specification and run-time model to manage and reason about ad hoc distributed systems.
The presentation describes the main contributions of our work validated through a case study on vehicular ad hoc distributed networks.
This work is available at the Journal of Parallel and Distributed Computing, and was presented at the Lo Mejor de lo nuestro #LMN2022, at the Jornadas Chilenas de Computación 2022
Link to the paper: https://doi.org/10.1016/j.jpdc.2022.06.015
This work presents the evaluation of the two classic workstealing algorithms (FIFO and LIFO) together with a new proposed implementation based on the priority of tasks calculated using the longest path as a metric
Language Abstractions and Techniques for Developing Collective Adaptive Syste...Universidad de los Andes
Presentation at the 5th eCAS Workshop on Engineering Collective Adaptive Systems 2020, colocated with acsos.
Collective Adaptive Systems (CAS) are increasingly used as a model for building and managing large- scale cyber-physical systems, highlighting the need for a flexible approach for their definition and engineering. CAS consist of multiple individual context-aware self-adaptive systems, which need to adapt to their own environment, but also interact with each other, resulting in the global CAS behavior. Interactions can emerge as complementary or conflicting, and needs to be managed to assure a correct global behavior. Context-oriented Programming (COP) is one of the programming paradigms that has risen as a suitable approach to developing self-adaptive systems, due to the natural mapping of its programming constructs to self- adaptive systems taxonomy. Recently, multiple extensions to the COP model have been developed, which manage inter- actions between adaptive components (or systems), enabling its suitability for developing CAS as well. In this paper, we map out the COP language abstractions to the characteristics of CAS, demonstrating COP applicability, its formalization, verification tools, and adaptation composition techniques to foster CAS. Our discussion is illustrated using city-wide bus transport management system, as an example of a CAS.
Does Neuron Coverage Matter for Deep Reinforcement Learning? A preliminary studyUniversidad de los Andes
This work is presented at the 2020 Workshop on Testing for Deep Learning and Deep Learning for Testing (DeepTest) co-located with ICSE held virtually.
This work analyzes the possibility of using neuron coverage as a test adequacy metric for Deep Reinforcement Learning (DeepRL). This work spawns from the positive results in using neuron coverage to test (deep) neural networks. However, testing DeepRL systems, brings its own challenges. In the presentation, and associated paper, we discuss the characteristics of DeepRL that prevent promoting neuron coverage as an adequacy testing metric.
The paper is available at: https://deeptestconf.github.io/pdfs/2020-Trujillo-DeepTest.pdf
This work is presented at the 2020 Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS) co-located with ICSE held virtually.
In this work we present the early results of our ComInA technique to learn the way behavior adaptations interact with each other, and from there, offer the most appropriate composition of adaptations. Our technique uses a combination of Context-oriented programming and reinforcement learning to define and compose fine-grained modular adaptations, and learn their interaction respectively
Talk presented at the 2019 Context-oriented programming workshop colocated with ECOOP in london.
This work presents an extension to Context petri nets (CoPN) to enable the communication between different nodes, each defined using a CoPN. This extension demonstrates the interaction with different context dependency relations in face of unannounced connection and disconnection of nodes.
Talk presented at the 2018 Context-oriented programming workshop colocated with ECOOP in Amsterdam.
This work presents a small query language designed for the activation of context objects in response to information gathered from sensors. The objective of CQL is to enable the possibility to activate multiple contexts simultaneously, using a single query
Talk presented at the 2018 machine learning for programming languages workshop colocated with ECOOP in Amsterdam.
This work presents the use of reinforcement learning for the discovery of context objects to drive behavioral adaptations. Our technique uses information gathered from the systems environment to define context, associating the actions taken by the user in such situations to define and automate behavioral adaptations
Presentation for the bachelor thesis project at Universidad de los Andes 2020-10.
This thesis studies the use parallel programming techniques to speed-up the decomposition phase of the constraint solving problem. The technique is integrated with the Oscar-CP solver, and explores the exam assignment problem
Invited presentation at the university of Coimbra in 2016.
This presentation gives an overview of the programming language implementation effort at FLAGlab applied to dynamic adaptive software systems.
Talk presented at the 2017 Context-oriented programming workshop colocated with ECOOP in barcelona.
This work presents a reinforcement learning based solution to resolve conflicts between dynamic adaptations.
Talk presented at the 2016 Onward! conference colocated with splash in amsterdam.
This work presents a framework for the spontaneous interaction (composition) of service components by learning services APIs. Upon discovery of services with a known API the composition is seamless.
Macroeconomics- Movie Location
This will be used as part of your Personal Professional Portfolio once graded.
Objective:
Prepare a presentation or a paper using research, basic comparative analysis, data organization and application of economic information. You will make an informed assessment of an economic climate outside of the United States to accomplish an entertainment industry objective.
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...Dr. Vinod Kumar Kanvaria
Exploiting Artificial Intelligence for Empowering Researchers and Faculty,
International FDP on Fundamentals of Research in Social Sciences
at Integral University, Lucknow, 06.06.2024
By Dr. Vinod Kumar Kanvaria
Introduction to AI for Nonprofits with Tapp NetworkTechSoup
Dive into the world of AI! Experts Jon Hill and Tareq Monaur will guide you through AI's role in enhancing nonprofit websites and basic marketing strategies, making it easy to understand and apply.
Biological screening of herbal drugs: Introduction and Need for
Phyto-Pharmacological Screening, New Strategies for evaluating
Natural Products, In vitro evaluation techniques for Antioxidants, Antimicrobial and Anticancer drugs. In vivo evaluation techniques
for Anti-inflammatory, Antiulcer, Anticancer, Wound healing, Antidiabetic, Hepatoprotective, Cardio protective, Diuretics and
Antifertility, Toxicity studies as per OECD guidelines
How to Build a Module in Odoo 17 Using the Scaffold MethodCeline George
Odoo provides an option for creating a module by using a single line command. By using this command the user can make a whole structure of a module. It is very easy for a beginner to make a module. There is no need to make each file manually. This slide will show how to create a module using the scaffold method.
This presentation includes basic of PCOS their pathology and treatment and also Ayurveda correlation of PCOS and Ayurvedic line of treatment mentioned in classics.
This slide is special for master students (MIBS & MIFB) in UUM. Also useful for readers who are interested in the topic of contemporary Islamic banking.
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
Generating Adaptations from the System Execution using Reinforcement Learning Options
1. Nicolás Cardozo - Ivana Dusparic
@ncardoz - @ivanadusparic
n.cardozo@uniandes.edu.co - ivana.dusparic@scss.tcd.ie
COP’21 - International Workshop on Context-Oriented Programming and Advanced Modularity - July 12 - (Virtual)
Generating Adaptations from the System
Execution using Reinforcement Learning
Options
2. Context-oriented programming
2
COP systems are software systems which have
to dynamically adapt their behavior in order to
cope with a changing environment.
[Acher et al. 09]
3. Context-oriented programming
2
COP systems are software systems which have
to dynamically adapt their behavior in order to
cope with a changing environment.
[Acher et al. 09]
[context-aware systems] use context to provide
relevant information and/or services to the user,
where relevancy depends on the user’s task
[Dey 01]
Context-oriented Programming (COP) as a new
programming technique to enable context-
dependent computation. We claim that Context-
oriented Programming brings a similar degree of
dynamicity to the notion of behavioral variations
[Hirshfeld et al. 08]
Context-oriented programming [6] is a
technique to modularize context-dependent
behavioral variations in a program, where those
behavioral variations can be dynamically
switched on and off in response to changes of
execution contexts
[Aotani et al. 11]
Context-oriented Programming (COP) [4]
enriches programming languages and
execution environments with features to
explicitly represent context-dependent
behavior variations.
[Appeltauer et al. 08]
Context-Oriented Programming (COP) [3] to
support programmers in developing software that
can dynamically change its behavior depending
on context information. [Afanasov et al. 13]
Context-aware systems are able to adapt their
behaviour depending on their context of use
without explicit user intervention
[Bainomugisha et al. 09]
described as a way to promote runtime
variability use and as a mechanism for
managing context features dynamically to cater
to the needs of dynamic adaptation
[Capilla et al. 14]
the goal of Context-oriented
Programming is to avoid having to spread
context-dependent behavior throughout a
program…
… can only be applied for context-
dependent behavior that are anticipated
in the software development process.
[Constanza et al. 05]
COP addresses the need for applications to
behave differently accordingly to the changing
run-time context in which they are embedded.
[ghezzi et al. 10]
In order to implement systems that are able to
use the implicit situational information…
… the system is able to learn from the user
preferences in order to autonomously evolve his
rules for future behavior
[Alegre et al. 16]
The combination of COP with computational reflection
opens further possibilities for runtime software adaptivity.
[Gonzalez et al. 09]
4. Context-oriented programming
3
Contexts are
(meaningful) situations
gathered from the
surrounding environment
Behavior variations correspond to
the specialized behavior
appropriate for a specific context
Adaptations correspond to the
behavior observed by the
system when executing in a
context
[S. Gonzalez. Programming in Ambience: Gearing up for dynamic adaptation to context. PhD thesis, 2008]
6. Context-oriented programming
5
Off-hook Silent Meeting Forwarding Behavior
x x x Ringtone
x ✔ x Vibrate
x ✔ ✔ x Vibrate
x ✔ ✔ ✔ Call forwarding
✔ x x Call waiting
✔ ✔ x Call waiting
✔ ✔ ✔ x Call waiting
✔ ✔ ✔ ✔ Call forwarding
15. 12
System design
The system must:
•Have users or be autonomous
•A defined goal
•A a way to know we progress towards
the goal
•A finite set of states
•A finite set of actions
16. 13
Context monitoring
To incorporate contexts (and their behavior)
dynamically, we need to capture the system state
and possible actions
5x5 grid
move_north()
move_south()
move_east()
move_west()
pickup()
dropoff()
28. 2
1
19
RL options
-1
-1
1
1
Action (sequences) get a reward for every state
0
10
3
Use RL to learn the best action sequence as the
option, based on the accumulated reward
Accumulate rewards for actions sequences
∑
a∈A
q(s, a)
29. 20
RL options
for i in 1..batchSize:
action_sequence[s].push(a, r+q_value[s][a])
while not done:
if P(s) >= 𝜀:
a = q_val[s]
r,next_state,done = step(a)
q_val[s][a] = (1-𝛼)*q_val[s][a] + 𝛼*(r + 𝛾*next_state)
——-
options.add(s, action_sequence)
while true:
if available_adaptation(s):
context,option = pick_option(𝜀, s)
context.activate()
execute(option)
context.deactivate()
31. 22
Warehouse robot delivery
Robot moves in a defined space searching for packages and takes them to the delivery area
Packages are at fixed locations
Paths to delivery are always the
same!
32. 23
Warehouse robot delivery
There is a context for each location of the robot, for each product
ContextDiamond23 = new cop.Context{(
name: “Diamond-2,3”
})
ContextShirt20 = new cop.Context{(
name: “Shirt-2,0”
})
ContextCarrot44 = new cop.Context{(
name: “Carrot-4,4”
})
33. 23
Warehouse robot delivery
There is a context for each location of the robot, for each product
ContextDiamond23 = new cop.Context{(
name: “Diamond-2,3”
})
ContextShirt20 = new cop.Context{(
name: “Shirt-2,0”
})
ContextCarrot44 = new cop.Context{(
name: “Carrot-4,4”
})
.
.
.
…
34. 24
Warehouse robot delivery
Robot moves in a defined space searching for packages and takes them to the delivery area
Context23false = new cop.Context({
name: “Context23false"
})
BAContext23false = Trait({
option: function() {
this.south();
this.west();
this.west();
this.south();
this.dropoff();
})
35.
36. 26
✓ Continuously process execution traces to extract action
sequences and their state
✓ Generated adaptations from extracted options
✓ Use of RL to manage options as the system’s most
appropriate behavior, and continuously update new options
Pushing COP forward not only to enable dynamic behavior
variations. Auto-COP lets systems to become adaptive to
unknown contexts and behavior
@ncardoz n.cardozo@uniandes.edu.co
37. 26
✓ Continuously process execution traces to extract action
sequences and their state
✓ Generated adaptations from extracted options
✓ Use of RL to manage options as the system’s most
appropriate behavior, and continuously update new options
Pushing COP forward not only to enable dynamic behavior
variations. Auto-COP lets systems to become adaptive to
unknown contexts and behavior
@ncardoz n.cardozo@uniandes.edu.co
Explore more system types
Integrate lifelong learning techniques to manage generated
adaptations