- •Предисловие
- •Глава 1. Основные понятия теории моделирования § 1.1. Термины моделирования
- •§ 1.2. Классификация видов моделирования
- •§ 1.3. Проблемы проектирования информационных систем
- •§ 1.4. Моделирование предметной области
- •§ 1.5. Три уровня анализа
- •§ 1.6. Набор типов моделей Объектная структура
- •Функциональная структура
- •Структура управления
- •Организационная структура
- •Техническая структура
- •Вопросы к главе 1
- •Глава 2. Концептуальные основы case-технологий § 2.1. Понятие case-технологии
- •§ 2.2. Проблемы внедрения case-технологий
- •§ 2.3. Общая характеристика case-средств
- •§ 2.4. Классификация case-средств
- •Вопросы к главе 2
- •Глава 3. Понятие и основные принципы функционального моделирования, обзор основных методологий.
- •§ 3.1. Технология структурного анализа и проектирования sadt
- •§ 3.2. Диаграммы потоков данных dfd (Data Flow Diagrams)
- •§ 3.3. Диаграммы потоков работ wfd (Work Flow Diagram)
- •§ 3.4. Семейство стандартов моделирования idef
- •§ 3.5. Основные элементы и понятия idef0
- •§ 3.6. Диаграммы "сущность-связь" erd (Entity-Relationchip diagram)
- •Вопросы к главе 3
- •Глава 4. Спецификации управления
- •§ 4.1. Диаграммы переходов состояний std (State Transition Diagrams)
- •§ 4.2. Особенности применения std диаграмм
- •§ 4.3. Структурные карты
- •§ 4.4. Структурные карты Константайна
- •§ 4.5. Структурные карты Джексона
- •§ 4.6. Характеристики хорошей модели реализации
- •4.6.1. Сцепление
- •4.6. 2. Связность
- •§ 4.7. Принципы проектирования, позволяющие построить качественную модель
- •§ 4.8. Транзакционный и трансформационный анализ или как получить структурные карты из диаграмм потоков данных
- •Вопросы к главе 4
- •Глава 5. Объектно-ориентированный подход к моделированию информационных систем § 5.1. Понятие объектно-ориентированного анализа
- •§ 5.2. Элементы объектно-ориентированной модели
- •§ 5.3. Объект и класс
- •§ 5.4. Язык моделирования uml
- •§ 5.5. Достоинства и недостатки объектно-ориентированного проектирования
- •Вопросы к главе 5
- •Глава 6. Метод имитационного моделирования
- •§ 6.1. Понятие имитационного моделирования
- •§ 6.2. Применение имитационного моделирования
- •§ 6.3. Виды имитационного моделирования
- •§ 6.4. Принципы и методы построения имитационных моделей
- •6.4.2. Принцип особых состояний
- •6.4.3. Основные методы имитационного моделирования.
- •Вопросы к главе 6
- •Глава 7. Инструментальные средства моделирования ис
- •§ 7.1. Российские программные продукты
- •7.1.1. Инталев: Корпоративный навигатор (инталев)
- •Бизнес-Инженер (Битек)
- •Case.Аналитик
- •§7.2. Зарубежные case - средства
- •7.2.3. Case-средство Silverrun
- •7.2.5. Case-средство Designer/2000
- •§ 7.3. Методология aris
- •7.3.1. Общие сведения о методологии aris
- •7.3.2. Архитектура aris
- •7.3.3. Обзор основных модулей
- •§ 7.4. Программные продукты имитационного моделирования
- •7.4.1. Система Arena
- •7.4.2. Пакет имитационного моделирования AnyLogic
- •Вопросы к главе 7
- •Библиографический список
- •Оглавление
Вопросы к главе 4
Для чего предназначены спецификации управления?
Из каких объектов состоит STD?
Что определяется в STD – диаграммах с помощью понятия «перехода»?
Что представляет в STD – диаграммах понятие «условие»?
Как различить состояние, событие и действие?
Какие существуют правила построения STD?
Когда и для чего используется техника структурных карт?
Перечислите наиболее популярные техники структурных карт.
Перечислите общие свойства модулей в языках программирования.
Какие типы модулей используются в структурных картах Константайна?
Для чего используется итерационный узел?
Назовите критерии структурного проектирования.
За счет чего может быть достигнуто слабое сцепление модулей?
Глава 5. Объектно-ориентированный подход к моделированию информационных систем § 5.1. Понятие объектно-ориентированного анализа
Объектно-ориентированный анализ и проектирование принципиально отличаются от традиционных подходов структурного проектирования: здесь нужно по-другому представлять себе процесс декомпозиции, а архитектура получающегося программного продукта в значительной степени выходит за рамки представлений, традиционных для структурного программирования.
Объектно-ориентированный подход использует объектную декомпозицию. При этом статическая структура системы описывается в терминах объектов и связей между ними, а поведение системы описывается в терминах обмена сообщениями между объектами. Каждый объект системы обладает своим собственным поведением, моделирующим поведение объекта реального мира.
Понятие «объект» впервые было использовано около 30 лет назад в технических средствах при попытках отойти от традиционной архитектуры фон Неймана и преодолеть барьер между высоким уровнем программных абстракций и низким уровнем абстрагирования на уровне компьютеров. С объектно-ориентированной архитектурой также тесно связаны объектно-ориентированные операционные системы. Однако наиболее значительный вклад в объектный подход был внесен объектными и объектно-ориентированными языками программирования: Simula, Smalltalk, С++, Object Pascal. На объектный подход оказали влияние также развивавшиеся достаточно независимо методы моделирования баз данных, в особенности подход «сущность – связь».
§ 5.2. Элементы объектно-ориентированной модели
Концептуальной основой объектно-ориентированного подхода является объектная модель. Основными ее элементами являются:
абстрагирование;
инкапсуляция;
модульность;
иерархия.
Кроме основных, имеются еще три дополнительных элемента, не являющихся, в отличие от основных, строго обязательными:
типизация;
параллелизм;
устойчивость.
Абстрагирование – это выделение существенных характеристик некоторого объекта, которые отличают его от всех других видов объектов и, таким образом, четко определяют его концептуальные границы относительно дальнейшего рассмотрения и анализа. Абстрагирование концентрирует внимание на внешних особенностях объекта и позволяет отделить самые существенные особенности его поведения от деталей их реализации. Выбор правильного набора абстракций для заданной предметной области представляет собой главную задачу объектно-ориентированного проектирования.
Принцип абстрагирования реализуется в ряде методов при решении задач с использованием объектной модели. В литературе можно встретить разные определения и расшифровки того, что понимается под термином абстрагирование.
Хоар дает следующее определение: «абстрагирование проявляется в нахождении сходств между определенными объектами, ситуациями или процессами реального мира, и в принятии решений на основе этих сходств, отвлекаясь на время от имеющихся различий».
Буч: Абстракция выделяет существенные характеристики некоторого объекта, отличающие его от всех других видов объектов и, таким образом, четко определяет его концептуальные границы с точки зрения наблюдателя.
Абстрагирование концентрирует внимание на внешних характеристиках объекта и позволяет отделить наиболее существенные особенности его поведения от менее существенных. Граница между существенными и несущественными с точки зрения разрабатываемой программной системы особенностями поведения объекта называется барьером абстракции.
Выделение полного и достаточного набора абстракций при решении задачи с применением объектного подхода представляет собой главную задачу объектно-ориентированного проектирования. Во время разработки программной системы могут появляться абстракции разных категорий, начиная с объектов, которые почти точно соответствуют реалиям предметной области, и кончая объектами, целесообразность использования которых сомнительна.
Абстракция сущности - Объект представляет собой полезную модель некой сущности в предметной области
Абстракция поведения - Объект состоит из обобщенного множества операций
Абстракция виртуальной машины - Объект группирует операции, которые вместе используются более высоким уровнем управления, либо сами используют некоторый набор операций более низкого уровня
Произвольная абстракция - Объект включает в себя набор операций, не имеющих друг с другом ничего общего.
Абстрагирование позволяет отбросить детали реализации, сосредоточиться на главной задаче, выделить и обобщить решение, определить объекты и их взаимосвязи
Инкапсуляция – характеризует сокрытие отдельных деталей внутреннего устройства классов от внешних по отношению к нему объектов или пользователей.
Клиенту, взаимодействующему с объектом класса, необязательно знать, каким образом осуществлен тот или иной элемент класса. Конкретная реализация присущих классу свойств и методов, которые определяют его поведение, является собственным делом данного класса. Более того, отдельные свойства и методы класса могут быть невидимы за его пределами, это относится к базовой идее введения различных категорий видимости для элементов класса.
Инкапсуляция служит для того, чтобы изолировать интерфейс объекта, отражающий его внешнее поведение, от внутренней реализации объекта. Объектный подход предполагает, что собственные ресурсы, которыми могут манипулировать только методы самого класса, скрыты от внешней среды.
На примере с классом "Компьютер" нетрудно проиллюстрировать инкапсуляцию следующим образом. Основным субъектом, который взаимодействует с объектами этого класса, является пользователь. Вполне очевидно, что не каждый пользователь в совершенстве знает внутреннее устройство того или иного компьютера. К тому же, отдельные детали этого устройства сознательно скрыты в корпусе системного блока или монитора. А в случае нарушения работы компьютера, которое является причиной неадекватности его поведения, необходимый ремонт выполняет профессиональный специалист.
Инкапсуляция ведет свое происхождение от деления модулей в некоторых языках программирования на две части или секции: интерфейс и реализацию. При этом в интерфейсной секции модуля описываются все объявления функций и процедур, а возможно и типов данных, доступных за пределами модуля. Указанные процедуры и функции являются способами оказания услуг внешним клиентам. В другой секции модуля, называемой реализацией, содержится программный код, который определяет конкретные способы реализации объявленных в интерфейсной части процедур и функций.
Абстрагирование и инкапсуляция являются взаимодополняющими операциями: абстрагирование фокусирует внимание на внешних особенностях объекта, а инкапсуляция (или, иначе, ограничение доступа) не позволяет объектам пользователям различать внутреннее устройство объекта
Модульность – это свойство системы, связанное с возможностью ее декомпозиции на ряд внутренне связных, но слабо связанных между собой модулей. Инкапсуляция и модульность создают барьеры между абстракциями.
Иерархия – это ранжированная или упорядоченная система абстракций, расположение их по уровням. Основными видами иерархических структур применительно к сложным системам являются структура классов (иерархия по номенклатуре) и структура объектов (иерархия по составу). Примерами иерархии классов являются простое и множественное наследование (один класс использует структурную или функциональную часть соответственно одного или нескольких других классов), а иерархии объектов – агрегация.
Типизация – это ограничение, накладываемое на класс объектов и препятствующее взаимозаменяемости различных классов (или сильно сужающее ее возможность). Типизация позволяет защититься от использования объектов одного класса вместо другого или, по крайней мере, управлять таким использованием.
Параллелизм – свойство объектов находиться в активном или пассивном состоянии и различать активные и пассивные объекты между собой.
Устойчивость – свойство объекта существовать во времени (вне зависимости от процесса, породившего данный объект) и/или в пространстве (при перемещении объекта из адресного пространства, в котором он был создан).
