Software Engineering Challenges in Pervasive Computing: A reviewEditor IJCATR
Moving away from decades of machine-centric computing and making pervasive human-centric computing, the new
wave of computing, a reality revolutionizes the relationship between humans and computing systems. There is a growing interest
in the use of context-awareness as a technique for developing pervasive computing applications that are flexible, adaptable, and
capable of acting autonomously on behalf of users The software challenges to turn such pervasive or ubiquitous computing
environments into reality are enormous In this paper, we review some of the challenges of software engineering in pervasive
computing.
SVHsIEVs for Navigation in Virtual Urban Environmentcsandit
Many virtual reality applications, such as training, urban design or gaming are based on a rich
semantic description of the environment. This paper describes a new representation of semantic
virtual worlds. Our model, called SVHsIEVs1
should provide a consistent representation of the
following aspects: the simulated environment, its structure, and the knowledge items using
ontology, interactions and tasks that virtual humans can perform in the environment. Our first
main contribution is to show the influence of semantic virtual objects on the environment. Our
second main contribution is to use these semantic informations to manage he tasks of each
virtual object. We propose to define each task by a set of attributes and relationships, which
determines the links between attributes in tasks, and links between other tasks. The architecture
has been successfully tested in 3D dynamic environments for navigation in virtual urban
environments.
TuCSoN on Cloud: An Event-driven Architecture for Embodied / Disembodied Coor...Andrea Omicini
The next generation of computational systems is going to mix up pervasive scenarios with cloud computing, with both intelligent and non-intelligent agents working as the reference component abstractions. A uniform set of MAS abstractions expressive enough to deal with both embodied and disembodied computation is required, in particular when dealing with the complexity of interaction. Along this line, in this paper we define an event-driven coordination architecture, along with a coherent event model, and test it upon the TuCSoN model and technology for MAS coordination.
Feasibility of Artificial Neural Network in Civil Engineeringijtsrd
An Artificial neural network ANN is an information processing hypothesis that is stimulated by the way natural nervous system, such as brain, process information. The using of artificial neural network in civil engineering is getting more and more credit all over the world in last decades. This soft computing method has been shown to be very effective in the analysis and solution of civil engineering problems. It is defined as a body which works out the more and more complex problem through sequential algorithms. It is designed on the basis of artificial intelligence which is proficient of storing more and more information's. In this work, we have investigated the various architectures of ANN and their learning process. The artificial neural network based method was widely applied to the civil engineering because of the strong non linear relationship between known and un known of the problems. They come with good modelling in areas where conventional approaches finite elements, finite differences etc. require large computing resources or time to solve problems. These includes to study the behaviour of building materials, structural identification and control problems, in geo technical engineering like earthquake induced liquefaction potential, in heat transfer problems in civil engineering to improve air quality, in transportation engineering like identification of traffic problems to improve its flexibility , in construction technology and management to estimate the cost of buildings and in building services issues like analyzing the water distribution network etc. Researches reveals that the method is realistic and it will be fascinated for more civil engineering applications. Vikash Singh | Samreen Bano | Anand Kumar Yadav | Dr. Sabih Ahmad ""Feasibility of Artificial Neural Network in Civil Engineering"" Published in International Journal of Trend in Scientific Research and Development (ijtsrd), ISSN: 2456-6470, Volume-3 | Issue-3 , April 2019, URL: https://www.ijtsrd.com/papers/ijtsrd22985.pdf
Paper URL: https://www.ijtsrd.com/engineering/civil-engineering/22985/feasibility-of-artificial-neural-network-in-civil-engineering/vikash-singh
Event-Based vs. Multi-Agent Systems: Towards a Unified Conceptual FrameworkAndrea Omicini
Event-based systems (EBS) are nowadays the most viable sources of technologies and solutions for large-scale distributed applications. On the other hand, multi-agent systems (MAS) apparently provide the most viable abstractions and coherent methods to deal with complex distributed systems, in particular when advanced features – such as mobility, autonomy, symbolic reasoning, knowledge management, situation recognition – are required. In this talk we discuss how the core concepts of EBS and MAS can in principle be matched and integrated, providing a sound conceptual ground for a coherent discipline for the engineering of complex software systems.
[Keynote Speech @ IEEE CSCWD 2015, May 6, 2015, Calabria, Italy]
Software Engineering Challenges in Pervasive Computing: A reviewEditor IJCATR
Moving away from decades of machine-centric computing and making pervasive human-centric computing, the new
wave of computing, a reality revolutionizes the relationship between humans and computing systems. There is a growing interest
in the use of context-awareness as a technique for developing pervasive computing applications that are flexible, adaptable, and
capable of acting autonomously on behalf of users The software challenges to turn such pervasive or ubiquitous computing
environments into reality are enormous In this paper, we review some of the challenges of software engineering in pervasive
computing.
SVHsIEVs for Navigation in Virtual Urban Environmentcsandit
Many virtual reality applications, such as training, urban design or gaming are based on a rich
semantic description of the environment. This paper describes a new representation of semantic
virtual worlds. Our model, called SVHsIEVs1
should provide a consistent representation of the
following aspects: the simulated environment, its structure, and the knowledge items using
ontology, interactions and tasks that virtual humans can perform in the environment. Our first
main contribution is to show the influence of semantic virtual objects on the environment. Our
second main contribution is to use these semantic informations to manage he tasks of each
virtual object. We propose to define each task by a set of attributes and relationships, which
determines the links between attributes in tasks, and links between other tasks. The architecture
has been successfully tested in 3D dynamic environments for navigation in virtual urban
environments.
TuCSoN on Cloud: An Event-driven Architecture for Embodied / Disembodied Coor...Andrea Omicini
The next generation of computational systems is going to mix up pervasive scenarios with cloud computing, with both intelligent and non-intelligent agents working as the reference component abstractions. A uniform set of MAS abstractions expressive enough to deal with both embodied and disembodied computation is required, in particular when dealing with the complexity of interaction. Along this line, in this paper we define an event-driven coordination architecture, along with a coherent event model, and test it upon the TuCSoN model and technology for MAS coordination.
Feasibility of Artificial Neural Network in Civil Engineeringijtsrd
An Artificial neural network ANN is an information processing hypothesis that is stimulated by the way natural nervous system, such as brain, process information. The using of artificial neural network in civil engineering is getting more and more credit all over the world in last decades. This soft computing method has been shown to be very effective in the analysis and solution of civil engineering problems. It is defined as a body which works out the more and more complex problem through sequential algorithms. It is designed on the basis of artificial intelligence which is proficient of storing more and more information's. In this work, we have investigated the various architectures of ANN and their learning process. The artificial neural network based method was widely applied to the civil engineering because of the strong non linear relationship between known and un known of the problems. They come with good modelling in areas where conventional approaches finite elements, finite differences etc. require large computing resources or time to solve problems. These includes to study the behaviour of building materials, structural identification and control problems, in geo technical engineering like earthquake induced liquefaction potential, in heat transfer problems in civil engineering to improve air quality, in transportation engineering like identification of traffic problems to improve its flexibility , in construction technology and management to estimate the cost of buildings and in building services issues like analyzing the water distribution network etc. Researches reveals that the method is realistic and it will be fascinated for more civil engineering applications. Vikash Singh | Samreen Bano | Anand Kumar Yadav | Dr. Sabih Ahmad ""Feasibility of Artificial Neural Network in Civil Engineering"" Published in International Journal of Trend in Scientific Research and Development (ijtsrd), ISSN: 2456-6470, Volume-3 | Issue-3 , April 2019, URL: https://www.ijtsrd.com/papers/ijtsrd22985.pdf
Paper URL: https://www.ijtsrd.com/engineering/civil-engineering/22985/feasibility-of-artificial-neural-network-in-civil-engineering/vikash-singh
Event-Based vs. Multi-Agent Systems: Towards a Unified Conceptual FrameworkAndrea Omicini
Event-based systems (EBS) are nowadays the most viable sources of technologies and solutions for large-scale distributed applications. On the other hand, multi-agent systems (MAS) apparently provide the most viable abstractions and coherent methods to deal with complex distributed systems, in particular when advanced features – such as mobility, autonomy, symbolic reasoning, knowledge management, situation recognition – are required. In this talk we discuss how the core concepts of EBS and MAS can in principle be matched and integrated, providing a sound conceptual ground for a coherent discipline for the engineering of complex software systems.
[Keynote Speech @ IEEE CSCWD 2015, May 6, 2015, Calabria, Italy]
A survey on context aware system & intelligent Middleware’sIOSR Journals
Abstract: Context aware system or Sentient system is the most profound concept in the ubiquitous computing.
In the cloud system or in distributed computing building a context aware system is difficult task and
programmer should use more generic programming framework. On the basis of layered conceptual design, we
introduce Context aware systems with Context aware middleware’s. On the basis of presented system we will
analyze different approaches of context aware computing. There are many components in the distributed system
and these components should interact with each other because it is the need of many applications. Plenty
Context middleware’s have been made but they are giving partial solutions. In this paper we are giving analysis
of different middleware’s and comprehensive application of it in context caching.
Keywords: Context aware system, Context aware Middleware’s, Context Cache
UBIQUITOUS COMPUTING Its Paradigm, Systems & Middlewarevivatechijri
This paper offers a survey of ubiquitous computing research which is the developing a scope that
gears communication technologies into routine life accomplishments. This study paper affords a types of the
studies that extents at the ubiquitous computing exemplar. In this paper, we present collective structure principles
of ubiquitous systems and scrutinize important developments in context-conscious ubiquitous structures. In toting,
this studies work affords a novel structure of ubiquitous computing system and an evaluation of sensors needed
for applications in ubiquitous computing. The goal of this studies work are 3-fold: i) help as a parameter for
researchers who're first-hand to ubiquitous computing and want to subsidize to this research expanse, ii) provide
a unique machine architecture for ubiquitous computing system, and iii) offer auxiliary studies ways necessary
for exceptional-of-provider assertion of ubiquitous computing..
Identifying user location, find people around the user, the time of the day, season, orientation, speed, emotions these all can be included to define a context
there is an obvious trend toward the future Internet
environment, where billions of sensors are connected in a highly
dynamic environment to provide fine-grained information about
the physical world. Applications that utilize such information are
smart and belong to the Internet of Things (IOT) paradigm.
There is a need for IOT systems to have a higher understanding
of the situations in which to provide services or functionalities, to
adapt accordingly. Information context should be collected,
modeled, inferred, and distributed to serve IOT applications with
the required knowledge. Developing context-awareness IOT
applications demands a specialized framework that helps in
applying computations transparently on the cloud and feed the
context-awareness IOT applications with appropriate context
information to prevent the direct access of the context sources.
In this paper, a framework for developing context-aware IOT
applications is proposed. The framework is distributed,
autonomous, and adaptive to fit the IOT applications’
characteristics. The proposed framework utilizes agent’s
technology as well as semantic-based features to provide the basic
functionality required to develop a context-awareness IOT
application. A scenario for elder healthcare is explained to
evaluate this framework.
Observer/Controller and Ontology/Rule-based Architecture:
A Design Approach for Context-aware Pervasive Computing Systems.
By:
Amina HAMEURLAINE
January 21st, 2016
University of Constantine 2 -Abdelhamid Mehri
Faculty of New Technologies of Information and Communication
Department of Computer Sciences and Applications
MISC Laboratory
Adaptation of Web Services to the Context Based on Workflow: Approach for Sel...dannyijwest
The emergence of Web services in the information space, as well as the advanced technology of SOA, give
tremendous opportunities for users in an ambient space or distant, empowerment and organizations in
various fields application, such as geolocation, E-learning, healthcare, digital government, etc.. In fact,
Web services are a solution for the integration of distributed information systems, autonomous,
heterogeneous and self-adaptable to the context. However, as Web services can evolve in a dynamic
environment in a well-defined context and according to events automatically, such as time, temperature,
location, authentication, etc.. We are interested in improving their SOA to empower the Web services to be
self adaptive contexts. In this paper, we propose a new trend of self adaptability of Web services context.
Then applying these requirements in the architecture of the platform of adaptability to context “WComp”,
by integrating the workflow. Our work is illustrated by a case study of authentication.
Ambiences on the-fly usage of available resources through personal devicesijasuc
In smart spaces such as smart homes, computation is
embedded everywhere: in toys, appliances, or the
home’s infrastructure. Most of these devices provid
e a pool of available resources which the user can
take
advantage, interacting and creating a friendly envi
ronment. The inherent composability of these system
s
and other unique characteristics such as low-cost e
nergy, simplicity in module programming, and even
their small size, make them a suitable candidate fo
r dynamic and adaptive ambient systems. This resear
ch
work focuses on what is defined as an “ambience”, a
space with a user-defined set of computational
devices. A smart-home is modeled as a collection of
ambiences, where every ambience is capable of
providing a pool of available resources to the user
. In turn, the user is supposed to carry one or sev
eral
personal devices able to interact with the ambience
s, taking advantage of his inherent mobility. In th
is way,
the whole system can benefit from resources discove
red in the spatial proximity. A software architectu
re is
designed, which is based on the implementation of l
ow-cost algorithms able to detect and update the sy
stem
when changes in an ambience occur. Ambience middlew
are implementation works in a wide range of
architectures and OSs, while showing a negligible o
verhead in the time to perform the basic output
operations.
A COMPOSITE DESIGN PATTERN FOR SERVICE INJECTION AND COMPOSITION OF WEB SERVI...ijwscjournal
In this paper we present a Service Injection and composition Design Pattern for Unstructured Peer-to-Peer
networks, which is designed with Aspect-oriented design patterns, and amalgamation of the Strategy,
Worker Object, and Check-List Design Patterns used to design the Self-Adaptive Systems. It will apply selfreconfiguration planes dynamically without the interruption or intervention of the administrator for
handling service failures at the servers. When a client requests for a complex service, Service Composition
should be done to fulfil the request. If a service is not available in the memory, it will be injected as
Aspectual Feature Module code. We used Service Oriented Architecture (SOA) with Web Services in Java
to Implement the composite Design Pattern. As far as we know, there are no studies on composition of
design patterns for Peer-to-peer computing domain. The pattern is described using a java-like notation for
the classes and interfaces. A simple UML class and Sequence diagrams are depicted.
A COMPOSITE DESIGN PATTERN FOR SERVICE INJECTION AND COMPOSITION OF WEB SERVI...ijwscjournal
In this paper we present a Service Injection and composition Design Pattern for Unstructured Peer-to-Peer networks, which is designed with Aspect-oriented design patterns, and amalgamation of the Strategy, Worker Object, and Check-List Design Patterns used to design the Self-Adaptive Systems. It will apply selfreconfiguration planes dynamically without the interruption or intervention of the administrator for handling service failures at the servers. When a client requests for a complex service, Service Composition should be done to fulfil the request. If a service is not available in the memory, it will be injected as Aspectual Feature Module code. We used Service Oriented Architecture (SOA) with Web Services in Java to Implement the composite Design Pattern. As far as we know, there are no studies on composition of design patterns for Peer-to-peer computing domain. The pattern is described using a java-like notation for the classes and interfaces. A simple UML class and Sequence diagrams are depicted.
A COMPOSITE DESIGN PATTERN FOR SERVICE INJECTION AND COMPOSITION OF WEB SERVI...ijwscjournal
In this paper we present a Service Injection and composition Design Pattern for Unstructured Peer-to-Peer networks, which is designed with Aspect-oriented design patterns, and amalgamation of the Strategy, Worker Object, and Check-List Design Patterns used to design the Self-Adaptive Systems. It will apply selfreconfiguration planes dynamically without the interruption or intervention of the administrator for handling service failures at the servers. When a client requests for a complex service, Service Composition should be done to fulfil the request. If a service is not available in the memory, it will be injected as Aspectual Feature Module code. We used Service Oriented Architecture (SOA) with Web Services in Java to Implement the composite Design Pattern. As far as we know, there are no studies on composition of design patterns for Peer-to-peer computing domain. The pattern is described using a java-like notation for the classes and interfaces. A simple UML class and Sequence diagrams are depicted.
These slides, covering the topics of Software Maintenance and Evolution, are introductory slides to the course LINGI2252 “Software Maintenance and Evolution”, given by Prof. Kim Mens at UCL, Belgium
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.
More Related Content
Similar to Breaking the Walls: A Unified Vision on Context-Oriented Software Engineering
A survey on context aware system & intelligent Middleware’sIOSR Journals
Abstract: Context aware system or Sentient system is the most profound concept in the ubiquitous computing.
In the cloud system or in distributed computing building a context aware system is difficult task and
programmer should use more generic programming framework. On the basis of layered conceptual design, we
introduce Context aware systems with Context aware middleware’s. On the basis of presented system we will
analyze different approaches of context aware computing. There are many components in the distributed system
and these components should interact with each other because it is the need of many applications. Plenty
Context middleware’s have been made but they are giving partial solutions. In this paper we are giving analysis
of different middleware’s and comprehensive application of it in context caching.
Keywords: Context aware system, Context aware Middleware’s, Context Cache
UBIQUITOUS COMPUTING Its Paradigm, Systems & Middlewarevivatechijri
This paper offers a survey of ubiquitous computing research which is the developing a scope that
gears communication technologies into routine life accomplishments. This study paper affords a types of the
studies that extents at the ubiquitous computing exemplar. In this paper, we present collective structure principles
of ubiquitous systems and scrutinize important developments in context-conscious ubiquitous structures. In toting,
this studies work affords a novel structure of ubiquitous computing system and an evaluation of sensors needed
for applications in ubiquitous computing. The goal of this studies work are 3-fold: i) help as a parameter for
researchers who're first-hand to ubiquitous computing and want to subsidize to this research expanse, ii) provide
a unique machine architecture for ubiquitous computing system, and iii) offer auxiliary studies ways necessary
for exceptional-of-provider assertion of ubiquitous computing..
Identifying user location, find people around the user, the time of the day, season, orientation, speed, emotions these all can be included to define a context
there is an obvious trend toward the future Internet
environment, where billions of sensors are connected in a highly
dynamic environment to provide fine-grained information about
the physical world. Applications that utilize such information are
smart and belong to the Internet of Things (IOT) paradigm.
There is a need for IOT systems to have a higher understanding
of the situations in which to provide services or functionalities, to
adapt accordingly. Information context should be collected,
modeled, inferred, and distributed to serve IOT applications with
the required knowledge. Developing context-awareness IOT
applications demands a specialized framework that helps in
applying computations transparently on the cloud and feed the
context-awareness IOT applications with appropriate context
information to prevent the direct access of the context sources.
In this paper, a framework for developing context-aware IOT
applications is proposed. The framework is distributed,
autonomous, and adaptive to fit the IOT applications’
characteristics. The proposed framework utilizes agent’s
technology as well as semantic-based features to provide the basic
functionality required to develop a context-awareness IOT
application. A scenario for elder healthcare is explained to
evaluate this framework.
Observer/Controller and Ontology/Rule-based Architecture:
A Design Approach for Context-aware Pervasive Computing Systems.
By:
Amina HAMEURLAINE
January 21st, 2016
University of Constantine 2 -Abdelhamid Mehri
Faculty of New Technologies of Information and Communication
Department of Computer Sciences and Applications
MISC Laboratory
Adaptation of Web Services to the Context Based on Workflow: Approach for Sel...dannyijwest
The emergence of Web services in the information space, as well as the advanced technology of SOA, give
tremendous opportunities for users in an ambient space or distant, empowerment and organizations in
various fields application, such as geolocation, E-learning, healthcare, digital government, etc.. In fact,
Web services are a solution for the integration of distributed information systems, autonomous,
heterogeneous and self-adaptable to the context. However, as Web services can evolve in a dynamic
environment in a well-defined context and according to events automatically, such as time, temperature,
location, authentication, etc.. We are interested in improving their SOA to empower the Web services to be
self adaptive contexts. In this paper, we propose a new trend of self adaptability of Web services context.
Then applying these requirements in the architecture of the platform of adaptability to context “WComp”,
by integrating the workflow. Our work is illustrated by a case study of authentication.
Ambiences on the-fly usage of available resources through personal devicesijasuc
In smart spaces such as smart homes, computation is
embedded everywhere: in toys, appliances, or the
home’s infrastructure. Most of these devices provid
e a pool of available resources which the user can
take
advantage, interacting and creating a friendly envi
ronment. The inherent composability of these system
s
and other unique characteristics such as low-cost e
nergy, simplicity in module programming, and even
their small size, make them a suitable candidate fo
r dynamic and adaptive ambient systems. This resear
ch
work focuses on what is defined as an “ambience”, a
space with a user-defined set of computational
devices. A smart-home is modeled as a collection of
ambiences, where every ambience is capable of
providing a pool of available resources to the user
. In turn, the user is supposed to carry one or sev
eral
personal devices able to interact with the ambience
s, taking advantage of his inherent mobility. In th
is way,
the whole system can benefit from resources discove
red in the spatial proximity. A software architectu
re is
designed, which is based on the implementation of l
ow-cost algorithms able to detect and update the sy
stem
when changes in an ambience occur. Ambience middlew
are implementation works in a wide range of
architectures and OSs, while showing a negligible o
verhead in the time to perform the basic output
operations.
A COMPOSITE DESIGN PATTERN FOR SERVICE INJECTION AND COMPOSITION OF WEB SERVI...ijwscjournal
In this paper we present a Service Injection and composition Design Pattern for Unstructured Peer-to-Peer
networks, which is designed with Aspect-oriented design patterns, and amalgamation of the Strategy,
Worker Object, and Check-List Design Patterns used to design the Self-Adaptive Systems. It will apply selfreconfiguration planes dynamically without the interruption or intervention of the administrator for
handling service failures at the servers. When a client requests for a complex service, Service Composition
should be done to fulfil the request. If a service is not available in the memory, it will be injected as
Aspectual Feature Module code. We used Service Oriented Architecture (SOA) with Web Services in Java
to Implement the composite Design Pattern. As far as we know, there are no studies on composition of
design patterns for Peer-to-peer computing domain. The pattern is described using a java-like notation for
the classes and interfaces. A simple UML class and Sequence diagrams are depicted.
A COMPOSITE DESIGN PATTERN FOR SERVICE INJECTION AND COMPOSITION OF WEB SERVI...ijwscjournal
In this paper we present a Service Injection and composition Design Pattern for Unstructured Peer-to-Peer networks, which is designed with Aspect-oriented design patterns, and amalgamation of the Strategy, Worker Object, and Check-List Design Patterns used to design the Self-Adaptive Systems. It will apply selfreconfiguration planes dynamically without the interruption or intervention of the administrator for handling service failures at the servers. When a client requests for a complex service, Service Composition should be done to fulfil the request. If a service is not available in the memory, it will be injected as Aspectual Feature Module code. We used Service Oriented Architecture (SOA) with Web Services in Java to Implement the composite Design Pattern. As far as we know, there are no studies on composition of design patterns for Peer-to-peer computing domain. The pattern is described using a java-like notation for the classes and interfaces. A simple UML class and Sequence diagrams are depicted.
A COMPOSITE DESIGN PATTERN FOR SERVICE INJECTION AND COMPOSITION OF WEB SERVI...ijwscjournal
In this paper we present a Service Injection and composition Design Pattern for Unstructured Peer-to-Peer networks, which is designed with Aspect-oriented design patterns, and amalgamation of the Strategy, Worker Object, and Check-List Design Patterns used to design the Self-Adaptive Systems. It will apply selfreconfiguration planes dynamically without the interruption or intervention of the administrator for handling service failures at the servers. When a client requests for a complex service, Service Composition should be done to fulfil the request. If a service is not available in the memory, it will be injected as Aspectual Feature Module code. We used Service Oriented Architecture (SOA) with Web Services in Java to Implement the composite Design Pattern. As far as we know, there are no studies on composition of design patterns for Peer-to-peer computing domain. The pattern is described using a java-like notation for the classes and interfaces. A simple UML class and Sequence diagrams are depicted.
These slides, covering the topics of Software Maintenance and Evolution, are introductory slides to the course LINGI2252 “Software Maintenance and Evolution”, given by Prof. Kim Mens at UCL, Belgium
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.
Software Reuse and Object-Oriented Programmingkim.mens
These slides on Software Reuse and Object-Oriented Programming are part of the course LINGI2252 “Software Maintenance and Evolution”, given by Prof. Kim Mens at UCL, Belgium
These slides on Object-Oriented Design Heuristics are part of the course LINGI2252 “Software Maintenance and Evolution”, given by Prof. Kim Mens at UCL, Belgium.
This presentation on Object-Oriented Application Frameworks is part of a larger course LINGI2252 on Software Maintenance and Evolution, given at UCL university in Belgium.
Towards a Context-Oriented Software Implementation Frameworkkim.mens
Context-aware systems must manage the dynamic selection, activation, and execution of feature variants according to changing contexts, detected from data gathered from their surrounding execution environment. Many context-oriented programming languages focus only on the implementation level by providing appropriate language abstractions for implementing behavioural variations that can adapt dynamically to changing contexts. They often ignore or presuppose the existence of mechanisms to deal with earlier aspects such as the gathering of sensory input and context discovery. In this presentation we discuss a layered software architecture that reconciles all these aspects in a single implementation framework, which can be customised by application programmers into actual context-aware applications. This framework and a simulator to test applications build using this framework we recently implemented in Ruby and Ruby on Rails.
Towards a Taxonomy of Context-Aware Software Variabilty Approacheskim.mens
Modern software systems demand more and more smart capabilities depending on their context of use, as well as the ability to dynamically adapt these capabilities according to sensed context changes. This requires appropriate techniques for modelling, representing and handling context-aware software variability. While traditional variability modelling approaches like feature orientation and software product lines are evolving to address the increased dynamicity and context specificity required for this new generation of software systems, new paradigms such as context-oriented programming have emerged. Although developed independently, since they address similar issues, many similarities exist between these approaches. The purpose of this work is to define, categorise and compare key concepts shared by these approaches.
Such a taxonomy is a first step towards a better understanding of the differences and similarities between different approaches for managing context-aware software variability, and to achieve a cross-fertilisation between them.
An introductory lecture on context-oriented programming, part of a full course on Programming Paradigms at UCL university in Belgium, focussing on reflection and meta programming techniques in a variety of languages. This particular lecture was made by Sebastian Gonzalez in close collaboration with Kim Mens.
An introduction to the basics of reflection and meta programming, part of a full lecture on programming paradigms at UCL university in Belgium, with reflection and meta programming as theme. (Further lectures focus more in depth on reflection and meta programming in a variety of programming languages such as Smalltalk, Ruby and Java.) Slides created collaboratively by Kim Mens and Roel Wuyts.
After a previous introductory lecture on the basics of reflection in Java, in this lecture we take a closer look at some more advanced reflective features of the language such as dynamic proxies, call stack introspection and instrumentation. This lecture is part of a full course on Programming Paradigms at UCL university in Belgium, focussing on the programming languages Smalltalk, Ruby and Java, with reflection and meta programming as underlying theme.
An introduction to the basics of reflection in the object-oriented programming language Java, part of a full lecture on Programming Paradigms at UCL university in Belgium, focussing on the programming languages Smalltalk, Ruby and Java, with reflection and meta programming as underlying theme.
An introduction to some advanced language features of the object-oriented programming language Ruby, part of a full lecture on Programming Paradigms at UCL university in Belgium, focussing on the programming languages Smalltalk, Ruby and Java, with reflection and meta programming as underlying theme. This lecture looks into the Ruby features of higher-order programming (lambdas), singleton methods, mixin modules, reflection and metaprogramming.
A quick introduction to the object-oriented programming language Ruby, part of a full lecture on Programming Paradigms at UCL university in Belgium, focussing on the programming languages Smalltalk, Ruby and Java, with reflection and meta programming as underlying theme.
A quick introduction to the object-oriented programming language Smalltalk, part of a full lecture on Programming Paradigms at UCL university in Belgium, focussing on the programming languages Smalltalk, Ruby and Java, with reflection and meta programming as underlying theme.
A gentle and intuitive introduction to reflection and meta programming, part of a full lecture on programming paradigms at UCL university in Belgium, with reflection and meta programming as theme. (Further lectures focus more in depth on reflection and meta programming in a variety of languages such as Smalltalk, Ruby and Java.)
Managing the Evolution of Information Systems with Intensional Views and Rela...kim.mens
Like any software system, information systems suffer from structural inconsistencies that may arise during system evolution. Appropriate tools are needed to encode the structural regularities the system should adhere to, and to check conformance of the system against those regularities upon evolution. Taking inspiration from the intensional views approach to document and verify structural regularities in source code, we developed a similar tool to document and verify structural regularities in large databases. Regularities are expressed by the user at a high level in a graphical user interface, and then translated into relational algebra in order to check the regularities over the data. Discovered inconsistencies are presented back to the user in appropriate high-level data views. As a case study, the developed tool was successfully applied to a safety critical information system deployed at a large Belgian university. It is used by the rescue services to accurately locate users based on the location of their IP phones from which an emergency call was made.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Launch Your Streaming Platforms in MinutesRoshan Dwivedi
The claim of launching a streaming platform in minutes might be a bit of an exaggeration, but there are services that can significantly streamline the process. Here's a breakdown:
Pros of Speedy Streaming Platform Launch Services:
No coding required: These services often use drag-and-drop interfaces or pre-built templates, eliminating the need for programming knowledge.
Faster setup: Compared to building from scratch, these platforms can get you up and running much quicker.
All-in-one solutions: Many services offer features like content management systems (CMS), video players, and monetization tools, reducing the need for multiple integrations.
Things to Consider:
Limited customization: These platforms may offer less flexibility in design and functionality compared to custom-built solutions.
Scalability: As your audience grows, you might need to upgrade to a more robust platform or encounter limitations with the "quick launch" option.
Features: Carefully evaluate which features are included and if they meet your specific needs (e.g., live streaming, subscription options).
Examples of Services for Launching Streaming Platforms:
Muvi [muvi com]
Uscreen [usencreen tv]
Alternatives to Consider:
Existing Streaming platforms: Platforms like YouTube or Twitch might be suitable for basic streaming needs, though monetization options might be limited.
Custom Development: While more time-consuming, custom development offers the most control and flexibility for your platform.
Overall, launching a streaming platform in minutes might not be entirely realistic, but these services can significantly speed up the process compared to building from scratch. Carefully consider your needs and budget when choosing the best option for you.
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...kalichargn70th171
A dynamic process unfolds in the intricate realm of software development, dedicated to crafting and sustaining products that effortlessly address user needs. Amidst vital stages like market analysis and requirement assessments, the heart of software development lies in the meticulous creation and upkeep of source code. Code alterations are inherent, challenging code quality, particularly under stringent deadlines.
Takashi Kobayashi and Hironori Washizaki, "SWEBOK Guide and Future of SE Education," First International Symposium on the Future of Software Engineering (FUSE), June 3-6, 2024, Okinawa, Japan
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppGoogle
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-fusion-buddy-review
AI Fusion Buddy Review: Key Features
✅Create Stunning AI App Suite Fully Powered By Google's Latest AI technology, Gemini
✅Use Gemini to Build high-converting Converting Sales Video Scripts, ad copies, Trending Articles, blogs, etc.100% unique!
✅Create Ultra-HD graphics with a single keyword or phrase that commands 10x eyeballs!
✅Fully automated AI articles bulk generation!
✅Auto-post or schedule stunning AI content across all your accounts at once—WordPress, Facebook, LinkedIn, Blogger, and more.
✅With one keyword or URL, generate complete websites, landing pages, and more…
✅Automatically create & sell AI content, graphics, websites, landing pages, & all that gets you paid non-stop 24*7.
✅Pre-built High-Converting 100+ website Templates and 2000+ graphic templates logos, banners, and thumbnail images in Trending Niches.
✅Say goodbye to wasting time logging into multiple Chat GPT & AI Apps once & for all!
✅Save over $5000 per year and kick out dependency on third parties completely!
✅Brand New App: Not available anywhere else!
✅ Beginner-friendly!
✅ZERO upfront cost or any extra expenses
✅Risk-Free: 30-Day Money-Back Guarantee!
✅Commercial License included!
See My Other Reviews Article:
(1) AI Genie Review: https://sumonreview.com/ai-genie-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
#AIFusionBuddyReview,
#AIFusionBuddyFeatures,
#AIFusionBuddyPricing,
#AIFusionBuddyProsandCons,
#AIFusionBuddyTutorial,
#AIFusionBuddyUserExperience
#AIFusionBuddyforBeginners,
#AIFusionBuddyBenefits,
#AIFusionBuddyComparison,
#AIFusionBuddyInstallation,
#AIFusionBuddyRefundPolicy,
#AIFusionBuddyDemo,
#AIFusionBuddyMaintenanceFees,
#AIFusionBuddyNewbieFriendly,
#WhatIsAIFusionBuddy?,
#HowDoesAIFusionBuddyWorks
Hand Rolled Applicative User ValidationCode KataPhilip Schwarz
Could you use a simple piece of Scala validation code (granted, a very simplistic one too!) that you can rewrite, now and again, to refresh your basic understanding of Applicative operators <*>, <*, *>?
The goal is not to write perfect code showcasing validation, but rather, to provide a small, rough-and ready exercise to reinforce your muscle-memory.
Despite its grandiose-sounding title, this deck consists of just three slides showing the Scala 3 code to be rewritten whenever the details of the operators begin to fade away.
The code is my rough and ready translation of a Haskell user-validation program found in a book called Finding Success (and Failure) in Haskell - Fall in love with applicative functors.
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
OpenMetadata Community Meeting - 5th June 2024OpenMetadata
The OpenMetadata Community Meeting was held on June 5th, 2024. In this meeting, we discussed about the data quality capabilities that are integrated with the Incident Manager, providing a complete solution to handle your data observability needs. Watch the end-to-end demo of the data quality features.
* How to run your own data quality framework
* What is the performance impact of running data quality frameworks
* How to run the test cases in your own ETL pipelines
* How the Incident Manager is integrated
* Get notified with alerts when test cases fail
Watch the meeting recording here - https://www.youtube.com/watch?v=UbNOje0kf6E
What is Augmented Reality Image Trackingpavan998932
Augmented Reality (AR) Image Tracking is a technology that enables AR applications to recognize and track images in the real world, overlaying digital content onto them. This enhances the user's interaction with their environment by providing additional information and interactive elements directly tied to physical images.
E-commerce Application Development Company.pdfHornet Dynamics
Your business can reach new heights with our assistance as we design solutions that are specifically appropriate for your goals and vision. Our eCommerce application solutions can digitally coordinate all retail operations processes to meet the demands of the marketplace while maintaining business continuity.
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Łukasz Chruściel
No one wants their application to drag like a car stuck in the slow lane! Yet it’s all too common to encounter bumpy, pothole-filled solutions that slow the speed of any application. Symfony apps are not an exception.
In this talk, I will take you for a spin around the performance racetrack. We’ll explore common pitfalls - those hidden potholes on your application that can cause unexpected slowdowns. Learn how to spot these performance bumps early, and more importantly, how to navigate around them to keep your application running at top speed.
We will focus in particular on tuning your engine at the application level, making the right adjustments to ensure that your system responds like a well-oiled, high-performance race car.
Zoom is a comprehensive platform designed to connect individuals and teams efficiently. With its user-friendly interface and powerful features, Zoom has become a go-to solution for virtual communication and collaboration. It offers a range of tools, including virtual meetings, team chat, VoIP phone systems, online whiteboards, and AI companions, to streamline workflows and enhance productivity.
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeAftab Hussain
Understanding variable roles in code has been found to be helpful by students
in learning programming -- could variable roles help deep neural models in
performing coding tasks? We do an exploratory study.
- These are slides of the talk given at InteNSE'23: The 1st International Workshop on Interpretability and Robustness in Neural Software Engineering, co-located with the 45th International Conference on Software Engineering, ICSE 2023, Melbourne Australia
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Breaking the Walls: A Unified Vision on Context-Oriented Software Engineering
1. BREAKING DOWN THE WALLS
A UNIFIED VISION ON
CONTEXT-ORIENTED SOFTWARE ENGINEERING
Kim Mens, Nicolás Cardozo, Anthony Cleve & Bruno Dumas
Presented at BENEVOL 2015, 3-4 December 2015, Lille, France
2. “Traditionally, hardware and software were
input-output systems that took input
explicitly given to them by a human, and
acted upon that input alone to produce an
explicit output. Now, this view is seen as
too restrictive. …
-Henry Lieberman & Ted Selker
Out of Context: Computer Systems That Adapt To, and Learn From, Context.
IBM Systems Journal, Vol 39, Nos 3&4, p.617-631, 2000
system
input output
3. “… Smart computers, intelligent agent
software, and digital devices of the future
operate on data that is not explicitly given
to them, data that they observe or gather
for themselves. These operations may be
dependent on time, place, weather, user
preferences, or the history of interaction. In
other words: context.
-Henry Lieberman & Ted Selker
Out of Context: Computer Systems That Adapt To, and Learn From, Context.
IBM Systems Journal, Vol 39, Nos 3&4, p.617-631, 2000
4. “Computer systems will increasingly need to
be sensitive to their context to serve their
users better.
-Eli Rohn
Predicting Context Aware Computing Performance.
Ubiquity, p.1-17, Feb. 2003
5. FROM “CONTEXT-BLIND” SOFTWARE DEVELOPMENT
system
input output
Traditional software development approaches are mostly oblivious of the physical,
technical and human environment in which the software will be used.
Many chances of delivering improved services are thus missed.
6. TO DEVELOPING SYSTEMS WITH “CONTEXT” IN MIND
system
input output
Dedicated development approaches are needed that help overcoming this limiting
vision by putting developers in the right state of mind to build dynamically
adaptable software systems from the ground up.
7. TOWARDS A UNIFIED VISION ON
CONTEXT-ORIENTED SOFTWARE ENGINEERING
Presentation goals:
➤ quick overview of research on context-aware software
➤ from different research perspectives
➤ conceptual and implementation framework
Framework is our research vehicle
➤ framework, simulator and case study being implemented
➤ focus mainly on user, PL, UI and DB perspectives
➤ validate on real case studies (mainly web and mobile)
Relevance to BENEVOL:
context-oriented
software systems can
adapt and evolve
8. SOME DEFINITIONS
A software system is context-aware if it can extract, interpret
and use context information and adapt its functionality to the
current context of use. [Rohn2003]
Context is everything but the explicit input and output to a
system. [Lieberman&Selker2000]
A context-oriented software system is a context-aware system
that has an explicit representation of context and contextual
variations as first class citizens. [our definition]
9. CONTEXT-AWARE SYSTEMS
Idea appeared ~ late 1980s; increasingly studied since ~ 2000.
Fig. 2. Classification of articles by publication year.
Table 3
Classification of arti
Journal articles
IEEE Pervasive Com
Personal and Ubiqu
IEEE Internet Comp
Wireless Personal C
IEEE Intelligent Sys
Mobile Networks a
IEEE Transactions o
The Others
Expert Systems wit
Computer Commun
Journal of Systems
Pervasive and Mobi
World Wide Web
IEEE Wireless Comm
Interacting with Co
Total
J.-y. Hong et al. / Expert Systems with Applications 36 (2009
Jong-yi Hong, Eui-ho Suh, Sung-Jin Kim
Context-Aware Systems: A literature review and classification.
Expert Systems with Applications 36, 2009
10. CONTEXT-AWARE SYSTEMS
From a variety of research angles [Hong&al2009]:
➤ conceptual: guidelines, frameworks, algorithms, context
reasoning and context data management
➤ networks: network protocols, sensor networks, …
➤ middleware for distributed context-aware applications
➤ applications: studies and
development of dedicated
context-aware applications
(e.g., a smart tour guide)
➤ user-interface technology
and usability studies
systems Ranganathan, Campbell, Ravi, and Mahaja
(2002), Sumi and Mase (2000), Sumi and N
Chen (2007)
M-commerce Anagnostopoulos, Tsounis, and Hadjiefthy
Frank, and Hansen (2003), Broens, Haltere
Santoro (2006), Kwon (2003), Kwon and S
Mitteregger (2007), Mandato, Kovacs, Hoh
(2005), Skov and Høegh (2006), Stylianos
Broens (2007), Wohltorf, Cissée, and Riege
Web service Blake, Kahan, and Nowlan (2007), Debaty,
(2004), Kanter (2003), Kwon (2006b), Kw
Pearce (2003)
Table 9
References of user infrastructure layer.
Classification criteria References
User infrastructure Interface Alexander and Matth
(2005), Hong, Dickso
Salovaara, and Lopez
(2003), Rehman, Sta
Usability Barnard, Yi, Jacko, an
11. CONTEXT-ORIENTED PROGRAMMING
Focusses on the programming angle:
Enabling context-aware software adaptability
through a programming language engineering approach:
➤ dedicated programming languages to express
context-driven behaviour adaptation
➤ contexts and behavioural variations to context
as first class language citizens
12. SOME CONTEXT-ORIENTED PROGRAMMING LANGUAGES
Subjective-CAmbience
Context Traits
2008 20132011
Sebastián Gonzalez, Kim Mens, Alfredo Cádiz
Context-Oriented Programming with the Ambient Object System.
Universal Computer Science 14(20), 2008.
Sebastián Gonzalez, Nicolás Cardozo, Kim Mens,
Alfredo Cádiz, Jean-Christophe Libbrecht, Julien Goffaux
Subjective-C: Bringing Context to Mobile Platform Programming.
Software Language Engineering (SLE), 2010.
Sebastián Gonzalez, Kim Mens, Marius Coluacioiu, Walter Cazzola
Context Traits: Dynamic Behaviour Adaptation through Run-Time Trait Recomposition.
Aspect-Oriented Software Development (AOSD), 2013.
13. MOTIVATING EXAMPLE: ON-BOARD CAR SYSTEM
Context Traits
Nicolás Cardozo, Kim Mens, Sebastián González, Pierre-Yves Orban, Wolfgang De Meuter
Features on Demand.
Variability Modelling of Software-intensive Systems (VaMoS), 2014
14. MOTIVATING EXAMPLE: AN ON-BOARD CAR SYSTEM
Context Traits
Pierre-Yves Orban
Using Context-Oriented Programming for Building
Adaptive Feature-Oriented Software for Car On-Board Systems.
Master thesis in Computer Science, Université catholique de Louvain, 2013
15. MOTIVATING EXAMPLE: ON-BOARD CAR SYSTEM
Context-specific features
location = EU
Display speed reading using the
metric system units
16. MOTIVATING EXAMPLE: ON-BOARD CAR SYSTEM
Context changes trigger behavioural adaptation
location = UKlocation = EU
17. MOTIVATING EXAMPLE: ON-BOARD CAR SYSTEM
Context changes trigger behavioural adaptation
location = UKlocation = EU
Display speed reading using the
imperial system units
Display speed reading using the
metric system units
18. MOTIVATING EXAMPLE: ON-BOARD CAR SYSTEM
But need to consider UI aspect too:
If display not refreshed, nothing
may happen, or only value would
change but not the unit.
location = UK
Display speed reading using the
imperial system units
ImperialSystem = Trait({
var CONV_RATIO = 0.621371192;
getSpeed: function(msg) {
_val = this.proceed();
Math.round _val * CONV_RATIO; }
getHtml: function() {
display.setGaugeDisplay(this.proceed().replace("km/h", "mph")); }
});
Context Traits
19. TOWARDS A UNIFIED VISION ON [RECALL]
CONTEXT-ORIENTED SOFTWARE ENGINEERING
➤ Our ambition …
➤ is to provide a software development approach to support the
development of software systems that can dynamically adapt
their behaviour to the current context of use, to provide the
most appropriate behaviour according to that context
➤ But our case studies so far showed that this cannot be achieved
without taking the user, database and user interface aspects into
account as well
➤ Hence the need for a more unified vision on context-oriented
software engineering
➤ To achieve this we are currently developing a conceptual and
implementation framework
20. LAYERED ARCHITECTURE OF CONTEXT-AWARE SYSTEMS
➤ To achieve a unified vision on context-oriented software
engineering we are developing a conceptual and
implementation framework
➤ Context-aware systems typically adopt a layered software
architecture. [Miraoui&al2008]
➤ separates context sensing from context use
➤ to increase the level of context abstraction
➤ hides the physical abstraction sensing complexity
➤ enhances both reusability and extensibility
Moeiz Miraoui, Chakib Tadj, Chokri ben Amar
Architectural Survey of Context-Aware Systems in Pervasive Computing Environment.
Ubiquitous Computing and Communication 3(3), 2008.
21. LAYERED ARCHITECTURE OF CONTEXT-AWARE SYSTEMS
Composed of following components [Miraoui&al2008]:
Sensor: physical sensing of contextual information
Interpretation: transformation of raw information
into a more significant and useful information
Reasoning: deduces and predicts new contextual
information
Storage and management: basic management of
contextual information
Adaptation: adaptation of provided services
according to the current context
Adaptation
Reasoning
Storage
Management
Interpretation
Sensor
Context
22. CONTEXT
The context of use can be decomposed into three facets:
➤ end-users who interact with the system
➤ physical environment in which they and the system are
working
➤ hardware and software computing platform on which
the users and the system carry out their actions
Gaëlle Calvary, Joëlle Coutaz, David Thevenin,
Quentin Limbourg, Laurent Bouillon, Jean Vanderdonckt.
A Unifying Reference Framework for Multi-Target User Interfaces
Interacting with Computers 15(3), 2003
Physical
environment
Computing platform
(hardware and software)
User
Context =
+ +
27. HANDLING LAYER
➤ Context Activation
➤ in response to detected context changes
➤ selects what contexts and features become (de)activated
➤ updates context & feature representation accordingly
➤ to store information on activation status
➤ takes into account context & feature dependencies
➤ Feature & Variant Selection
➤ (de)selects context-specific behaviour
according to currently (in)active contexts & features
Handling
Context
Activation
Feature and Variation
Selection
28. REPRESENTATION LAYER
➤ Context & Feature Representation
➤ possible contexts & features of the system
➤ currently active contexts and selected features
➤ declaration of dependencies between contexts & features
➤ Context-Variants Mapping
➤ mapping of chosen contexts & features to corresponding behavioural variants
➤ Variant Declaration & Composition
➤ behaviour of the different variants
➤ composition of variants into bigger ones
➤ tagging of some variants as “features”
Representation
Context–Variants
Mapping
Context & Feature
Representation
Variant Declaration
& Composition
29. CONTEXT & FEATURE REPRESENTATION
➤ Idea: Using feature diagrams … [HartmannTrew2008]
➤ to represent possible contexts and features
➤ and the dependencies between them
➤ optional/mandatory,
“implies”, “requires”, “excludes”,
sub features and cardinalities
➤ plus a rationale for these dependencies
➤ Features are just a special kind of context
➤ represents the contextual information that this feature
is desired by the user
➤ Plus information on the activation status
➤ (in)active; (de)activation requested; being (de)activated
Context & Feature
Representation
range and the dependencies between different features.
By making this separation, a feature model contains
the possible features, with dependencies that capture
the (technical) dependencies between the features.
The dependencies related to the context are
modeled as dependencies between the Context
Variability model and the feature model, as shown in
figure 1. These dependencies are captured in the same
way as dependencies within a conventional feature
model.
Context
Variability
Model
FeatureModel
<<1..2>>
MPL-FeatureModel
Dependencies
Context
Variability
Model
FeatureModel
<<1..2>>
MPL-FeatureModel
Dependencies
Fig. 1. MPL-Feature Diagram
The types of dependencies between the Context
Variability model and the Feature Model include
“requires” and “excludes”, as is common with
conventional Feature models. Besides these
dependency relations we will introduce a new relation.
This type of relation narrows the cardinality of either a
feature or a group, as will be illustrated in section 3.3.
Furthermore, each dependency can be annotated with a
rationale for the constraint imposed by the context. It
is important that the rationale is captured, e.g. to assess
the impact of requirements changes. For instance a
30. CONTEXT & FEATURE REPRESENTATION
model with a graphical representation of the
dependencies between the Context Model and the
Feature Model (for reasons of clarity only a subset of
the dependencies are shown).
Blue-
Tooth
Context
Continent
Type
Car-Brand
Budget Mid High
CarAEurope Asia USA CarB CarC CarD
<<0..n>>
<<0..n>>
<<0..n>>
<<excludes>>
<<requires>>
<<sets cardinality>>
Protocol
Flexray ZigBee
Interface
USBCard-
Slot
Maps
Features
EU USA ….
Connections
….
<<1..n>>
<<0..2>>
<<excludes>>
Blue-
Tooth
Context
Continent
Type
Car-Brand
Budget Mid High
CarAEurope Asia USA CarB CarC CarD
<<0..n>>
<<0..n>>
<<0..n>>
<<excludes>>
<<requires>>
<<sets cardinality>>
Protocol
Flexray ZigBee
Interface
USBCard-
Slot
Maps
Features
EU USA ….
Connections
….
<<1..n>>
<<0..2>>
<<excludes>>
Fig. 4. MPL-Feature Diagram of the
infotainment system
Herman Hartmann, Tim Trew
Using Feature diagrams with Context Variability
to model Multiple Product Lines for Software Supply Chains
Software Product Line (SPLC), 2008
model and the feature model represent the specific
requirement of each classifier. Some examples of
dependencies and their rationales are presented below,
using a textual notation.
European Maps are part of the Navigation system
and in Europe DVDs with region 2 must be supported:
Continent.Europe <<requires>>
European Maps {Rationale: Obvious}
Continent.Europe <<requires>> DVD-
region 2 {Rationale: Standard}
Manufacturer CarA may not support a specific
communication protocol:
Car-Brand.CarA <<excludes>> FlexRay
protocol
The budget (small) configuration can only support a
USB interface or a Card Slot, not both, because the
size of the front panel is too small.
Type.Budget <<sets group cardinality
of >> MP3 interface >> << to>> [0..1]
{Rationale: Technical; Too small size
of front}
Context: The infotainment manufacturer creates
products for different Car manufacturers: CarA, CarB,
CarC and CarD, for different continents: USA, Asia
and Europe, and has three product types: budget, mid-
range, high-end. The budget, with a small feature set,
fits into the space used for ordinary car radios. The
mid-range type contains more features, is larger and
therefore needs more cabin space. The high-end
contains many possible features, is significantly larger
then the mid-range, so needs space in the trunk.
A diagram of the Context Variability model is shown
in figure 3.
Context
Continent
Type
Car-Brand
Budget Mid High-end
CarAEurope ASIA USA CarB CarC CarD
<<0..n>>
<<0..n>>
<<0..n>>
Context
Continent
Type
Car-Brand
Budget Mid High-end
CarAEurope ASIA USA CarB CarC CarD
<<0..n>>
<<0..n>>
<<0..n>>
Fig. 3. Context Variability Diagram of the
infotainment system
The dependencies between the context variability
model and the feature model represent the specific
requirement of each classifier. Some examples of
dependencies and their rationales are presented below,
Dependencies can also relate to different context
classifiers: In the USA, CarA does not sell budget:
Continent.USA AND car type.CarA
<<exclude>> budget {Rationale:
Logistics}
Or become even more complex: In the Asian market,
CarB only sells midrange without Memory-Card slot:
Car Type.CarB AND Continent.Asia AND
Type. Mid-range <<exclude>> Memory-
Card. {Rationale: Commercial}
Figure 4 shows a diagram of the MPL-Feature
model with a graphical representation of the
dependencies between the Context Model and the
Feature Model (for reasons of clarity only a subset of
the dependencies are shown).
Context
Continent
Type
Car-Brand
Budget Mid High
CarAEurope Asia USA CarB CarC CarD
<<0..n>>
<<0..n>>
<<0..n>>
<<excludes>> Maps
Features
Connections
<<excludes>>
Context
Continent
Type
Car-Brand
Budget Mid High
CarAEurope Asia USA CarB CarC CarD
<<0..n>>
<<0..n>>
<<0..n>>
<<excludes>> Maps
Features
Connections
<<excludes>>
31. CONTEXT-VARIANTS MAPPING
➤ Mapping contexts (and features)
➤ to variants that implement behaviour specific to that context
➤ Could be a simple mapping of the form
➤ context —> { variant1, …, variantn }
➤ though more complex conditions could be considered as well
➤ ( contextA OR contextB ) AND ( NOT contextC ) => { … }
➤ Add a structured Rationale for each mapping rule as well
➤ useful to understand the rule, to resolve conflicts, to offer
user feedback
➤ Mapping could also contain declaration of transitions
Context–Variants
Mapping
32. VARIANT DECLARATION & COMPOSITION
➤ Adaptation:
➤ the process of changing to fit some purpose of
situation; the process of adapting
➤ Variation:
➤ a change in the form, position, condition or amount
of something
➤ Variant:
➤ something that is different in some way from others
of the same kind
➤ Feature:
➤ some variants can be tagged as feature if they
represent “an interesting or important part or
ability”
Variation
Variation
ø
Adaptation
Adaptation
Variant
Variant
Variant Declaration
& Composition
33. VARIANT DECLARATION & COMPOSITION
➤ Variation declarations contain
➤ a code, UI and DB component
➤ a prologue and epilogue
➤ definition of possible transitions
➤ Composition mechanism can
➤ compose variations into bigger “variants”
➤ (some variants can be tagged as "features")
➤ refine and adapt earlier behaviour
➤ define conflict resolution policies
Variant Declaration
& Composition
Variation
34. OUR CONTEXT-ORIENTED ARCHITECTURE
Representation
Handling
Discovery
Context–Variants
Mapping
ReasoningInterpretation
Computing platform
(hardware and software)
Context & Feature
Representation
Execution
User
Interaction
Actuators
External environment
Internal environment
Output Device SensorsInput Device API APIAPI
Context
Activation
Variant Selection
Variant Declaration
& Composition
Context Physical
environment
context & feature diagram
active contexts & features
dependencies between contexts & features
Mapping of contexts and features
to corresponding variants
Declaration of different variants
and how they are composed