- •Аннотация к вопросам для Госэкзаменов по Информационным Системам и Вычислительным процессам
- •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. Применение дерева достижимости сети Петри для проверки покрываемости
- •Литература Основная
- •Дополнительная
- •Формальные языки и методы трансляции
- •Методы доступа к данным и распределения памяти
- •Сети Петри
5. Архитектура систем 38
5.1. Причины декомпозиции программы на модули (содержательные и технические аспекты). Декомпозиция как способ борьбы со сложностью 38
5.2. Модуль, его информационная закрытость. Интерфейс и реализация. Связность модуля, уровни связности 39
5.3. Сцепление модулей, уровни сцепления. Модели управления модульной системой 41
6. Программирование 42
6.1. Объектный подход к программированию. Объект и класс. Инкапсуляция, наследование, полиморфизм. Абстрактные и интерфейсные классы 42
6.2. Классы в современных системах программирования. Общие, собственные и защищенные области. Свойства, их назначение, описание и использование. Владелец и родитель класса 43
7. Формальные языки и методы трансляции 44
7.1. Право- и леволинейные грамматики. Регулярные (автоматные) грамматики. Регулярные множества и праволинейные грамматики 44
7.2. Автоматы с магазинной памятью (МП-автоматы). Детерминированные и недетерминированные МП-автоматы. Построение эквивалентного МП-автомата по КС-грамматике 44
7.3. Восходящий анализ КС-языков без возвратов. LR(k)-грамматики. Грамматики простого предшествования. Алгоритм «перенос-свертка» для грамматики простого предшествования 45
7.4. Алгоритмы удаления пустых и недостижимых символов в КС-грамматике. Нормальные формы КС-грамматик (Хомского и Грейбах). Устранение левой рекурсии в грамматике 45
7.5. Компиляторы и интерпретаторы. Архитектура компилятора. Фазы и этапы компиляции. Препроцессоры 46
7.6. Дерево вывода для КС-грамматик. Восходящий и нисходящий синтаксический анализ. Алгоритм нисходящего разбора с возвратами 47
7.7. Промежуточные представления программ: атрибутно-синтаксическое дерево, триадное представление, тетрады, обратная польская запись. Байт-коды внутреннего представления (Java-код, P-код и др.) 47
7.8. LL(k)-грамматики, соотношение классов LL(k). Множества FIRST(k) и FOLLOW(k) и их построение. Разделенная грамматика 48
7.9. Метод рекурсивного спуска построения синтаксического анализатора 48
7.10. Способы описания синтаксиса языков программирования. Диаграммы Вирта, расширенная форма Бэкуса-Наура 49
7.11. Работа с регулярными выражениями в языках программирования (C#, PHP). Описание типов XML-документов с помощью грамматики (DTD) 50
8. Методы распределения памяти и доступа к данным 51
8.1. Простые методы динамического распределения памяти: стек, дек, список блоков постоянной длины 51
Простейшее распределение памяти 51
Выделение памяти блоками постоянной длины 51
8.2. Методы динамического распределения памяти, основанные на списках блоков переменной длины 52
8.3. Методы доступа к данным, основанные на индексах: индексно-последовательный и индексно-произвольный 53
Индексные методы 53
Индексно-последовательный метод 53
Индексно-произвольный метод 54
8.4. Методы доступа к данным, основанные на инвертированных списках и битовых картах 55
Инвертированные списки 55
Битовые карты 55
8.5. Алгоритмы хеширования, основанные на методах деления, умножения и деления многочленов 56
Метод деления 56
Метод умножения 56
Деление многочленов 56
8.6. Алгоритмы разрешения коллизий в перемешанных таблицах, основанные на методах внешних и внутренних цепочек 57
Метод внешних цепочек 57
Метод внутренних цепочек 57
