Объектно-ориентированный анализ и программирование

Курс по выбору для магистрантов первого года обучения направлений «Прикладная математика и информатика» и «Информационные системы и технологии». Курс посвящен объектно-ориентированным методам разработки программного обеспечения.

Задание 1

Разработать объектную модель группы лифтов. В здании определенное количество этажей, обслуживаемых группой лифтов. На каждом промежуточном этаже расположены две кнопки вызова, соответствующие направлениям вверх и вниз, на первом и последнем — по одной кнопке. На вызов может прийти любой лифт группы. Внутри лифта расположены кнопки, задающие этажи, на которых нужно остановиться. В одном лифте могут ехать пассажиры, выходящие на разных этажах. Лифт может останавливаться на промежуточных этажах, чтобы забрать посетителей, едущих в том же направлении. Для лифтов задана вместимость и время посадки/высадки пассажиров.

Каждый посетитель входит в здание на первом этаже, проводит какое-то время внутри, возможно, перемещаясь между этажами, и покидает здание через первый этаж.

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

Задание 2

  • Изучить среду Фаро и синтаксис языка Смолток.
  • Реализовать Задание 1 в Фаро.

Вопросы к экзамену

  • История развития ООП, основные языки программирования.
  • Основные понятия объектно-ориентированного программирования. Классы и объекты.
  • Абстрактные типы данных. Определение и мотивация.
  • Классы. Поля, методы, экземпляры. Композиционные отношения классов.
  • Наследование. Принцип подстановки и проблема «круг-эллипс», варианты ее решения.
  • Множественное наследование и проблема ромба. Альтернативы множественному наследованию.
  • Объекты. Тип, идентичность, изменяемость, состояние объектов, объекты-значения и объекты-ссылки.
  • Жизненный цикл разработки ПО. Макропроцесс. Гибкий метод и следование плану. Микропроцесс (анализ и проектирование).
  • Проектирование, основные принципы. Факторы, ограничивающие гибкость архитектуры.
  • Шаблоны проектирования, их назначение, классификация и содержание.
  • Порождающие шаблоны проектирования: абстрактная фабрика, фабричный метод.
  • Порождающие шаблоны проектирования: строитель, прототип, объект-одиночка.
  • Структурные шаблоны проектирования: адаптер, декоратор, заместитель.
  • Структурные шаблоны проектирования: мост, фасад, приспособленец, компоновщик.
  • Поведенческие шаблоны проектирования: команда, цепочка ответственности, интерпретатор.
  • Поведенческие шаблоны проектирования: итератор, посредник, хранитель.
  • Поведенческие шаблоны проектирования: наблюдатель, стратегия, состояние.

План лекций.

Консультация и прием заданий:

22508
19.01, 13:00 в 217,
22509
26.01, 13:00 в 217.

Экзамен:

22508
20.01, 11:00,
22509
27.01, 11:00.

Литература и Интернет-ресурсы

  • Объектно-ориентированный анализ, проектирование и программирование
    • Meyer, B. Object-Oriented Software Construction. Prentice Hall, 1997.
    • Booch, G., Maksimchuk, R. A., Engel, M. W., Young, B. J., Conallen, J. and Houston, K. A. Object-Oriented Analysis and Design with Applications (3rd Edition). Addison-Wesley Professional, Hardcover, 2007.
    • Gamma, E., Helm, R., Johnson, R. and Vlissides, J. M. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional, Hardcover, 1994.
  • Смолток

Архив

Author: М. А. Крышень

Created: 2015-01-19 Пн 15:01

Emacs 24.3.1 (Org mode 8.2.10)

Validate