
- •Аннотация к вопросам для Госэкзаменов по Информационным Системам и Вычислительным процессам
- •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. Применение дерева достижимости сети Петри для проверки покрываемости
- •Литература Основная
- •Дополнительная
- •Формальные языки и методы трансляции
- •Методы доступа к данным и распределения памяти
- •Сети Петри
9. Сети Петри 57
9.1. Определение и основные понятия сетей Петри. Структура, графы, маркировка 57
Структура сетей Петри 57
Графы сетей Петри 58
Маркировка сетей Петри 60
9.2. Моделирование сетями Петри задач о производителе/потребителе и о чтении/записи 60
Задача о производителе и потребителе 60
Задача о чтении/записи 61
9.3. Безопасность и ограниченность сетей Петри 62
Безопасность 62
Ограниченность 63
9.4. Активность сетей Петри 64
9.5. Достижимость и покрываемость в сетях Петри 64
9.6. Дерево достижимости сети Петри. Алгоритм построения дерева достижимости 65
Дерево достижимости 65
Алгоритм построения дерева достижимости 67
9.7. Применение дерева достижимости сети Петри для проверки безопасности и ограниченности. 67
9.8. Применение дерева достижимости сети Петри для проверки покрываемости 68
Литература 69
Основная 69
Дополнительная 69
Формальные языки и методы трансляции 70
Методы доступа к данным и распределения памяти 70
Сети Петри 71
1. Модели данных
1.1. Концептуальная и логическая модель данных. Модель «сущность связь» (er-модель)
Для термина «модель данных», как и в ряде других случаев, в литературе существует более одного определения. Мы будем пользоваться следующим.
Определение. Модель данных – совокупность методов и средств определения логического представления физических данных, относящихся к предметной области.
Модель данных характеризуется тремя компонентами:
Правила структурирования данных для представления точки зрения пользователя на базу данных.
Множество допустимых операций, применимых к базе данных, которая находится в допустимом состоянии. Составляет основу языка данных модели.
Ограничения целостности, определяющие множество допустимых состояний базы данных.
Модель служит для описания свойств данных на протяжении всего периода создания информационной системы. На ранних этапах она дает возможность понять суть информационной составляющей предметной области, оценить состав и взаимосвязь данных. На этапе проектирования БД модель показывает, как структура данных и ограничения целостности представляются в терминах выбранной СУБД. На этапе реализации (развертывания) модель демонстрирует, где и как расположены данные и как к ним обратиться. Схема описывает свойства базы данных в терминах типов хранящихся в ней данных.
Обычно выделяют три уровня абстракции для определения структуры данных: концептуальный (точка зрения заказчика), логический (точка зрения разработчика) и физический (точка зрения администратора БД). В соответствии с этим рассматриваются три уровня модели и три шага проектирования.
Концептуальный уровень – наиболее общее представление об информационном содержании предметной области. Представляется в виде концептуальной модели, которая часто называется концептуальной схемой или информационной структурой. Она обладает высокой степенью стабильности, проблемно-ориентирована и не зависит от конкретной СУБД, операционной системы и аппаратного обеспечения. Ее поведение должно быть полностью предсказуемо.
Концептуальное представление оперирует основными элементарными данными предметной области, называемыми сущностями. Сущности описываются атрибутами. Данные могут находиться в некотором отношении друг с другом: образовывать ассоциации. Эти ассоциации называются связями. Модель должна поддерживать согласованность связей в пределах уровня детализации.
Для концептуального представления обычно используется модель «Сущность-Связь» (ER-модель), которая графически выражается ER-диаграммами. Существуют различные модификации представления (нотации) диаграмм. Представление модели внешне напоминает структуру базы данных и служит для отображения на логическую модель.
Логический уровень представления оперирует такими понятиями, как запись, компоненты записи, связи между записями. Соответствующая ему модель называется логической, она представляет собой отображение концептуальной модели в среду конкретной СУБД. Иногда рассматривают не конкретную СУБД, а только ее класс (модель) – иерархическую, сетевую или реляционную.
Физический уровень демонстрирует физическое хранение данных. На этом уровне используются такие понятия, как физические блоки, файлы, хранимые записи, указатели. Взаимосвязи между хранимыми записями, возникающие в процессе их группировки, а также индексные структуры тоже рассматриваются на уровне физической модели. С точки зрения чистой базы данных можно абстрагироваться от физической модели представления данных, но знать ее полезно для достижения более высокой производительности системы.
Есть и другая классификация уровней представления данных. Согласно стандарту ANSI/SPAC, архитектура БД представлена трехуровневой моделью с внешним, концептуальным и внутренним уровнями. В отличие от предыдущих, это не модели проектирования, а модели оперирования данными.
Внешний уровень – описание на языке пользователя структуры данных, вида и формы их представления, а также описание операций манипулирования данными. Считается, что для описания предметной области используется несколько внешних моделей. Данный уровень содержит черты как концептуальной, так и логической модели, описанных ранее.
Концептуальный уровень – наиболее общее представление об информационном содержании предметной области. Определение совпадает с приведенным ранее.
Внутренний уровень – организованная совокупность структурированных данных, отображение концептуальной модели в конкретную среду хранения. Это понятие объединяет ранее определенные логическую и физическую модели.
Создание ER-модели сопровождается ее графическим представлением. Различные нотации ER-диаграмм поддерживается специальными средствами проектирования программных систем (CASE-средствами). Одно из наиболее популярных средств такого рода – ERWin.
Модель «сущность-связь» была предложена П.Ченом в 1976 г. для концептуального представления структур данных. В роли основных элементарных данных предметной области выступают сущности. Данные могут находиться в некотором отношении друг с другом: образовывать ассоциации, которые называются связями. Сущности и связи описываются атрибутами.
Связи бывают двуместными (бинарными) и многоместными, ориентированными и неориентированными. Бинарные связи характеризуются кардинальными числами. Если одному экземпляру сущности соответствует единственный экземпляр другой, тип связи – один к одному (1:1). Если одному экземпляру сущности соответствует более одного экземпляра другой, тип связи – один ко многим (1:M). Если одному экземпляру сущности соответствует более одного экземпляра другой, а одному экземпляру второй сущности соответствует более одного экземпляра первой, тип связи – многие ко многим (M:N). Такие же типы связей определяются и для атрибутов.
Модель Чена представлена графом, узлы которого (сущности) обозначены прямоугольниками с помещенными в них именами атрибутов, среди которых выделены первичные (ключевые). Дуги графа представляют связи, помеченные ромбиками, в которых указано кардинальное число связи. Связь характеризуется атрибутами. Связь может быть сильной или слабой, соответственно сущности – сильно зависимыми, слабо зависимыми или независимыми. Помимо прочего, в модели вводится ограничение целостности данных, ассоциируемое с двумя множествами сущностей: зависимость по существованию. На рисунке приведён пример бинарной и тернарной связей.
Сущности и атрибуты модели
Сущность |
Атрибут |
Студент |
зачётка, паспорт, ФИО ст-та, адрес, группа, курс |
Преподаватель |
ФИО преп., специальность |
Группа |
номер, год образования |
Дисциплина |
название, специальность |
Куратор |
имя, группа |
Типы связей
Сущность 1 |
Сущность 2 |
Тип |
|
Атрибут 1 |
Атрибут 2 |
Тип |
Куратор |
Группа |
1:1 |
|
зачётка |
паспорт |
1:1 |
Студент |
Группа |
1:М |
|
группа |
зачётка |
1:М |
Преподаватель |
Дисциплина |
М:N |
|
ФИО ст-та |
ФИО преп. |
М:N |