No CODE that is More Flexible than "NO Code"
Date: Sunday , August 15, 2010
Higher wage cost, euro zone worries, currency fluctuations and fears of a double dip are posing more challenges to the already beleaguered IT companies to drive value to its customers as their margins are eroding. The cost base in India is increasing and the attrition levels have also increased. Business is becoming more challenging and most organizations are looking at innovative methods to run the floor in order to deliver value.
The uncertainty and fears may be rising, but there is prospect of bring back the old shine. The organizations find comfort in following what they were doing for long to build software, but in the changing scenario, it will be difficult to ensure business success unless organizations become more agile to adopt new methods to build software that will eventually address the people and cost factor associated with it.
There is No CODE that is More Flexible than NO Code. Each time you increase the amount of code by adding more programmers, your software grows exponentially more complicated. It also adds more overheads in terms of proportionate quality assurance, HR and so on. At Nous we are very proactive in investing more Time & Money on identifying new methods to write applications that help us in achieving high quality code quickly and help customers lower project cost and time to market. With unique combination of SDLC Boosters based on MDA (Metadata-driven architecture) and TSPC (Technical Statistical Process Control) companies would be able to reduce the overall project effort and improve productivity by 40 percent in building Business Applications.
Moving to a Metadata-driven development means that an organization will probably be implementing significant changes to their software development practices. But it’s worth the effort. One of the daunting issues of traditional practices is about more of programming and less of designing. A fully Metadata-driven approach means that the output of analysis and design goes straight into the software and there is not much code written. Therefore moving to a Metadata-driven approach can provide a major benefit in terms of software quality and speed of delivery to customers.
The Metadata-driven approach defines system functionality using a platform-independent model (PIM) using an appropriate DSL (Domain-specific language) tool. The PIM is then translated in to one or more platform-specific models (PSMs) like .NET or JAVA using the mappings and transformations defined.
For example a business analyst may create a DSL based initial model from requirement specification or user interactions and the derived Java model may be automatically created by Model transformation operation. This ensures increased involvement of business aware people in the software development process and ultimately leads to applications that meet end user requirements. The figure-1 depicts different aspect involved in a Metadata-driven approach.
The result is interesting. When traditional model dedicates 40 percent time for programming and another 20 percent for Q.A, Metadata-driven approach demands only 20 percent in programming and the team spends more time on design and analysis. With DSL authoring tools, almost all the layers could be authored. (Typical UML tools only generate code from static class structure). Our experience a typical web application requires customization only in the services and UI layer and majority of the other code base could be generated through transforming the Metadata and defining the business rule using the Rule engine. Another aspect of MDA is about “Template based code generators”. The better the templates are, the better the output code is. Programming template is a onetime task and becomes instrumental in producing the overall code base. Also it is possible to control the consistency of the code through template definitions thus saving time in code reviews and other control measures.
When thinking about executing models, most people inherently think about two options. One is code generation and another interpretation. At Nous, we tend to prefer code generation since it is much simpler than interpretation and it is more testable and resulting code can be inspected. Whereas an interpreter is a (meta-) program that reads the model and executes code (algorithms, UI rendering) as it queries or traverses the model. Interpreters create a dependency on a third party library to be deployed along the application.
A full blown Metadata-driven development is no more complicated. Microsoft, which has heavily invested in the past in modeling architecture with BizTalk, Software Factories and VSX Tools. Now they have joined OMG (Object Management Group) to build generic common standards that can help in defining Metadata formats and DSLs. OMG and Microsoft providing standards and tools to work with MDA has made things simpler.
Sculpture is one such comprehensive tool based on DSL concepts. It is a free open source DSL tool, very much extensible and provides impressive 40 percent code generation for business applications. Sculpture is one of the most powerful DSL based tool and integrate well with Visual Studio IDE. Sculpture comes with a list of ready-made Molds for common architectures like NHibernate, Entity Framework, WCF, CSLA, Silverlight, WPF, and ASP.NET MVC. It can be used for everything from simple CRUD applications to complex enterprise applications and very much integrated to the development environment.
With the changing business scenario, the usage of Domain Specific Language in the solution specification makes great sense. We foresee the industry adopting DSL in driving quicker and better value to customers. DSL’s are poised to take on many of the challenges we have today, including the frequent requirement changes. Requirement changes usually come via the problem domain not the implementation domain, so making such changes in a modeling language that uses domain terms is easier.
In addition, non-programmers can make complete specifications – and run generators to produce the code. In future, programmers need to remodel themselves to adapt to the changing software development environment.
The author is President & CEO, Nous Infosystems |