Software is playing a growing role in the fate of the modern enterprise, even outside of technology-centric organizations. Industries like manufacturing, automotive and consumer products are starting to struggle with the growing technical debt incurred by ad hoc software development. Modeling techniques promise to help business managers running these companies make sense of their existing service-oriented architecture systems. Unfortunately, this type of analysis is being done as an afterthought -- if at all.
"Modeling is like a dirty word in Silicon Valley," said Mike Milinkovich, executive director of the Eclipse Foundation at the EclipseCon Conference in San Francisco. "Once you get outside the Bay area, modeling is stuff that happens elsewhere."
Keeping up with complexity
It is a huge part of the eclipse community, and the Eclipse Modeling Framework (EMF) is leveraged by many Eclipse software projects. This technology is being used to guide the development of embedded systems software that is used to control and ensure safety in cars, airplanes and consumer electronics. Better modeling tools are also being used by business managers to understand the technology underneath their business systems and to ensure regulatory compliance regarding medical information and financial transactions.
Part of the problem might just be that business managers might not recognize the importance of software in the modern enterprise. But the amount of software being baked into modern systems is growing exponentially. For example, Milinkovich pointed out that the amount of software in new Airbus airplanes has grown about 10,000-fold in three years.
As the amount of software grows, traditional processes for managing business specifications and transforming them into code can break catastrophically. "These are companies that don't think about software as a core competency," Milinkovich explained. "There is a bad thing that happens when software hits 100 million lines of code."
Reduce manual coding
Many organizations are turning to modeling tools like EMF to automate many of the boring coding tasks associated with developing large software systems. For example, Régent L'Archevêque, lead software engineer with the Canadian Space Agency, has been using EMF since 2004 to improve the development, speed and quality for robotic rovers and their control systems for space missions. He said that using this kind of framework eliminates about 80% of the manual coding in new projects.
Furthermore, the quality of the code base can improve over time. The open source and community-oriented nature of EMF allows L'Archevêque's software architecture to leverage the bug fixes and performance enhancements committed by other EMF developers in the software community.
Bringing EMF to the enterprise
Generating code is not so much the main focus of modeling, said Eike Stepper, CEO of ES - Computersysteme, a software consultancy in Germany, and leader of the CDO Model Repository Project for the Eclipse Foundation. It is more about the long-term preservation of knowledge. For example, Stepper has been working with one large Swiss banking institution to create tools for understanding their complex software.
In the wake of the financial crisis and the new regulations that resulted from it, the bank was having difficulties in understanding how its underlying technology related to its business processes. It needed to find a way to enforce architectural rules to ensure compliance. They also needed to make it easy to shed unprofitable businesses and the SOA services that supported these without impacting other business units or customers.
So the bank turned to EMF to help automatically generate models of these systems. However, the underlying service architecture was incredibly complex, spanning legacy Common Business-Oriented Language (COBOL) applications, various middleware technologies and front-end applications. They developed special tools for parsing the applications and database schemas used by the bank to automatically generate new models of how the pieces fit together on a regular basis.
Scaling the models
This kind of approach allowed them to quickly determine whether existing software violated architectural and new regulatory rules. For example back-end COBOL applications were only supposed to talk to other back-end applications through the services framework. But many developers had simply coded direct connections between them, which resulted in architectural rules violations. The automated scans made it easier to see where these violations occurred and to detect new applications that violated the rules.
As a result, the EMF models for making sense of these systems quickly grew beyond 30 GB.
Such large-scale models were difficult to manage with a basic EMF framework, so they turned to work being carried out by the CDO project for shared EMF models to help scale. This made it easier to allow shared access, collaboration, better security and controls, auditing of changes in the underlying services, and improved performance.
Steppe noted that modeling is widely used in Europe, but not so common in the U.S. In the U.S., there is a tendency to get things out quickly, rather than spending a lot of time to do it right. In Europe, you get it out when it's done right. Before you invest in the expense of coding, you need to create models of the things you plan to implement.