Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Объектно-ориентированное проектирование ЭИС. Метод COMET. Аналитическая модель. Статическое моделирование.




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

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

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

1. Концептуальные понятия и/или физические объекты предметной области

2. Атрибуты концептуальных понятий и/или физических объектов

3. Связи между концептуальными понятиями и/или физическими объектами

Объектно-ориентированное проектирование ЭИС. Метод COMET. Аналитическая модель. Разбиение на объекты

Обзор метода COMET (Concurrent Object Modeling and Architectural Design Method)

Метод COMeT (Сoncurrent Object Modeling Technique) основан на методе COMADM (Concurrent Object Modeling and Architectural Design Method), имея с ним незначительные отличия, обусловленные используемой в методе COMET нотации UML. Указанные два метода разработаны профессором кафедры программотехники университета Джорджа Мэйсона Хассаном Гома (Hassan Gomaa), авторитетным идеологом области проектирования распределенных приложений и приложений реального времени.

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

Основными этапами метода COMET являются:

1. Этап моделирования функциональных требований (Requirements Modeling), которое выполняется в терминах акторов и прецедентов. На данном этапе основное внимание уделяется сбору и классификации требований к системе, в то время как сама система рассматривается как черный ящик.

2. Этап аналитического моделирования (Analysis Modeling), которое выполняется в терминах сущностной модели. На данном этапе основное внимание уделяется предметной области, при этом структура сущностной модели описывается с помощью статического представления модели, а характер поведения — с помощью динамического представления модели. Статическое представление модели выполняется в терминах классов (объектов) предметной области и отношений между ними, в то время как динамическое представление модели выполняется в терминах взаимодействия между объектами.

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

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

Объектно-ориентированное проектирование ЭИС. Метод COMET. Аналитическая модель. Конечные автоматы и диаграммы состояний.

Конечные автоматы используются для моделирования динамических аспектов системы. Многие системы и, в частности, системы реального времени очень сильно зависят от состояния. Это означает, что их работа определяется не только поступающими на вход данными, но и тем, что происходило с системой раньше.

Для описания конечных автоматов применяются диаграммы и таблицы перехода состояний. Диаграмма перехода состояний - это представление конечного автомата в виде графа, вершины которого соответствуют состояниям, а ребра - переходам между ними. Таблица переходов состояний - это табличное представление конечного автомата.

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

Конечные автоматы

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

События и состояния

События

Событие (его также называют дискретным сигналом или стимулом) — это некоторое явление, происходящее в определенный момент времени. Событие атомарно (то есть не прерываемо) и концептуально имеет нулевую продолжительность. Примеры событий: Карточка Вставлена в Банкомат, Введен ПИН-код, Нажат Тормоз, Лифт Уехал.

События могут зависеть друг от друга. Например, событие Карточка Вставлена в Банкомат всегда предшествует событию Введен ПИН-код. С другой стороны, события бывают и совершенно независимыми. Например, событие Карточка Вставлена в Банкомат в Красноярске не зависит от события Карточка Вставлена в Банкомат в Москве.

Событие таймера - это особое событие, описываемое ключевым словом after, которое говорит, что событие происходит по истечении промежутка времени, заданного выражением в скобках, например: after (Юс) или after (промежуток времени). На диаграмме состояний событие таймера вызывает выход из данного состояния. Промежуток времени измеряется от момента входа в состояние до момента выхода из него, обусловленного событием таймера.

Состояния

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

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

активизации.

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

4 События и условия

Условие, или переменная состояния, определяет некий аспект системы, который способен оставаться истинным или ложным на протяжении конечного промежутка времени. Таким образом, оно представляется значением булевской переменной. Например, допустимо определить условие торможения, принимающее два значение: Нажат Тормоз или Тормоз Отпущен. Условие может представлять состояние какой-то другой части системы, в данном случае педали тормоза

На рис. 10.5 показано отношение между событиями и условиями. Первоначально условие принимает значение Торможения Нет. Когда происходит событие Нажат Тормоз, означающее, что водитель поставил ногу на педаль тормоза, условие изменяется на Торможение Есть. При возникновении события Тормоз Отпущен условие вновь принимает значение Торможения Нет. Событие занимает пренебрежимо малое время, но условие сохраняет значение в течение конечного промежутка времени.

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

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

На рис. 10.6 показано использование условия торможения. Состояния Начало без Торможения и Начало с Торможением объединяются в одно состояние Начало. Когда происходит событие Разогнаться, проверяется условие Торможение. Если оно принимает значение Торможения Нет (водитель отпустил педаль тормоза), то разрешается переход в состояние Разгон. Если же значение равно Торможения Нет, то такой переход запрещен, и диаграмма остается в состоянии Начало.

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

Это условие проверяется, когда начатая клиентом транзакция завершится, но используется совместно с событием таймера after (промежуток времени). Когда возникает это событие, а банкомат находится в состоянии Завершение, проверяется условие Запрошен Останов. Если оно истинно, банкомат переходит в состояние Остановлен. В противном случае банкомат возвращается в состояние. Простаивает и готов к выполнению следующей транзакции.

Действия

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

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

На диаграмме состояний действие изображается путем пометки перехода следующим образом: событие [условие] / действие. Например, когда банкомат переходит из состояния Ожидание ПИН-кода в состояние Проверка ПИН-кода в результате события ПИН-код Введен, выполняется действие Проверить ПИН-код. Этотпереход помечен так: ПИН-код введен / Проверить ПИН-код. С переходом может быть ассоциировано несколько действий. Эти действия выполняются одновременно, следовательно, между ними не должно быть никаких зависимостей. Например, было бы неправильно включать два одновременных действия: Рассчитать Изменение и Показать Изменение. В таком случае имеется подчиненность одного действия другому, поскольку нельзя показать изменение до того, как оно рассчитано.

Деятельности

Помимо действий в результате перехода состояния могут выполняться деятельности. Деятельность (activities) — это некоторое вычисление, выполняемое, пока автомат находится в данном состоянии. Поэтому, в отличие от действия, деятельность занимает конечное время. Деятельность начинается при входе в состояние и заканчивается при выходе из него. Причина изменения состояния, приводящего к прекращению деятельности, обычно состоит в приходе некоторого события из источника, не связанного с деятельностью. Однако иногда сама деятельность возбуждает событие, приводящее к изменению состояния.

Один из способов показать деятельность на диаграмме состояний - пометить переход в состояние, где она протекает: событие / enable деятельность, а также переход из этого состояния: событие / disable деятельность. Однако, чтобы сократить запись, можно вместо слов enable и disable ассоциировать деятельность с самим состоянием. Для этого в прямоугольнике, представляющем состояние, записывают имя состояния и имя деятельности, разделяя их горизонтальной чертой. Деятельность изображают в виде do / деятельность (здесь do - зарезервированное слово). Это означает, что деятельность начинается при входе в состояние и завершается при выходе из него.

5.2 Действия при входе и выходе

Некоторые действия можно записать более кратко, если ассоциировать их с самим состоянием, а не с переходами. Это так называемые действия при входе и при выходе, для которых зарезервированы слова entry и exit. Мгновенное действие, выполняемое при входе в состояние, обозначается как entry / действие, а мгновенное действие, выполняемое при выходе из него, - как exit / действие.

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

-есть несколько переходов в данное состояние;

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

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

- при каждом переходе требуется одно и то же действие;

-действие связано именно с выходом из данного состояния, а не с входом в следующее.

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

него переходе.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...