HiPERiSM's Course HC9 

HiPERiSM - High Performance Algorism Consulting

Course HC9: Design by contract: How to easily write correct software and know it.

By special arrangement this course is presented by specialists from Plessel Consulting.



 
 
 

Prerequisites:

This course is intended for any level (novice through expert) Programmers, Testers and Designers in languages including (but not limited to): C, C++, Fortran 90, Java. The course assumes an ability to write routines (procedures and functions) in your favorite programming language, and familiarity with that language's boolean operators and expressions. Participants are encouraged to bring their own sample code to the course.

Objectives:

Learn and apply an easy, low-effort, high-yield, free, practical technique for the specification, documentation and verification of correct software interfaces.

Benefits:

  • Free tools provided for applying this technique in selected languages (C, C++, Fortran-90, Java).
  • Developers will be able to immediately apply this powerful technique to their current and future projects.
  • Increase in developer productivity (design, coding, testing, documentation, etc. ...)
  • Streamlined processes, no more arguing and mutual finger-pointing.
  • Clearer, logical interface designs.
  • No more hairy debugging sessions.
  • More efficient (faster) code.
  • References for further study.

Duration:

2 days

 

Format: 

The course is contained in a course workbook intended for use in one of two ways:

  1. Class room presentation
  2. As a reference.

The workbook includes all source code, sample input, output, and make files needed to execute all programs and examples discussed in the text. Successful completion of all examples and exercises is the starting point for a deeper understanding of concepts and how to apply them to new problems.

Outline:

  • Promises: DBC is ...
  • Motivation: Process cost matters and must be optimized. (Software Quality: Definitions, Tensions/Trade-offs, Techniques. Optimal Ordering For Cost.)
  • The Contract: What is it? How does it work? (Back To Basics: Two Key Correctness Questions. Correctness is Relative to a Specification. Definition: Design By Contract (DBC). Business Example: travel agent. Software Example: merge sorted sequences. Assertions. Interfaces. How DBC answers Basic Correctness Question #1. Enemies of good design. How DBC answers Basic Correctness Question #2. Monitoring. What to do with Violations.)
  • Complete Assertions: The Gold Standard (Comments vs Code. Abstract Assertions. Inherited Assertions. Invariants. Loops. Check.)
  • Some Important Design Rules.
  • What DBC Is Not.
  • How DBC Enhances Specific Development Activities.
  • Analysis, Design, Implementation, Use, Reuse...
  • Hands-on Practice Session.
  • Summary Recap: Promises Fulfilled?
  • How DBC Relates To Other Techniques.
  • Formality, Practicality, Seamlessness, Effort, Trade-off, Yield.
  • If DBC is So Great Why Isn't It Widely Applied?
  • Explanations, Debunking Myths.
  • What happens when DBC is not used?
  • Is it ever valid not to use DBC?
  • Evolution of DBC.
  • Conclusions and a Plea.
  • Glossary, References, Appendix, Free DBC Software Tools.

 

backnext page

HiPERiSM Consulting, LLC, (919) 484-9803 (Voice)

(919) 806-2813 (Facsimile)