This book describes an object-oriented design approach that combines the
benefits of abstract modeling with the analytic power of formal methods
to give designs that can be rigorously validated and assured with
automated support. Aimed at software architects, designers, and
developers as well as computer scientists, the elements of functional
modeling are introduced using numerous examples and exercises,
industrial case studies, and experience reports. Industry-strength tools
support the text.