– MDD (Model Driven Development) –
Even those of us who didn’t major in computer science probably know about programming languages. If you haven’t heard of programming languages, you’ve still probably heard the terms C++ or Java in passing. Programming languages are designed to drive computer systems. Languages for managing program data and commands are an essential factor in programming. But recently there is talk of ways to program without languages. This may be hard for those familiar with programming to understand. Let’s take a look at this new development.
Communication Tool, Programming Language
My first opportunity to learn programming was in ‘PC Communications’ in high school. The ability to communicate with people from long distances through the Internet was fascinating to me. PC communications soon became a hobby and introduced me to the world. Once in university, I also managed a BBS program on the schools UNIX server. At this time, I was using my first programming language, ‘C.”
At my first interview after graduation, I was asked what the difference is between the languages I majored in and programming languages. My answer was, ‘human languages are for communication between people and programming languages are for communication between people and machines.’ But can the same still be said to be true for the most current programming languages? The picture below was captures from the Movie ‘Her’ (2013).
In this movie the main character verbally communicates with a futuristic OS (Operating System). The protagonist eventually starts feel love towards the OS because of the sharp intelligence of the OS and its ability to speak like a human. If technology develops in this manner in the future, will we be no longer needed programming languages?
In 2013, LG CNS introduced ‘Model-Driven Development’ to Korea’s Jeonbuk Bank next generation system, which does not require programming language. But how can a person program without using programming language? Let’s take a closer look at Model-Driven Development and its implementations.
The Evolution from Code to Model
In 1957, the first programming language was developed, which was similar to human language. Other programming languages such as COBOL, C, Java and others soon followed. Someone once said that the history of programming language is ‘an abstract painting.’ The basis of programming language is to take the complex and difficult machines and make them easy to handle.
JAVA is the most developed of the languages and is what most people use. It has become an object-oriented language. With JAVA, people can easily code and make programs. Complicated process such as memory, pointers etc. used in older languages has been automated with JAVA. However there are lots of issues with maintenance when using this type of code. For example, let’s suppose a developer has written over 1,000 lines of code using their own method. In this case, if the programmer spends lots of time coding with annotations, the content of the code will be very difficult to understand. Even for the programmer that wrote the code. If another person sees the code, they will not understand it at all. It is impossible for everyone to use this style of coding. So, developers are starting to use models to standardize codes and designs.
The image above is an abstract blueprint of a programming language model. It is a schematic of various figures and symbols. This model also shows the implementation of a UML (Unified Modeling Language). This modeling ideology allows for more independence and usability in the technology environment. Using this type of modeling is also much more intuitive when compared to looking at complex source code. This method improves communication between the developer and the customer. This modeling system for programming source code is known as model driven development.
Model Driven Development Method
Let’s take a closer look at the MDD (Model Driven Development) method. In 2002, I had my first experience with MDD using JAVA. When constructing a model in the ‘Rational Rose’ modeling tool, JAVA automatically completes incomplete templates with JAVA source code with a standardized template. This source code fills in detailed contents to complete a program. While using this method with JAVA, I was also able to create C++ source code at the same time with one model. Finally, I had both a JAVA and a C++ version of the solution. This type of support is called MDA (Model Drivel Architecture). A group called OMG (Object Management Group) enacted the standard MDA specs in 2001. OMG is a nonprofit group that standardizes this type of technology.
MDA is using UML notations for software design modeling and modifying that model and source code to define a standard technology to automatically create programs. MDD technology and tools will continue to be used for development but people are turning away from this technology for various reasons. One of those reasons is that when only a portion of the source code is created through modeling, the model and the final source code do not coincide. So, during the development process when modifications are made, if the design is changed, any work that affects the model must be carried out separately. Also, since the complete design logic is not included in the model, people lose faith that model will be complete when they want to use it again. For this reason, model developing became widespread among developers over time, but the disadvantages of it outweighed the advantages as a result.
LG CNS MDD(Model Driven Development)
LG CNS began performing MDD research in 2003. Soon after, LG CNS developed DevonMDA, which allows you to automatically create JAVA source code through IBM’s RSA modeling tool. This tool implements a model different from previous model types and allows you to create complete source code. DevonMDA allows a developer to develop code by only constructing a model with no additional coding process. This process creates 100% complete source code from a basic model as opposed to the 20-30%, which was the previous standard for modeling.
Is programming without knowing programming language possible? When I first learned MDD, I couldn’t help but have doubts. I always thought that customer requests were too particular and there were too many variables to even for just one portion of a project. MDD has made it possible for many people get involved in the programming process but LG CNS opened Korea’s first MDD project with Korea’s Jeon Buk Bank next generation system. With this system, you can really see MDD at work.
We have now taken a look at what MDD is. Next time we will look closer at how LG CNS has implemented MDD in real life.
Written by Kyoung-hee Jeong, LG CNS Finance Solution Team