Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Билеты готовые ГОС 2013.docx
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
2.57 Mб
Скачать

Билет № 15

  1. Понятия, используемые для описания систем. Способы описания систем.

Элемент – конечная неделимая частица объекта системы, не обладающая своей собственной целью. Подсистема – вычлененная совокупность взаимосвязанных элементов, способных выполнять относительно независимые функции, направленные на достижение общей цели системы. Подсистема может иметь свою подцель, не обязательно совпадающую с целью системы.Структура – (лат. расположение, порядок) отражение наиболее существенных взаимоотношений между элементами и их группами. Структура может быть представлена графически, в виде теоретико-множественных описаний, матриц. Связь – характеризует статистику и динамику системы, и обеспечивает возникновение и сохранение структуры, и целостность свойств системы. Связь характеризуется направлением, силой, характером. Состояние – множества существенных свойств, которыми обладает система в данный момент времени. Характеризует «срез» системы в некоторый момент времени. Поведение. Для многих систем определенно поведение. Если система способна переходить из одного состояния в другое, то она обладает поведением. Внешняя среда – множество элементов, не входящих в систему, но изменение их состояний вызывает изменение поведения системы. Любую систему окружает большое количество элементов, только часть из которых оказывает на нее влияние. Остальные учитывать не надо.

Модель системы описание системы, отражающее определенную группу ее свойств. Это описание всегда имеет некоторые ограничения: некоторые свойства системы считаются несущественными. Углубление описания – детализация модели. Создание модели позволяет предсказать ее поведение в определенном диапазоне условий. Различают следующие модели:

  • Фундаментальные – детальные модели, которые количественно описывают поведение и/или свойства системы, начиная с такого числа допущений, какое только является возможным. Такие модели предельно подробны и точны для явлений, которые они описывают (к ним относятся задачи управления);

  • Феноменологические – это качественная модель, она используется для качественного описания некоторых процессов, когда точные соотношения не известны или слишком сложны для применения. (к ним относятся задачи поиска).

Модель функционирования или поведения системымодель, предсказывающая изменения состояния системы во времени, если мы в любой ситуации можем предсказать её поведение.

Равновесиеспособность при отсутствии внешних воздействий сохранять свое состояние сколь угодно долго.

Устойчивость – способность системы возвращаться в состояние равновесия после её выведения из равновесия с помощью внешних возмущающих воздействий.

Цель – некая функция, улучшение которой говорит о целесообразности или целенаправленности системы в конкретных условиях. Система может иметь несколько противоречащих друг другу целей, и тогда мы выбираем одну и улучшаем ее эффективность.

Существуют следующие способы описания систем:

1. Аксиоматические логические структуры – являются качественными методами описания системы для изучения дедуктивного анализа свойств и поведения систем. В этом способе описания используются высказывания формальной логики;

2. Топология, функциональный анализ, количественный анализ – все три метода являются количественным анализом системы, но они применимы не для полного анализа, а для выявления поведения подсистем;

3. Алгебраическая теория систем пытается объединить количественные и качественные методы исследования систем, но она находится в стадии разработки.

  1. Виды декомпозиций. Правила декомпозиции без потерь.

Декомпозиция отношений проводится, чтобы исключить избыточное дублирование в отношениях. Выделяют два типа декомпозиций отношений: без потерь и с потерями. Декомпозиция без потерь происходит тогда, когда после соединения вновь полученных отношений получается исходное отношение. В ряде случаев невозможно провести декомпозицию без потерь. В этом случае надо решить: или поддерживать избыточное дублирование; или теряем ФЗ и поддерживаем ее программным путем. Выбор должен быть обоснован.

Существуют следующие виды декомпозиций:

  1. Декомпозиция на минимальном покрытии (если в отношении только один ключ);

  2. Декомпозиция на кольцевом покрытии (если в отношении несколько ключей и существуют эквивалентные левые части ФЗ);

  3. Декомпозиция по теореме Хеза (если ни один из вышеперечисленных методов неприемлем или не дает желаемого результата).

Процесс декомпозиции следует всегда начинать со следующих операций:

  • с определения (идентификации) всех атрибутов, подлежащих хранению в БД.

  • установления между ними функциональных зависимостей.

Критерий, по которому определяют необходимость декомпозиции отношения, - нахождение отношения в той или иной НФ.

