- •Аннотация к вопросам для Госэкзаменов по Информационным Системам и Вычислительным процессам
- •1. Модели данных 4
- •2. Прикладные системы 10
- •3. Анализ и проектирование систем 25
- •4. Коллективная разработка систем 35
- •5. Архитектура систем 38
- •6. Программирование 42
- •7. Формальные языки и методы трансляции 44
- •8. Методы распределения памяти и доступа к данным 51
- •9. Сети Петри 57
- •1. Модели данных
- •1.1. Концептуальная и логическая модель данных. Модель «сущность связь» (er-модель)
- •1.2. Полная функциональная зависимость. Вторая нормальная форма (2нф). Приведение отношения к 2нф
- •1.3. Транзитивная зависимость. Третья нормальная форма (3нф). Приведение отношения к 3нф
- •1.4. Операции реляционной алгебры: булевы операции, операции выбора, проекции, соединения, деления
- •1.5. Операторы расщепления и фактора. Их применение для организации работы с распределенными данными
- •1.6. Транзакции в базах данных Понятие транзакции
- •Принципы транзакций (acid)
- •Модели транзакций
- •2. Прикладные системы
- •2.1. Классификация современных программных прикладных систем
- •2.2. Требования к качеству прикладных программных систем: адекватность технологии, удобство использования, устойчивость, сопровождаемость, защищенность, переносимость
- •Адекватность технологии предметной области
- •Удобство использования
- •Сопровождаемость
- •Устойчивость
- •Защищенность
- •Переносимость
- •2.3. Условия и способы тиражирования прикладных программных систем
- •2.5. Жизненный цикл программных систем. Этапы жизненного цикла
- •2.6. Модели жизненного цикла – каскадная, поэтапная, спиральная, инкрементная. Области их применения
- •2.7. Средства автоматизации проектирования (case-средства)
- •2.8. Оценка параметров программной системы. Мера, метрика. Анализ риска Оценка параметров программной системы
- •Мера и метрика
- •Анализ рисков и первичная оценка
- •2.9. Размерно-ориентированные метрики: правила оценивания, область применимости
- •Выполнение оценки проекта
- •Пример оценки проекта
- •Достоинства и недостатки
- •3. Анализ и проектирование систем
- •3.1. Анализ требований, его роль в жизненном цикле создания программной системы. Основные задачи анализа требований. Системный структурный анализ
- •3.2. Методология sadt (idef0). Ее реализация в case-средстве bPwin
- •Использование case-средства bPwin для построения idef0-модели
- •3.3. Моделирование потоков данных и процессов их обработки. Построение диаграмм потоков данных
- •Диаграммы потоков данных
- •Диаграммы потоков данных в методологии Гейна-Сарсона
- •Использование case-средства bPwin для построения дпд
- •4. Коллективная разработка систем
- •4.1. Обоснование необходимости. Проблемы. Типы коллективов программистов Проблема
- •Профессиональные особенности
- •Типы коллективов программистов
- •Традиционная бригада
- •Бригада без персонализации
- •Бригада главного программиста
- •4.2. Условия работы коллективов программистов: физическая, социальная, административная обстановки
- •Стимулы
- •4.3. Взаимодействие участников программного проекта. Их роли в коллективе разработчиков Профессиональные особенности
- •Технические роли в бригаде
- •Психологические роли в бригаде
- •5. Архитектура систем
- •5.1. Причины декомпозиции программы на модули (содержательные и технические аспекты). Декомпозиция как способ борьбы со сложностью
- •5.2. Модуль, его информационная закрытость. Интерфейс и реализация. Связность модуля, уровни связности
- •5.3. Сцепление модулей, уровни сцепления. Модели управления модульной системой
- •6. Программирование
- •6.1. Объектный подход к программированию. Объект и класс. Инкапсуляция, наследование, полиморфизм. Абстрактные и интерфейсные классы
- •6.2. Классы в современных системах программирования. Общие, собственные и защищенные области. Свойства, их назначение, описание и использование. Владелец и родитель класса
- •7. Формальные языки и методы трансляции
- •7.1. Право- и леволинейные грамматики. Регулярные (автоматные) грамматики. Регулярные множества и праволинейные грамматики
- •7.2. Автоматы с магазинной памятью (мп-автоматы). Детерминированные и недетерминированные мп-автоматы. Построение эквивалентного мп-автомата по кс-грамматике
- •7.3. Восходящий анализ кс-языков без возвратов. Lr(k)-грамматики. Грамматики простого предшествования. Алгоритм «перенос-свертка» для грамматики простого предшествования
- •7.4. Алгоритмы удаления пустых и недостижимых символов в кс-грамматике. Нормальные формы кс-грамматик (Хомского и Грейбах). Устранение левой рекурсии в грамматике
- •7.5. Компиляторы и интерпретаторы. Архитектура компилятора. Фазы и этапы компиляции. Препроцессоры
- •7.6. Дерево вывода для кс-грамматик. Восходящий и нисходящий синтаксический анализ. Алгоритм нисходящего разбора с возвратами
- •7.7. Промежуточные представления программ: атрибутно-синтаксическое дерево, триадное представление, тетрады, обратная польская запись. Байт-коды внутреннего представления (Java-код, p-код и др.)
- •7.8. Ll(k)-грамматики, соотношение классов ll(k). Множества first(k) и follow(k) и их построение. Разделенная грамматика
- •7.9. Метод рекурсивного спуска построения синтаксического анализатора
- •7.10. Способы описания синтаксиса языков программирования. Диаграммы Вирта, расширенная форма Бэкуса-Наура
- •7.11. Работа с регулярными выражениями в языках программирования (c#, php). Описание типов xml-документов с помощью грамматики (dtd)
- •8. Методы распределения памяти и доступа к данным
- •8.1. Простые методы динамического распределения памяти: стек, дек, список блоков постоянной длины
- •Простейшее распределение памяти
- •Выделение памяти блоками постоянной длины
- •8.2. Методы динамического распределения памяти, основанные на списках блоков переменной длины
- •8.3. Методы доступа к данным, основанные на индексах: индексно-последовательный и индексно-произвольный Индексные методы
- •Индексно-последовательный метод
- •Индексно-произвольный метод
- •8.4. Методы доступа к данным, основанные на инвертированных списках и битовых картах Инвертированные списки
- •Битовые карты
- •8.5. Алгоритмы хеширования, основанные на методах деления, умножения и деления многочленов Метод деления
- •Метод умножения
- •Деление многочленов
- •8.6. Алгоритмы разрешения коллизий в перемешанных таблицах, основанные на методах внешних и внутренних цепочек Метод внешних цепочек
- •Метод внутренних цепочек
- •9. Сети Петри
- •9.1. Определение и основные понятия сетей Петри. Структура, графы, маркировка Структура сетей Петри
- •Графы сетей Петри
- •Маркировка сетей Петри
- •9.2. Моделирование сетями Петри задач о производителе/потребителе и о чтении/записи Задача о производителе и потребителе
- •Задача о чтении/записи
- •9.3. Безопасность и ограниченность сетей Петри Безопасность
- •Ограниченность
- •9.4. Активность сетей Петри
- •9.5. Достижимость и покрываемость в сетях Петри
- •9.6. Дерево достижимости сети Петри. Алгоритм построения дерева достижимости Дерево достижимости
- •Алгоритм построения дерева достижимости
- •9.7. Применение дерева достижимости сети Петри для проверки безопасности и ограниченности.
- •9.8. Применение дерева достижимости сети Петри для проверки покрываемости
- •Литература Основная
- •Дополнительная
- •Формальные языки и методы трансляции
- •Методы доступа к данным и распределения памяти
- •Сети Петри
Графы сетей Петри
Графы сетей Петри служат для графической интерпретации этого понятия. Они представляют удобный и наглядный инструмент как для изучения сетей, так и для моделирования систем с их помощью.
Узлы графа соответствуют позициям и переходам, то есть относятся к двум разным типам. Дуги соединяют позиции и переходы. Направления дуг – от входных элементов (узлов) к выходным, то есть, от входных позиций к соответствующему переходу и от входных переходов к соответствующим позициям. Кратные входы изображаются кратными дугами.
Графическое изображение элементов графа представлено на рис. 18.1. Окружность изображает позицию, чёрточка – переход, направленная дуга (стрелка) – линия с точкой на конце. Кратность изображается либо пучком дуг, либо широкой стрелкой с указанием кратности.
Р
ис.
18.1. Элементы графа сети Петри.
Определение. Граф G сети Петри – двудольный ориентированный мультиграф, G=(V,A), где V={v1, v2, … vs} – множество вершин, A={a1, a2, … ar} – комплект направленных дуг, ai=(vj, vk), 0 < i r, vj, vk V. V разбивается на два непересекающихся множества: V=PT, PT=. Для ai=(vj, vk) либо vjP, vkT, либо vjT, vkP.
Для демонстрации эквивалентности сетей Петри и их графов дадим следующее определение.
Определение. Пусть для сети Петри C=(P, T, I, O) выполняется V=PT. Определим комплект дуг A следующим образом: для piP, tjT #((pi, tj), A) = #(pi, I(tj)), #((tj, pi), A) = #(pi, O(tj)). Тогда граф G сети Петри, определённый ранее, эквивалентен данной сети C.
Пример
Приведём граф сети Петри, определённой в предыдущем примере.
Р
ис.
18.2. Граф сети Петри из предыдущего
примера.
Конец примера
Обратное преобразование от графа к сети аналогично, но возникает задача разделения узлов графа на позиции и переходы. Так как это можно сделать двумя путями, возникают две сети, соответствующие одному графу. Если одну из них обозначить C=(P, T, I, O), вторая будет определяться как C=(T, P, I, O). Она называется двойственной к первой. Есть ещё понятие инверсной сети, она определяется как C=(P, T, O, I).
Пример
Приведём граф сети Петри, двойственной к сети из предыдущего примера.
Р
ис.
18.3. Граф двойственной сети Петри.
Конец примера
Маркировка сетей Петри
Сеть Петри, как они были определены, большого интереса для моделирования систем не представляют, так как они отражают лишь статические их характеристики. Для того чтобы показать модель в динамике, вводится понятие маркировки. Маркировка определяется сопоставлением каждой позиции сети целого неотрицательного числа. Принято считать, что это число обозначает количество фишек, расположенных в этой позиции.
Определение. Маркировка сети Петри C=(T, P, I, O) – это функция, которая отображает множество позиций во множество целых неотрицательных чисел: : PN.
Если задать порядок на множестве позиций P, маркировку можно представить как вектор =(1, 2, … n), n=|P|, iN, i – количество фишек в позиции pi. В общем случае количество фишек в позиции может быть неограниченным, поэтому сети может соответствовать бесконечное число маркировок. На графе сети фишки обозначаются точками в позициях. Если фишек слишком много, в позиции размещается их число.
Маркированная сеть Петри – это совокупность сети Петри C и некоторой
начальной маркировки : M=(C, ).
Пример
Маркировка сети Петри, приведённой на рис. 18.4, представлена вектором =(0,2,0,5,1).
Р
ис.
18.4. Граф маркированной сети Петри.
Конец примера
