ALM for C++ in Visual Studio 11 at TechEd NA 2011

Visual CPP Team

Image 0143 image 7C8C01B1

Greetings!! I’m Rong Lu, Program Manager with the Visual C++ team.

It’s been extremely exciting in Atlanta at TechEd North America 2011!

Terry Leeper, Diego Dagum and I had a chance to be at TechEd and joined the announcement of Application Lifecycle Management (ALM) roadmap in Visual Studio 11. On Monday, Jason Zander announced ALM Roadmap in Visual Studio 11 (check out his blog post for the entire roadmap and details), and then Cameron Skinner did a demo intensive foundational session which showed lots of the ALM features we’re putting in VC11 (check out his blog post and session recording).

But you may ask: so, what does it mean to C++ developer teams? Terry and I gave a talk about this on Tuesday at TechEd (check out recording if you missed it! Image 8154 wlEmoticon smile 0266A54B) and short answer is C++ has made up a lot of ground and nearly all the VC11 features work as well (the only exception is the code cloning feature which we’re working on to enable for C++). In the session, we talked about what’s already available in VS 2010 for C++ as well as highlighted and demonstrated some of the new things will be available in VC11 that might be especially interesting to C++ developer teams.

Here is a list of what these new features are in VC11 (check out Cameron Skinner’s session recording for demos on them):

  • Agile Planning Tools – create transparency across the planning process and full team participation through solutions like the new backlog and task board.
  • Lightweight Requirements – a natural way to capture and receive feedback on requirements early in the process.
  • Stakeholder Feedback – working code which matches the expectations of stakeholders.
  • Continuous Testing – unit test coverage ensures quality in the final product.
  • Agile Quality Assurance – increased code quality with code review support, enhanced unit testing frameworks and new exploratory testing support.
  • Enhanced User Experience – more time ‘in the zone’, through improved experiences for day-to-day tasks.
  • Aligning Development with Operations – increased connections and insight between the operations and development teams lowering the time it takes to fix a bug in production.

Pretty cool, eh? And now I’d like to highlight some of the new features that will be especially useful to you C++ developer teams (hope you feel the same! Image 8154 wlEmoticon smile 0266A54B). Check out our TechEd session recording for demos of these features as well. Image 8154 wlEmoticon smile 0266A54B


Static Analysis

Static Analysis (aka Code Analysis) can help you to identify common coding errors before the application runs. It’s already available in VS 2010 (works for C++!), and in VC11 the experience will be significantly enhanced.

  • The UI is re-designed to provide richer information.
  • The analysis engine is more powerful to diagnose errors and warnings.

Static Analysis (click for a larger image)


Architecture Tools

Yes, we brought it to native C++ world. The set of architecture tools can help you visually discover the architecture of your application, design architecture and enforce the implementation to be compliant.

  • Dependency Diagrams: create the most up-to-date architecture diagrams right from your code! The dependency diagrams can be created by binary, namespace, class or include files (specially designed for C++!).
  • Architecture Explorer: explore the assets in your application and generate diagrams by drag and drop onto the design surface!
  • Layer Diagram and Dependency Validation: use layer diagram to create your architecture layers and run validation to detect if the implementation is in compliant with the design.

Image 6837 image 4FD3220B

Dependency diagram by binary


Image 3716 image thumb 68161659

Dependency diagram by include files


Image 2211 image 11A9E18D

Create a layer diagram and run validation


Image 1256 image thumb 754C799F Errors are reported if any architecture violations


Unit testing

In VC11, you will be able to write unit tests for your native C++ applications. The unit tests can be written in C++, and run in the unit test framework which itself is also native!

Image 8015 image thumb 30DC6293


Code Coverage

Now you’ve got unit tests, and here comes code coverage which is well integrated with the unit test framework. You can get code coverage data by running the unit tests and learn how much of the code has been covered by the tests. The enhanced code coverage feature not only works great with the native unit test framework, but also will work the same way for managed test frameworks. In addition, it now does dynamic binary instrumentation as oppose to static binary instrumentation in the past, so it’s also a lot easier to use!

Image 0523 image thumb 25832889



Hope you would like these features! Look forward to hearing what you think of them.


Best Regards, Rong.-

PS: our session at TechEd on all these was just posted in Channel 9. [Watch it here] Enjoy! Winking smile


Discussion is closed.

Feedback usabilla icon