- •Вопрос 2. Спецификация, представление, реализация абстрактных типов данных.
- •Вопрос 3. Многомашинные вс. Реализация на основе ес эвм. Кластерные вс.
- •Типы кластеров:
- •Вопрос 2. Линейные структуры данных: стек, очередь, дек
- •Вопрос 3. Сравнительный анализ и основные компоненты инструментальных среды разработки пользовательских интерфейсов. Классификация элементов пользовательского интерфейса
- •Вопрос 1. Конкретные реализации языков функционального программирования: язык программирования Лисп, основные объекты, примитивы, списки, правила составления программ.
- •Вопрос 2. Семантическая теория программ. Вычислимость и разрешимость
- •Вопрос 3. Формальные методы описания диалоговых систем. Законы Фитса и Хика.
- •Вопрос 1. Основные конструкции логической программы: факты, правила, запросы, логические переменные. Операционная и декларативная семантика логических программ.
- •1. 5. Декларативный и процедурный смысл программ
- •Вопрос 2. Интерфейсы. Способы согласования аппаратных структур. Организация асинхронных интерфейсов
- •Элементы процесса как поведенческой категории :
- •Дескриптивный асинхронный процесс (dp)
- •Асинхронный процесс (ap)
- •Инициаторы
- •Вопрос 3. Эргономика пользовательского интерфейса. Критерии эргономичности интерфейса. Человеческие ошибки. Методы предотвращения ошибок. Снижение чувствительности системы к ошибкам.
- •Типы ошибок
- •Методы предотвращения ошибок
- •Как избежать сообщений об ошибках
- •Вопрос 1. Интерпретация и корректность логических программ. Абстрактный интерпретатор, значение логической программы, вычислительная модель
- •Вопрос 2. Порядковые статистики (Гулаков сказал что его не будет)
- •Субъективная удовлетворенность
- •Типичные интерфейсные ошибки отечественного по
- •Программа перегружена элементами управления
- •Терминология не адекватна знаниям пользователя о системе
- •От пользователя постоянно требуется дополнительная информация
- •Вопрос 1. Программирование баз данных. Динамическая база данных. Добавление и удаление фактов в процессе работы программы.
- •Вопрос 2. Поиск и кодирование (сжатие) данных, кодовые деревья, оптимальные префиксные коды
- •Вопрос 1. Рекурсивное программирование на логическом языке. Рекурсивные структуры данных – списки. Объявление списков. Составные списки. Голова и хвост списка. Примеры работы со списками.
- •Вопрос 2. Бинарный поиск, хеширование
- •Вопрос 3. Тестирование и отладка программного обеспечения. Структурное и функциональное тестирование. Особенности тестирования объектно-ориентированного по. Автоматизация процесса тестирования.
- •Вопрос1. Вычислительная модель программы на логическом языке. Согласование целевых утверждений. Сопоставление и унификация. Детерминизм.
- •Вопрос 2. Понятие выполнения сети. Свойства сети (устойчивость, безопасность, консервативность).
- •Вопрос 3. Автоматизация проектирования программного обеспечения на базе case-технологий. Принципы построения и т.Д.
- •Вопрос 1. Множественные выражения Программирование второго порядка Недетерминированное программирование
- •Вопрос 2. Нелинейные структуры данных: иерархические списки, деревья и леса, бинарные деревья
- •Вопрос 1. Вне логические предикаты. Ввод-вывод. Доступ к программам и обработка программ. Металогические предикаты. Сравнение не основных термов.
- •Вопрос 2. Алгоритмы сортировки
- •Сортировка разделением (Quicksort)
- •Вопрос 1. Constraint–Пролог: операционная семантика обобщение механизма унификации, понятие constraint'а. Операционная модель Constraint-пролоГа.
- •Вопрос 2. Нелинейные структуры: обходы деревьев
- •Вопрос 3. Качество по. Критерии качества: сложность, корректность, надежность, трудоемкость. Методика оценки качества по. Метрические особенности объектно-ориентированных пс. Сертификация по
- •Вопрос 1. Cancelled мистером г.
- •Вопрос 2. Стандартные схемы программ. Методы формальной спецификации и верификации.
- •Вопрос 1. Использование деревьев в задачах поиска: бинарные деревья поиска, случайные, оптимальные, сбалансированные по высоте и рандомизированные деревья поиска
- •. Деревья цифрового поиска
- •Вопрос 2. Определение асинхронного процесса как описания модели вычислительного процесса. Глобальные свойства – асинхронность, недетерминированность, параллельность.
- •1. Задачи сортировки; внутренняя и внешняя сортировка
- •2. Подклассы асинхронного процесса. Эффективный асинхронный процесс
- •Длительность реакции системы
- •Субъективное восприятие скорости работы
- •Приемы для уменьшения субъективного восприятия
- •1. Оптимальная сортировка.
- •2. Конвейерный процесс. Автономный процесс. Асинхронный процесс как метамодель.
- •Непосредственное манипулирование
- •Потеря фокуса внимания (прерывание)
- •Ограничение принятия решений
- •1. Анализ сложности и эффективности алгоритмов поиска и сортировки.
- •2. Классификация сетей (ординарные, автоматные, маркированный граф).
- •Понятность системы
- •Ментальная модель
- •Метафора
- •Аффорданс
- •Стандарт
- •1. Файлы: организация и обработка, представление деревьями: b-деревья.
- •2. Сетевое представление параллельных процессов. Области применения сетей Петри
- •3. Основы теории формальных языков и грамматик. Основные понятия и определения. Операции над языками. Классификация формальных языков и грамматик по порождающей способности
- •1. Алгоритмы на графах: представления графов, схемы поиска в глубину и ширину, минимальное остовное дерево, кратчайшие пути.
- •2.1.Поиск в глубину
- •2.2 Поиск в ширину.
- •2. Протоколы взаимодействия объектов вычислительных структур. Понятие протокола.
- •3. Вывод контекстно-свободных (кс) – грамматик и правила построения дерева вывода. Синтаксический разбор. Способы задания схем грамматик. Форма Бэкуса-Наура.
- •1. Теория сложности алгоритмов: np-сложные и труднорешаемые задачи.
- •2. Недетерминированные конечные автоматы. Конечные преобразователи и переводы. Преобразование некоторых грамматик к автоматному виду.
- •3. Объектно-ориентированное проектирование. Принципы проектирования. Схемы, диаграммы, инструменты.
- •1. Детерминированные конечные автоматы. Эквивалентные состояния и автоматы.
- •2. Синтаксический анализ. Метод оперативного предшествования. Восходящие и нисходящие методы синтаксического анализа.
- •2. Жизненный цикл программного обеспечения. Структура жизненного цикла согласно международного стандарта.
- •1. Нисходящие распознаватели. Ll(k) – грамматики. Построение детерминированного нисходящего распознавателя.
- •2. Параллельная обработка как основа высокопроизводительных вычислений. Уровни организации параллелизма: уровень заданий, программ и команд. Системы (языки) параллельного программирования.
- •1. Восходящие распознаватели. Lr(k) грамматики. Построение грамматики.
- •2. Понятие архитектуры вычислительной системы (вс). Архитектура как набор компонент и как система уровневых интерфейсов. Основные аппаратные и программные элементы вс.
- •1.1. Архитектура как набор взаимодействующих компонент
- •1.2. Архитектура как интерфейс между уровнями физической системы
- •1. Магазинные преобразователи. Определение магазинного преобразователя. Перевод, определяемый преобразователем.
- •2. Архитектура системы команд. Микропроцессоры (мп) с полным (cisc) и сокращённых (risc) набором команд. Основные принципы risc- архитектуры. Организация risc мп Alpha 21x64 фирмы dec.
- •Особенности архитектуры Alpha компании dec
- •1. Описание перевода или трансляции. Синтаксически-управляемые (су) – схемы.
- •2. Основные идеи объектно-ориентированных языков программирования. Создание абстрактных типов данных. Инкапсуляция. Полиморфизм. Наследование.
- •3. Развитие архитектур современных мп. Конвейеризация и динамическое выполнение потока команд. Суперскалярность. Архитектура epic мп Intel itanium.
- •1. Транслирующие грамматики. Построение транслирующей грамматики по су-схеме. Атрибутные транслирующие грамматики.
- •3. Векторные и векторно-конвейерные вс. Структура векторного процессора. Матричные вс.
- •1. Трансляторы, интерпретаторы и компиляторы. Стадии работы компиляторы. Лексический анализ.
- •3. Системы массовой параллельной обработки (мрр). Супер эвм фирмы sgi - Cray t3e(t3d) -1200.
- •2. Классификация и типы вс. Многомашинные и многопроцессорные вс. Представление вс на основе распределения потоков команд и данных (классификация Флинна)
Вопрос 2. Поиск и кодирование (сжатие) данных, кодовые деревья, оптимальные префиксные коды
К
одовое
дерево –
специальный граф, отображающий запись
всех возможных K-ичных
n-разрядных
чисел, используемых в качестве кодовых
комбинаций для кодирования сообщений
в количестве M
=
Kn.
При этом каждое число отображается
одним из узлов графа. Из каждого узла
выходит K
ветвей, которые связывают этот узел с
другими. Количество символов, входящих
в число, соответствующее данному узлу,
называется его порядком.
Рассмотрим граф для двоичного трехэлементного кода.
Рис. 13 Кодовое дерево двоичного трехэлементного кода
Далее мы рассматриваем только коды, в которых из двух последовательностей битов, представляющих различные символы, ни одна не является префиксом другой — префиксные коды. Заметим, что для любого кода, осуществляющего однозначное восстановление информации, существует не худший его префиксный код.
При кодировании информации каждый символ заменяется на свой код. Декодирование для префиксных кодов однозначно и выполняется слева направо. Чтобы эффективно реализовать процесс декодирования, необходимо хранить информацию о коде в удобной форме. Например, можно представить код в виде двоичного дерева, листья которого соответствуют кодируемым символам. А путь от вершины дерева до кодируемого символа определяет кодирующую последовательность битов: поворот налево дает 0, направо — 1.
Оптимальному коду всегда соответствует двоичное дерево, в котором любая вершина, не являющаяся листом, имеет двоих детей. Это свойство позволяет легко прийти к выводу о том, что дерево оптимального префиксного кода для файла, в котором используются все символы из некоторого множества C и только они, содержит ровно |C| листьев, по одному на каждый символ, и ровно |C| − 1 узлов, не являющихся листьями.
(Хаффман изобрел жадный алгоритм, позволяющий составить оптимальный префиксный код, который получил название код Хаффмана.)
Алгоритм построения кода Хаффмана:
1. Сортируем все символы алфавита в порядке убывания или возрастания вероятности их появления в тексте.
2. Последовательно объединяем 2 символа с наименьшими вероятностями появления в новый составной символ, вероятность появления которого равняется сумме. В конце концов строится дерево, каждый узел которого имеет суммарную вероятность всех узлов, находящихся ниже него.
3. Прослеживаем путь к каждому листу дерева, помечая направление – направо -1, налево – 0, получаем кода Хаффмана для каждого символа.
Алгоритм Шеннона-Фано
1.Выписываются в ряд все символы в порядке возрастания вероятности появления их в тексте.
2. Последовательно делим множество символов на 2 подмножества так, чтобы сумма вероятностей появления символов одного подмножества была примерно равна сумме вероятностей появления символов другого. Для левого подмножества каждому символу приписываем 0, правого – 1. Дальнейшее разбиение осуществляется рекурсивно до тех пор, пока в подмножествах не останется по 1 элементу. Алгоритм Хаффмана – снизу-вверх, Фанно-Шеннона – сверху-вниз.
Вопрос 3. Документирование процесса производства ПО. Единая система программной документации ЕСПД, состав. Техническое задание на разработку ПО, его содержание. CASE-средства автоматизации документирования.
Весь процесс разработки программного изделия отражается в документации, т.е. в наборе документов, необходимых для разработки, сопровождения и эксплуатации систем. Производство любого программного продукта должно выполняться с учетом ЕСПД (единая система программной документации), где рассматриваются требования, регламентирующие разработку, тиражирование и сопровождение программного изделия.
На основании стандарта ГОСТ 19.102–77 устанавливается следующий набор программной документации по разработке программного изделия:
Техническое задание
Данный вид документации должен включать следующие элементы: введение (наименование и краткую характеристику области применения программного изделия); обоснование и документы, являющиеся основой для разработки программного изделия (договор на основе данных заказчика); назначение разработки программного изделия (эксплуатационное назначение); требования к программному изделию (внутренние характеристики, надежность, условия эксплуатации, состав и параметры технических средств, программная совместимость); специальные требования, которые могут относиться к маркировке, упаковке и т.д.; требования к документации с перечислением всех видов документации, предоставляемой после разработки программного изделия; технико-экономические показатели (оценка стоимости и затрат на производство программного изделия); планирование и управление разработкой программного изделия (этапы разработки, их сроки, порядок исполнения и контроль); применение. Техническое задание разрабатывается после этапа «Анализ требований»;
Эскизный проект (прототип)
Эскиз – прототип будущего программного изделия (первый виток в спирали), который определяется сложностью программного изделия и представляет собой предварительную разработку структуры программного изделия, его входных и выходных данных. При этом выполняется обязательное описание алгоритмов решения задачи, подготавливается технико-экономическое обоснование и выполняется разработка пояснительной записки эскиза проекта с дальнейшим его утверждением ГОСТ 19.105–78, ГОСТ 19.404–79.
Технический проект
Является результатом этапа проектирования программного изделия, итогом которого является структура программного изделия с выделением его компонентов и соответствующих потоков данных. При этом производится описание общей структуры и ее модулей. Для каждого модуля указывается его место расположения в структурной схеме, номер, данные о разработчике данного модуля. Указываются его функции, входные и выходные данные, приводится пример вызова, предоставляется алгоритм, набор соответствующих тестов. Указываются все используемые внешние устройства для размещения данных, средства защиты и интерфейс (см. «Разработка спецификаций»). После завершения данного раздела формируется документ «Пояснительная записка к техническому проекту»;
Рабочий проект
Данный вид документации составляется на основе этапа разработки программного изделия. При этом указываются все программируемые модули на выбранном языке, итог отладки и тестирования, а также указываются пункты методики испытаний; последовательность приемо-сдаточных работ;
Внедрение
Документация по внедрению. Данный вид документации должен содержать программу передачи программного изделия заказчику, а также ряд мероприятий по сопровождению, модификации, устранению ошибок и возможного развития системы. Кроме этого, должны предусматриваться средства обучения пользователей, а также различные справочные руководства для получателей, операторов, системных программистов.
CASE-средства автоматизации документирования
(При ООП подходе) Rational Rose интегрируется со средством SoDA - для документирования проектов.
(При структурном подходе) BPWin и ERWin интегрируются со средством CrystalReports, которое позволяет создавать отчеты.
Также существует динамическая документация, например, когда в модель вносят изменения, то изменения тут же вносятся и в отчет.
Билет 7
