Методы анализа и построения моделей про
Разработка ПС начинается с анализа предметной области (ПрО), которая автоматизируется, для выделения в ней объектов, отношений между ними и операций пополнения объектов модели ПрО новыми детализированными свойствами и характеристиками. Наиболее разработанным методом программирования является метод проектирования на основе стандарта и многообразие методов, построенных на основе объектно-ориентированного подхода и предназначенных для определения объектных моделей (ОМ), близких к концептуальным моделям, и позволяющих на их основе проводить проектирование структуры или архитектуры системы.
На этапе анализа ПрО при построении модели ОМ проводится выявление функциональных задач и требований к их реализации и выполнению. Требования формируются разработчиком и заказчиком совместно, они документируются и утверждаются, являясь основой реализации архитектуры системы.
Далее рассматривается два направления проектирования архитектуры системы, основанные на применении:
1) объектно-ориентированных методов (например, OOAS, OOA, OMT и др.);
2) стандартных и общесистемных методов (Гост ГОСТ 34.601-90, ER-моделирование и др.).
Объектно–ориентированные методы анализа и построения моделей ПрО
Наиболее распространенными методами объектно-ориентированного анализа ПрО, широко используемые в практике программирования являются следующие:
– метод OOAS, позволяющий выделить объекты реального мира ПрО, определить сущности, свойства и отношения объектов и из них построить информационную модель, модель состояний объектов и процессов представления потоков данных (dataflow) [1];
– метод OOA позволяет провести анализ, определить требований к ПрО, специфицировать потоки данных в ПрО в виде диаграммной модели [2];
– метод SD структурного проектирования структуры системы, данных и программы преобразования входных данных в выходные с помощью структурных карт Джексона [3-5];
– методология OOAD позволяет построить модели ПрО с помощью ER-моделирования, понятий и их отношений с использованием структурных диаграмм, диаграмм «сущность-связь» и матрицы информационного управления [6, 7];
– объектное OMT моделирование объектной, динамической, функциональной моделей и взаимодействия объектов [8, 9];
– метод Г.Буча, включающий классы, суперклассы и операции наследования, полиморфизма и упрятывания информации об объектах, дополненный вариантами использования Джекобсона для задания сценариев работы системы и задач ПрО и диаграммными средствами Румбаха, в результате имеем UML-метод для анализа ПрО и представления архитектуры системы с помощью набора диаграмм взаимодействующих объектов [10, 11];
– метод построения объектной эталонной модели в CORBA и предоставления набора сервисных системных компонентов общего пользования для обеспечения функционирования объектных компонентов распределенных приложений [12, 13];
– метод генерации частей систем из готовых компонентов (generative programming), объединивший в себе возможности ООП, компонентного и аспектного проектирования и развитый средствами многоразового использования отдельных членов семейства программ ПрО, функциональные и нефункциональные требования представляются в модели характеристик и др. [12].
Наиболее используемым практическим методом проектирования объектной модели ПрО, является метод, реализованный в системе CORBA. Основным элементом модели является объект, который именуется и инкапсулирует некоторую сущность ПрО. Объекту соответствует одна или несколько операций обращения к методу объекта. Объекты группируются в типы, а их экземпляры в подтипы/супертипы. Объекты инкапсулируют методы реализации, которые невидимы во внешнем интерфейсе, операции объектов вызывают этот метод для выполнения. Под влиянием этих операций объект получает некоторое состояние. Специализация типа определяется постепенно на этапах стратегии, анализа, проектирования и реализации объектов. Взаимодействие объектов осуществляется брокером объектных запросов, операций.
Общая характеристика разновидностей объектно–ориентированных методов показывает, что они имеют много общих черт (например, ER-моделирование), и свои специфические особенности. Их разработчики вводили в метод необходимые новые понятия, которые семантически совпадали с другими, ранее определенными.
Основные понятия анализа ПрО
Предлагаемый метод основан на объектно-ориентированном подходе, теории множеств и предназначен для выявления сущностей ПрО, формализации представления объектов и их отношений. При этом при построении концептуальной модели используются следующие понятия.
Объекты ПрО - это абстрактные образы ПрО с множеством свойств и характеристик, их определение зависит от уровня абстракции и совокупности полученных о них знаний. Спецификация объекта включает:
<имя объекта > <концепт>,
где <имя объекта> – идентификатор, строка из литер и десятичных чисел;
< концепт > – некоторый денотат, определяющий объект реального мира в соответствии с интерпретацией сущности моделируемой ПрО.
Предметная область (домен) – это совокупность объектов и связей, которые представляются описанием свойств и характеристик, специфических для ПрО, и задач, которые выполняются в системе. Пространство ПрО делится на пространство задач и решений. Пространство задач – это сущности, концепты, понятия ПрО, а пространство решений – это множество функциональных компонентов, которым соответствуют задачи ПрО, описанные с помощью понятий и концептов.
Модель ПрО строится с использованием словаря терминов, точных определений терминов этого словаря, характеристик объектов и процессов, которые протекают в системе, а также множества синонимов и классифицированных логических взаимосвязей между этими терминами.
Концептуальная модель – это модель ПрО из сущностей и отношений, разработанная без ориентации на программные и технические средства выполнения задач ПрО, которые будут добавляться в дальнейшем в процессе проектирования системы.
Под концептом понимается абстрактное собрание сущностей ПрО, которые имеют одни и те же характеристики. Все сущности ПрО, которые объединяет концепт согласуются с характеристиками, которые в системе ассоциируются с атрибутами. Каждый концепт в модели обозначается уникальным именем и идентификатором. Группа подобных концептов – это родительский концепт, который определяется заведомо определенным набором общих атрибутов для данной группы концептов.
Атрибут - это абстракция, которой владеют все абстрагированные концепты сущности. Каждый атрибут обозначается именем, уникальным в границах описания концепта. Множество объединенных в группу атрибутов, имеет идентификатор группы атрибутов. Множество идентификаторов групп могут быть объединены в класс и иметь идентификатор класса.
Концепт вместе со своими атрибутами в информационной концептуальной модели представляется графически или в текстовом виде.
Отношение - это абстракция набора связей, которые имеют место или возникают между разными видами объектов ПрО, абстрагированные как концепты. Каждая связь имеет уникальный идентификатор. В информационной модели отношения могут быть текстовыми или графическими. Для формализации отношений между концептами добавляются вспомогательные атрибуты, ссылки на идентификаторы отношений. Некоторые отношения образуются как следствие существования других отношений.
Выделение сущностей ПрО проводиться с учетом отличий, определяемых соответствующими понятийными структурами. Объекты, как абстракции реального мира, обладают поведением, обусловленным свойствами и отношениями с другими объектами, структурно упорядочиваются посредством применения теоретико-множественных операций (принадлежности, объединения, пересечения, разности и др.) к множеству (классу) объектов для установления отношений между объектами.. Объекты могут находиться в отношениях, или связях между собой.
Различаются статические (постоянные) связи, которые не изменяются или изменяются редко, и динамические связи, которые имеют определенные состояния и изменяться на протяжении сеанса функционирования системы.
Статические связи реализуются путем добавления специальных атрибутов для объектов, которые принимают в них участие. Преобладающей моделью представления данных является реляционная модель, в которой не разрешается иметь множественные (повторяемые) значения атрибутов, и добавление выполняется по таким правилам:
а) в случае связи 1:1 дополнительный атрибут может определяться для одного из объектов связи и содержать идентификатор экземпляра, который принимает участие в связи;
б) в случае связи 1:N дополнительный атрибут предоставляет объекту N экземпляров, принимающих участие в связи;
в) в случае связи N:M создается ассоциативный объект, который фиксирует пару экземпляров (по одному для каждого из объектов), принимающих участие в связи.
Такой объект, кроме своего названия, имеет первым атрибутом идентификатор первого из связанных экземпляров объектов, а вторым атрибутом - идентификатор экземпляра второго.
Связи между объектами могут эволюционировать с течением времени, и состояния эволюции может существенно влиять на ход решения соответствующей задачи. Для таких случаев связи обязательно строится ассоциативный объект и определяется модель состояний (см. тема 3.). Для представления состояния ассоциативного объекта в состав его атрибутов добавляется атрибут, который фиксирует его текущее состояние.
Среди определенных действий, которые сопровождают переходы в состояния для модели состояний связей, должны быть операции создания нового экземпляра ассоциативного объекта (если новая пара экземпляров вступает в связь) и его уничтожения (если связь прерывается).