In May 2005, Microsoft published its Visual Studio 2005 Team System Modeling Strategy at http://www.msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/vstsmodel.asp. In this introductory chapter, we'll draw on the main themes—domain-specific languages (DSLs), model-driven development (MDD), Software Factories, and the Unified Modeling Language (UML)—as they apply to the Visual Studio 2005 Team Edition for Software Architects. We'll summarize what Microsoft has to say on those subjects, and we'll add our own impartial views.
We'll review the evolution of distributed computing architectures—from simple object-oriented development through component and distributed-component design to the service-oriented architectures that represent the current state of the art. That will be our link to the Application Designer that supports a DSL specifically for modeling interconnected Web services applications.
Application Designer is the first in a suite of Distributed System Designers (formerly codenamed "Whitehorse") that also supports system modeling, logical infrastructure modeling, and deployment modeling. We'll introduce each in turn, to be fleshed out in subsequent chapters. To complete the picture in terms of visual design, we'll introduce the Visual Studio 2005 Class Designer, which complements the Distributed System Designers but is not strictly part of that set, and which is available in all Visual Studio editions apart from the Express editions.
Finally, we consider the question "What about UML?" As professional software designers, you may well have been trained in the Unified Modeling Language (UML), the until-now industry standard notation for visual modeling. Like us, you might wonder how—if at all—UML fits into the Visual Studio 2005 Team System scheme; how you can capitalize on your UML skills; and what you do with the UML artifacts you have created.
We'll begin by first establishing the case for undertaking visual modeling—or visual design—at all.