Введение
В пособии подробно излагаются основные понятия объектной технологии – классы, объекты, управ-
ление памятью, типизация, наследование, универсализация. Большое внимание уделяется проекти-
рованию по контракту и обработке исключений, как механизмам, обеспечивающим корректность и
устойчивость программных систем.
Рассматриваются основы объектно-ориентированного программирования. Изложение начинается с
рассмотрения критериев качества программных систем и обоснования того, как объектная техноло-
гия разработки может обеспечить требуемое качество. Основные понятия объектной технологии и
соответствующая нотация появляются как результат тщательного анализа и обсуждений. Подроб-
но рассматривается понятие класса - центральное понятие объектной технологии. Рассматривается
абстрактный тип данных, лежащий в основе класса, совмещение классом роли типа данных и моду-
ля и другие аспекты построения класса. Столь же подробно рассматриваются объекты и проблемы
управления памятью. Большая часть уделена отношениям между классами – наследованию, уни-
версализации и их роли в построении программных систем. Важную часть составляет введение
понятия контракта, описание технологии проектирования по контракту, как механизма, обеспечива-
ющего корректность создаваемых программ. Не обойдены вниманием и другие важные темы объект-
ного программирования – скрытие информации, статическая типизация, динамическое связывание
и обработка исключений.
Цель. Курс предназначен для изучения инженерии разработки программных систем на основе
10