This report describes the component model developed within PROGRESS. In addition to defining the syntax and semantics, it also gives some background and motivation, and describes how this work relates to the overall PROGRESS vision and to the work in other areas of the project.
In this paper we propose to use components for managingthe increasing complexity in modern vehicular systems.Compared to other approaches, the distinguishingfeature of our work is using and benefiting from componentsthroughout the development process from early designto development and deployment, and an explicit separationof concerns at different levels of granularity. Basedon the elaboration of the specifics of vehicular systems (resourceconstraints, real-time requirements, hard demandson reliability), the paper identifies concerns that need to beaddressed by a component model for this domain, and describesa realization of such a component model.
The complexity of software and electronics in vehicular systems has increased significantly over last few years - up to the point when it is difficult to manage it with existing development methods. In this paper we aim at using components for managing the complexity in vehicular systems. Compared to other approaches, the distinguishing feature of our work is using and benefiting from components throughout the whole development process (from early design to development and deployment). Based on the elaboration of the specifics of vehicular systems (resource constraints, real-time requirements, hard demands on reliability), the paper identifies concerns that need to be addressed by a component model for this domain. It also outlines basic features and characteristics of such a component model and discusses how relevant existing formalisms and component models relate to it and how they could be reused within the proposed approach.
There is no clear distinction between service-orientedsystems (SOS) and component-based systems (CBS). However,there are several characteristics that could let one considerSOS as a step further from CBS. In this paper, we discussthe general features of CBS and SOS, while accountingfor behavioral modeling in the language called REMES.First, we present REMES in the context of CBS modeling,and then we show how it can become suitable for SOS. Wealso discuss the relation between our model and the currentstate of the art.
The essence of component-based software engineering is embodied in component models. Component models specify the properties of components and the mechanism of component compositions. In a rapid growth, a plethora of different component models has been developed, using different technologies, having different aims, and using different principles. This has resulted in a number of models and technologies which have some similarities, but also principal differences, and in many cases unclear concepts. Component-based development has not succeeded in providing standard principles, as for example object-oriented development. In order to increase the understanding of the concepts, and to easier differentiate component models, this paper provides a Component Model Classification Framework which identifies and quantifies basic principles of component models. Further, the paper classifies a certain number of component models using this framework.
In the last decade a large number of different software component models have been developed, with different aims and using different principles and technologies. This has resulted in a number of models which have many similarities, but also principal differences, and in many cases unclear concepts. Component-based development has not succeeded in providing standard principles, as has, for example, object-oriented development. In order to increase the understanding of the concepts, and to differentiate component models more easily, this paper identifies, discusses and characterises fundamental principles of component models, and provides a Component Model Classification Framework based on these principles. Further, the paper classifies a large number of component models using this framework.
As component-based software engineering is growing and its usage expanding, more and more component models are developed. In this paper we present a survey of software component models in which models are described and classified respecting the classification framework for component models proposed by Crnković et. al. This framework specifies several groups of important principles and characteristics of component models: lifecycle, constructs, specification and management of extra-functional properties, and application domain. This paper gives examples three component models using the classification framework.
In this paper, we present a tool-chain for the REMES language, which can be used for the construction and analysis of embedded system behavioral models. The tool-chain consists of the following tools: (i) a REMES editor for modeling behaviors of embedded components, (ii) a REMES simulator to test timing and resource behavior prior to formal analysis, and (iii) an automated transformation from REMES to Priced Timed Automata, needed for formal analysis.
Adoption of virtualization technology has been limited in industrial automation due to unavailability of mature solutions, and strict timing requirements of control systems. However, current advancement in Virtual Monitoring Machine, multicore technology, virtualization extension and network virtualization has led to increased interest of virtualization in industrial automation. So far, many related research are focused on maximizing CPU and I/O utilization, and optimization applicable to soft realtime systems (i.e., outside industrial automation domain), e.g., multimedia applications. In this research, we make use of QoS for CPU, memory and network bandwidth in pursuit of high speed and predictability on a distributed multicore platform which is constructed entirely from open source products. We evaluate the platform for latency and jitter, network throughput and CPU computation load. Finally, we analyze the result for applicability in industrial control domain.
With multicore controllers becoming available for industrial automation applications, new tools and algorithms to compute efficient partitioning and scheduling solutions for control applications need to be developed. Optimizing the deployment and the schedule of a set of Function Block Diagrams on a parallel architecture are both NP hard. Additionally, control engineers need help to shift from the single core towards the multicore paradigm. By taking advantage of the parallelism inside the control applications it is effectively possible to decrease the finish times of the applications which enables to decrease their cycle times and improve the quality of service of the controller processes. This paper presents a practical solution to this problem that consists in a framework, called PASA, designed for partitioning and scheduling control applications modeled as function block diagrams. It enables new algorithms tailored to solve these optimization problems. This paper presents an extension of list-based DAG scheduling algorithms designed to compute a deployment and schedule for several control applications with different cycle times. The different variants of this algorithm are compared against each other as well as against some other existing solutions on a set of randomly generated examples.
As embedded systems become more and more complex the significance of predictability grows. The particular predictability requirements of embedded systems, call for a development framework equipped with tools and techniques that will guide the design and selection of system software. Simulation and verification are two complementary techniques that play a valuable role in achieving software predictability already at early design stage. Simulation is scalable and can be very useful in debugging and validating the system design. Moreover, it can be used as a supplement to verification for visualizing diagnostic traces produced by the verification tool and for rerunning counterexamples in cases when the verification property is not satisfied. In this paper we introduce an idea of a simulative environment for early development of component-based embedded systems. By using it, the designer can navigate and debug the design and behavior of such systems at early stages of the system lifecycle.
n this paper, we introduce the model REMES for formal modeling and analysis of embedded resources such as storage, power, communication, and computation. The model is annotated with both discrete and continuous resources. It is in fact a state-machine based behavioral language with support for hierarchalmodeling, continuous time, and a notion of explicit entry and exit points, making it suitable for component-based modeling. The analysis of REMES-based systems is centered around a weighted sum in which the variables represent the amounts of consumed resources. We describe a number of important resource related analysis problems, including feasibility, trade-off, and optimal resource-utilization analysis. To formalize these problems, and to provide a basis for formal analysis, we show how to analyze REMES models using the framework of priced timed automata and weighted CTL. To illustrate the approach, we describe a case study in which it has been applied to model and analyze resource usage of a temperature control system.
Virtualization is a promising solution to develop complex embedded systems with real-time requirements. This paper discusses the current state-of-the-art in virtualization technologies, with a particular focus on solutions for embedded real-time systems. Several such solutions have been developed over the past decade, and in this paper we give an overview of the more well known technologies and we provide a comparative assessment of key virtualization techniques available in these solutions. Gaps and lacking pieces are identified and further development and research is suggested.
In this paper, we introduce the model REMES for formal modeling and analysis of embedded resources such as storage,energy, communication, and computation. The model is a state-machine based behavioral language with support for hierarchical modeling, resource annotations, continuous time, and notions of explicit entry and exit points that make it suitable for component-based modeling of embedded systems.The analysis of REMES-based systems is centered around a weighted sum in which the variables represent the amounts of consumed resources. We describe a numberof important resource related analysis problems, including feasibility, trade-off, and optimal resource-utilization analysis.To formalize these problems and provide a basis for rigorous analysis, we show how to analyze REMES models using the framework of priced timed automata and weightedCTL. To illustrate the approach, we describe a case study inwhich it has been applied to model and analyze resource usageof a temperature control system.
In this paper we focus on design of a class of distributed embedded systems that primarily perform real-time controlling tasks. We propose a two-layer component model for design and development of such embedded systems with the aim of using component-based development for decreasing the complexity in design and providing a ground for analyzing them and predict their properties, such as resource consumption and timing behavior. The two-layer model is used to efficiently cope with different design paradigms on different abstraction levels. The model is illustrated by an example from the vehicular domain.
This paper addresses the challenge of designing embedded real-time systems in an uniformed view no matter what their targeted utilisation domain is. Although Component-Based Development is an acknowledged approach for developing non real-time and non embedded systems, it still struggles to emerge in embedded real-time domains. This is mainly due to an inability to have accepted definitions and standards well-suited with the highly constrained characteristics (timing requirements, memory size, CPU speed) of such domain. In leaning upon a model-based framework, this paper describes a work-in-progress which aims at getting a common definition of what real-time components are as well as having a common structure to specify and design them.
This technical report presents the formal semantics of the ProCom component model.
Multicore processors promise to improve the performance of systems, by integrating more and more cores onto a single chip. Existing software systems, such as control software from the automation domain, need adjustments to be adapted on multicores. To exploit the concurrency offered by multicore processors, appropriate algorithms have to be used to divide the control application software into tasks, and tailored task partitioning and scheduling approaches are required to increase the overall performance. In this paper we present a model-driven approach for automatic synthesis and deployment of control applications on multicore processors. The approach is centeredaround a system model, which describes the control applications, the multicore platform, as well as the mapping between the two. We apply the approach on a number of control applications out of which we synthesize tasks and present their run-time behavior in a real-time operating system.
Embedded systems are microprocessor-based systems that cover a large range of computer systems from ultra small computer-based devices to large systems monitoring and controlling complex processes. The particular constraints that must be met by embedded systems, such as timeliness, resource-use efficiency, short time-to-market and low cost, coupled with the increasing complexity of embedded system software, demand technologies and processes that will tackle these issues. An attractive approach to manage the software complexity, increase productivity, reduce time to market and decrease development costs, lies in the adoption of the component based software engineering (CBSE) paradigm. The specific characteristics of embedded systems lead to important design issues that need to be addressed by a component model. Consequently, a component model for development of embedded systems needs to systematically address extra-functional system properties. The component model should support predictable system development and as such guarantee absence or presence of certain properties. Formal methods can be a suitable solution to guarantee the correctness and reliability of software systems.
Following the CBSE spirit, in this thesis we introduce the ProCom component model for development of distributed embedded systems. ProCom is structured in two layers, in order to support both a high-level view of loosely coupled subsystems encapsulating complex functionality, and a low-level view of control loops with restricted functionality. These layers differ from each other in terms of execution model, communication style, synchronization etc., but also in kind of analysis which are suitable. To describe the internal behavior of a component, in a structured way, in this thesis we propose REsource Model for Embedded Systems (REMES) that describes both functional and extra-functional behavior of interacting embedded components. We also formalize the resource-wise properties of interest and show how to analyze such behavioral models against them.
Managing complexity is an increasing challenge in the development of embedded systems (ES). Some of the factors contributing to the increase in complexity are the growing complexity of hardware and software, and the increased pressure to deliver full-featured products with reduced time-to-market. An attractive approach to manage the software complexity, reduce time-to-market and decrease development costs lies in the adoption of component-based development that has been proven as a successful approach in other domains. Another raising challenge, due to complexity increase, in ES, is predictability, i.e., the ability to anticipate the behavior of a system at run-time. The particular predictability requirements of ES call for a development framework equipped with techniques and tools that can be applied to deal with requirements, such as timing, and resource utilization, already at early-stage of development. Modeling and formal analysis play increasingly important roles in achieving predictability, since they can help us to understand how systems function, validate the design and verify some important properties.
In this thesis, we present a resource-aware framework for designing predictable component-based ES. The proposed framework consists of (i) the formally specified ProCom component model that takes into account the characteristics of control-intensive ES, and (ii) the resource-aware timed behavioral language - REMES for modeling and reasoning about components’ and systems’ functional and extra-functional behavior that includes relevant resource types for ES, associated analysis techniques for various resource-wise properties, and a set of associated tools. To demonstrate the potential application of our framework, we present a number of case studies, out of which one is an industrial research prototype, where ProCom and REMES are applied.
Component-based development has shown to be a promising approach supporting reusability and managing complexity, but to date has not been extensively used for handling requirements from the embedded systems domain (real-time constraints, resource limitations, dependability, life-cycle properties, etc.). It is based on component models i.e., specification of components and their interaction. Most of the existing component models tailored for embedded systems only cover a small set of the embedded systems requirements. In our research we propose a two-layered component model - ProCom for design and development of embedded systems, and a modeling framework - REMES, for modeling of and reasoning about component- and system behavior, which includes relevant resource types for embedded systems.
Abstract—Programmable logic controllers (PLCs), as aspecialized type of embedded systems, have been introduced toincrease system flexibility and reliability, but at the same time togive faster response time and lower cost of implementation. Inthe beginning, their use brought a revolutionary change, but withthe constant growth of system complexity, it became harder toguarantee both functional and extra functional properties, asearly as possible in the development process. In this paper, weshow how formal methods can be applied to describe PLC-basedsystems and illustrate it on an example of a car wash system.First, we show how the existing behavioral modeling languageREMES (REsource Model for Embedded Systems) can beextended to model the behavior of such systems. Second, we showhow REMES can be translated into networks of timed automataand priced timed automata in order to support safety andresource-wise reasoning about PLC systems. The formalverification of PLC systems is carried out in the UPPAAL andUPPAAL CORA tools.
The conflicting requirements of real-time embedded systems, e.g. minimizing memory usage while still ensuring that all deadlines are met at run-time, require rigorous analysis of the system's resource consumption, starting at early design stages. In this paper, we glance through several representative frameworks that model and estimate resource usage of embedded systems, pointing out advantages and limitations. In the end, we describe our own view on how to model and carry out formal analysis of embedded resources, along with developing the system.
Embedded systems are challenging to design, due to the implementation platform constraints that have to be considered, preferably from early stages of design, next-by system functionality. Hence, embedded system models need to be timing and resource-aware, to make formal verification of extra functional properties applicable at high levels of abstraction. In most cases, a frequent obstacle to the successful application of such rigorous techniques is the lack of the proposed models'validation against real-world application measurements. In this paper, we show how to model extra-functional behavior, and verify the resulted behavioral models of a component-based Ericsson Nikola Tesla prototype telecommunications system. The models are described in our recently introduced REMES language, with Priced Timed Automata semantics that allows us to apply UPPAAL -based tools for model-checking the system'sresponse time and compute optimal resource usage traces. The validation of our models is ensured by using actual values of timing, CPU, and memory usage in our models, measured by Ericsson researchers on the prototype's source code. © 2011 IEEE.
When component-based development is applied in the domain of distributed embedded systems, where applications are often safety-critical and subject to real-time constraints, it is of significant importance that reliable predictions of functional and extra-functional properties can be derived at design-time. Preferably, analysis should be performed in early development phases, where the cost of modifying the design is lower. Centered on an example application from the automation domain, we show how a component model specifically intended for embedded systems can be combined with a language for high-level formal behavior modeling. This allows modeling the behavior of individual components, in terms of functionality, timing and resource usage. In turn, this permits analysis of system level properties, while also supporting reuse of behavioral models when components are reused.
When component-based development is applied to distributed embedded systems, which are often safety-critical and subject to real-time constraints, it is of significant importance that reliable predictions of functional and extrafunctional properties can be derived at design-time. Preferably, analysis should be performed in early development phases, where the cost of modifying the design is lower. Centered on an example application from the automation domain, we show how a component model specifically intended for embedded systems can be combined with a language for high-level formal behavior modeling. This permits analysis of system properties, while also supporting reuse of behavioral models when components are reused.
ProCom is a new component model for real-timeand embedded systems, targeting the domains of vehicularand telecommunication systems. In this paper, we describehow the architectural elements of the ProCom componentmodel have been given a formal semantics. The semantics isgiven in a small but powerful finite state machine formalism,with notions of urgency, timing, and priorities. By definingthe semantics in this way, we (i) provide a rigorous and compactdescription of the modeling elements of ProCom, (ii) setthe ground for formal analysis using other formalisms, and(iii) provide an intuitive and useful description for bothpractitioners and researchers. To illustrate the approach,we exemplify with a number of particularly interestingcases, ranging from ports and services to components andcomponent hierarchies.