Today, many products, e.g. a car, an aircraft, and a microwave own, are being developed by means of different technologies based on both hardware and software. Although, many of these products, function as one monolithic entity, are complex since they consist of thousands of parts and components. Two things are crucial for the proper functioning of a product: management of its complexity and the provision of support during its entire life. The more complex the product is, the more complex are the procedures for its development and support during its life. The fact is, that practically all products include software. The consequence is, that there is no pure hardware development; even the companies that develop hardware products must consider development of software. Consequently, for their development there is a need for a support for hardware and software development.
Traditionally, hardware development has been separated from software development. The development processes have been separated and different tools have been used to support these processes. Software development has been clearly separated from development of hardware parts and they have not been integrated before the start of system verification. Today this border between hardware and software begins to vanish. The final product is a result of tight integration of hardware and software components and the decision whether a specific function should be implemented in hardware or software may come late in the project and may even change during the products life cycle. When the border become vague it is no longer possible to keep the development organizations separated and to use different life cycle processes, but they should be integrated. However, the requirements for such integration points out a number of problems: process adjustments, information exchange, access and flow, infrastructure support, tool integration, cultural differences, etc. To integrate the processes and the tools have been difficult problems and challenges for many companies .
A lot of documentation is produced when a product is developed. Traditionally, text documents and drawings have been archived on paper. It was often a cumbersome task to find a drawing, and even difficult to tell if the drawing was the most recent issue or not. As computer technology has evolved, more and more product data has been created in digital form, making it possible to store documents in databases easily accessible by everyone. Together with documents metadata such as information about when the document was created, who created it, when last change was done was stored. Computer systems managing product data are called Product Data Management (PDM) systems. PDM is an engineering discipline including different methods, standards, and tools. It (i) manages the data related to products, (ii) supports procedures during the product lifecycle, and (iii) deals with the development and production infrastructure ,,, . Traditionally PDM deals with hardware components only.
The software development phase is characterized by collaboration and coordination of many developers. Software Configuration Management (SCM) manages this type of complexity. The scope of SCM is to (i) keep track of all the files and modules constituting the product, (ii) manage all the changes made to these items during their entire life, and (iii) manages all documentation related to the product , , , , . The Software Engineering area covers also the sub-discipline SCM [25, 26, 27]. SCM is a part of the entire life cycle and is a very broad area with respect to the means of how to achieve its goals, including everything from methods and processes to file access. SCM has been considered more and more important due to several reasons. One reason is the influence of the well-known SEI Capability Maturity Model (CMM) , which has pointed out SCM as an important key process to achieve level 2 out of 5 levels. Another fact is that software is becoming larger and more complex and needs the support from SCM, especially in the situation where shorter time-to-market requires incremental and concurrent development with geographically dispersed developers with increasing demand on SCM .
On the system level, where hardware and software components are integrated, the goal is to control the product development process for the entire product ,. To effectively manage a complex system on the system level, adjustments of all included processes are needed ,. Several roles, such as Project Manager, System Engineers, Integration and verification team, and Configuration Mangers, are all demanding to follow up the product’s development on a system level.
Some years ago, we have been working on a technical integration between the PDM system Metaphase (recently name changed to Teamcenter) and the SCM system ClearCase. This work was done for the Corporate IT organization at Ericsson AB . Many fruitful observations and lessons learned came out of this work . Main reasons for not being successful in the integration were focus on tools and technology only.