Система сбора данных на метеорологической станции (пример из книги Г. Буча)



© А.А. Зарубин, Д.С. Краюхин, А.А. Шалыто

Санкт-Петербургский государственный университет информационных технологий, механики и оптики

Проектная документация в формате pdf
Исполняемая программа
Исходные тексты

Аннотация

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

В качестве задачи был взят пример из главы восемь книги Г. Буча — система сбора данных на метеорологической станции. Анализ примера позволил сделать вывод, что Г. Буч не ставил своей целью реализацию проекта, так как при такой цели его текст лишился бы налета поверхностности и обилия недочетов и противоречий. В настоящей работе пройден путь проектирования и реализации, который «набросал» Г. Буч.

Данная работа относится к группе проектов, направленных на совершенствование классических примеров, приведенных на настоящем сайте — к ним относятся работы по улучшению калькулятора Б. Страуструпа и лифта Д. Кнута.

При решении задачи были использованы две технологии: предложенный Г. Бучем объектно-ориентированный анализ и автоматный подход, предложенный А.А. Шалыто, заменяющий использование диаграмм statechart на графы переходов. Применение автоматного подхода позволяет избавиться от термина «вложенное состояние», которое вызвало массу осложнений при попытке реализации, заменив его термином «вложенный автомат». Проект реализован на языке C++.

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