Ziff-Davis Enterprise 
DevSource: Microsoft Developer Resource
Add OnsArchitectureLanguagesTechniquesUsing VSForums
 
Home arrow Using VS arrow Gearing Up Software Factories
Gearing Up Software Factories
By Lynn Greiner

Rate This Article:
Add This Article To:
Microsoft is getting behind generative software development, which aims to let development tools do the grunt-work and write the software for you. At OOPSLA, the company announced the delivery of its first Software Factory components, which plug into the

There's a kind of Dickensian feel to the term Software Factories. It conjures images of grubby waifs in ragged clothing, slaving over steaming keyboards in exchange for a meager crust of bread. Ruthless overseers slash their tiny hands with sharp rulers when the urchins stop to flex stiffening fingers, while the evil owner rubs his greedy hands with glee.

Okay, okay, I'm exaggerating — no self-respecting developer would work that hard for anything less than the best pizza. But there is a lot of sweat and donkey work in software development, and, oddly enough, that's what software factories are trying to eliminate.

ADVERTISEMENT

With increasing demand for applications, developer productivity has to increase, and it won't happen by giving them extra bowls of gruel.

"It doesn't make much sense to grow the number of developers and use the same methodology we've been using for tens of years," said Lenny Louis, product manager, developer tools, for Microsoft Canada. "Developers need to get smarter."

One way they can work smarter is by letting software do the grunt work. Generative software development is a methodology that, in effect, lets software write other software from specifications written in textual or graphical domain-specific language. Software factories use this methodology with, to quote Microsoft's description, "multi-dimensional specification, combining partial and complete generation of framework-completion code from domain-specific models with pattern and framework development."

Whew!

That means that they can take a developer's specifications (the schema) and a bunch of custom tools and industry-specific components, and roll them into an application.

To put it another way, software factories are meant to achieve economies of scope by automating menial tasks in the development process, leaving the developer free to focus on the creative bits.

So what's an economy of scope? Microsoft compares the concept to automotive production. While economies of scale are achieved by producing zillions of identical widgets, economies of scope occur when multiple similar but distinct designs are produced using the same components (engine, chassis, body, etc.).

A software factory builds multiple similar but distinct copies of an application type (inventory control systems, for example). It relies, like auto building, on component re-use: on building code modules that can be repurposed again and again.

Hmmm — doesn't that sound a bit like object-oriented programming (OOP)? Yes, it does, because it uses many of the same techniques. But, insists Microsoft, it's much more than the old OOP we've known for so many years. What makes it work, according to Louis, is the addition of patterns and practices.

Programmers today are not given the opportunity to share their knowledge, he stated. Software factories encapsulate that accumulated expertise for re-use by others, with the help of XML to capture the requirements of the domain. You not only get chunks of code in a software factory; you also get a domain-specific language (DSL), tools, and a framework on which to build applications for a particular industry or market.

The tools being touted by Microsoft are, of course, part of the Visual Studio family: plug-ins to Visual Studio Team System, from both Microsoft and its partners. And partners are leaping on board. Already, Unisys has delivered 23 software factories for various horizontal and vertical industries, Siemens has built a factory for medical imaging device software, Kinzan's factories help Web developers, while Borland offers domain-specific designers for UML 2.0 and Nationwide has created domain-specific designers for the financial industry.

Today, at the 19th Annual ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA) Microsoft announced the delivery of its first Software Factory components: the framework and a set of tools for building new domain-specific visual designers that plug into Visual Studio Team System. In addition, it has released a Community Technology Preview of the framework and tools for building customized domain-specific language designers, which is being given to OOPSLA attendees and is available to MSDN subscribers online, at http://msdn.microsoft.com/subscriptions/.

Despite his company's support of software factories, Borland's chief technology officer, Pat Kerpan, has some reservations about the terminology. "You can push the metaphor too far," he noted. "If you talk about software as a manufacturing process, it makes developers uncomfortable. It hearkens to a tuna cannery."

"If you look at (software factories), I would argue that they're taking a run at taking the least creative part of the development process and making it repeatable in visual design."

"We want to allow developers not to have to focus on tedious tasks they've already done," added Louis. "We've talked about re-use for a long time, but the vision can't be achieved with models alone. We have to make it very easy for (developers); it's the main reason re-use hasn't taken off except for cut and paste of code. Software factories will keep developers more focused on the interesting and creative tasks by automating other tasks."




Discuss Gearing Up Software Factories
 
>>> Be the FIRST to comment on this article!
 

 
 
>>> More Using VS Articles          >>> More By Lynn Greiner
 



DevSource video
Devsource Video Series
Manipulating Society through Technology
Jeremy Bailenson, Director of the Virtual Human Interaction Lab at Stanford University, talks about virtual reality, avatars, Moore's law, how real world behaviors influence online reality, and societal manipulation through technology!
>> Play video
>> Read article
>> See all videos
DevLife Blog

Julia explores the Robotics Studio! (It's for more than you think.)

MSDev Blog

Messages for Bill Gates!

Make it Work
.NET makes runtime type checking a breeze. See what Peter has to say about it in this week's tips!
News
Microsoft Counts on App Support for Vista
Microsoft has taken pains to demonstrate that Windows Vista will have ample application support.
DevSource RSS FEEDS
XML Want an easy way to keep up with breaking tech news? And the Get DevSource headlines delivered to your desktop with RSS.