What should we do with our legacy, classical information systems?
In the coming years, companies will progressively need to add quantum computing to some or all of their daily operations. It is clear that all existing, classical information systems cannot be thrown away. Instead of this, it is expected to add some quantum algorithms working embedded in classical information systems. So far, there is not a systematic solution to deal with this challenge. Thus, this talk suggests a software modernization approach (model-driven reengineering) for restructuring classical systems together with existing or new quantum algorithms to provide target systems combining both computational paradigms.
Classical Systems Reengineering
Despite the fact that legacy information systems may be obsolete, this kind of system usually has a critical mission within the company and represents a valuable asset for companies, since legacy systems embed a lot of business logic and business rules that are not present elsewhere. As a result, in spite of the upcoming quantum revolution, the companies cannot discard their legacy information systems.
Reengineering has been a successful practice in the software industry. It consists of three phases: reverse engineering, restructuring and forward engineering. More than half of the traditional reengineering projects fail because of the lack of standardization and automation. Those are the most critical challenges. First, standardization constitutes a problem since the reengineering projects have been typically carried out in an ad hoc manner, without a well-proven, mature process. In reengineering projects, the source code cannot be the only software asset that the standardization covers, since the code does not contain all the knowledge that is needed. Reengineering must be formalized to ensure an integrated management of all of the other possible knowledge apart from source code, e.g., data, user interfaces, business rules, and so on. Secondly, automation is also a very important problem. In order to prevent failure in large complex legacy systems, the reengineering process must be more mature and repeatable.
Reengineering of, and toward, Quantum Systems
Apart from differences between quantum and classical software, new software systems will probably integrate classic and quantum computation, since all kind of problems are not suitable to be addressed from a pure quantum point of view. Instead of this, future software will include some pieces of code in classical programming languages that perform calls to quantum algorithm that are executed in quantum computers. Software modernization and reengineering practices must be brought into the domain of Quantum Computing. Thus, reengineering has to be revisited to deal with the problems associated with the expected projects of Quantum Computing migrations and the next coexistence of classical and quantum software.
If quantum software is already a key concern, the software engineering field for Quantum Computing will become even more critical in the near future. Among these concerns, software modernization will gain certain relevance since new hybrid systems will considers problems like migrating software, integrating quantum algorithm into classical systems, preserving knowledge on reengineering, and so forth. The usage of well-known standards in the area of software engineering can help to bring those best practices and methods to the new Quantum Software Engineering field. For example, standards like KDM (Knowledge Discovery Metamodel) or UML (Unified Modelling Language) may help in software modernization process by abstracting knowledge and contributing to systematic model-driven reengineering processes. Thus, the previous knowledge and business rules are preserved, and the impact of the integration of quantum programs may be reduced..