Введение
Объектно-ориентированный подход к проектированию программных систем является элементом так называемых наукоемких технологий проектирования программ. Использование этого подхода дает возможность на порядок по сравнению с обычным директивным программированием сократить трудоемкость отладки программ и внесения изменений в программу при ее последующем развитии. Платой за это является наукоемкость проектирования, т.е. уделение весьма большой части времени на детальную проработку предметной области программы, составление структуры данных и их взаимосвязи, а также проектирование программной архитектуры.
Вместе с тем, объектно-ориентированное программирование существенно отличается от классических методов программирования, в том числе структурного и модульного программирования. При этом коренным образом ломается понятие об алгоритме как о последовательности выполнения операторов языка программирования, записанных друг за другом. В объектно-ориентированных программах все данные разбиваются на отдельные группы и строго связываются с программами (функциями), предназначенными для обработки этих данных. Любая из функций как бы присоединяется к тем данным, для обработки которых она предназначена. Такое объединение данных с программами в единое целое носит название инкапсуляции. Сам результат объединения является самостоятельным объектом программы и почти всегда действительно соответствует какому-либо из объектов той предметной области, для которой написана программа. Такая структура программы дает возможность не только быстро локализовать логические ошибки, но и с высокой эффективностью вносить изменения в программу при ее доработке для получения новых версий.