Nowadays, the development of complex computing devices involves a substantial and growing part of software development. A great challenge for engineers is to manage the evolution of a system with several components in the face of mounting complexity due to concurrent hardware and software development. The key limitations of existing change management tools used for the design process of complex computing systems include their inadequacy in representing semantics of design models and inability to manage changes to both hardware designs and associated software components in a cohesive manner. Thus, it is difficult to track the logical interdependencies between the changes to hardware and software components in an embedded computing system over time.
This paper presents EmVC, a configuration management system for a hardware software co-design process. EmVC is an illustration of our application of a well-known software engineering approach to the management of embedded systems design artifacts. Our novel component-based change management mechanism is capable of capturing and versioning the underlying logical contents of components in system design models and their associated software artifacts in a cohesive manner.