Scientific journal
Modern high technologies
ISSN 1812-7320
"Перечень" ВАК
ИФ РИНЦ = 0,940

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

С одной стороны, основной причиной проблем в обучении является недостаточная теоретическая разработанность методики обучения ООП. С другой стороны, для студентов трудности изучения ООП связаны со сложностью процесса разработки программного обеспечения.

Обучению объектно - ориентированному программированию и проектированию посвящены работы зарубежных исследователей, таких как Г. Буч, Б. Мэйер, А. Якобсон, Дж. Рамбо, И. Грэхем, М. Фаулер, а также исследования отечественных ученых Г.С. Ивановой, Т.Н. Ничушкиной, Е.К. Пугачевой, И.А. Бабушкиной  и др.

Методология ООП многогранна и нестандартна. Отсутствие единой, общепринятой точки зрения на объектно-ориентированный подход является как ее преимуществом, так и недостатком. Преимущество в том, что в процессе обучения можно рассматривать различные интерпретации ООП. Недостаток в том, что отсутствие единой точки зрения на ООП может привести к ее формальному и ограниченному изучению. Рассмотрение принципов ООП без обучения объектной декомпозиции, объектно-ориентированному проектированию и реализации на практике преимуществ ООП, не способствует формированию у студентов необходимых представлений об ООП.

Большую часть затруднений студенты испытывают на начальном этапе обучения: в процессе формирования представлений об основах ООП. Оттого, как формируются эти представления, будет зависеть все дальнейшее изучение методологии ООП.

На начальном этапе обучения студентов ООП и объектно - ориентированному проектированию рекомендуется использовать презентации. Анимация, выделение цветом строк программного кода и соответствующих частей элементов диаграммы классов языка UML помогут студентам лучше понять взаимосвязи объектно-ориентированного программного кода и диаграммы классов языка UML. Использование презентаций на начальном этапе обучения ООП позволит студентам начать применять язык UML в объектно-ориентированном проектировании и создавать на основе него объектно - ориентированный программный код.

У большинства студентов сформирован алгоритмический стиль мышления. Смена стиля мышления у студентов обычно происходит тогда, когда они начинают понимать преимущества, которые предоставляет методология ООП. Объектно-ориентированный подход позволяет: решать проблемы построения сложных систем; улучшать сопровождение программного обеспечения; расширять и масштабировать программный код; создавать повторно используемый программный код. Эти преимущества являются мотивирующим фактором для изучения студентами методологии ООП. Освоение объектной декомпозиции является одним из решающих факторов, который может привести к изменению стиля мышления студентов со структурного на объектно - ориентированный.

На начальном этапе обучения ООП не должна преобладать алгоритмическая декомпозиция по отношению к объектной декомпозиции. Рассмотрение объектной декомпозиции в начале обучения ООП желательно сократить до минимума и продолжить ее изучение тогда, когда у студентов будет сформировано представление об основах ООП, и они смогут реализовывать объектную декомпозицию на практике.

Осуществление объектной декомпозиции позволит студентам абстрагироваться от программного кода в целом и сконцентрироваться на определенных классах, некоторых отношениях между классами. «В основе любого подхода к программированию лежит понятие декомпозиции (разбиения на части) сложных систем с целью последующей реализации в виде отдельных небольших (до 40 - 50 операторов) подпрограмм» [3, с. 12].

При осуществлении объектной декомпозиции рекомендуется придерживаться следующих правил по определению классов:

  1. объект должен быть простым и понятным с точки зрения его структуры;
  2. объект не должен включать в себя несколько абстракций, поэтому имеет смысл разделить этот объект на несколько объектов;
  3. объект должен быть "самодостаточным".

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

Студенты должны учиться: применять свои знания в реальных ситуациях; выражать свои идеи на языке UML; расширять сферу возможного применения ООП. Для этого рекомендуется решать сюжетные задачи и задачи, имеющие объекты, прототипами которых являются реально существующие объекты.

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

Литература:

  1. Бертран М. Объектно - ориентиро-ванное конструирование программных систем / Пер. с англ. - М.: Издательско-торговый дом «Русская Редакция», 2005. - 1232 с.
  2. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++, 2-е изд. / Пер. с англ. - М.: «Издательство Бином», СПб: «Невский диалект», 1998. - 560 с.
  3. Иванова Г.С., Ничушкина Т.Н., Пугачев Е.К. Объектно-ориентированное программирование: Учебник для вузов. - 3-е изд., стер. /Под ред. Г.С. Ивановой. - М.: Изд-во МГТУ им. Н.Э. Баумана, 2007. - 368 с.

Работа представлена на III научную международную конференцию «Проблемы международной интеграции национальных образовательных стандартов», 23-27 апреля 2008г., Чехия (Прага) - Люксембург - Франция (Париж). Поступила в редакцию 15.03.2008.