The tutorials will be offered on the fourth day of the conference (September 6, 2012), after the Main Track and the Industrial Track. See the conference program for schedule details.
A Practical Introduction to CMMI for Services (Eileen Forrester)
This one-day tutorial introduces service providers, appraisal team members, and process group members to concepts fundamental to superior service. The CMMI for Services (CMMI-SVC) model defines effective practices to ensure that quality services are delivered to customers and end users. Some types of services that would benefit from using CMMI-SVC include operations, logistics, maintenance, IT, and many other services in government and industry.
The tutorial covers effective service practices and how each might be implemented in real-world scenarios. After completing it, you will be able to describe the CMMI-SVC model and its usefulness for your organization, discuss the model’s process areas, and apply relevant information in the model to your own scenarios.
Who should attend?
- Service providers and process implementers
- CMMI-SVC appraisal team members
- Candidate CMMI-SVC instructors and lead appraisers
- Anyone interested in learning about CMMI-SVC
- Benefits of Using CMMI for Service Improvement
- Making CMMI Practices Work for You: How to Choose What to Improve
- Capacity and Availability Management
- Incident Resolution and Prevention
- Service Continuity
- Service Delivery
- Service System Development
- Service System Transition
- Strategic Service Management
Successful completion of this tutorial enables participants to do the following:
- Apply CMMI-SVC to improve performance in their own organizations
- Describe the unique elements of CMMI-SVC
- Locate information in the CMMI-SVC model
None required, but Introduction to CMMI-SVC is helpful preparation.
Participants will have the opportunity to download a number of helpful documents, including
- CMMI-SVC model document
- Quick references
- Use case scenarios
Program Development with Parameterized Unit Tests and Code Contracts (Ethan Jackson)
(Due to a medical emergency, the planned tutorial by Mr. Ethan Jackson has been canceled)
(Due to unforeseen circumstances, the planned lecture by Mr. Wolfram Schulte will be performed instead by Mr. Ethan Jackson, from the same research group)
Code Contracts provides a speciation technique for expressing method pre- and postconditions as well as object invariants as code. These specifications are then used for runtime checking and advanced static checking using abstract interpretation. The specifications are also understood by the advanced unit-testing tool, Pex. Pex performs a white box code analysis using a constraint solver to determine relevant test inputs. Preconditions allow pruning of irrelevant test inputs, and postconditions guide test generation and allow detecting bugs; object invariants serve both purposes. Furthermore, Pex enables the concept of Parameterized Unit Tests which are essentially parameterized usage scenarios annotated with specifications to state assumptions and assertions. The result of Pex’s analysis is a small unit test suite which often achieves high code coverage.
Code Contracts and Pex enable each other. A drawback of static checking is for instance the presence of false warnings and the effort to determine whether a warning is warranted or not. Pex often helps alleviate this problem by being able to point out inputs to a method that actually trigger the violation. Pex reports the issues as source code that can be debugged immediately by the developer. Furthermore, Pex and/or Code Contracts can suggest new preconditions at appropriate places to avoid future problems.
For more info on Code Contracts, see http://research.microsoft.com/contracts/, for more info on Pex see http://research.microsoft.com/pex/.
This is joint work with Michael Barnett, Manuel Fahndrich, Francesco Logozzo, Peli de Halleux, and Nikolai Tillmann.