- •Билет 1.
- •1. Инкапсуляция, наследование, полиморфизм. Классы, объекты и отношения между ними. Диаграммы логического уровня.
- •2. Симметричные блочные криптоалгоритмы. Сеть Фейстеля.
- •Билет 2
- •1. Объявление и реализация классов на языке Паскаль.
- •2. Интерфейс. Пользовательский интерфейс. Классификация пользовательских интерфейсов.
- •Билет 3.
- •1. Графы. Основные определения. Машинное представление графов в последовательной памяти и связанной памяти.
- •2. Общая схема симметричной криптосистемы. Алгоритм построения цепочек.
- •3. Написать процедуру, которая выполняет вставку компоненты по заданному ключу.
- •Билет 4.
- •1. Нормальный алгоритм Маркова.
- •2. Парадигмы интерфейсов.
- •Билет 5.
- •1. Понятие процесса. Состояние процессов. Алгоритмы планирования процессов.
- •2. Общие сведения об ассиметричных криптоалгоритмах. Понятие электронной цифровой подписи.
- •3. Вычислить факториал числа 8.
- •Билет 6.
- •1. Файловая системаFat.
- •2. Основные компоненты графических пользовательских интерфейсов.
- •3. Если элементы массивыD[1…5] равны соответственно 4, 1, 5, 3, 2, то значение выражениеD[d[3]]-d[d[5]] равно?
- •Билет 7
- •1. Структуры распределенных вычислительных систем(топология, физические и логические элементы сетей эвм)
- •2. Встроенные средства контроля доступа в современных ос.
- •3. Указать к какому классу относится каждый из перечисленныхIPадресов:
- •Билет 8
- •1.Трансляторы, компиляторы и интерпретаторы: определение, общая схема работы. Варианты взаимодействия блоков транслятора.
- •2. Эргономические требования, предъявляемые к дизайну пользовательских интерфейсов.
- •3. Указать к какому классу относится каждый из перечисленныхIPадресов:
- •Билет 9
- •1. Сети Петри. Моделирование процессов на основе сетей Петри.
- •2. Нормализация таблиц при проектировании баз данных. Нормальные формы (1нф, 2нф, 3нф, нфбк).
- •3. Составить программу, которая формирует очередь, добавляя в неё произвольное количество компонент.
- •Билет 10.
- •1. Понятие алгоритма. Интуитивное понятие алгоритма.
- •2. Функции субд.
- •Билет 11.
- •1. Структура данных типа стек. Логическая структура стека. Машинное представление стека и реализация операций.
- •2. Принципы и виды отладки программного средства. Автономная отладка программного средства. Комплексная отладка программного средства.
- •3. Дан массив типаwordразмерностьюn. Найти сумму всех элементов, не превышающих заданногоm, далее вывести на экран.
- •Билет 12.
- •1. Сети Петри. Моделирование процессов на основе сетей Петри.
- •2. Модели объектов проектирования .
- •Билет 13.
- •1. Концепции информационного моделирования. Создание моделей на языкеUml.
- •2. Модели систем управления данными: сетевая, иерархическая, реляционная модель.
- •Билет 14.
- •1. Принципы создания компонент в визуальных средах разработки.
- •2. Жизненный цикл программного обеспечения. Модели жизненного цикла по: каскадная, спиральная. Стадии, фазы работы жизненного цикла.
- •Билет 15.
- •1. Деревья. Основные определения. Логическое представление и изображение деревьев. Бинарные деревья. Машинное представление деревьев в памяти эвм. Алгоритмы прохождения деревьев.
- •2. Реляционная модель данных. Базовые понятия. Отношения и свойства отношений. Составляющие реляционной модели данных.
- •Билет 16.
- •1. Предваренная, скулемовская и клазуальная формы. Логическое следование. Унификация. Алгоритм унификации. Исчисление метода резолюций.
- •2. Структура внешнего описания пс. Качество по. Критерии и примитивы качества.
- •Билет 17.
- •1. Понятия прерывания. Виды прерываний. Механизмы прерываний.
- •2. Стадии и этапы разработки базы данных.
- •3. Дан массив типаwordразмерностьюn. Найти сумму всех элементов не прерывающих заданногоm, далее вывести на экран.
- •Билет 18.
- •1. Понятие о способах коммутации в распределенных вычислительных системах(коммутации каналов, коммутация пакетов).
- •2. Процессы управления разработкой пс. Структура управления разработки пс. Планирование составление расписания по разработке пс. Аттестация пс.
- •3. НаписатьHtmLкод для отображения в браузере таблицы:
- •Билет 19.
- •1. Характеристики транспортного и прикладного уровней стека протоколовTcp/ip.
- •2. Трехуровневая архитектура схем баз данных в субд.
- •3. НаписатьHtmLкод для отображения в браузере таблицы:
- •Билет 20.
- •1. Формальные языки и грамматики. Классификация грамматик по Хомскому.
- •2. Методы разработки структуры пс. Восходящая разработка пс. Нисходящая разработка. Конструктивный подход. Архитектурный подход разработки пс.
- •Билет 21.
- •1. Конечные автоматы, автомат со стековой памятью (магазин).
- •2. Организация шин.
- •Билет 22.
- •1. Сети Петри. Моделирование процессов на основе сетей Петри.
- •2. Организация памяти эвм.
- •Билет 23.
- •1. Понятия прерывания. Виды прерываний. Механизмы прерываний.
- •2. Инструментальные среды разработки и сопровождения программных средств и принципы их классификации. Основные классы инструментальных сред разработки и сопровождения программных средств.
- •Билет 24.
- •1. Динамическое поведение объектов. Состояния, события, сигналы и сообщения. Модели взаимодействия объектов.
- •2. Типы структур вычислительных машин и систем, перспективы и развития.
- •Билет 25
- •1. Структура данных типа стек. Логическая структура стека. Машинное представление стека и реализация операций.
- •2. Основные понятия, определения и назначение сапр
- •3. Составить программу, которая формирует очередь, добавляя в неё произвольное количество компонент.
- •Билет 26.
- •1. Сравнительный анализ алгоритмов поиска: линейный, двоичный.
- •2. Факторы, определяющие развитие архитектуры вычислительных систем.
- •3. Составить программу, которая формирует очередь, добавляя в неё произвольное количество компонент.
- •Билет 27.
- •1. Рекурсивные функции. Лямбда- исчисление Черча.
- •2. Обеспечивающие системы сапр.
- •Билет 28.
- •1. Память. Типы адресов. Виды распределения памяти.
- •2. Архитектура системы команд.
- •3. Найти в массиве максимальный элемент и его индекс. Вывести на печать.
- •Билет 29.
- •1. Аппаратура передачи данных (модемы).
- •2. Проектные процедуры в сапр.
- •Билет 30.
- •1. Характеристика канального и сетевого уровней стека протоколовTcp/ip.
- •2. Стековая архитектура вычислительных машин.
- •Билет 31
- •1. Синтаксический разбор. Классификация методов синтаксического разбора.
- •2. Интеграция систем автоматизации проектирования и управления(cad–cam–capp– системы).
- •Билет 32
- •1. Понятие алгоритма. Интуитивное понятие алгоритма.
- •2. Объекты и отношения в программировании. Сущность объектного подхода к разработке программных средств. Особенности объектного подхода к разработке внешнего описания программного средства.
- •3. Указать к какому классу относится каждый из перечисленныхIPадресов:
- •Билет 33.
- •1. Объявление и реализация классов на языке Паскаль.
- •2. Архитектура клиент-сервер. Распределенные базы данных.
- •Билет 34.
- •1. Характеристики транспортного и прикладного уровней стека протоколовTcp/ip.
- •2. Вычислительные методы решения задач на эвм. Приближения функций. Интерполяция и Метод наименьших квадратов.
- •Билет 35.
- •1. Компоненты и интерфейсы. Диаграммы физического уровня.
- •2. Правовые вопросы организации Интернет-сайта.
- •Билет 36.
- •1. Структуры данных типа очередь. Логическая структура очереди. Машинное представление очередиFifOи реализация операций. Очереди с приоритетами.
- •2. Моделирование как процесс познания. Математическая модель, понятие вычислительного эксперимента и его структура.
- •3. Составить программу, которая формирует стек, добавляя в него произвольное количество компонент.
- •Билет 37
- •1. Улучшенные методы сортировки. Сортировка Шелла, Хоара, улучшенная сортировка выбором. Сортировка с помощью дерева.
- •2. Правовые вопросы, возникающие при использовании электронной почты.
- •3. Составить программу, которая формирует стек, добавляя в него произвольное количество компонент.
- •Билет 38.
- •1. Классификация ос. Требования, предъявляемые к ос.
- •2. Понятие системы. Математическое определение системы. Классификация систем.
- •Билет 39.
- •1. Понятия файла. Структура файла. Реализация файлов
- •2. Виды объектов авторского права. Виды авторских прав. Программы для эвм и базы данных, как объектов авторского права.
- •3. Подсчитать сколько раз в массиве встречается заданный элементN. Вывести количество данных вхождений.
- •Билет 40.
- •1. Характеристики локальных вычислительных сетей типаEthernet.
- •2. Нормальный алгоритм Маркова.
- •3. Написать кодcssфайла в котором при помощи псевдоклассов описывается поведение ссылок отличное от стандартного.
- •Билет 41.
- •1. Взаимодействие узлов с использованием стека протоколовTcp/ip.
- •2. Объекты патентного права.
- •3. Указать к какому классу относится каждый из перечисленныхIPадресов:
- •Билет 42.
- •1. Машина Тьюринга.
- •2. Уровни моделирования. Общая характеристика и особенности. Моделирование на микроуровне. Обобщенная модель и моделирование тепловых систем (краевая задача для уравнения теплопроводности)
- •2) Уравнение теплопроводности
- •Билет 43.
- •1. Архитектура системы команд.
- •2. Уровни моделирования. Моделирование на макроуровне. Типичная общая модель и моделирование электрических систем.
- •Билет 44.
- •1. Структуры данных типа очередь. Логическая структура очереди. Машинное представление очередиFifOи реализация операций. Очереди с приоритетами.
- •2. Принципы построения современных эвм.
- •3. Найти в массиве максимальный элемент и его индекс. Вывести на печать.
- •Билет 45.
- •1. Характеристика канального и сетевого уровней стека протоколовTcp/ip.
- •2. Численное решение задачи Коши для обыкновенных дифференциальных уравнений. Метод Эйлера. Одношаговые и многошаговые методы.
- •3. Указать к какому классу относится каждый из перечисленныхIPадресов:
Билет 24.
1. Динамическое поведение объектов. Состояния, события, сигналы и сообщения. Модели взаимодействия объектов.
Рассмотрим существующие типы сообщений и приемы их визуального представления с помощью диаграмм последовательности. При одностороннем вызове управление возвращается объекту, инициировавшему вызов, сразу после принятия вызова объектом-получателем (рис. 1.24 а). Объект-отправитель продолжает функционировать одновременно с выполнением запрашиваемой операции. Синхронизация между объектами отсутствует.
Односторонние вызовы используются объектом-отправителем, когда не требуется ожидать завершения выполнения операции. Операция не возвращает результат своей работы. Следовательно, подразумевается, что такая операция не может нарушить целостность работы объекта-получателя.
При выполнении синхронных вызовов (рис. 1.24 б) объект-отправитель блокируется на все время выполнения операции объектом-получателем. Результат работы операции или сообщение о возникших ошибках возвращаются объекту-отправителю. Только после этого объект сможет продолжить свою дальнейшую работу. Типичный пример синхронного вызова – выполнение методов объекта. Способы ослабления синхронности показаны на рис. 1.24 (в, г).
Отсроченные синхронные вызовы объединяют свойства двух выше рассмотренных. Как и односторонние, они сразу же возвращают управление, но могут использоваться в тех случаях, когда необходимо получить результат выполнения операции. Для этой цели существует специальный объект-посредник, который создается в момент завершения операции и которому передается служебная информация объектом-получателем.
В результате объект-отправитель получает информацию об операции от объект-посредника. Недостатком такого способа является необходимость периодической проверки (опроса), что, конечно, повышает его ресурсоемкость. Типичный прием применения техники отсроченного синхронного вызова заключается в использовании флага (некоторой булевой переменной), находящегося в области видимости обоих объектов. После выполнения операции статус флага изменяется, а объект-отправитель периодически его проверяет, отслеживая изменение.
Асинхронные вызовы не ожидают окончания работы объекта-получателя, а выполняются в отдельном потоке управления. Передача асинхронных сообщений предполагает существование множественных потоков управления и в основном характерна для инженерных приложений и приложений реального времени.
Обратные вызовы позволяют проинформировать объект-отправитель о завершении обработки сообщения путем передачи ему асинхронного сообщения (рис. 1.24 г.). Перед выполнением вызова объекту-получателю сообщается адрес некоторой функции обратного вызова (callback function) объекта-отправителя. По завершении обработки сообщения выполняется обратный вызов.
Автосообщения предназначены для передачи объектом сообщений самому себе. В этом случае происходит локальный вызов – один метод вызывает другой метод одного и того же объекта. Само название автосообщение заимствовано из языка SmallTalk. Применительно к объекту в языках C++ и Java автосообщению соответствует термин this, а в языке Object Pascal – self. Соответствующий объект представляет собой константу, которая хранит идентификатор объекта OID. При необходимости автообъект может быть передан как аргумент в сообщении.
а). Односторонний вызов. |
б). Синхронный вызов. |
в). Отсроченный синхронный вызов. |
г). Обратный вызов.
|
Рис. 1.24. Способы синхронизации объектов.
В UML сообщения имеют специальное обозначение (рис. 1.25). Направление стрелки указывает на получателя сообщения. Стрелка на рис. 1.25 а обозначает простой вызов процедуры. Обычно такие сообщения являются синхронными. Стрелка на рис. 1.25 б обозначает простой поток управления. Каждая такая стрелка изображает один этап в последовательности потока управления. Стрелка на рис. 1.25 в используется для обозначения асинхронного потока управления. Соответствующие сообщения формируются в произвольные, заранее не известные моменты времени, как правило, активными объектами. Стрелка на рис. 1.25 г обозначает возврат из вызова процедуры.
В UML предусмотрены стандартные действия (стереотипы), выполняемые в ответ на получение соответствующего сообщения. Они могут быть явно указаны на диаграмме рядом с сообщением, к которому они относятся. В этом случае они записываются в кавычках.
Используются следующие обозначения для моделирования действий:
"call" (вызвать) – сообщение, требующее вызова операции или процедуры принимающего объекта. Если сообщение с таким стереотипом рефлексивное, то оно инициирует локальный вызов операции у пославшего это сообщение объекта;
"return" (возвратить) – сообщение, возвращающее значение выполненной операции вызвавшему ее объекту;
"create" (создать) – сообщение, требующее создания другого объекта для выполнения определенных действий. Созданный объект может получить фокус управления;
"destroy" (уничтожить) – сообщение с требованием уничтожить соответствующий объект. Посылается в том случае, когда объект больше не нужен и должен освободить задействованные им системные ресурсы;
"send" (послать) – обозначает посылку другому объекту некоторого сообщения, который асинхронно (без временной синхронизации) инициируется одним объектом и принимается (перехватывается) другим.
Наряду с сообщениями в UML определены понятия события и сигнала. Событием является сообщение, при получении которого объектом происходит изменение его внутреннего состояния. Сигнал является событием особого рода, при котором событие передается асинхронно от одного объекта к другому. Если говорить точнее, сигнал – именованный объект, асинхронно возбуждаемый одним объектом и принимаемый другим. Примером могут служить объекты исключений, которые поддерживаются в ряде объектно-ориентированных языках программирования для обработки ошибок.
Активные и пассивные классы
Взаимодействия между объектами описываются сообщениями, которыми они обмениваются. Сообщения передают некоторую информацию от одного объекта другому. При этом первый объект ожидает, что после получения сообщения вторым объектом последует выполнение некоторого действия. Таким образом, сообщения являются причиной создания, уничтожения объектов и выполнения ими определенных операций.
Когда объект посылает сообщение другому объекту, объект-получатель может инициировать передачу нового сообщения следующему объекту и т.д. Такой поток сообщений формирует последовательность, которая всегда имеет начало в некотором потоке. Каждый поток в системе определяет отдельный поток управления. В каждом потоке управления сообщения упорядочены по времени.
Потоки не существуют сами по себе. Они порождаются процессами. Процесс (Process) – ресурсоемкий поток управления, который выполняется параллельно с другими процессами. Можно сказать, что поток (Thread) – это облегченный поток управления, т.е. требующий меньше системных ресурсов, и выполняемый одновременно с другими потоками в рамках одного процесса.
В UML каждый независимый поток управления моделируется как активный объект. Активный объект описывает поток и способен инициировать некоторое управляющее воздействие. Активный класс – это класс, экземплярами которого являются активные объекты. Для явного различения, обычные классы иначе называют пассивными, указывая тем самым, что класс не способен инициировать независимое управляющее воздействие.
Активный класс используется для представления потока, в контексте которого выполняется независимый поток управления, работающий параллельно с другими равноправными потоками в рамках данного процесса. Когда создается активный объект, запускается на выполнение ассоциированный с ним поток управления. Когда активный объект уничтожается, работка потока завершается.
Процесс известен операционной системе и располагается в отдельном адресном пространстве. Все потоки всегда выполняются в контексте некоторого процесса. Кроме того, процессы и потоки никогда не бывают вложенными. Современные операционные системы обеспечивают возможность существования множества процессов и одновременного (параллельного) исполнения множества потоков в контексте каждого процесса.
Активным классам присущи свойства обычных классов: они имеют атрибуты, методы, участвуют в отношениях зависимости, обобщения, ассоциации.
Активные и пассивные объекты могут взаимодействовать друг с другом посредством обмена сообщениями. Рассмотрим возможные комбинации такого взаимодействия. Первый случай – пассивный объект передает сообщение другому такому же. Если оба объекта существуют в одном потоке, такое сообщение есть обычный вызов метода другого объекта.
Второй случай – активный объект передает сообщение другому активному. Здесь имеет место межпотоковое взаимодействие, т.к. каждому активному объекту соответствует свой собственный поток. Заметим, что здесь мы не оговариваем, принадлежат ли потоки одному процессу или разным процессам. В любом случае возможны два варианта взаимодействия.
В первом случае объект, вызывающий операцию другого объекта ждет ее окончания для получения результата. На все время выполнения операции оба потока будут заблокированы, а после ее выполнения будут вновь работать независимо друг от друга. Такой вариант называется синхронным вызовом.
Во втором случае вызов выполняется асинхронно: объект запрашивает операцию, и, не дожидаясь окончания ее выполнения, продолжает работу. Если принимающая сторона не сможет сразу получить сообщение, сообщение ставится в очередь, из которой в дальнейшем оно будет извлечено. Таким образом, объекты не синхронизированы, получают и обрабатывают сообщения по мере их поступления.
Третий случай – передача сообщения от активного объекта пассивному. Здесь чрезвычайно важна синхронизация активных объектов между собой, т.к. они не могут одновременно передать сообщение пассивному объекту. Для решения этой задачи существуют специальные способы синхронизации.
Наконец, последний вариант взаимодействия – передача сообщения от пассивного объекта активному. Учитывая, что каждый поток управления принадлежит некоторому активному объекту, взаимодействие в этом случае сводится к взаимодействию между двумя активными объектами