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:
- Class room presentation
- 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.
HiPERiSM Consulting, LLC, (919) 484-9803
(Voice)
(919) 806-2813 (Facsimile) |