На правах рекламы:
ISSN 0236-235X (P)
ISSN 2311-2735 (E)

Авторитетность издания

ВАК - К1
RSCI, ядро РИНЦ

Добавить в закладки

Следующий номер на сайте

2
Ожидается:
16 Июня 2024

Реализация принципов объектно-ориентированного подхода в САИПР

Статья опубликована в выпуске журнала № 2 за 1996 год.
Аннотация:
Abstract:
Авторы: Волков В.В. () - , Мешков С.А. () - , Норов А.Т. () -
Ключевое слово:
Ключевое слово:
Количество просмотров: 7063
Версия для печати

Размер шрифта:       Шрифт:

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

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

Этому есть все предпосылки в современных технологиях и тенденциях разработки общесистемных и прикладных программных средств.

Объектно-ориентированная технология предполагает:

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

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

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

Общение пользователя с системой осуществляется посредством по меньшей мере трех языков:

- языка построения модели предмета проектирования;

- языка реализации методов;

- языка определения вычислительного эксперимента.

Язык построения модели предмета проектирования предназначен для:

- построения структуры модели из предопределенных объектов;

- модификации существующей модели;

- определения новых классов.

Язык реализации методов служит для описания реализации методов вновь создаваемых классов и построен в виде сочетания графического диалогового интерфейса и простого текстового языка.

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

Не обнаруживается принципиальных сложностей и в реализации языка для удовлетворения дизайнерских способностей проектанта. Для решения этой задачи необходимо предусмотреть стандартный набор общесистемных классов, методы которых реализуют традиционно удобные интерфейсные возможности, такие как диалоговые окна и окна ввода, полосы скроллинга, кнопки и т.п. Поскольку данный язык можно реализовать на чисто интерактивном уровне, пользователь сможет проектировать собственный интерфейсный мир для целей конкретного исследования, пользуясь в основном манипулятором типа "мышь" в стиле "drag-and-drop".

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

ИС - программное средство, предназначенное для:

à        создания и модификации моделей предмета проектирования;

à         проведения вычислительных экспериментов на моделях;

à        совместной работы коллектива исполнителей над одним проектом;

à        оформления результатов исследований в виде печатных документов.

Очень укрупненно среда исследовательского проектирования должна включать и поддерживать следующие компоненты:

- иерархию классов;

- объектно-ориентированные модели на основе динамических объектов;

- разработку исследовательских алгоритмов (методов);

- управление проведением вычислительных экспериментов;

- геометрическое моделирование и визуализацию объектов;

- глобальные библиотеки классов, моделей и объектов;

- локальные библиотеки моделей, объектов и вариантных методов;

- доступ к архивам моделей и результатам экспериментов;

- библиотеку стандартных инженерных расчетов;

- трассировку и отладку объектно-ориентированных моделей;

- систему документирования;

- графическое представление результатов экспериментов.

До начала эксплуатации интегрированной среды САИПР необходимо разработать некоторый стартовый набор прототипов, допускающих проведение основных категорий исследований. При создании новых экземпляров имеющихся классов они должны быть включены в структуру модели одним из стандартных способов, поддерживаемых интегрированной средой.

При создании новых объектов, наследуемых от уже имеющихся в прототипе, возможно:

- расширение совокупности данных, содержащихся в объекте;

- расширение набора методов, реализуемых объектом;

-изменение реализации имеющихся методов;

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

Для осуществления этих функций интегрированная среда должна предоставлять пользователю:

- наглядный и экономный визуальный интерфейс;

- интеллектуальную систему подсказок, предвосхищающую наиболее вероятные и/или уместные в данном контексте действия пользователя;

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

- исчерпывающую систему встроенной помощи с возможностями контекстного поиска.

ИС оперирует со следующими основными элементами:

à        групповыми: класс, объект, модель, проект, графический образ, документ;

à        информационными: поля данных объектов, глобальные переменные и константы;

à        алгоритмическими: методы классов, независимые процедуры и функции, сценарии.

Независимые процедуры и функции - процедуры и функции общего пользования, не являющиеся методами классов. К таковым относятся, например, процедуры и функции, реализующие общематематические и вычислительные алгоритмы.

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

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

-  определение классов;

-  определение состава и структуры модели;

-  отладка методической части модели.

Для нахождения класса необходимо определить:

- наследование (то есть совокупность предков определяемого класса);

-совокупность полей (то есть элементов данных, описывающих состояние объекта, или иными словами параметров объекта);

- совокупность методов (то есть процедур и функций, определяющих поведение объекта).

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

Для распознавания полей данных необходимо определить идентификатор поля, этикетку, единицу измерения, формат вывода, средства контроля.

