2. Tools for Software Development
An evolution
1970s-1980s 1980s-1990s 1990s-2000s
Editors Integrated
development
environments
Compilers (IDEs)
Team
development
tools
Build tools
Version control tools
Testing tools
Reporting and tracking tools
3. Tools for Software Development
The real goal: Optimizing the end-to-end process
Development
Tools
Architecture Testing
Tools Tools
Design
Documents
Version Test Cases
Control/
Build Tool
Requirements Project
Statistics
Reporting
Requirements Shared Server
and Tracking
Tools Tools
4. Illustrating Visual Studio 2010
Eclipse IDE
Visual Studio Visual Studio
Visual Studio Team Explorer Team Explorer Microsoft Test
2010 IDE 2010 Everywhere 2010 Manager 2010
Expression
Studio
Visual Studio Lab
Web Browser Visual Studio Management
SharePoint Team Foundation 2010
Microsoft Server 2010
Excel
Microsoft Visual Studio 2010
Project Other Microsoft
Other Vendors
and Open Source
5. Illustrating TFS
Visual Studio
Team Foundation Server 2010
Work Item Version
Tracking Control
• Requirements/
User stories
• Tasks
• Test cases
• Bugs
•…
Reports and Build
Process Dashboards Management
Templates
• MSF for Agile Software
Development
• MSF for CMMI Process
Improvement
•…
7. Managing Requirements/User Stories
VS 2010 doesn’t define how
requirements/user stories should be gathered
It does define how they’re managed
– Using Requirement/User Story work items
– Which can be linked to other work items
Requirement X Requirement Y
Bug
Task Test Case Task Test Case
Bug
Task Test Case Task Test Case
Bug
Task Test Case Test Case Bug
Bug
Test Case
9. Architecting the Solution
Visual Studio 2010 supports UML modeling
– With Class, Sequence, UseCase, Activity, and
Component diagrams
– A UML diagram can be linked to a TFS work item
• Such as linking a UseCase diagram to a
Requirement
Other design/visualization tools include:
– Layer Explorer for creating layer diagrams
– Architecture Explorer for creating dependency
graphs
– More
12. Writing Code
Toolkits and designers
VS 2010 includes toolkits for:
– SharePoint development
– Office development
– Windows Azure development
It also includes:
– The WPF and Silverlight Designer
– The Workflow Designer for creating WF workflows
– The O/R Designer for creating LINQ to SQL object
model mappings
– More
13. Writing Code
Tools for writing better code
Refactoring support
Static code analysis
– Examines code for security holes and more
Dynamic code analysis
– Performance profiling
– Code coverage, showing what’s being tested
Code metrics
– Measuring complexity and maintainability
Debugging support
– Including IntelliTrace
14. Testing Code
VS 2010 has lots of support for testing
– It’s important
This release introduces Microsoft Test
Manager (MTM), supporting:
– Creating and managing test suites
– Running manual tests
– Running automated tests
– More
15. Testing Code
Gathering test results
1) Run
Visual Studio test T
2010 IDE
Application
Microsoft Test Under Test
Manager
Tester
Diagnostic
R 2) Return Data Adapters
test results (DDAs)
Computer
16. Testing Code
Example DDAs
IntelliTrace: Creates a detailed trace of an
application’s execution, which a developer can
replay
Action Recording: allows recording and
replaying a manual test
Event Log: Collects information written to
event logs during the test
Video Recorder: Records the screen of the
computer the tested app is running on
Test Impact: Allows test impact analysis
18. Testing Code
Illustrating Lab Management
Visual Studio Lab Management 2010 allows
creating and managing VMs for a test lab
– VMs can be created from predefined templates
– The Lab Management client is part of MTM
System Center
Visual Studio
Lab Manager Virtual Machine
Lab Management
Manager 2008
Microsoft Test
Manager
VM
19. Testing Code
Using MTM and Lab Management: Preparing to run tests
Visual Studio
Lab
VM
1) Create Management
test lab
VMs 3) Deploy
test build
Lab Manager TT TT
2) Create
test suite TT TT
Test
Management Test Test Test
Agent Agent Agent
Microsoft Test Team
Manager Foundation
Server
20. Testing Code
Using MTM: Running tests
Lab Manager TT TT
TT TT
1) Run test DDAs DDAs DDAs
Test Test
cases
Management Controller Test Test Test
R
4) Access Agent Agent Agent
test results 3) Return
Microsoft Test Team test results
Manager Foundation
Server 2) Run tests and collect
test results
22. Testing Code
Options for automated tests
Visual Studio 2010 supports several kinds of
automated tests
Coded Web
UI Performance
Unit Tests
Tests Tests
Database
T T T
T T T Unit Tests
T T T T T T T T T T T T
User Business Database
Interface Logic
23. Testing Code
Illustrating load testing
Web
Performance
Load Test Tests
Virtual User Test T T
Pack Agent T T
Test T T
Test Agent T T
Controller
Test T T
Agent T T
Test T T
Agent T T
24. Managing and Tracking the Project
VS 2010 provides:
– Reports created using Excel or SQL Server
Reporting Services
– Dashboards created using SharePoint
The available reports and dashboards depend
on what process template is used
– They can also be customized
28. How Visual Studio 2010 is Packaged
Mapping software to SKUs
Visual Microsoft Visual
Visual Studio Visual Visual Studio
Studio Team Test Studio Team
Team Foundation Studio IDE Lab
Explorer Manager Explorer
Server Management
Everywhere
x x x x x
Visual Studio
2010 Ultimate*
x x x
Visual Studio
2010 Premium*
x x x
Visual Studio
2010 Professional*
x x x
Visual Studio Test
Professional 2010 *
x
Visual Studio Lab
Management 2010
Visual Studio Team
Explorer
Everywhere 2010
x
*With MSDN subscription
29. How Visual Studio 2010 is Packaged
Options for the IDE
Visual Studio Microsoft Test Manager
2010 Ultimate Test Case Manual Fast Forward for
Management Testing Manual Testing
Web Performance Load UML
IntelliTrace
Testing Testing Modeling
Dependency Layer Sequence Class
Graphs Diagrams Diagrams Designer
Visual Studio Remote Test Diagnostic Data Coded UI Test Impact
2010 Premium Execution Adapters Testing Analysis
Performance Static Code Code Code
Profiling Analysis Coverage Metrics
Database Change Database Unit Database Test Database
Management Testing Data Generators Deployment
Visual Studio C#, VB, C++, F#, Windows Web SharePoint
2010 Professional JScript Development Development Development
Windows Azure Office Multi-Core Unit
Development Development Development Testing
WPF/Silverlight Object/Relational Workflow XML Schema
Designer Designer Designer Designer
30. Conclusions
Modern software development requires a
diverse set of tools
– Integrating those tools makes sense
Visual Studio 2010 provides an integrated set
of diverse development tools
– For large teams, small teams, and solo developers
31. About the Speaker
David Chappell is Principal of Chappell & Associates
(www.davidchappell.com) in San Francisco, California. Through
his speaking, writing, and consulting, he helps people around the
world understand, use, and make better decisions about new
technology. David has been the keynote speaker for many events
and conferences on five continents, and his seminars have been
attended by tens of thousands of IT decision makers, architects,
and developers in more than forty countries. His books have been
published in a dozen languages and used regularly in courses at
MIT, ETH Zurich, and other universities. In his consulting practice,
he has helped clients such as Hewlett-Packard, IBM, Microsoft,
Stanford University, and Target Corporation adopt new
technologies, market new products, train their sales staffs, and
create business plans. Earlier in his career, David wrote
networking software, chaired a U.S. national standards working
group, and played keyboards with the Peabody-award-winning
Children’s Radio Theater. He holds a B.S. in Economics and an
M.S. in Computer Science, both from the University of Wisconsin-
Madison.