Файл: Применение объектно-ориентированного подхода при проектирование информационной системы.pdf
Добавлен: 29.06.2023
Просмотров: 95
Скачиваний: 3
СОДЕРЖАНИЕ
1.2 Методологии разработки информационных систем
2. Объектно-ориентированная структура моделей
2.2 Понятия ООП в применении к моделированию
2.3 Существующие объектные средства моделирования
2.4 Объектно-ориентированная методология моделирования
2.5 Пример использования: моделирование организма человека
Таблица 1.
Главные различия информационных систем и систем реального времени.
Информационные системы |
Системы реального времени |
Управляемы данными |
Управляемы событиями |
Сложные структуры данных |
Простые структуры данных |
Большой объем входных данных |
Малое количество входных данных |
Интенсивный ввод/вывод |
Интенсивные вычисления |
Машинная независимость |
Машинная зависимость |
Для проектирования систем реального времени используются специальные типы структурных диаграмм: диаграммы потоков управления, диаграммы переходов состояний, матрицы состояний/событий, таблицы решений и др.
Однако многие из них являются вариациями структурных диаграмм для проектирования информационных систем. Более того, известные структурные методологии разработки систем реального времени базируются на методологиях разработки информационных систем, расширяя их соответствующими методами и нотациями.
Известные структурные методологии:
1) SADT (Structured Analysis and Design Technique) — процедурно-ориентированная и ориентированная на данные методология (два варианта использования) для информационных систем. Введена Россом (Ross) в 1973 г.; 2) Гейна-Сарсона (Gane-Sarson) - процедурно-ориентированная методология для информационных систем и систем реального времени; 3) Йодана-Де Марко (Yourdon/DeMarko) - процедурно-ориентированная методология для информационных систем и систем реального времени; 4) Джексона (Jackson) — ориентированная на данные методология для информационных систем и систем реального времени; 5) Мартина (Martin) - информационно-ориентированная методология для информационных систем;
6) Уорда-Меллора (Ward-Mellor) — методология анализа и проектирования систем реального времени; 7) Хатли (Hatley) — методология анализа и проектирования систем реального времени.
Кроме того, крупные компании — производители ПО разрабатывают собственные методологии на основе известных классических методологий. Главной отличительной чертой таких методологий является их ориентация на конкретное CASE-средство анализа и проектирования, производимое и/или продвигаемое компанией.
В различных методологиях для функционального моделирования могут использоваться диаграммы потоков данных (DFD) в различных нотациях или SADT-диаграммы в нотации IDEF0.
Это два приблизительно одинаковых по мощности языка передачи понимания. И одним из основных критериев выбора должен являться следующий: насколько хорошо каждым из этих языков владеет консультант, аналитик, проектировщик.Соотношение CASE-средств, поддерживающих эти методы, примерно 93 % и 3 % соответственно, остальные 3 % — другие методы.
SADT-диаграммы создавались для проектирования систем вообще, тогда как DFD с самого начала создавались для проектирования программных систем и имеют набор элементов, адекватно отражающих специфику таких систем (например, хранилища данных являются прообразами файлов или баз данных, внешние сущности отражают взаимодействие моделируемой системы с внешним миром).
SADT-диаграммы значительно менее выразительны и менее удобны для моделирования систем обработки информации. Дуги в SADT-диаграммах жестко типизированы, в то же время применительно к системам обработки информации стирается смысловое различие между входами, управлениями, выходами.
2. Объектно-ориентированная структура моделей
2.1 Объектно-ориентированный подход как основа для сочетания математического и имитационного моделирования
При создании моделей сложных систем часто возникает необходимость в применении мощного математического аппарата одновременно с использованием преимуществ имитационного моделирования. Под математическим аппаратом здесь понимается современные методы численного решения дифференциальных уравнений (как обыкновенных, так и в частных производных). Слово «имитационное моделирование» используется в узком смысле, прежде всего как способ формализации знаний экспертов определённой предметной области с последующим решением полученной системы дискретных или простейших дифференциальных уравнений.[2]
Математические модели обычно игнорируют проблему оптимального представления знаний экспертов о моделируемой системе и сосредотачиваются на задаче обработки этих знаний, которые выражены в непонятной для экспертов математической форме. Ниже перечислены некоторые недостатки математического моделирования, следующие отсюда:
1) большое количество неизвестных исходных данных, приводящее к огромным затратам на отладочные вычислительные эксперименты;
2) проблема верификации моделей, связанная с тем, что выходные данные моделей не соответствуют структуре предметной области;
3) недостаточный учёт нелинейных взаимодействий в системе, для которых известны лишь эмпирические оценки;
4) сложность развития моделей, обусловленная, прежде всего, тем, что излишняя степень их формализации не позволяет работать с ними эксперту – не математику.
С другой стороны, в рамках имитационного подхода практически невозможно рассматривать распределённые модели. Кроме того, с ростом сложности даже «точечных» моделей размерность соответствующих им систем уравнений начинает превосходить разумные пределы, а свойственная имитационным моделям простота теряется.
Математический и имитационный подходы имеет смысл сочетать, к примеру, при комплексном моделировании организма человека, – именно эта задача будет использоваться. Для такой сложной системы, как человек, без современных методов вычислительной математики не обойтись при моделировании физических процессов, например, при расчёте переноса веществ кровеносной (дыхательной) системой и при расчёте скоростей течения крови (воздуха), на котором происходит этот перенос. Однако не менее важным является использование в моделях сложных систем неточных эмпирических зависимостей – регуляторных закономерностей в человеческом организме, – и для этого необходим имитационный подход.
Конечно, было бы хорошо соединить эффективность математических методов с такими свойствами имитационных моделей, как наглядность, близость к предметной области и, главное, простота развития. Однако проблема заключается в отсутствии общепринятой основы для построения комплексных моделей, которые бы сочетали достоинства обоих подходов. Эта основа должна быть одинаково удобной как для имитационного представления структуры моделируемой системы, так и для её формализации и обработки математическими методами.
Процедурно-ориентированные библиотеки вычислительных алгоритмов на низкоуровневых языках типа FORTRAN и C не подходят в качестве такой основы хотя бы потому, что задачу для них нельзя представить наглядно и следует формулировать на языке уравнений. Кроме того, какими бы универсальными ни были процедуры библиотек, часто требуется расширять их возможности (или, наоборот, сужать эти возможности для упрощения использования, для уменьшения затрат машинного времени и т.п.). Однако если библиотека реализована на процедурном (структурном) языке программирования, для незначительного изменения в ней какого-либо численного метода необходимо существенно корректировать его код. При этом неизвестно, будут ли после такой корректировки правильно работать программы, использовавшие данный численный метод в его первоначальном варианте. Ещё большие трудности возникают, когда появляются новые версии библиотеки – после этого нужно либо провести заново все необходимые изменения в коде, либо пользоваться старыми, но зато хорошо адаптированными к решаемым задачам, версиями численных методов.[3]
В противоположность процедурным библиотекам вычислительной математики, наглядность и возможность развития свойственна средствам имитационного моделирования, подобным встроенному в математический пакет MatLab средству Simulink и ведущим начало от высокоуровневых языков моделирования типа Dynamo и Stella. Однако эти средства пригодны лишь для не слишком сложных в математическом смысле задач, и принятый в них подход не может служить основой для сочетания имитации с современной вычислительной математикой. В частности, он не подходит к решению уравнений в частных производных.
В качестве основы для совместной реализации математического и имитационного способов моделирования очень хорошо подходит объектно-ориентированный подход (ООП). А именно, что построенные на объектно-ориентированной основе модели
1) как имитационные модели, наглядны, пригодны к быстрому расширению и учёту большого числа разнородных закономерностей;
2) как математические модели, могут эффективно решать сложные, в том числе пространственно-распределённые задачи.
После того, как будут обоснованы эти утверждения и будет построена объектно-ориентированная структура обобщённой модели, получает смысл.
Комплексные модели |
|
Математические модели |
Имитационные модели |
Моделирование сложных, в том числе распределённых, систем |
Наглядность структуры Возможность быстрого развития |
Привязка процедур к данным, |
Агрегация Наследование |
Объектно-ориентированный подход |
|
Рисунок 2. ООП как основа для сочетания математического и имитационного моделирования |
2.2 Понятия ООП в применении к моделированию
Любая объектная модель базируется на понятии объекта как совокупности данных, к которым привязаны некоторые процедуры их обработки (методы). При этом каждое данное из этой совокупности также, в свою очередь, может являться объектом (понятие агрегации). Если в процедурной модели процедуры манипулируют пассивно хранящимися данными, то в объектной сами данные – объекты – взаимодействуют между собой. Множество похожих объектов с одним и тем же набором свойств и методов образует класс, который, собственно, и является минимальным блоком программы, аналогом процедуры.
Согласно общепринятой терминологии, объектно-ориентированная модель отличается от просто объектной возможностью наследования классов объектов. При наследовании существующего класса (суперкласса) получается новый класс, называемый подклассом. Объекты подкласса имеют те же свойства, и могут участвовать в тех же взаимодействиях, что и объекты суперкласса. При этом подкласс может иметь новые свойства и новые методы, а также изменять методы своего суперкласса. Наследование облегчает изменение и расширение объектно-ориентированных систем.
Агрегация объектов Наследование классов |
Рисунок 3. Понятия объектно-ориентированного подхода |
В таблице 2 перечисленные выше понятия рассматриваются подробнее, причём акцент делается на их применение в моделировании.
Таблица 2
Использование объектно-ориентированного подхода в задачах моделирования.
Суть ООП состоит в следующем: 1. Программа представляет собой совокупность объектов, объединяющих данные и методы их обработки. 1.1. Смысл объекта (поведение) отделён от его реализации (структуры) за счёт того, что методы могут не содержать кода, а данные имеют определённую область видимости. 1.2. Данные объектов (поля) также могут быть объектами. 2. Каждый объект относится к определённому типу (классу), т.е. является его экземпляром. 3. Тип (класс) может наследовать часть данных и методов от других типов (классов), то есть быть их подтипом. Примечание к пункту 1.2: в одном и том же поле могут храниться объекты определённого типа и всех его подтипов. |
Суть объектно-ориентированной модели состоит в следующем: 1. Модель представляет собой совокупность элементов, объединяющих параметры модели и методы их расчёта. 1.1. Смысл элемента (набор параметров и основные методы их обработки) отделён от его реализации (от вспомогательных данных и методов). 1.2. Данные элементов (параметры, ссылки на соседние элементы и т.д.) также могут быть объектами. 2. Каждый элемент относится к определённому типу (классу), и вычислительные алгоритмы обычно разделены на несколько методов разных классов. 3. Тип (класс) может наследовать часть данных и методов от других типов (классов), причём данные и аргументы методов могут быть не только определённого типа, но и всех его подтипов |
ООП имеет следующие преимущества перед другими подходами: 1) компактность программ, уменьшающая их стоимость и время их разработки; 2) возможность повторного использования классов, программ и проектов; 3) эффективное разделение работы между дизайнерами и программистами; 4) быстрая адаптация программ к изменяющимся задачам и требованиям; 5) уменьшение риска разработки сложных программ за счёт интеграции и тестирования их компонентов на протяжении всего времени разработки, а не на последнем её этапе. 6) ориентация на человеческое восприятие мира, позволяющая программировать даже без понимания деталей работы компьютера. |
Объектно-ориентированные модели имеют следующие преимущества перед процедурно-ориентированными: 1) компактность модели; 2) возможность повторного использования частей модели; 3) эффективное разделение работы над численными методами, содержанием и наглядным представлением модели; 4) быстрая адаптация модели к изменению структуры и численных методов; 5) уменьшение риска разработки сложных моделей за счёт интеграции и тестирования их частей на протяжении всего времени разработки, а не на последнем её этапе; 6) ориентация на предметную область модели, позволяющая моделировать без глубокого знания численных методов и, возможно, без умения программировать |