As a professional software designer,
We'll attempt to answer those questions, but first a few words about Microsoft's position regarding UML.
According to the published modeling strategy, Microsoft is not against UML as such. They see UML as a
However, Microsoft believes that it can better bridge the gap between design and development (modeling and coding) by providing a set of visual designers—underpinned by DSLs—that enable you to work at a high level of abstraction while providing sufficiently high fidelity for the specific domain being
A direct comparison between UML and the new visual designers is not valid, not to mention unfair. Microsoft has deliberately eschewed UML in favor of domain-specific languages that are highly
However, just because a blow-by-blow comparison is not possible, you can still find similarities that offer opportunities to take advantage of your UML skills.
First, Application Designer enables you to model applications that communicate through endpoints in much the same way as you would use the UML component diagram to model
Second, Logical Datacenter Design, in conjunction with Deployment Designer, enables you to model a logical infrastructure, and to show which applications will deploy to which servers, in much the same way as you would with a UML deployment diagram. If you're used to deployment diagrams, you'll take to logical datacenter diagrams.
When it comes to Class Designer, the similarities with UML class diagrams are apparent even from the first glance. The rendering of classes (as boxes with compartments) and interfaces (as lollipops) is much the same, as is some of the notation, such as the idea of "associations." In both cases, the purpose is exactly the same: to provide a one-for-one graphical representation of the underlying types in code. You just need to be aware of some terminology differences, such as "operations" and "attributes" in UML ("
We hope that those brief points have convinced you that all that UML training has not been a waste of time. You can take at least some of what you know and apply that knowledge when using the new tools.
You might have spotted that Visual Studio 2005 does not offer dynamic modeling capabilities that approximate UML's sequence and statechart diagrams. That situation might change over time as new visual designers are produced to support DSLs
If you've already designed .NET applications, chances are good that you have some existing models in Visio for Enterprise Architects or IBM-Rational XDE that you'd like to migrate into the Team Architect.
Any attempt to migrate your models as a whole will
You can
This chapter has
One option is to wait for a third-party vendor to provide a UML add-in. Borland has announced an
The other option is to use Microsoft's DSL tools to grow your own UML designers. We don't recommend that unless you work for an organization that can
Figure 1-9
It turned out not to be production quality and it supported only a very limited subset of the notation, but when we tell you that it took only days—not weeks or months—to achieve something approaching the diagram we presented in Figure 1-8, you'll appreciate the potential offered by the DSL tools, even for UML stalwarts.
We could have just as easily used the DSL tools to build simulations of the other UML diagram types, such as use case diagrams and collaboration diagrams. And if all that sounds like too much hard work, you'll be pleased to hear that Microsoft's DSL Tools team has provided you with a starting point by bundling sample DSLs for UML use case diagrams, activity diagrams, and class diagrams with the DSL toolkit available at http://www.lab.msdn.microsoft.com/teamsystem/workshop/dsltools/default.aspx.
Previously, Microsoft bundled Visio for Enterprise Architects with Visual Studio .NET, as the preferred tool for modeling .NET applications. Microsoft will continue to bundle Visio for Enterprise Architects as a complementary tool providing a broad modeling capability, most useful in the early analysis stages, and compliant with UML 1.3.
Here's our advice on how you should continue to use Visio:
What we're
not
advocating is using Visio in combination with the new visual designers for detailed design, implementation, and deployment activities within Visual Studio. The Team Edition for Software Architects is clearly stronger here with its IDE integration, code synchronization, and bias toward creating
What we are advocating is using Visio for the up-front analysis and design activities that may well be undertaken by a business or systems analyst already familiar with working with Visio, rather than a designer/developer familiar with working with Visual Studio. In a
Use Visio for the initial analysis activities, which in any case may be performed by people—business analysts or solution designers—more used to working in Visio than in Visual Studio. We're talking about use cases and scenario realizations (e.g., as sequence diagrams) that are in any case not supported by the Team Architect.
Use Visio to generate a one-time-only domain model as code. Because the Team Architect keeps code and model in perfect sync, any Visio-generated classes will be available immediately to your Visual Studio model.
Use the Visual Studio 2005 Application Designer to sketch out the overall shape of the system in terms of
Use the Visual Studio 2005 Class Designer to
Develop the code itself, with Visual Studio 2005 automatically ensuring synchronization between the code and the model, analogous to UML round-trip engineering.
Use the Visual Studio Logical Datacenter Designer and Deployment Designer to specify the mappings and constraints for the deployed system, analogous to a UML deployment diagram.
Finally, if you need to do any limited dynamic modeling in support of the detailed designs, do this using strategically placed comments to convey the necessary information without
| Important |
The UML capabilities of Visio are fully documented in Professional UML with Visual Studio .NET: Unmasking Visio for Enterprise Architects (Wrox, 2003). This book is based on Visio for Enterprise Architects 2003, but for the retained role we suggest it should be equally
|