Обзор дисциплины «Методы объектно-ориентированного программирования задач системного анализа объектов химической технологии»

Семестр: 2-ой,    Трудоёмкость: 144 часа,     Контроль: экзамен и курсовой проект.


Цели дисциплины

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

Задачи дисциплины

Задачей дисциплины является изучение базовой терминологии объектно-ориентированного программирования, задач системного анализа и их приложение к объектам химической технологии, методологии объектно-ориентированного и шаблонного программирования, разработки иерархий класоов применительно к объектам химической технологии, базовых концепций абстракция, наследование, инкапсуляция, модульность, полиморфизм, типизация, иерархичность, а также освоение современных инструментальных сред программирования.

Место дисциплины

Дисциплина входит в вариативную часть профессионального цикла образовательной программы как обязательная дисциплина (Б3.В.ОД.7). Студент должен иметь знания о компьютерах в объёме школьной общеобразовательной программы.


Результаты освоения дисциплины

В результате изучения данной учебной дисциплины студент:

Полученные знания могут быть применены на рынке труда в профессиях: программист, инженер-тестировщик.


Содержание основных разделов дисциплины

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

Введение и терминология

Введение. Общая терминология. Понятие парадигмы. История появления и развития объектно- ориентированного подхода. Современные парадигмы и среды, основанные на понимании «объекта».

Концепция объектно-ориентированного подхода

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

Классы, их структура и экземпляры

Понятие класса. Структура элементов класса: свойства и методы. Объявление класса, спецификатор class. Создание статических и динамических экземпляров класса. Доступ к элементам класса, спецификаторы доступа: public, private, protected. Обращение к элементам внутри класса и вне класса. Обращение к элементам класса по ссылке и по указателю. Указатель на себя – this. Спецификатор области действия ::. Встроенные методы, спецификатор inline. Конструктор класса и его объявление. Деструктор класса и его объявление. Инициализация свойств класса в конструкторах. Пример реализации класса и работы с экземплярами для объекта химической технологии.

Инкапсуляция классов

Принцип инкапсуляции классов. Перегрузка методов класса и поведение перегруженных методов. Интерфейс класса, изменение свойств через методы класса. Принцип "черного ящика" и его реализация в классах. Зависимые свойства и их изменение через методы. Контроль корректности данных в методах. Перегрузка конструкторов, интерфейс создания экземпляров: дефолтный, копирующий, параметрический конструкторы. Дружественные методы, спецификатор friend. Пример реализации интерфейса класса с перегрузкой методов для объекта химической технологии.

Наследование классов

Принцип наследования классов. Порождение одного класса от другого. Иерархия классов, диаграммы наследования. Спецификаторы доступа при наследовании. Доступ к элементам родительского и дочернего класса внутри и вне области действия класса при наследовании. Множественное наследование. Порядок вызова конструкторов и деструкторов при наследовании (обычном и множественном). Пример построения иерархии классов для объекта химической технологии.

Полиморфизм классов

Принцип полиморфизма классов. Механизмы раннего и позднего связывания при вызове методов класса. Виртуальные методы класса, спецификатор virtual. Таблица виртуальных методов и механизмы реализации виртуальных и обычных методов. Виртуальный деструктор и его преимущества. Чистые виртуальные методы. Абстрактные классы. Пример построения иерархии полиморфных классов и реализации интерфейса полиморфного манипулирования экземплярами для объекта химической технологии.

Статические свойства и методы

Понятие статических свойств, методов, классов. Специфические особенности статических свойств и данных. Спецификатор static. Объявление и инициализация статических данных и массивов. Вызов статических методов. Использование статических свойств и методов. Пример использования для объекта химической технологии.

Константные свойства и методы

Понятие константных свойств и методов. Специфические особенности константных свойств и данных. Спецификатор const. Объявление и инициализация константных данных и массивов. Константные строки. Константные аргументы методов и конструкторов. Константные ссылки на экземпляры класса. Использование константных свойств и методов. Пример использования для объекта химической технологии.

Перегрузка операторов

Понятие операции и операнда. Арность. Классификация операторов. Основные группы операций над данными: арифметические, логические, адресные, битовые, сравнения, присваивания, и правила их выполнения. Особенности некоторых операторов. Понятие и правила записи выражений. Приоритет операций в выражениях. Перегрузка операторов для внутри и вне классов. Сцецификатор operator. Особенности перегрузки унарных операторов. Особенности перегрузки бинарных операторов. Применение перегрузки операторов для объекта химической технологии.