Процесс декомпозиции осуществляется поэтапно, при этом на каждом этапе (в большинстве случаев) исходное отношение разбивается только на 2 отношения, затем делается вывод о необходимости продолжения декомпозиции, если она необходима - процесс продолжается.

Декомпозиция снимает большинство проблем, связанных с выполнением операций – удаление, добавление и редактирование, за счет исключения избыточного дублирования информации.

Примеры декомпозиций:

1. На минимальном покрытии: R={ABC}, F={A->B, B->C} => R1={AB} R2={BC}

2. Декомпозиция на кольцевом покрытии: {ABCD}, F={A->B, B->AC, C->D}. В отношении присутствуют два эквивалентных атрибута А и В. Декомпозиция этого отношения путём выделения каждой ФЗ в отдельное отношение приведёт к избыточному дублированию, но уже на уровне отношения. В том случае декомпозиция осуществляется на минимальном кольцевом покрытии: G={(A,B)->C, (C)->D} => G1={(A,B)->C } {ABC} и G2={(C)->D } {CD}

3. Пусть дано отношение со схемой R={ABC} и множеством ФЗ {A->B}. Данное отношение декомпозируется без потерь по т.Хеза на два отношения R1={AB} и R2={AC}

4. Декомпозиций без потерь и с потерями: R={ABC} и F={AB C; C B}. Без потерь: R1={CB} и R2={AC}. С потерями: R1/={AB} и R2/={CB}

  1. Интерпретаторы и компиляторы. «За» и «против». Структура. Понятие Байт-кода (P-Code). Языки 4GL.

Для преобразования операторов исходного языка программирования в машинные коды используются программы-трансляторы. Существует два больших класса программ-трансляторов: компиляторы и интерпретаторы. Компиляторы – это программы, которые преобразуют исходные тексты программ, написанные на языке программирования высокого уровня, в программу на машинном языке. Полученный код называемый исполняемой программой, записывается в память микропроцессора и далее его можно устанавливать и запускать на нужном компьютере без дополнительных преобразований. Интерпретаторы также преобразуют код, написанный на языке программирования высокого уровня, но при использовании интерпретатора в память микропроцессора записывается исходный текст программы, а трансляция производится построчно, при считывании очередного оператора. Для того чтобы программа была «понятна» компьютеру, на котором предполагается исполнять высокоуровневый код непосредственно, на нем также должна работать программа интерпретации.

Подавляющее большинство интерпретаторов действует так, что исполняет исходную программу последовательно, по мере ее поступления на вход интерпретатора. При таком порядке работы интерпретатора проявляется существенная особенность, которая отличает его от компилятора, — если интерпретатор исполняет команды по мере их поступления, то он не может выполнять оптимизацию исходной программы. Следовательно, фаза оптимизации в общей структуре интерпретатора будет отсутствовать. В остальном же она будет мало отличаться от структуры аналогичного компилятора. Следует только учесть, что на последнем этапе — генерации кода — машинные команды не записываются в объектный файл, а выполняются по мере их порождения.

Естественно, что быстродействие интерпретаторов намного ниже по сравнению с компиляторами, т.к. при использовании оператора в цикле он транслируется многократно.

Байт-код — это промежуточный подход, при котором программа преобразуется в промежуточный двоичный вид, интерпретируемый некой «виртуальной машиной» во время исполнения.

С начала 70-х годов по настоящее время тянется период языков четвертого поколения (4GL). Несмотря на рождение новых технологий (ООП, визуальное программирование, CASE-методологии, системный анализ), процесс создания больших программных комплексов оказался очень трудоемкой задачей, так как для реализации крупных проектов требовался более глобальный подход к решаемым задачам, чем предлагали имевшиеся средства разработки. Языки 4GL частично снимали эту проблему. Целью их создания было в первую очередь стремление к увеличению скорости разработки проектов, снижение числа ошибок и повышение общей надежности работы больших программных комплексов, возможность быстрого и легкого внесения изменений в готовые проекты, упрощение самих языков для конечного пользователя, активное внедрение технологий визуальной разработки и т. д. Все средства разработки 4-го поколения имеют мощные интегрированные оболочки и обладают простым и удобным пользовательским интерфейсом. Они чаще всего используются для проектирования БД и работы с ними (встроенные языки СУБД), что объясняется возможностью формализации всех понятий, используемых при построении реляционных БД.

