Since JAVA was introduced in the early 2000s, many financial companies have been changing their programming language from COBOL or C to JAVA. Now this new JAVA based system is also being implemented in the banking industry. It may not be easy for developers or maintenance managers to toss out the language they’re familiar with and adopt a new one as they’re supposed to, but last September, Jeonbuk Bank in Korea successfully developed and opened their new system using JAVA. The reason why this project inspires many people is because only 15% of the developers working on this JAVA system development project had worked with JAVA in the past. What made the new JAVA system possible, especially in such a short period of time despite the lack of infrastructure was MDA (Model-driven Architecture) and MDD (Model-driven Development).
MDA is a structure that generates source codes and documents from models which have the business processes and rules, and MDD is a development/methodology for software with MDA technology. By adopting MDD, thus, a developer can get the automatically generated source code through the software model, instead of coding it on their own using programming language. MDD can be divided into three levels based on its advancement. One can do modeling using modeling tools in the first level, generate partial source code from a model in the second level, and at last, generate 100% complete source code in the third level. MDD has been used before in Korea, but Jeonbuk Bank was the first to come up with the system where the highest level of MDD was applied.
According to Forrester Research, a Market research agency, 80% of the companies that applied MDD were still using the first level, 10-20% in the second, and only 10% or less was in the third. Gartner, an American technology research and consulting company, calls the application development approach that can be categorized in the third level AMD (Architected Model-driven Development). Regardless of country, moving on to the AMD has been known to be very difficult as we see from modeling technology, DSL (Domain-specific Language), and conversion technology development. In this terrain, LG CNS has accumulated technology through the process for its own financial solution development, and proved its capability in the project for Jeonbuk Bank’s next-generation system.
Then what are the advantages you can get with MDD? I’d like to mention four of them.
First, developers and maintenance managers can focus on the business instead of technology. Three years ago when LG CNS developed a life insurance solution, even though the developers were specialized in the insurance business, they knew nothing about JAVA. In order to get through this problem, they adopted MDD and thanks to this, they could generate the source code from a business model without the source coding process. As the technology advanced over the last 3 years, the next-generation system at Jeonbuk Bank could apply MDD for their entire system. The day in which you can construct a banking system using JAVA language without any knowledge of JAVA has finally arrived. Although there are remaining technological difficulties, what MDA aims for is platform-independence, like being able to generate C, COBOL, and JAVA from just one model.
Second, you can secure the visibility of the program components. No matter what language they use, it is difficult to figure out what it does without a detailed annotation when you see a program for the first time. Sometimes you cannot be sure if the annotation is accurate even if it seems detailed. In these cases, all you can do is follow the function operation within the program from the beginning. However, with MDD, you can see the program intuitively with a sequence diagram. Also, for easier communication, you can verify variables based on meta language instead of using different terms such as function operation, variable identifier, and data transfer objects all at the same time. Thus, not only it is possible to figure out the program easily, but it also becomes easier to communicate because people with less knowledge can understand the program.
Third, design/coding/test process can become automated with consistency and continuity. In other words, because the source code is generated automatically from the design instead of having to do the designing in documents or modeling tools and source coding separately, there is no chance of discordance between the design and coding. As a result, there aren’t any errors in the process of coding the design and the expenses for communication decrease as well. In addition to that, you can generate standardized design documents from your design model and you don’t have to make any separate documents in order to prevent changes in design and code. It is also notable that unit tests can be done without any monitor after the automatic source code generation.
Lastly, the quality of the source code improves through MDD. According to the existing methods, codes could be very different according to the capability and the preference of the developer. MDD, however, can generate source code based on the standardized terms and coding styles and guarantee the quality of the code.
It is expected that MDD will be adopted for many projects working on next-generation systems in the financial world. Reflecting this trend, the industry is closely observing to see if MDD will change the existing approach to financial systems. Now we can also think about if MDD will be adopted not only in finance, which has a package solution, but also in communication and service industries with their own separate systems.
I expect more financial companies to apply MDD in order to improve maintenance productivity and quality, and to focus on their own business specialties rather than the technology itself.
Written by Ja-Won Ku, Chief of LG CNS Finance/Communication Sector