(c) Larry Ewing, Simon Budig, Garrett LeSage
с 1994 г.

Кафедра Информатики и Математического Обеспечения

ПетрГУ | ИМиИТ | О кафедре | Мобильные платформы | Лаборатория ИТС | Семинары НФИ/AMICT
Сотрудники | Выпускники | Учебный процесс | Табель-календарь | Курсовые и выпускные работы
Вычислительные ресурсы | Публикации | Архив новостей | Контактная информация

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

Задание

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

Разработать программу, симулирующую работу группы лифтов.

Командные проекты

Программный проект выполняется командами от 3 до 5 человек. Необходимо пройти все этапы разработки от анализа требований до реализации и тестирования с использованием объектно-ориентированного подхода. Рекомендуется гибкая итеративная модель процесса разработки. Рекомендуемый язык программирования — Ruby. Каждую неделю команда отчитывается по текущему состоянию проекта.

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

  1. История развития ООП, основные языки программирования.
  2. Основные понятия объектно-ориентированного программирования. Классы и объекты.
  3. Абстрактные типы данных. Определение и мотивация.
  4. Классы. Поля, методы, экземпляры. Композиционные отношения классов.
  5. Наследование. Принцип подстановки и проблема <<круг-эллипс>>, варианты ее решения.
  6. Множественное наследование и проблема ромба. Альтернативы множественному наследованию.
  7. Объекты. Тип, идентичность, изменяемость, состояние объектов, объекты-значения и объекты-ссылки.
  8. Жизненный цикл разработки ПО. Макропроцесс. Гибкий метод и следование плану. Микропроцесс (анализ и проектирование).
  9. Проектирование, основные принципы. Факторы, ограничивающие гибкость архитектуры.
  10. Шаблоны проектирования, их назначение, классификация и содержание.
  11. Порождающие шаблоны проектирования: абстрактная фабрика, фабричный метод.
  12. Порождающие шаблоны проектирования: строитель, прототип, объект-одиночка.
  13. Структурные шаблоны проектирования: адаптер, декоратор, заместитель.
  14. Структурные шаблоны проектирования: мост, фасад, приспособленец, компоновщик.
  15. Поведенческие шаблоны проектирования: команда, цепочка ответственности, интерпретатор.
  16. Поведенческие шаблоны проектирования: итератор, посредник, хранитель.
  17. Поведенческие шаблоны проектирования: наблюдатель, стратегия, состояние.
  18. Шаблоны параллельного программирования: активный объект, монитор, блокировка с двойной проверкой.

Консультация 9.01.2013 в 15:15, сбор у 217.

Экзамен 10.01.2013.

Литература

  1. Meyer, B. Object-Oriented Software Construction. Prentice Hall, 1997.
  2. 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.
  3. Gamma, E., Helm, R., Johnson, R. and Vlissides, J. M. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional, Hardcover, 1994.