Языки 4GL активно применяются в различных специализированных областях, где высоких результатов можно добиться, используя не универсальные, а проблемно-ориентированные языки, оперирующие конкретными понятиями узкой предметной области. Как правило, в эти языки встраиваются мощные примитивы, позволяющие одним оператором описать такую функциональность, для реализации которой на языках младших поколений потребовалось бы написать тысячи строк кода. Однако пользователям, использующим языки 4GL для создания законченных приложений, по-прежнему необходимо кодировать программу вручную, используя обычный процесс последовательного ввода команд. При этом сохраняется главный недостаток языков предыдущих поколений. Он заключается в том, что все они в значительной степени ориентированы на чуждую человеческому мышлению чисто компьютерную идеологию (работа с памятью, переменными, базами данных, последовательностями абстрактных операторов), что требует от людей хорошего понимания принципов функционирования компьютера и ОС.

  1. Шифрование. Использование технологии TLS/SSL, ЭЦП.

Шифрование является способом сокрытия от посторонних исходного содержания информационных данных. Зашифрованные данные становятся недоступными для всех, за исключением получателей этой информации.

1. Шифрование с закрытым ключом.

В прошлом, организации, желающие работать в безопасной вычислительной среде, использовали шифрование с закрытым ключом, в которых один и тот же закрытый ключ (некий уникальный код) использовался и для шифрования и для расшифровки сообщений. В этом случае отправитель шифровал сообщение, используя закрытый ключ, затем посылал зашифрованное сообщение вместе с закрытым ключом получателю. Такая система имела недостатки: 1. Секретность и целостность сообщения могли быть скомпрометированы, если ключ перехватывался, поскольку он передавался от отправителя к получателю вместе с сообщением по незащищенным каналам; 2. Так как оба участника транзакции используют один и тот же ключ для шифрования и дешифрования сообщения, вы не можете определить, какая из сторон создала сообщение; 3. Для каждого получателя сообщений требуется отдельный ключ, а это значит, что организации должны иметь огромное число закрытых ключей, чтобы поддерживать обмен данными со всеми своими корреспондентами.

  1. Шифрование с открытым ключом

- является более безопасным методом. Здесь используется технология защищенного канала SSL. SSL (Secure Sockets Layer — уровень защищённых сокетов) — криптографический протокол, обеспечивающий безопасную передачу данных по сети Интернет.

Технология SSL (Secure Sockets Layer) и её современная версия TLS (Transport Layer Security) обеспечивают секретность работы в Интернете путём организации защищённого шифрованием канала связи между клиентским браузером и тем узлом сети (web-сервером, например), с которым пользователь браузера обменивается информацией. Обмен данными осуществляется через защищенный канал, который не позволяет злоумышленнику узнать или исказить информацию. Проверка целостности данных гарантирует, что данные не менялись в процессе пересылки от браузера к серверу или обратно.

SSL (TSL) базируется на криптографических протоколах с открытым ключом. В данном механизме используются два связанных ключа - открытый (публичный) и закрытый (секретный) ключ. Они существуют парами и, в идеальной ситуации, закрытый ключ не может быть выведен из открытого, что позволяет свободно распространять открытый ключ. [Чтобы организовать защищённый канал связи, двум сторонам достаточно обменяться между собой публичными ключами через открытый канал связи - через Интернет. (Либо открытый ключ может передать только одна сторона, с той целью, чтобы второй участник обмена данными вернул в зашифрованном виде секретный сеансовый ключ, который будет использован сторонами для шифрования информации в рамках сеанса связи. Именно по этой схеме работает SSL).] Данные, зашифрованные при помощи открытого ключа, могут быть расшифрованы в обратном порядке только при помощи соответствующего закрытого ключа. А поскольку никто, кроме получателя сообщения, его не знает, то сообщение не может быть прочитано никем другим.

[При использовании SSL для работы с web-сайтом создание набора ключей (открытых и секретных) и обмен этими ключами между браузером и web-сервером происходят автоматически, без участия пользователя. После того как секретный канал создан, работа с web-сайтом для посетителя ничем не отличается от работы по открытому каналу, однако передаваемые и принимаемые данные автоматически шифруются.]

Одна из проблем шифрования с открытым ключом состоит в том, что открытый ключ (и соответствующий закрытый) может быть сгенерирован кем угодно, в том числе и злоумышленником, который выдаёт себя за кого-то другого, просто называясь его именем.

  1. Одностороннее кодирование (шифрование). (Сохранение паролей в виде хеш-функций).

