Объектно-ориентированный подход к моделированию и спецификации сущностей со сложным поведением



© 2006 Н.И. Поликарпова

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

Полный текст работы

Аннотация

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

С точки зрения автора, в объектно-ориентированном проектировании автоматный подход должен использоваться не для описания системы в целом, а для моделирования каждой сущности со сложным поведением в отдельности. Автор предлагает в качестве модели такой сущности автоматизированный абстрактный тип данных (ААТД) - тип данных, содержащий конечный автомат для описания логики поведения и вложенный АТД для описания его семантики.

В работе также рассматривается проблема разработки спецификации (контракта) для типа данных, моделирующего сущность со сложным поведением. Автором предлагается метод спецификации ААТД, при котором описание логики поведения отделяется от описания его семантики и для каждого из них используется наиболее подходящая нотация. В работе также представлен алгоритм преобразования спецификации ААТД в спецификацию эквивалентного ему обыкновенного абстрактного типа данных. Этот алгоритм позволяет автоматически генерировать контракт, имеющий общепринятую структуру, а, следовательно, использовать для сущностей со сложным поведением стандартные приемы и инструменты проектирования по контракту.

Кроме того, в работе апробирована техника перенесения на ААТД свойств и отношений, характерных для обыкновенных типов данных. В частности, определение отношения подтипизации, предложенное Б. Лисков и Дж. Уинг, было переформулировано автором для автоматизированных типов данных. Наличие такого определения позволяет формально проверить возможность корректного повторного использования пользовательского кода с различными автоматизированными типами.