Общая схема постановки и решения предметных задач



Мы поможем в написании ваших работ!


Мы поможем в написании ваших работ!



Мы поможем в написании ваших работ!


ЗНАЕТЕ ЛИ ВЫ?

Общая схема постановки и решения предметных задач



Цель

2) Представления о модели

3) Исходные данные

4) Результат

5) Критерий оценки

8. Понятие о модели.

Всякое представление информации о внешнем мире связано с построением некоторой модели.

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

Существует множество типов моделей и способов их классификации: по цели использования, областям применения, по сложности, целям моделирования и т.д. Модели внешнего подобия, такие как модели самолетов, машин, манекены и т.п., - используются для предварительных испытаний. Учебные схемы (глобус как модель планеты, модель кристаллической решетки и т.п.), тренажеры, имитирующие поведение реальных объектов в сложных ситуациях, служат для обучения. Функциональные модели или модели-эрзацы заменяют объекты при выполнении определенных функций (протезы, искусственный сердечный клапан и т.п.). Исследовательские модели - математические и имитационные - заменяют реальные объекты в ходе научных исследований. В зависимости от области применения модели могут быть естественнонаучными (например, F = m * a), космогоническими (модель мира, времена года), общественного устройства (школа, общинно-родовые отношения, Римская республика, семья, мафия), литературными, компьютерными.

Информационные модели - модели, в которых изучаемое явление или процесс представлены в виде процессов передачи и обработки информации.

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

Таким образом, при описании модели наше внимание сосредоточено не на отдельных элементах, а на системе - совокупности частей, элементов объекта (процесса) и отношениях между ними, придающих объекту (процессу) целостность. Такой перенос центра внимания называется системным подходом. Этот подход был впервые явно сформулирован в 1937 г. американским биологом Людвигом фон Берталанфи (Ludwig von Bertalanffy (1901-1972)).

В 1937 г. на философском семинаре Л. фон Берталанфи - американец немецкого происхождения, биолог Чикагского университета - выступил с докладом о системном подходе для определения понятия вид. Доклад был совершенно не понят, и автор «сложил все свои бумаги в ящик стола» Позднее, после войны, он достал свои старые записки, повторил свой доклад и обнаружил совершенно новый интеллектуальный климат. Что же он предложил? Никто из биологов не знает, что такое вид. Каждый знает, что есть собака, и есть ворона, и есть лещ, фламинго, жук, клоп... Все это знают, но определить, что это такое, никто не может, кроме узких специалистов-ученых. И почему животные одного вида и растения одного вида связаны каким-то образом между собой? Берталанфи предложил определение вида как открытой системы.

Вопрос 44

Классификация и особенности программных
методов защиты от копирования

Защитные механизмы по способу своего внедрения в защищаемый программный модуль могут быть пристыковочными и/или встроенными.

В пристыковочной защите работа модуля, ее осуществляющего, по времени не пересекается с работой защищаемого модуля. Как правило, сначала отрабатывает модуль защиты, затем – защищенный модуль. В этом случае обычно можно отследить момент передачи управления от пристыковочного модуля к защищаемому и обойти систему защиты без ее анализа.

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

Существуют две проблемы:

 не потеряет ли программа за время снятия ее защиты своей актуальности, т. е. не устареет ли ее информация;

 не превысят ли затраты на снятие защиты стоимости программы.

На сегодняшний день защита строится на внедрении в защищаемый модуль дополнительного модуля, осуществляющего некоторую проверку перед запуском основного модуля. В случае совпадения сравниваемых признаков осуществляется передача управления основному модулю. Иначе обычно происходит выход в операционную систему или "зависание" программы.

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

 временные характеристики (быстродействие различных компонент компьютера: процессор, память, контроллеры и т. д.; скорость вращения двигателей дисководов; время реакции на внешние воздействия);

 тип микропроцессора и конфигурация машины (тип микропроцессора и разрядность шины данных, наличие и тип контроллеров внешних
устройств);

 характерные особенности компьютера (контрольная сумма BIOS; содержимое СМОS-памяти; длина конвейера шины данных; аномальные явления при программировании микропроцессора).

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

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

Еще одним интересным и эффективным способом защиты программ от несанкционированного копирования (НСК) является использование аномальных явлений, с которыми приходится сталкиваться при программировании микропроцессора. Информацию о них чаще всего можно получить лишь экспериментальным путем. Это такие особенности работы компьютера, которые являются исключением из общих правил его функционирования. В качестве примера такого аномального явления может служить потеря одного трассировочного прерывания после команд, связанных с пересылкой сегментных регистров. Это свойство может применяться для недопущения работы программы под отладчиком.

Наиболее эффективным методом программной защиты выполняемых программ от НСК является их защита на этапе разработки. Модули защиты могут располагаться в нескольких местах программы, что значительно затруднит работу "взломщика" по поиску в дизассемблированной программе тех мест, где производится проверка каких-либо параметров машины. Это особенно эффективно, если программа написана не на Ассемблере, а на языке высокого уровня (С, ПАСКАЛЬ и др.).

Можно отметить два существенных момента:

 не использовать для защиты нескольких программ стандартные программные модули;

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

Первое обусловлено тем, что стандартный защитный модуль может быть обнаружен "взломщиком" при сопоставлении нескольких защищенных таким образом программ. Этот модуль будет иметь один и тот же вид в дизассемблированных кодах различных программ.

Второе обусловлено легким поиском в дизассемблированной программе места вызова модуля защиты.

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

Вопрос 45

В первом приближении все программы, работающие на компьютере, можно условно разделить на три категории (рис. 6.1):

  1. прикладные программы, непосредственно обеспечивающие выполнение необходимых пользователям работ;
  2. системные программы, выполняющие различные вспомогательные функции, например:
    • управление ресурсами компьютера;
    • создание копий используемой информации;
    • проверка работоспособности устройств компьютера;
    • выдача справочной информации о компьютере и др.;
  3. инструментальные программные системы, облегчающие процесс создания новых программ для компьютера.

Рис. 6.1. Категории программного обеспечения

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

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

Развитие ПО пошло как вглубь (появились новые подходы к построению операционных систем, языков программирования и т.д.), так и вширь (прикладные программы перестали быть прикладными и приобрели самостоятельную ценность).

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

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

На сегодняшний день можно сказать, что более или менее определённо сложились следующие группы программного обеспечения:

  • операционные системы и оболочки;
  • системы программирования (трансляторы, библиотеки подпрограмм, отладчики и т.д.);
  • инструментальные системы;
  • интегрированные пакеты программ;
  • динамические электронные таблицы;
  • системы машинной графики;
  • системы управления базами данных (СУБД);
  • прикладное программное обеспечение.

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

Вопрос 46



Последнее изменение этой страницы: 2016-04-07; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.238.36.32 (0.006 с.)