Результатом односторонней хеш-функции обычно бывает выход фиксированной длины (независимо от входа). При использовании таких функций практически невозможно при помощи вычислений определить входную информацию для хеш-значения или определить два уникальных значения, хешированные до одинаковых значений. (Пример - Надежный Хеш-Алгоритм (Secure Hash Algorithm - SHA), разработанный Национальным Институтом Стандартов и Технологий (National Institutes of Standards and Technologies - NIST), выдающий 160 битовое значение.)

Типичным применением таких функций является вычисление "дайджест сообщения" (message digest), которое делает возможным для получателя проверить достоверность данных дублированием вычислений и сравнением результатов. Выходные данные хеш-функций, шифрованные при помощи алгоритма открытых ключей, являются основой для "Цифровых Подписей" (NIST Digital Signature Algorithm - DSA)

Зависимые от ключа односторонние хеш-функции требуют ключа для вычисления и проверки хеш-значения. Это очень полезно для целей авторизации, когда посылающая и принимающая стороны могут использовать зависимые от ключа хеш-функции в схеме "запрос-ответ". Эти функции могут быть реализованы очень просто - добавлением ключа к сообщению с последующей генерацией хеш-значения. Другой способ - использовать шифрование блоками при CFB, с кодированием каждого блока в зависимости от выхода предыдущих блоков.

  1. Электронная цифровая подпись (ЭЦП).

Электронная цифровая подпись была разработана для использования в алгоритмах шифрования с открытым ключом для решения проблемы подлинности и целостности. Наличие ЭЦП гарантирует подлинность документа и защищает от подделки, а также помогает идентифицировать владельца сертификата цифровой подписи и предотвратить искажения в документе.

Электронная подпись формируется в результате криптографического преобразования данных и представляет собой уникальную последовательность символов, известную только ее владельцу.

Цифровые сертификаты распределяются специальной организацией — certification authority (CA) (например, VeriSign) — и подписываются закрытым ключом этой организации. Они включают имя участника (организации или человека), его открытый ключ, серийный номер, срок годности сертификата, разрешение от поставщика сертификатов и любую другую информацию, имеющую отношение к теме. Доступ к цифровым сертификатам открыт, а содержатся они в архивах сертификатов.

  1. Модель OSI.

Международная организация стандартов ISO (International Standard Organization) предложила некоторую абстракцию – модель открытых систем OSI (Open System Interconnected). Согласно этой модели все сетевые технологии проецируется на 7 отдельных уровней, ее также называют семиуровневой моделью.

Каждый уровень данной модели не зависит от остальных и выполняет только свою собственную задачу. Любая сетевая технология может занимать 1 или несколько различных уровней модели.

Уровни нумеруются с 1 по 7 снизу вверх.

1 уровень - физический. Данный уровень отвечает за кодирование и передачу сигналов в физической среде. Сигналы передаются в виде 0 и 1.

2 уровень – канальный. Данный уровень отвечает за формирование единицы передачи данных и трансляцию сигнала из цифрового формата в формат среды передачи. Единица передачи - фрейм.

3 уровень – сетевой. Данный уровень отвечает за маршрутизацию (выбор оптимального пути) и организацию негарантированной доставки данных. Единица передачи – пакет.

4 уровень – транспортный. Преобразует входящий поток данных в логические единицы передачи (пакеты), а также отвечает за систему гарантированной доставки данных (существует 3 метода).

5 уровень – сеансный. Отвечает за организацию логического (виртуального) канала связи между отправителем и получателем информации. Устанавливается до передачи данных, закрывается после.

6 уровень – представлений. Отвечает за кодирование информации из формата используемой платформы в усредненный сетевой формат. Позволяет создавать так называемые гетерогенные сети, независящие от платформы.

7 уровень – приложений. Отвечает за интерфейс работы с пользователем, т.е. набор команд, которые может применять пользователь.

Уровни с 2 по 6 являются инкапсулирующими, т.е. каждый более низкий уровень инкапсулирует информацию более высокого уровня, добавляя к ней свои служебные данные.

Служебные данные каждого уровня обычно формируются отдельной группой, называемой заголовком. Исключение канальный уровень: кроме заголовка используется дополнительная группа, называемая трейлером. Трейлер, в отличие от заголовка находится после данных и используется, обычно, для контроля качества среды передачи данных. Обычно, это расчет контрольной суммы.