This was a post from my CS649 - Software Design class in July 2018. I was tasked with the following:
Within the Discussion Board area, write 400–600 words that respond to the following questions with your thoughts, ideas, and comments.
This will be the foundation for future discussions by your classmates. Be substantive and clear, and use examples to reinforce your ideas:
Use the library and Internet to search for information about computer-aided software engineering (CASE) tools for software design modeling.
Using what you find, address the following:
- From your research, select and describe at least 2 software design CASE tools.
- From your research, answer the following questions about the 2 design tools that you selected:
- What are some of the strengths of each design tool?
- What are some of the weaknesses of each design tools?
- What type of diagrams does each tool support?
- To what extent does each tool support the unified modeling language (UML) standard?
- Which of the tools would you recommend for an organization, and why?
So here is my response:
I selected two Microsoft products:
- Microsoft Visio 2016 Professional
- Microsoft Visual Studio Enterprise 2015
I chose these two tools to compare because I have intimate knowledge and experience with them and I’ve been struggling, as of late, to figure out why Microsoft makes the decisions they make about what features they include in their software.
Visual Studio is really Microsoft’s flagship IDE and represents a huge market share of their business. I’ve used Visual Studio since roughly 2003 and it’s changed significantly over the years, the most recent and significant overhaul of the product in VS 2010’s release. Everything pretty much changed in that release, the interface, runtime, compiler, etc. They also included what they called, “visualize code” features in that release, under the Architecture menu (Microsoft Dev Network, 2015). It was really cool, it would automatically create class diagrams based on your code and discover dependencies. You could model use cases, user requirements and the architecture of your system using activity, component, sequence, and use case diagrams, all within Visual Studio Ultimate (now called Enterprise) edition.
But then…. Somebody up and decided to remove those Architecture tools from Visual Studio completely with the 2017 release (Prieur, 2016) Ugh! They removed it and released this obscure little blog post explaining their reasoning and they said, “Lack of usage” as their reason. What focus groups did they talk to about it? There was such an outcry from the user community that they added it back, but in a different way. It does not install by default and they called it “DSL Tools” (meaning, Domain-Specific Language) Tools, whatever that means (Prieur, The Visual Studio Modeling SDK is now available with Visual Studio 2017, 2016). I just think they didn’t want to admit that they screwed up by removing it in the first place. I already knew how to use the Architecture tools, now I have to learn a whole new way to do the same thing I’ve been doing for years, what sense does that make? What drama! Lesson learned, in software design, leave well enough alone, don’t change things for change sake alone. It is so important to really communicate with your users BEFORE you start removing features. Therein lies the inherent weakness of using the integrated Architecture tools in VS, just when you thought it was safe to use them, Microsoft will take them away and then put them back completely changed and retooled until it is almost unrecognizable.
Visio is a stand-alone tool that uses vector graphics to create diagrams - that’s it. I think that is the greatest strength and the greatest weakness, how can that be, you ask? Well, hear me out. Because it is a completely separate design tool, that is all you can do with Visio, design. So, you don’t get all bogged down and confused with existing code, you get to start from scratch. But how is that like the real world? Rarely have I been on a project where I start from scratch, I’m usually refactoring or upgrading someone else's design and code, and you can’t visualize existing code in Visio, you can, but you have to create the diagrams manually, and what if you interpret the code wrong, then your diagrams are wrong, and you are not looking at the actual code and what it is really doing. Automating the diagram creation in VS is VERY, VERY useful to visualize the code and figure out EXACTLY what it is doing.
Ah, I feel better, I’ve been wanting to get that off my chest for a long time!
As I stated previously, each of the tools support use case, activity, sequence, state, component, database, and class diagrams, most of the common UML diagrams used today in software development.
However, the VS Modeling Tools, now called in VS 2017, are integrated into the IDE. Before with VS 2015, (which is still supported by Microsoft), you simply added a new modeling project to your existing solution and away you go, you can start generating pretty much any diagram you want, automatically from existing code. It is more convoluted then that with 2017, you have to create a new solution and basically create an API that is specific to your business requirements. Great, now I have to do all this extra work to create a model, like I don’t have enough to do (Microsoft Dev Network, 2015).
So, now I just use Visio, it’s not ideal, but it works for now. Maybe someday they will bring back the Architecture tools from 2015 into 2017. I can’t afford VS 2015 Enterprise at $6,000 so I’ll just have to pray they bring back the tools in 2017 or the next release, whenever that is.
There are some promising third-party tools like Altova’s UModel, https://www.altova.com/umodel but it’s not even close to the nice integrated tools of Visual Studio past. It is a much less expensive option, at $200 for the Standard edition. It is a stand-alone product that you open your VS solution into. It looks promising but the UI needs some work.
Microsoft Dev Network. (2015). Modeling SDK for Visual Studio - Domain Specific Languages. Retrieved from Microsoft Dev Network: https://msdn.microsoft.com/en-us/library/bb126259.aspx
Microsoft Dev Network. (2015). Visualize code. Retrieved from Microsoft Dev Network: https://msdn.microsoft.com/en-us/library/dd409365.aspx
Prieur, J. (2016, Dec 12). The Visual Studio Modeling SDK is now available with Visual Studio 2017. Retrieved from Microsoft DevOps Blog: https://blogs.msdn.microsoft.com/devops/2016/12/12/the-visual-studio-modeling-sdk-is-now-available-with-visual-studio-2017/
Prieur, J. (2016, Oct 14). UML Designers have been removed; Layer Designer now supports live architectural analysis. Retrieved from Microsoft DevOps Blog: https://blogs.msdn.microsoft.com/devops/2016/10/14/uml-designers-have-been-removed-layer-designer-now-supports-live-architectural-analysis/