Средства контроля включают:

- диапазон допустимых значений поля;-атрибут использования поля (входное,

изменяемое, постоянное); этот атрибут используется для проверки готовности объекта к счету (так, все входные и постоянные поля должны быть инициализированы).

При определении полей данных пользователю необходим доступ к списку полей предков с возможностью инкрементального поиска.

Для определения метода надо найти идентификатор метода, этикетку, атрибут использования метода, список параметров и тело метода, то есть его алгоритм.

Все методы реализуются как виртуальные.

Атрибут использования метода определяет, является ли метод непосредственно вызываемым, то есть, может ли данный метод быть выполнен непосредственно из интерфейса пользователя (в противном случае метод может быть выполнен только посредством вызова из другого модуля).

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

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

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

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

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

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

В части параллельной работы с моделями одного и того же реального объекта ИС обеспечивает следующие возможности:

-  динамической (то есть в течение текущего сеанса) замены отдельных объектов модели на аналогичные объекты другого уровня детализации с контролем допустимости такой замены и с сохранением значений семантически соответствующих полей данных;

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

-  просмотра структуры и текущего состояния упомянутой выше совокупности моделей параллельно по разным уровням детализации с развитыми средствами навигации по компонентам моделей.

Особый интерес для исследовательского проектирования имеют отношения использования и включения.

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

- воздействовать на другие объекты; - подвергаться воздействию со стороны других объектов;

- выполнять обе указанные функции.

Отношение включения подразумевает возможность построения сложных агрегированных объектов.

Создание и поддержка агрегатных моделей (например корабль + противник + среда + ...) основывается на программировании, управляемом событиями, в стиле Turbo Vision и Windows.

В рамках ИС предусматриваются несколько уровней контроля текущего состояния модели и ее составляющих:

- наиболее общий уровень связан с наличием предопределенного метода типа valid (в стиле Turbo Vision), который вызывается автоматически при инициализации объекта, перед началом счета, после счета и при ликвидации объекта;

- контроль инициализации полей, требуемых для корректной вставки объекта в структуру модели, выполняется констрактором объекта;

-контроль готовности объекта к счету осуществляется перед началом счета, исходя из атрибута использования полей объекта;

- отдельные типы контроля (например на диапазон допустимых значений) могут быть встроенными с возможностью отключения контроля для всех полей и по выбору.

Средства отладки ИС предоставляют пользователю следующие возможности:

à        независимый запуск отдельных алгоритмических элементов с использованием текущего состояния модели и проекта в качестве исходных данных с возможностью переопределения их значений и автоматическим запросом недостающих данных;

à        режим пошагового выполнения отлаживаемого алгоритмического элемента;

à        установка точек прерывания в указанной точке текста, по входу значений заданных переменных в определенный диапазон или выходу из этого диапазона, по возникновению события указанного класса с автоматическим отображением текста обработчика данного класса событий;

à        непрерывное отображение значений выбранных переменных с удобным интерфейсом для задания списка отображаемых переменных (автоматизированная контекстная квалификация, извлечение идентификатора из любого окна);

à        возврат к точке ошибки и просмотр значений переменных на момент ошибки;

à        просмотр стека вызовов и значений локальных переменных в любой его точке;

à         просмотр структуры классов и актуальной структуры модели, а также значений элементов данных с развитыми средствами навигации;

à        определение совокупности отладочных данных, общих для всего проекта.

Для планирования, подготовки, проведения и анализа результатов вычислительного эксперимента интегрированная среда будет позволять без необходимости непосредственного программирования:

-  определять последовательное, условное и циклическое выполнение вычислительных процедур;

-  определять совокупность варьируемых параметров и задавать варианты их значений диапазоном/шагом, списком (перечислением) и условным назначением;

-сохранять определение вычислительного эксперимента и повторять его выполнение с возможной модификацией;

-выбирать определения вычислительного эксперимента из уже имеющихся и его модификацию;

-задавать конкретные значения исходных данных;

-  использовать общесистемные средства визуализации результатов исследования (генераторов экранных форм, отчетов, графиков, диаграмм, системы геометрического моделирования и т.п.);

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

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

-  задавать режим трассировки с возможностью просмотра/модификации доступных значений данных;

-  задавать контрольные точки, в том числе по условию.

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

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

Кроме того, возможно создание методов (и сценариев), позволяющих:

à        получить с графического образа посредством клавиатуры или манипулятора новые значения некоторых параметров (например координаты элементов размещения);

à        осуществить соответствующие расчеты;

à        отобразить на графическом образе полученные результаты.

Наконец предусмотрена возможность определения в сценарии независимого интерфейса пользователя и оформления сценария в качестве независимого приложения.

