Software for networked systems is usually not written all at once, but is built incrementally, due to several reasons:
Changes are done frequently during the lifetime of most systems and can introduce software errors that were not present in the old version, or expose errors that were present before but did not get exercised. In addition, upgrades are done gradually, so the old and new versions have to co-exist in the same system. PINCETTE focuses on networked systems that have high reliability requirements. In these systems, the correctness of the system has to be re-validated after any upgrade or change.
Currently, error detection relies on the execution of extensive test suites, which is very time consuming, and thus, expensive; fault localization is mainly manual and driven by experts’ knowledge of the system; fault fixing often introduces new faults that are hard to detect and remove. Moreover, upgrading one node in a networked system is extremely risky, as it can potentially cause a crash in the whole system. In addition, the cost of this validation dominates the maintenance costs of the software (it has been estimated that the cost of change control can be between 40% and 70% of the life cycle costs [GT05]).
As a consequence, project managers are often reluctant to authorize new features or even bug fixes.
"Upgrading a networked system is akin to upgrading software of a car while the car's engine is running, and the car is moving on a highway. Unfortunately, in networked systems we don't have the option of shutting the whole system down while we upgrade and verify a part of it."
The goal of PINCETTE is to increase the competitiveness of the European ICT industry by reducing the costs of failure detection and fault removal during software changes, thus improving the reliability of networked software systems, which have become the backbone of the core business of many European industries. In doing so, PINCETTE will address Strategic Objective ICT-2009.1.4 (c) (Technology and Tools for Trustworthy ICT). PINCETTE will provide advanced capabilities in the engineering and management of software systems, services and applications, enabling the design and verification of complex evolving networked systems.