A Model-Driven Engineering Framework for Component Models Interoperability⋆ Ivica Crnkovic1, Ivan... more A Model-Driven Engineering Framework for Component Models Interoperability⋆ Ivica Crnkovic1, Ivano Malavolta2, and Henry Muccini2 1 Mälardalen University, Mälardalen Real-Time Research Center 2 University of L'Aquila, Dipartimento di Informatica ivica. ...
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering - ASE '07, 2007
In a component-based development process the selection of components is an activity that takes pl... more In a component-based development process the selection of components is an activity that takes place over multiple lifecycle phases that span from requirement specifications through design to implementation-integration. Automated tool support for component selection would be very helpful in each phase. In this paper we introduce a framework that supports the selection of COTS components in the requirements phase. The framework lays on a tool that builds and solves an optimization model, whose solution provides the optimal COTS component selection. The selection criterion is based on cost minimization of the whole system while assuring a certain degree of satisfaction of the system requirements. The output of the model solution indicates the optimal combination of single COTS components and assemblies of COTS that satisfy the requirements while minimizing costs.
This paper addresses component-based approach for embedded systems. Due to the specific character... more This paper addresses component-based approach for embedded systems. Due to the specific characteristics of embedded systems the general-purpose component technologies such as COM, .NET, or EJB have not been the most appropriate choices for their development. Although attractive, component-based approach has not been successful in this domain as in other domains. However in recent years the interest for component-based approach in embedded systems increases. The experience has shown that existing technologies cannot be used, or at least used directly. On the other hand an increasing understanding of principles of component-based approach makes it possible to utilize these principles in implementation of different component-based models, more appropriate for embedded systems. This paper gives an overview of basic characteristics of embedded systems, their requirements and constraints, and the implications to component models for these systems.
883, 721 23 V € a aster a as, Sweden b Research and Development, ABB Automation Products AB, 721 ... more 883, 721 23 V € a aster a as, Sweden b Research and Development, ABB Automation Products AB, 721 59 V € a aster a as, Sweden
Journal of Computing and Information Technology, 2005
In recent years component-based development has in resent years become an established approach. C... more In recent years component-based development has in resent years become an established approach. Component-based Software Engineering (CBSE) that deals with the entire lifecycle of component-based products has been focused on technologies related to design and implementation of software components and systems built from software components. The experience has shown that pure technologies alone are not enough. A CBSE approach requires certain changes in development and life cycle processes. However very few CBSE works, either research or practical, have addressed these topics. This paper describes principle differences of component-based and noncomponent based processes. Also we an overview of a case study from a company that applies component-based approach.
Although attractive, CBD has not been widely adopted in domains of embedded systems. The main rea... more Although attractive, CBD has not been widely adopted in domains of embedded systems. The main reason is inability of these technologies to cope with the important concerns of embedded systems, such as resource constraints, real-time or dependability requirements. However an increasing understanding of principles of CBD makes it possible to utilize these principles in implementation of different component-based models more appropriate for embedded systems. The aim of this tutorial is to point to the opportunity of applying this approach for development and maintenance of embedded systems. The tutorial gives insights into basic principles of CBD, the main concerns and characteristics of embedded systems and possible directions of adaptation of component-based approach for these systems. Different types of embedded systems and approaches for applying CBD are presented and illustrated by examples from research and practices. Also, challenges and research directions of CBD for embedded systems are discussed.
More and more systems are developed using components. There is a move from monolithic to open and... more More and more systems are developed using components. There is a move from monolithic to open and flexible systems. In such systems, components are upgraded and introduced at run-time, which affects the configuration of the complete system. Keeping up-to-date information about which components are installed is a problem. Updating a component also affects the compatibility of the system. It is therefore important to keep track of changes introduced in the system. In the product life cycle, CM is traditionally focused on the development phase, in particular on managing source code. Now when changes are introduced in systems at run-time and systems are component-based, a new discipline, component configuration management is required. This paper analyses component management and highlights the problems related to component configuration. Requirements on component configuration management are outlined, and some directions to possible solutions of the problems are given.
Building software systems with reusable components brings many advantages. The development become... more Building software systems with reusable components brings many advantages. The development becomes more efficient, the reliability of the products is enhanced, and the maintenance requirement is significantly reduced. Designing, developing and maintaining components for reuse is, however, a very complex process which places high requirements not only for the component functionality and flexibility, but also for the development organization. In this paper we discuss the different levels of component reuse, and certain aspects of component development, such as component generality and efficiency, compatibility problems, the demands on development environment, maintenance, etc. The evolution of requirements for products generates new requirements for components, if components are not enough general and mature. This dynamism determines the component life cycle where the component first reaches its stability and later degenerates in an asset that is difficult to use, difficult to adapt and maintain. When reaching this stage, the component becomes an obstacle for efficient reuse and should be replaced. Questions related to use of standard and de-facto standard components are addressed specifically. As an illustration of reuse issues, we present a successful implementation of a component-based system which is widely used for industrial process control.
One of the basic problems when developing component-based systems is that it is difficult to keep... more One of the basic problems when developing component-based systems is that it is difficult to keep track of components and their interrelationships. This problem emerges already in the requirement phase, in which we want to identify and select the most appropriate components. Later, during the assembly and deployment process, or when upgrading components, the problem of components identification and dependency management becomes even more important. One way to maintain control over upgrades is to use component identification and dependency analysis. These are well known techniques for managing system configurations during development, but are rarely applied in managing run-time dependencies. Knowledge of the possible impacts of an update is important, since it can be used to limit the scope of testing and be a basis for evaluating the potential damage of the update. In this paper we analyse different types of dependencies and discuss how to identify and specify them, in analogy with Makefiles. The dependencies can be showed in a form of a dependency graph. The dependency graphs can also be used to facilitate maintenance by identifying differences between configurations, e.g., making it possible to recognise any deviations from a functioning reference configuration.
One of the main objectives of developing component-based software systems is to enable building s... more One of the main objectives of developing component-based software systems is to enable building systems by integration of components which are perceived as black boxes. While the construction part of the integration using component interfaces is a standard part of all component models, the prediction of the quality attributes of the component compositions is not fully developed. This decreases significantly the value of the component-based approach to building dependable systems. When it is not possible to predict the value of a particular attribute of a system on the basis of the specifications of the system components, the system must be subjected to other procedures, often costly, to determine this value empirically. However, all quality attributes do not have the same characteristics; nor is it possible to predict the behavior of all the properties of a composition from the properties of the components. This paper classifies different types of relations between the quality attributes of components and those of their compositions. The types of relations are classified according to the possibility of predicting the properties of compositions from the properties of the components and according to the impacts of other factors such as system environment or software architecture. Such a classification can indicate the efforts which would be required to predict the system attributes that are essential for system dependability and in this way, the feasibility of the component-based approach in developing dependable systems.
Predicting the behavior of a product before it is built has been a long time struggle, especially... more Predicting the behavior of a product before it is built has been a long time struggle, especially for software based systems. For building software systems there are few methods that comply with the engineering methods established from physics where properties of a construction can be determined before the actual assembly of a product. By taking the predictable assembly from certifiable components (PACC) approach our intention is to define methods to predict certain properties. We conclude that product line architectures that build on top of a component technology can be built in a much more controlled way if the component technology is prediction enabled. The aim of this position paper is to investigate how embedded product line architectures can utilize a prediction-enabled component technology to build products with known properties. We present a framework where we can reason about extra-functional properties in a uniformed way. We illustrate our approach by an example including the properties end-to-end deadline and version consistent.
Short development life cycles, the importance of timeto-market and fast changes in technology inf... more Short development life cycles, the importance of timeto-market and fast changes in technology influence the requirements engineering process. Requirements are exposed to changes during the entire development life cycle, and decisions related to requirements and system design are moving toward developers. For this reason it is important to keep requirement changes under control during the entire development process. This control can be achieved by utilizing Configuration Management (CM) functions and in particular Change Management.
This paper presents two distance courses aimed at promoting interdisciplinarity. The first one wa... more This paper presents two distance courses aimed at promoting interdisciplinarity. The first one was an internet-based distance undergraduate course in software engineering and management of software development projects for students of management and economy. The goal of the course was to bridge the gap between disciplines of economy (management) and software engineering, transfer knowledge and provide necessary technical background for future managers who very likely in their careers will take part in software intense projects. Both the interdisciplinarity and the advanced e-learning technology of this course made it challenging. The second was a specialized level Swedish National Course in Philosophy of Computing and Informatics for students of computing, philosophy and design, which was a combination of a campus-based and a distance course involving several Swedish universities, with a group of distinguished teachers from both Sweden and abroad. The critical challenge of this course was the establishing of a new inter-discipline and overarching the gaps between traditions of disciplinary thinking.
A Model-Driven Engineering Framework for Component Models Interoperability⋆ Ivica Crnkovic1, Ivan... more A Model-Driven Engineering Framework for Component Models Interoperability⋆ Ivica Crnkovic1, Ivano Malavolta2, and Henry Muccini2 1 Mälardalen University, Mälardalen Real-Time Research Center 2 University of L'Aquila, Dipartimento di Informatica ivica. ...
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering - ASE '07, 2007
In a component-based development process the selection of components is an activity that takes pl... more In a component-based development process the selection of components is an activity that takes place over multiple lifecycle phases that span from requirement specifications through design to implementation-integration. Automated tool support for component selection would be very helpful in each phase. In this paper we introduce a framework that supports the selection of COTS components in the requirements phase. The framework lays on a tool that builds and solves an optimization model, whose solution provides the optimal COTS component selection. The selection criterion is based on cost minimization of the whole system while assuring a certain degree of satisfaction of the system requirements. The output of the model solution indicates the optimal combination of single COTS components and assemblies of COTS that satisfy the requirements while minimizing costs.
This paper addresses component-based approach for embedded systems. Due to the specific character... more This paper addresses component-based approach for embedded systems. Due to the specific characteristics of embedded systems the general-purpose component technologies such as COM, .NET, or EJB have not been the most appropriate choices for their development. Although attractive, component-based approach has not been successful in this domain as in other domains. However in recent years the interest for component-based approach in embedded systems increases. The experience has shown that existing technologies cannot be used, or at least used directly. On the other hand an increasing understanding of principles of component-based approach makes it possible to utilize these principles in implementation of different component-based models, more appropriate for embedded systems. This paper gives an overview of basic characteristics of embedded systems, their requirements and constraints, and the implications to component models for these systems.
883, 721 23 V € a aster a as, Sweden b Research and Development, ABB Automation Products AB, 721 ... more 883, 721 23 V € a aster a as, Sweden b Research and Development, ABB Automation Products AB, 721 59 V € a aster a as, Sweden
Journal of Computing and Information Technology, 2005
In recent years component-based development has in resent years become an established approach. C... more In recent years component-based development has in resent years become an established approach. Component-based Software Engineering (CBSE) that deals with the entire lifecycle of component-based products has been focused on technologies related to design and implementation of software components and systems built from software components. The experience has shown that pure technologies alone are not enough. A CBSE approach requires certain changes in development and life cycle processes. However very few CBSE works, either research or practical, have addressed these topics. This paper describes principle differences of component-based and noncomponent based processes. Also we an overview of a case study from a company that applies component-based approach.
Although attractive, CBD has not been widely adopted in domains of embedded systems. The main rea... more Although attractive, CBD has not been widely adopted in domains of embedded systems. The main reason is inability of these technologies to cope with the important concerns of embedded systems, such as resource constraints, real-time or dependability requirements. However an increasing understanding of principles of CBD makes it possible to utilize these principles in implementation of different component-based models more appropriate for embedded systems. The aim of this tutorial is to point to the opportunity of applying this approach for development and maintenance of embedded systems. The tutorial gives insights into basic principles of CBD, the main concerns and characteristics of embedded systems and possible directions of adaptation of component-based approach for these systems. Different types of embedded systems and approaches for applying CBD are presented and illustrated by examples from research and practices. Also, challenges and research directions of CBD for embedded systems are discussed.
More and more systems are developed using components. There is a move from monolithic to open and... more More and more systems are developed using components. There is a move from monolithic to open and flexible systems. In such systems, components are upgraded and introduced at run-time, which affects the configuration of the complete system. Keeping up-to-date information about which components are installed is a problem. Updating a component also affects the compatibility of the system. It is therefore important to keep track of changes introduced in the system. In the product life cycle, CM is traditionally focused on the development phase, in particular on managing source code. Now when changes are introduced in systems at run-time and systems are component-based, a new discipline, component configuration management is required. This paper analyses component management and highlights the problems related to component configuration. Requirements on component configuration management are outlined, and some directions to possible solutions of the problems are given.
Building software systems with reusable components brings many advantages. The development become... more Building software systems with reusable components brings many advantages. The development becomes more efficient, the reliability of the products is enhanced, and the maintenance requirement is significantly reduced. Designing, developing and maintaining components for reuse is, however, a very complex process which places high requirements not only for the component functionality and flexibility, but also for the development organization. In this paper we discuss the different levels of component reuse, and certain aspects of component development, such as component generality and efficiency, compatibility problems, the demands on development environment, maintenance, etc. The evolution of requirements for products generates new requirements for components, if components are not enough general and mature. This dynamism determines the component life cycle where the component first reaches its stability and later degenerates in an asset that is difficult to use, difficult to adapt and maintain. When reaching this stage, the component becomes an obstacle for efficient reuse and should be replaced. Questions related to use of standard and de-facto standard components are addressed specifically. As an illustration of reuse issues, we present a successful implementation of a component-based system which is widely used for industrial process control.
One of the basic problems when developing component-based systems is that it is difficult to keep... more One of the basic problems when developing component-based systems is that it is difficult to keep track of components and their interrelationships. This problem emerges already in the requirement phase, in which we want to identify and select the most appropriate components. Later, during the assembly and deployment process, or when upgrading components, the problem of components identification and dependency management becomes even more important. One way to maintain control over upgrades is to use component identification and dependency analysis. These are well known techniques for managing system configurations during development, but are rarely applied in managing run-time dependencies. Knowledge of the possible impacts of an update is important, since it can be used to limit the scope of testing and be a basis for evaluating the potential damage of the update. In this paper we analyse different types of dependencies and discuss how to identify and specify them, in analogy with Makefiles. The dependencies can be showed in a form of a dependency graph. The dependency graphs can also be used to facilitate maintenance by identifying differences between configurations, e.g., making it possible to recognise any deviations from a functioning reference configuration.
One of the main objectives of developing component-based software systems is to enable building s... more One of the main objectives of developing component-based software systems is to enable building systems by integration of components which are perceived as black boxes. While the construction part of the integration using component interfaces is a standard part of all component models, the prediction of the quality attributes of the component compositions is not fully developed. This decreases significantly the value of the component-based approach to building dependable systems. When it is not possible to predict the value of a particular attribute of a system on the basis of the specifications of the system components, the system must be subjected to other procedures, often costly, to determine this value empirically. However, all quality attributes do not have the same characteristics; nor is it possible to predict the behavior of all the properties of a composition from the properties of the components. This paper classifies different types of relations between the quality attributes of components and those of their compositions. The types of relations are classified according to the possibility of predicting the properties of compositions from the properties of the components and according to the impacts of other factors such as system environment or software architecture. Such a classification can indicate the efforts which would be required to predict the system attributes that are essential for system dependability and in this way, the feasibility of the component-based approach in developing dependable systems.
Predicting the behavior of a product before it is built has been a long time struggle, especially... more Predicting the behavior of a product before it is built has been a long time struggle, especially for software based systems. For building software systems there are few methods that comply with the engineering methods established from physics where properties of a construction can be determined before the actual assembly of a product. By taking the predictable assembly from certifiable components (PACC) approach our intention is to define methods to predict certain properties. We conclude that product line architectures that build on top of a component technology can be built in a much more controlled way if the component technology is prediction enabled. The aim of this position paper is to investigate how embedded product line architectures can utilize a prediction-enabled component technology to build products with known properties. We present a framework where we can reason about extra-functional properties in a uniformed way. We illustrate our approach by an example including the properties end-to-end deadline and version consistent.
Short development life cycles, the importance of timeto-market and fast changes in technology inf... more Short development life cycles, the importance of timeto-market and fast changes in technology influence the requirements engineering process. Requirements are exposed to changes during the entire development life cycle, and decisions related to requirements and system design are moving toward developers. For this reason it is important to keep requirement changes under control during the entire development process. This control can be achieved by utilizing Configuration Management (CM) functions and in particular Change Management.
This paper presents two distance courses aimed at promoting interdisciplinarity. The first one wa... more This paper presents two distance courses aimed at promoting interdisciplinarity. The first one was an internet-based distance undergraduate course in software engineering and management of software development projects for students of management and economy. The goal of the course was to bridge the gap between disciplines of economy (management) and software engineering, transfer knowledge and provide necessary technical background for future managers who very likely in their careers will take part in software intense projects. Both the interdisciplinarity and the advanced e-learning technology of this course made it challenging. The second was a specialized level Swedish National Course in Philosophy of Computing and Informatics for students of computing, philosophy and design, which was a combination of a campus-based and a distance course involving several Swedish universities, with a group of distinguished teachers from both Sweden and abroad. The critical challenge of this course was the establishing of a new inter-discipline and overarching the gaps between traditions of disciplinary thinking.
Uploads
Papers by Ivica Crnkovic