Средства управления проектом позволяют осуществлять совместную работу коллектива исполнителей, в том числе в условиях ЛВС.

Проект представляет собой набор управляемых ресурсов:

-        структуру классов;

-модель и ее структурные составляющие;

-        права доступа участников проекта к ресурсам.

Средства управления проектом включают:

à                                                                  управление правами доступа к ресурсам ;

à                                оценку корректности состояния проекта;

à                                наблюдение за системной и личными частями проекта.

Средства управления правами доступа позволяют:

-выделить определенную часть проекта как законченную (стабильную) с запретом каких-либо ее изменений без разрешения администратора проекта;

- установить для каждого участника проекта совокупность ресурсов, доступную для чтения, изменения и использования (под правом использования здесь понимается возможность порождения классов-потомков от класса, подлежащего защите); при этом ограничения распространяются как на системную, так и наличную части проекта, чтобы не допустить одновременного изменения некоторой части проекта различными исполнителями.

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

Средства наблюдения за системной и личной частями проекта позволяют определить фактическое состояние управляемых ресурсов в системной и личных частях проекта (что и когда было изменено и т.п.).

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

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

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

Иерархия классов - общее дерево наследования классов. Предполагается, что оно является общим для всей САИПР и сопровождается административной службой системы. В условиях ЛВС место его хранения - файловый сервер. Все пользователи, кроме административной службы, имеют только право чтения информации, содержащейся в иерархии классов.

В библиотеках моделей хранятся готовые и разрабатываемые модели для различных предметов исследовательского проектирования. На этом уровне целесообразно выделить:

- общую библиотеку моделей, содержащую предопределенные модели предметов проектирования высокого уровня (корабль в целом, функциональная подсистема корабля) и текущие модели прорабатываемых проектов;

-локальные библиотеки моделей, принадлежащие отдельным пользователям.

Соответственно общая библиотека сопровождается административной службой, в условиях ЛВС хранится на файловом сервере и доступна для остальных пользователей только для чтения, а локальные библиотеки находятся в ведении отдельных пользователей и хранятся на локальных рабочих станциях.

В библиотеках объектов хранятся конкретные стандартные объекты из общей иерархии классов. Это - источник для построения конкретных моделей. Среди библиотек объектов аналогично библиотекам моделей выделяются общая и локальные библиотеки объектов.

Уровень подбиблиотек методов предназначен для обеспечения пользователя возможностью выбора варианта реализации для определенного метода конкретного объекта. Подбиблиотека методов подчинена этому конкретному объекту и доступна только в контексте этого объекта.

Графический редактор ИС предназначен для создания трехмерных геометрических моделей принятого в рамках ИС типа и предоставляет следующие возможности:

- использование объектов-прототипов на основе координат теоретического чертежа;

-создание и редактирование модели поверхности как посредством обычного текстового интерфейса (например для параметризуемых объектов), так и посредством графически-визуального интерфейса, обеспечиваемого манипулятором типа "мышь";

-создание и редактирование модели, построенной из элементарных тел посредством булевских операций;

-создание и редактирование каркасной модели и получение ее графического представления в виде модели кусочно-аналитической поверхности на основе аппроксимации сплайнами;

- использование возможности "обратной связи", то есть изменения параметров модели путем манипуляций с ее геометрическим изображением.

Графически-визуальный интерфейс редактора основан на работе с манипулятором типа "мышь" в стиле "drag-and-drop" одновременно на нескольких проекциях трехмерного тела.

Стадия анализа результатов вычислительного эксперимента выполняется главным образом непосредственно проектантом-исследователем. Интегрированная среда обеспечивает лишь необходимую поддержку для генерации аналитических материалов.

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

В рамках ИС поддерживаются следующие виды документов:

à        текстовый документ - произвольный текст с возможностью вставки в необходимые точки значений указанных элементов данных;

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

à        графики и диаграммы - графические образы различных типов, формируемые главным образом из массивов числовых данных;

à        геометрические образы - изображения модели предмета проектирования в различных аспектах и проекциях.

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

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

-  сводные таблицы характеристик вариантов проработанных кораблей (судов) с пояснениями к ним;

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

-сводные таблицы (если проводилась оптимизация) по исходным данным, варьируемым параметрам и результатам оптимизации, а также (если предусматривалось) их графическое представление;

-сопроводительные материалы и организационные документы.


Постоянный адрес статьи:
http://swsys.ru/index.php?page=article&id=1074
Версия для печати
Статья опубликована в выпуске журнала № 2 за 1996 год.

Возможно, Вас заинтересуют следующие статьи схожих тематик: