Thursday, August 2, 2007

Microsoft Moves Ahead with Software Modeling

With the goal of generating applications from simple models an elusive goal, Microsoft and others are working on technology to make it a reality.

Some say the possibility of delivering applications from models exists today in the form of the UML (Unified Modeling Language) and MDA (Model-Driven Architecture). But the use of tools supporting these technologies typically require serious expert involvement, some observers say.

Richard Mark Soley, chief executive of the Object Management Group, located in Needham, Mass., which oversees many of the modeling specifications such as UML and MDA, said developing applications via modeling is entirely feasible.

"The answer is absolutely, yes—software (and hardware) has already been generated from UML models. And other modeling languages also (MDA includes several, including UML, MOF [MetaObject Facility], BPMN [Business Process Modeling Notation] [and] SysML [Systems Modeling Language]) can be used to generate applications from models."

Grady Booch, chief scientist at IBM's Rational business unit and the co-creator of the UML, likes to cite the usage of the technology in various instances. In fact, one of Booch's more salient examples of the prevalence of the use of UML is a reference to the technology on an episode of the CBS television series "NUMB3RS," which involves a math genius who helps the FBI.

PointerClick here to read how BigLever's Gears Software Product Line tool helps developers take a factory approach to building software.

The genius sites a UML model as key to delivering an application that helps to solve a case. Indeed, Booch showed a clip of the show at the IBM Rational Software Development Conference in June.

However, Microsoft sees UML and its ilk as too hard and too heavy a process, and is working on delivering its own modeling technology.

S. "Soma" Somasegar, corporate vice president of Microsoft's Developer Division, said Microsoft has some incubation projects that focus on modeling. He expects to see fruit from those projects in the next six to 12 months, he said.

Somasegar said the modeling effort has been a pet project of Microsoft chairman Bill Gates. The company has put some of its best developers on the effort, including Don Box and Chris Anderson, who helped build the company's Microsoft Windows Communication Foundation, a key pillar of the .Net Framework 3.0.

Indeed, Box has referred to himself as Microsoft's chief modeling officer. On the notion of creating applications from models, Somasegar said, "We've had aspirations in this company for a long time. We've had aspirations saying, using business process modeling, we should be able to lay down a set of models and people have to deal with the models and, if they define the models right, then the applications pop out. So you really don't need to write code."

However, "That's really one extreme view of looking at it," Somasegar said. In certain domains, "we will be able to do that sooner than later," he added. "But I foresee people writing code for a long, long time, particularly in building business applications." But Microsoft has long talked about raising the abstraction level.

"What you had to write five to 10 years ago in terms of the number of lines of code for a particular application, today I am sure it is orders of magnitude less," Somasegar said. "We've abstracted, we've got frameworks, we've got controls, we've got this, and we've got that. And to me, modeling has taken the abstraction to a whole new level."

Somasegar would not go into specific detail on how Microsoft is approaching the issue of simplifying the model-driven development process. In general, though he said: "If you can have a central repository of models or a common way of working against models...then you can do a lot."

In short, Somasegar said Microsoft's developers believe "the platform has advanced enough and the tools have advanced enough, that we feel like we have an opportunity to go make some big steps forward in the model-driven development world. So we have a set of incubations going on and Don Box is one of the key guys, along with some others, who are working on this."

And Somasegar said he hopes to be able to display some early prototypes of what Microsoft has been working on within the next year.

In the meantime, Microsoft has been working on its Software Factories approach to enabling the generation of software for specific uses by following a factory-like approach. This is the company's implementation of the software product line method of development. IBM also has similar capabilities. The goal of all these approaches is to drastically increase productivity and promote more reuse of software components and models.

Modeling is not new, but the overall technology has never reached mass scale in terms of ease-of-use and flexibility. Some early attempts at modeling included the so-called CASE (Computer-Aided Software Engineering) tools and others.

"Modeling has existed for many years in fact," said Mark Driver, an analyst with Gartner Inc. "CASE did this with COBOL and C++ to a large degree. Oracle Designer has done this with Form for years as well," he said.

However, "the problem is that model driven development has been very limited in terms of flexibility and advanced application features," Driver said.

Today modeling is making a comeback through business process modeling schemes like Business Process Execution Language (BPEL) and business rules engines, "but in a tempered fashion," Driver said. "Also tools like Compuware's OptimalJ have done some nice things around MDA," he added.

Jeffrey Hammond, an analyst with Forrester Inc., said there are modeling tools that will generate 100 percent of your application code today.

"I've worked with and talked to customers who do this, and they see improved quality and higher productivity per developer as a result," Forrester said. However, these benefits do not come without cost though, he said.

"You need to put a lot of information into a model-driven tool before it will generate code — they have high activation energy," Hammond said. "Many organizations who would like to get to this point lack the organizational commitment to see it through. They start with a model driven approach, but when there is a problem with a code generator or the project is suffering from time pressure," he said. Frequently developers "will break into the generated code and modify it at the text level," he said.

For its part, CA on July 30 announced the availability of CA Plex r6, a rapid application development environment that enables model-driven development of .Net, Java 2 Platform, Enterprise Edition (J2EE) and IBM System i Web services, the company said.

With CA Plex r6, Web services can be managed as "first-class" objects, and developers can view, diagram, document, and manage these objects in their enterprise model, officials at CA, which is based in Islandia, N.Y. said.

The product delivers many of the attributes consistent with modeling, including component reuse, code generation and others to the creation of Web services, and facilitates the use of objects across service oriented architectures, as well as client/server and legacy applications, the company said.

No comments: