This book takes a formal approach to teaching software engineering, using not only UML, but also Object Constraint Language (OCL) for specification and analysis of designed models. Employing technical details typically missing from existing textbooks on software engineering, the author shows how precise specifications lead to static verification of software systems. In addition, data management is given the attention that is required in order to...