Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1-120.docx
Скачиваний:
46
Добавлен:
13.09.2019
Размер:
827.39 Кб
Скачать

96. Конечные автоматы и их использование в построении моделей систем.

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

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

  • Событий, на которые реагирует программа;

  • Состояний, в которых программа пребывает между событиями;

  • Переходов между состояниями при реагировании на события;

  • Действий, выполняемых в процессе переходов;

  • Переменных, которые содержат значения, необходимые для выполнения действий между событиями.

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

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

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

Ориентированные графы

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

Двумерные таблицы

Столбцы и строки представляют события и состояния, а ячейки содержат действия и переходы.

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

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

97. Технологии проектирования ис.

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

Технология проектирования ИС - это совокупность методологии и средств проектирования ИС, а также методов и средств организации проектирования (управление процес­сом создания и модернизации проекта ИС). Основу технологии проектирования ИС составляет методология проектирования. Она предполагает наличие некоторой концепции (принципов проектирования), реализуемой набором методов. Метод проектирования — способ создания проекта системы, поддерживаемый определёнными средствами проектирования.

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

  • каноническая (для небольших локальных ИС) и

  • индустриальная технологии.

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

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

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

Для реализации типового проектирования используются два подхода: параметрически-ориентированное и модельно-ориентированное проектирование.

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

Модельно-ориентированное проектирование заключается в адаптации состава и характеристик типовой ИС в соответствии с моделью объекта автоматизации.

Использование индустриальных технологий проектирования не исключает использова­ния в отдельных случаях канонической технологии.

Характеристики подходов к проектированию ПО:

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

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

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