Исключения

Понятие аномальной ситуации. Примеры аномальных ситуаций. Концепция исключений как реакции объекта на аномальную ситуацию. Стратегии реакции на аномальную ситуацию. Процедурный и структурный механизмы реализации исключений. Спецификаторы try, catch, throw. Генерация исключений. Обработка исключений. Типизация исключений. Классы ошибок. Спецификатор throw() в прототипе метода. Пример использования исключений для объекта химической технологии.

Динамически связанные данные

Концепция динамически связанных данных. Стратегии доступа и управления данными. Виды динамически связанных данных: разомкнутый однонаправленный список (opened single linked list), замкнутый однонаправленный список (closed single linked list), разомкнутый двунаправленный список (opened double linked list), замкнутый двунаправленный список (closed double linked list), дерево с фиксированными ветвями (fixed linked tree), дерево с гибкими ветвями (flexed linked tree), словарь ассоциаций (dictionary). Реализация на классах и приёмы работы с динамически связанными данными.

Шаблоны классов

Концепция шаблонов данных, функций, классов. Механизмы реализации шаблонов. Спецификатор template. Объявление шаблонов данных, шаблонов функций, шаблонов классов. Параметрические шаблоны. Шаблонное описание и шаблонная имплементация методов в иерархиях классов. Пример использования шаблонных классов и функций для объекта химической технологии.

Библиотека шаблонов

Понятие STL. Принципы организации и содержание библиотеки шаблонов: контей-неры, итераторы, алгоритмы. Свойства и методы типизированных контейнеров STL: string - строки, vector - вектор, list - список, stack - стек, queue – очередь, deque - двусторонняя очередь, set - ассоциативный набор уникальных ключей, map - ассоциативный набор уникальных ключей и значений, bitset - цепочка битов. Пример использования библиотеки шаблонов STL для объекта химической технологии.

Тестирование и отладка

Типовые ошибки объектно-ориентированного программирования. Разработка тестовых планов. Отладка. Отладочные средства изучаемой среды программирования. Доработка программного кода при решении задач системного анализа. Оформление и комментирование программного кода.


Курсовой проект по дисциплине

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

Перечень работ включает:


Самостоятельная работа по дисциплине

Рабочей программой дисциплины предусмотрена самостоятельная работа студентов, которая проводится с целью углубления знаний по дисциплине и выполнения курсовой работы и предусматривает изучение следующих вопросов:

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


Список литературы по дисциплине

Учебно-методическое обеспечение дисциплины включает печатную и электронную литературу, интегрированные справочные системы, авторские методические материалы, Интернет публикации и форумы.

  1. Павловская, Т.А. С++. Объектно-ориентированное программирование. Практикум: учебное пособие. / Т.А. Павловская, Ю.А. Щупак.- М.; СПб.; Н.Новгород: Питер, 2008.- 264 с.
  2. Дейл, Н. Программирование С++. / Н. Дейл, Ч. Уимз, М. Хедингтон; пер. с англ.- СПб.: ДМК Пресс, 2007.- 672 с.
  3. Прата, С. Язык программирования Си. Лекции и упражнения. / С. Прата; пер. с англ.- 5-е изд.- М.: Вильямс, 2007.- 1181 с.
  4. Амерааль, Л. STL для программистов на С++. / Л. Амерааль; пер. с англ.- СПб.: ДМК Пресс, 2006.- 240 с.
  5. Страуструп, Б. Язык программирования С++. / Б. Страуструп; пер. с англ.- М.: Бином-Пресс, 2004.- 1098 с.
  6. Лафоре, Р. Объектно-ориентированное программирование в С++. / Р. Лафоре.- СПб: Питер, 2012.- 928 с.
  7. Хорев, П.Б. Технологии объектно-ориентированного программирования. / П.Б. Хорев.- М.: «Академия», 2008.- 448 с.

Материально-техническое обеспечение дисциплины

Классы 1, 4, 5, 6, 9 (кафедры системного анализа), Microsoft Windows 7, Internet Explorer, Microsoft Visual Studio 2010, Microsoft Word 2010, Microsoft PowerPoint 2010


Вернуться к списку дисциплин бакалавриата

Страничка разработчика УМК/РПД дисциплин