In-Depth

Model of integrating components

Two years ago, the Object Management Group (OMG) introduced the model-driven architecture (MDA), a development specification that taps the OMG’s Unified Modeling Language (UML) to automate the integration of software from applications, middleware, or custom components. To a certain extent, says Thomas Murphy, a vice president with consultancy META Group, the software factory and its attendant notion of Domain Specific Languages (DSL) constitute Microsoft’s response to MDA.

"The model-driven architecture is kind of the OMG’s software factory," Murphy says. "Microsoft’s direction is this idea of domain-specific languages. And so, a lot of this is them [putting] their kind of stake in the ground about the value of a different view of modeling and where things are going."

What does Microsoft mean by a domain-specific language? Funny you should ask, says Keith Short, an architect in Microsoft’s enterprise frameworks and tools group, who notes that many developers are already working with DSLs — even if they don’t know it.

"SQL is a domain-specific language that we’re all comfortable using," he says, explaining that a developer working with SQL doesn’t necessarily need to know how a relational database works.

How, then, does this relate to the software factory concept? For starters, Microsoft positions the software factory as a means to both automate mundane tasks and encapsulate domain expertise in a manner — i.e., as code or components — that can easily be reused. That is what DSLs are designed to do: from a developer’s point of view, a DSL should help abstract the complexity (i.e., the architecture, processes, and technology standards) of a specific domain, Short says. Web services, for example, are complex and require the developer to focus on what services are available and how they interconnect, he says. "Imagine if you could abstract that into a domain-specific language — a tool that is just focused on this one specific development environment."

Of course, SQL, like Web services, was the product of years of standards-vetting. So it’s incumbent on Microsoft and other vendors to give developers tools to easily build their own DSLs, Short concedes. "One of the things we need to do to make sure this vision gets rolling is to make it easier for these domain-specific languages and the designers to implement them … to be built."

The software giant claimed to do just that at September’s OOPSLA conference, touting a new toolkit that gives developers a graphical environment in which to define and edit DSLs. The idea behind the toolkit, says Short, is to make it 'easy for the creator of a software factory to specify how those things interact with things like source code and schemas.'

Developers are taking notice — even those, like J2EE specialist Michael Hudson, who are nominally cool to Microsoft’s technology efforts. Hudson, a programmer with Praxis Engineering Technologies, says DSLs are the most striking idea in a Microsoft software factory vision that, he argues, is largely borrowed from other technology initiatives, such as Rational’s XDE, a RAD tool that also incorporates MDA methods.

"I do think they have hit on the fact that your high-level modeling has to be able to talk in a language specific to your domain," Hudson says. "And the faster you can get to the business logic of your domain, the quicker and more efficient your development process will be. It seems to me that if the concept of software factories takes off, it'll be because of whatever innovations they put forward with DSLs."

There is, of course, the possibility that if a developer encapsulates her expertise in the form of a DSL, she could more or less abstract herself out of her job.

Thomas Murphy, a vice president with consultancy META Group, doesn’t think that will happen. "We’ve had this notion pushed for a long time to make software development easy enough so that anybody will be able to do it by abstracting it enough," he says. "But there’s still going to be the need for a great number of developers who are creative to produce these components and designs in the first place."

See related article, 'Software factories come into modern times.'

About the Author

Stephen Swoyer is a contributing editor. He can be reached at [email protected].