курсовая работа. Учебное пособие по дисциплине технология разработки программного обеспечения специальность Программирование в компьютерных системах
Скачать 7.57 Mb.
|
5.2. Сигнатурные методы защиты от несанкционированного копирования Сигнатурой вычислительной системы называется некоторая ее особенность, делающая ее уникальной. При этом сигнатура не должна копироваться. Защищенная программа проверяет наличие сигнатуры и выполняется только при ее наличии. При реализации данной формы защиты используют следующие методы, а также особенности вычислительной системы: Синхронизация дорожек диска. Первые секторы каждой из дорожек располагаются в произвольном месте, как только головка подведена к дорожке. На диске с синхронизированными дорожками первые секторы располагаются, например, по прямой линии. Подсчет битов. Этот метод основан на том, что нет двух дисководов, вращающихся с одинаковой скоростью. Характеристика диска, зависящая от скорости его вращения, может рассматриваться в качестве сигнатуры. Например, при форматировании диска всегда остается пустое место на каждой дорожке между концом последнего сектора и началом первого. Форматирующая программа заполняет этот промежуток ничего не значащими битами. Размер этого пространства, и следовательно, число битов зависят от скорости вращения дисковода. Запись ключевой информации в такие участки диска, как межсекторные промежутки, инженерные дорожки, между стандартными дорожками, а также в сектора, имеющие нестандартный формат. Физическое расположение файлов на диске. Неиспользованные участки файла. В связи с тем, что ОС работает с кластерами, которые могут состоять из нескольких секторов, возникает ситуация, когда последние сектора файла остается свободными. При копировании информация из них пропадает. Следовательно можно в такую область записать контрольную метку. Слабые биты. Для того чтобы сигнал (бит) записанный на диск был считан стандартной ОС, он должен иметь определенную величину. Метод заключается в записи определенных контрольных бит с меньшей .величиной. ;/ т.д. 5. 3. Аппаратные методы защиты от несанкционированного копирования В качестве сигнатуры ВС используются специальное устройство, обычно подключаемое к параллельному порту компьютера, электронный ключ. Являясь "прозрачным", он не мешает работе принтера. При запросе он возвращает некоторую уникальную последовательность и рассматриваемую в качестве сигнатуры. Существуют следующие основные виды электронного ключа: Простой электронный ключ. Содержит определенные числовые установки, а также программу их модификации в зависимости от входных значений. Эта информация записана в ПЗУ ключа. Электронный ключ с памятью. Аналогичен предыдущему, но при этом способен запоминать определенный объем информации^ в энергонезависимой памяти. Ключи с генераторами случайных чисел. Эти устройства имеют встроенные физические генераторы СЧ (генераторы "белого шума"). Выработанные случайные последовательности запоминаются во внутренней энергонезависимой памяти и служат сигнатурой.Некоторые типы ключей для генерации случайных чисел используют нестабильные процессы периферийных устройств (принтер). Электронный ключ, с одной стороны", является очень надежным в плане дублирования эго сигнатуры, а с другой - возможна программная имитация эго присутствия путем перехвата прерывания по обращению к параллельному порту. 6 Компьютерная вирусология Общие вопросы компьютерной вирусологии Программы, направленные па причинение определенного вреда компьютерной системе можно разделить на следующие классы: троянские программы; люки; компьютерные черви; компьютерные вирусы. Троянскими называются программы, содержащие скрытый модуль, осуществляющий несанкционированные действия. Троянские программы подразделяются на логические мины и мины с часовым механизмом. Такие программы срабатывают при наступлении определенного логического или временного значения. "Троянские программы" не имеют механизма самовоспроизведения. Программы, обеспечивающие вход в систему или получение привилегированных функций в обход существующих полномочий называются люками. К программам такого рода могут например относится программы определения пароля. Компьютерным червем называются участки кода, которые размножаются по компьютерной сети, переходя в другую сеть, не заражая файлов или других участков диска. Вред, наносимый компьютерной системе, заключается в уменьшении пропускной способности сети, замедлении работы серверов и пр.. Компьютерным вирусом называется программа, которая может заражать другие программы путем включения в них своей копии, способной к дальнейшему размножению. Основными действиями, выполняемыми вирусами являются размножение и проявление. Размножение является как правило первым действием вируса при получении им управления. Фаза проявления может чередоваться с размножением, начинаться через определенный инкубационный период или при сочетании некоторых условий. Вирус так же может обладать латентной фазой, в течение которой никаких действий,, по своему размножению или проявлению не предпринимается. Латентная фаза может быть обусловлена определенным временным периодом, логическим условием, конфигурацией ВС или аппаратными особенностями. Вирус модифицирует заражаемую программу таким образом, чтобы первым получить управление при передаче ей управления. После отработки вирус возвращает управление программе для ее нормальной работы. Имена вирусов могут формироваться в соответствии со следующими характеристиками: место разработки или обнаружения вируса ; по содержащимся в теле вируса текстовым строкам ; по вызываемым вирусам эффектам ; по длине вируса; в соответствии с классификационным кодом. Классификационный код был разработан в связи с появлением большого количества штаммов вирусов и необходимостью отражения в названии вируса его основных особенностей. Данный код состоит из буквенного префикса, количественной характеристики, буквенного суффикса. Префикс характеризует тип вируса: С, Е, R, В, М, J, МС. Количественная характеристика - длина вируса. Суффикс используется для определения номера штамма. Например RСЕ-1024С. Основные симптомы заражения вирусом: Изменение длины файла; Изменение даты и времени создания файла; Уменьшение объема оперативной и дисковой памяти; Появление потерянных или сбойных кластеров, дополнительных скрытых файлов и др. изменения файловой системы; Зависание или перезагрузка операционной системы; Сбойные ситуации при работе с файлами в таких программах как Word, Ехсеl и т.д. Структура и алгоритмы работы компьютерных вирусов Классификация вирусов по алгоритму работы 1. Вирусы - невидимки (Stealth). Stealth -вирусы маскируют свое присутствие в вычислительной системе. Для этого вирус использует следующие способы: при просмотре длин зараженных программ не показывает их изменений путем перехвата функций 21h-ого прерывания. После их выполнения вирус уменьшает значение длины файла и передает управление вызвавшей прерывание программе. для того чтобы при просмотре файла нельзя было обнаружить приращение инородного кода, вирусу необходимо излечить файл при его открытии и заново заразить в процессе закрытия. Это как правило реализуется перехватыванием функции открытия файла.. При ее вызове вирус проверяет заражен ли файл и если да, то по принципу антивируса излечивает его. Затем вирус заново заражает файл стандартным образом. Вирус подставляет при открытии файла его незараженный вариант. 2. Полиморфные вирусы. Пытаются затруднить обнаружение сигнатуры вируса. Это достигается путем шифровки тела вируса так. что каждый раз зашифрованный код выглядит мо-новому. Обычно полиморфный вирус состоит из двух основных частей: процедуры кодировки/разкодировки и основного шифруемого тела. Кодировщик остается постоянным (простейший вариант) или является самомодифицирующимся. Данный алгоритм построен на принципе использования "команд-пустышек" между основными командами, что приводит к изменению сигнатуры кодировщика не меняя алгоритм его работы. 3. DIR вирусы. Не модифицируют заражаемые файлы. Записывают свое тело в свободный кластер диска и помечают его как последний кластер файла. Корректируют каталог так, чтобы номер первого кластера зараженного файла указывал на кластер, в котором расположен вирус. После отработки вирус запускает на выполнение зараженную программу. Классификация вирусов по среде обитания I. Файловый нерезидентный вирус. Объектами заражения являются файлы, содержащие исполняемые команды. Наиболее просто осуществляется заражение СОМ файлов. В общем случае последовательность действий вируса следующая: восстановление первых байт зараженной программы; поиск файлов для заражения; чтение первых байт заражаемой программы и запись в тело вируса; формирование команд перехода на тело вируса; дозапись тела вируса в заражаемую программу; передача управления программе-вирусоносителю В случае файлов типа ЕХЕ меняются значения точки входа в программу на тело вируса. Методы заражения файлов типа СОМ и ЕХЕ: вставка тела вируса в начало файла. В этом случае заражаемая программа либо сдвигается по адресам на величину вируса, либо первые ее блоки переписываются в конец, а поверх них записывается тело вируса. При этом после отработки вирус должен восстановить первые блоки. вставка в конец файла. вставка в середину файла. Этот способ используется вирусами, поражающими определенный класс программ, особенности структуры которых заранее известны. Например, возможно перекрытие телом вируса части программы, содержащей описание символьных данных. Вирусы, заражающие драйверы должны модифицировать адреса процедур стратегии и прерывания. При заражении файлов других структур вирус должен быть настроен на эти структуры и знать особенности передачи им управления. Такие вирусы более специализированы и ,следовательно, имеют небольшую инфицирующую способность. Файловые нерезидентные вирусы активны только в момент передачи управления зараженной программе. 2. Файловый резидентный вирус Файловые резидентные вирусы наряду с файлами заражают ОП. Резидентный вирус состоит из двух частей: инсталлятор; модуль обработки прерываний. Инсталлятор получает управление при выполнении зараженной программы и в свою очередь активизирует вирус в ОП. Модуль обработки прерываний получает управление при возникновении перехваченного прерывания и выполняет действия по размножению и проявлению. Инсталлятор выполняет следующие действия: восстановление измененных байт зараженной программы; проверка зараженности ОП; установка модуля обработки прерываний в заданный участок ОП; передача управления зараженной программы. Для маскировки своих действий такие вирусы используют различные участки ОП, находящиеся за пределами той области, которую используют прикладные программы. 3. Бутовый вирус Бутовый вирус является специализированной разновидностью файлового резидентного вируса. При заражении он может использовать следующие два способа: полная замена стандартной загрузочной записи. Для этого вирус должен содержать в своем теле команды, соответствующие стандартному загрузчику для нормальной загрузки ОС; замена стандартной загрузочной записи с сохранением ее в другом месте диска. В этом случае вирус состоит из двух частей - головы и хвоста. Голова располагается на месте загрузочной записи. Хвост может располагаться в следующих участках винчестера: в кластерах, помеченных как сбойные; в последних секторах винчестера; в неиспользованных блоках FAT -таблицы или каталога; на инженерных дорожках винчестера..Как правило, хвост содержит в себе оригинальную загрузочную запись. Действия бутового вируса: перехват управления при загрузке ОС; проверка зараженности ОП; перехват соответствующих прерываний (обычно всегда 13Н); перезапись стандартной загрузочной записи в ОП и передача ей управления; перехват управления по обращению к диску; проверка зараженности диска и перезапись тела вируса.. 3. Файлово-бутовый вирус В связи с незначительной разницей в механизме действий файловых резидентных и бутовых вирусов существуют смешанные вирусы, заражающие как файлы, так и загрузочные записи. Они имеют наибольшую инфицирующую способность. 4. Макро-вирус При работе с документом Word (Ехсеl) при выполнении различных действии ищет и выполняет соответствующие макросы - при сохранении файла вызывается макрос FileSave при сохранении по команде СОХРАНИТЬ КАК – FileSaveAs -, при печати документов - FilePrint и т.д. Вирусы семейства Масго.Word содержат в себе как минимум один из автоматических макросов или один из стандартных макросов. Если документ заражен, то при открытии документа Word вызывает зараженный автоматический макрос и, таким образом, запускает код вируса. Если же вирус содержит макросы со стандартными именами, то они получают управление при вызове соответствующего пункта меню (Открыть, Закрыть и т.д. ) Контрольные вопросы Поясните понятия: физическая, логическая и социальная безопасность информационных систем. Укажите источники угроз и группы каналов утечки информации. Перечислите направления защиты информации. В чем заключается правовое регулирование вопросов защиты информации? Что определяет патент? В чем заключается авторское право? Что регулирует лицензия? Каковы основные свойства защищаемой информации? Укажите обязательные элементы всех типов защиты информации от несанкционированного доступа. Поясните назначение диспетчера доступа и укажите требования к диспетчеру. Приведите классификация моделей защиты и поясните их назначение. Каковы функции систем разграничения доступа? Укажите особенности защиты информации в каналах связи. Что такое «чистый канал»? Приведите классификацию алгоритмов шифрования. Каково назначение и реализация цифровой (электронной) подписи? Какова классификация мер защиты то исследования логики работы программы? Что обозначает статическая атака на систему? Что включает динамическая атака на исследование логики работы программы? Что такое сигнатура вычислительной системы? В чем заключаются сигнатурные методы защиты от несанкционированного копирования? В чем заключаются аппаратные методы защиты от несанкционированного копирования? Поясните классификацию вредоносных программ. Приведите классификацию вирусов. В чем отличие вирусов от червей? Перечислите симптомы заражения компьютерным вирусом. Глава 18. Инструментарий технологии программирования. CASE - технологии Классификация инструментальных средств В настоящее время обращает на себя внимание обилие средств, относящихся к инструментарию технологии программирования. Это связано со сложностью разработки программного продукта. Для разработки программы в целях решения конкретной прикладной задачи сложилась традиционная технология, показанная на рисунке: Здесь связи означают: 1 – заказчик на естественном (например, русском) языке объясняет математику или системотехнику (аналитику), какую прикладную задачу он хочет решить. Эта задача из некоторой предметной области, например, задача бухгалтерского учета или зачисления абитуриентов в ВУЗ; 2 – математик (или системотехник - аналитик)) формализует задачу, представляя ее в виде математической модели или составляя строгое формальное описание процедуры ее решения, входных и выходных данных. Этот этап называется формализацией задачи; 3 - программист на основании математической модели или другого формального описания поставленной задачи разрабатывает программу. Он выполняет также отладку программы, используя для этого компьютер. Этот этап называется программированием задачи; 4 – результаты решения задачи на ЭВМ сообщаются заказчику для определения того, удовлетворен ли он решением. Результаты решения задачи, будучи доведены до заказчика, могут его не удовлетворить в силу ряда причин. Это означает, что процесс, изображенный на рисунке, является циклическим: он завершается тогда, когда заказчик примет результаты решения задачи автоматизированным образом. В этом случае оформляется документация на эксплуатацию программного продукта. В ней описываются следующие характеристики программного продукта: основные характеристики программы, сведения об ее эксплуатации; сведения о назначении программы, области ее применения, используемых методах решения, ограничениях на применение, минимальной конфигурации технических средств; сведения для проверки работоспособности и корректности выполнения программы, для обеспечения функционирования и настройки программы на условия конкретного применения; сведения о необходимых запросах со стороны программы и форматах ответов пользователя; данные о нештатных ситуациях и поведении пользователя в них. Этот этап называется сдачей программы в эксплуатацию. Как видно, все связи на рисунке двунаправлены. Это означает, что в процессе проектирования программы идет диалог, в ходе которого уточняется и/или корректируется предмет общения. Инструментарий технологии программирования - это совокупность программ, обеспечивающих технологию разработки, отладки и внедрения программных продуктов. Инструментарий технологии программирования делится на два больших класса инструментальных средств: для создания отдельных приложений (программ) для создания информационных систем и технологий. 1. Средства для создания отдельных приложений включают локальные средства (языки программирования, системы программирования, инструментальные среды пользователя) интегрированные среды разработки программ, основное назначение которых повышение производительности труда программистов за счет автоматизации создания кодов программ, обеспечивающих интерфейс пользователя графического типа, а также автоматизации разработки запросов и отчетов (например, Delphi). Локальные средства: Языки программирования делятся на следующие виды: операторные. Используются для кодирования алгоритмов, а потому также называются алгоритмическими. Имеют в составе: машинно-зависимые (ассемблер). Применяются для написания программ, явно использующих специфику конкретной аппаратуры. Каждый компьютер имеет такую систему программирования, которая изготавливается и поставляется фирмой-изготовителем вместе с компьютером; машинно-ориентированные (язык С). Объединяет идеи ассемблера и алгоритмического языка. Программы компактны и работают очень быстро. универсальные (Турбо-Паскаль, Бэйсик). Приближены максимально, насколько это возможно, к естественному английскому языку: название каждой команды – английское слово; функциональные. Применяются, как правило, для машинного моделирования той или иной проблематики. Имеют в составе: проблемно-ориентированные . Моделируют систему с помощью последовательности событий. Применяются, в частности, при проектировании вычислительных комплексов; объектно-ориентированные . Имеют встроенные средства для моделирования новых объектов программирования; логико-ориентированные . Отдельно описываются правила предметной области, по которым затем выводятся новые факты. Системы программирования включают: интегрированную среду разработчика программы, состоящую, в частности, из текстового редактора, позволяющего создавать и корректировать исходные тексты программ, средств поддержки интерфейса программиста с системными средствами для выполнения различных сервисных функций (например, сохранения или открытия файла); транслятор – программу, переводящую исходный текст во внутреннее представление компьютера; отладчик – программу для трассировки и анализа выполнения прикладных программ. Позволяет отслеживать выполнение программы в пооператорном режиме, идентифицировать место и вид ошибок в программе, наблюдают за изменением значений переменных, выражений и т.д.; компоновщик – программа для подготовки прикладной программы к работе в конкретных адресах основной памяти компьютера; справочные системы. Инструментальная среда пользователя – это специальные программные средства, встроенные в ППП: библиотеки функций, процедур, объектов и методов обработки; макрокоманды; программные модули-вставки; конструкторы экранных форм и отчетов; языки запросов высокого уровня. 2. Средства для создания информационных систем и технологий поддерживают полный цикл проектирования сложной информационной системы или технологии от исследования объекта автоматизации до оформления проектной и прочей документации на информационную систему или технологию. Они позволяют вести коллективную работу над проектом за счет возможности работы в локальной сети, экспорта – импорта любых фрагментов проекта, организации управления проектом. Это, прежде всего, разнообразные CASE - средства. Подробнее CASE-технологии будут рассмотрены далее. 2. Общая характеристика CASE- средств В рамках программной инженерии CASE-средства представляют собой основную технологию, используемую для создания и эксплуатации систем ПО. Под CASE - средством (в соответствии с международным стандартом ISO/1ЕС 14102:1995(Е)) понимается программное средство, поддерживающее процессы жизненного цикла ПО (определенные в стандарте ISO/1ЕС 12207:1995), включая анализ требований к системе, проектирование прикладного ПО и баз данных, генерацию кода, тестирование, документирование, обеспечение качества, управление конфигурацией ПО и управление проектом, а также другие процессы. CASE-средства вместе с системным ПО и техническими средствами образуют среду разработки ПО (Software Engineering Environment). Современные CASE-средства охватывают обширную область поддержки многочисленных технологий проектирования ЭИС: от простых средств анализа и документирования до полномасштабных средств автоматизации, покрывающих весь жизненный цикл ПО. Наиболее трудоемкими стадиями разработки ПО являются стадии формирования требований и проектирования, в процессе которых CASE-средства обеспечивают качество принимаемых технических решений и подготовку проектной документации. При этом большую роль играют методы визуального представления информации. Это предполагает построение разнообразных графических моделей (диаграмм), использование многообразной цветовой палитры, сквозную проверку синтаксических правил. Графические средства моделирования предметной области позволяют разработчикам в наглядном виде изучать существующую систему, перестраивать ее в соответствии с поставленными целями и имеющимися ограничениями. В разряд CASE-средств попадают как относительно дешевые системы для персональных компьютеров с весьма ограниченными возможностями, так и дорогостоящие системы для неоднородных вычислительных платформ и операционных сред. Так, современный рынок программных средств насчитывает около 300 различных CASE-средств, наиболее мощные из которых так или иначе используются практически всеми ведущими западными фирмами. CASE-средствам присущи следующие основные особенности: наличие мощных графических средств для описания и документирования системы, обеспечивающих удобный интерфейс с разработчиком и развивающих его творческие возможности; интеграция отдельных компонентов CASE-средств, обеспечивающая управляемость процессом разработки ПО; использование специальным образом организованного хранилища проектных метаданных (репозитория). Интегрированное CASE-средство - (комплекс средств, поддерживающих полный ЖЦ ПО) содержит следующие компоненты: репозиторий, являющийся основой Case-средства. Он должен обеспечивать хранение версий проекта и его отдельных компонентов, синхронизацию поступления информации от различных разработчиков при групповой разработке, контроль метаданных на полноту и непротиворечивость; графические средства анализа и проектирования, обеспечивающие создание и редактирование комплекса взаимосвязанных диаграмм, образующих модели деятельности организации и системы ПО; средства разработки приложений, включая языки 4GL (язык 4-го поколения) и генераторы кодов; средства управления требованиями средства управления конфигурацией ПО; средства документирования; средства тестирования средства управления проектом; средства реверсного инжиниринга ПО и баз данных. Репозиторий Основные функции средств организации и поддержки репозитория — хранение, доступ, обновление, анализ и визуализация всей информации по проекту ПО. Содержимое репозитория включает не только информационные объекты различных типов, но и отношения между их компонентами, а также правила использования или обработки этих компонентов. Репозиторий может хранить свыше 100 типов объектов, примерами которых являются диаграммы, определения экранов и меню, проекты отчетов, описания данных, исходные коды и т.п. Каждый информационный объект в репозитории описывается перечислением его свойств: идентификатор, имена-синонимы, тип, текстовое описание, компоненты, область значений. Кроме этого, хранятся все отношения с другими объектами, правила формирования и редактирования объекта, а также контрольная информация о времени создания объекта, времени его последнего обновления, номере версии, возможности обновления и т.п. Репозиторий является базой для стандартизации документации по проекту и контроля проектных спецификаций. Все отчеты строятся автоматически по содержимому репозитория. Важные функции управления и контроля проекта также реализуются на основе репозитория. В частности, посредством репозитория может осуществляться контроль безопасности (ограничения доступа, привилегии доступа), контроль версий, контроль изменений и др. Графические средства (диаграммеры) обеспечивают: создание иерархически связанных диаграмм, в которых сочетаются графические и текстовые объекты; создание и редактирование объектов в любом месте диаграммы; создание, перемещение и выравнивание групп объектов, изменение их размеров, масштабирование; сохранение связей между объектами при их перемещении и изменении размеров; автоматический контроль ошибок и др. Важность контроля ошибок на стадиях формирования требований и проектирования обусловлена тем, что на более поздних стадиях их выявление и устранение обходятся значительно дороже. В CASE-средствах обычно реализуются следующие виды контроля: контроль синтаксиса диаграмм и типов их элементов. Обычно такой контроль осуществляется при вводе и редактировании элементов диаграмм; контроль полноты и состоятельности диаграмм: все элементы диаграмм должны быть идентифицированы и отражены в репозитории. Например, для ВРВ контролируются неименованные или несвязанные потоки данных, процессы и хранилища данных; сквозной контроль диаграмм одного или различных типов на предмет их состоятельности по уровням — вертикальное и горизонтальное балансирование диаграмм. При вертикальном балансировании диаграмм одного типа выявляются несбалансированные потоки данных между детализируемой и детализирующей диаграммами. Горизонтальное балансирование определяет несоответствия между структурами данных и спецификациями процессов. 3. Классификация CASE-средств Можно привести много примеров различных классификаций CASE-средств, встречающихся в литературе. Остановимся на двух наиболее распространенных вариантах: по типам и категориям. Классификация по типам отражает функциональную ориентацию СА8Е-средств на те или иные процессы ЖЦ и включает следующие типы: средства анализа и проектирования, предназначенные для построения и анализа как моделей деятельности организации (предметной области), так и моделей проектируемой системы. К таким средствам относятся BPwin (PLATINUM technology), Silverrun(Silverrun technologies), Oracle Designer (Огас1е), Ration Rose(Ration Software), Paradigm Plus (PLATINUM technology), Power Designer (Sybase), System Architect (Popkin Software). Их целью является определение системных требований и свойств, которыми система должна обладать, а также создание проекта системы, удовлетворяющей этим требованиям и обладающей соответствующими свойствами. Выходом таких средств являются спецификации компонентов системы и их интерфейсов, алгоритмов и структур данных; средства проектирования баз данных, обеспечивающие моделирование данных и генерацию схем баз данных (как правило, на языке SQL – Structured Query Language - структурированном языке запросов) для наиболее распространенных СУБД. Средства проектирования баз данных имеются в составе таких CASE-средств, как Silverrun , Огас1е Designer, Paradigm Plus, Power Designer. Наиболее известным средством, ориентированным только на проектирование БД, является ERwin (PLATINUM technology); средства управления требованиями, обеспечивающие комплексную поддержку разнородных требований к создаваемой системе. Примерами таких средств являются RequisitePro (Rational Software) и DOORS - Dinamic Object-Oriented Requirements System—динамическая объектно-ориентированная система управления требованиями (Quality Systems and Software Inc.); средства управления конфигурацией ПО — PVCS (Merant),С1еагCase (Rational Software) и др.; средства документирования. Наиболее известным из них является SoDA – Software Document Automation - автоматизированное документирование ПО (Rational Software); средства тестирования. Наиболее развитым на сегодняшний день средством является Rational Suite TestStudio (Rational Software) —набор продуктов, предназначенных для автоматического тестирования приложений; средства управления проектом — Ореп Р1ап Professional (Welcom Software), MicroSoft Project 98 и др.; средства реверсного инжиниринга, предназначенные для переноса существующей системы ПО в новую среду. Они обеспечивают анализ программных кодов и схем баз данных и формирование на их основе различных моделей и проектных спецификаций. Средства анализа схем и формирования БД входят в состав таких CASE-средств, как Silverrun, Огас1е Designer, Power Designer,, ERwin. Анализаторы программных кодов имеются в составе Rational Rose и Paradigm Plus. Классификация по категориям определяет степень интегрированности по выполняемым функциям и включает отдельные локальные средства, решающие небольшие автономные задачи (tools), набор частично интегрированных средств, охватывающих большинство процессов ЖЦ ПО (toolkit), и полностью интегрированные средства, поддерживающие весь ЖЦ ПО и связанные общим репозиторием. Помимо этого, CASE-средства можно также классифицировать по применяемым структурным или объектно-ориентированным методам анализа и проектирования ПО. На сегодняшний день российский рынок программного обеспечения располагает практически всеми перечисленными выше средствами. 4.Технология внедрения CASE-средств Термин "adoption" ("внедрение") используется в широком смысле и охватывает все действия - от оценки первоначальных потребностей до полномасштабного использования Case-средств в различных подразделениях организации-пользователя. Процесс внедрения Case-средств включает следующие этапы: определение потребностей в Case-средствах (рис.1); оценка и выбор Case-средств (рис.2); выполнение пилотного проекта; практическое внедрение Case-средств. При определении потребностей в Case-средствах осуществляется анализ возможностей организации в отношении ее технологической базы, персонала и используемого ПО. Такой анализ определяется моделью оценки зрелости технологических процессов в организации СММ (Capability Maturity Model), разработанной SEI (Software Engineering Institute), стандартами ISO 9001: 1994 ; ISO 9003-3: 1991 и ISO 9004-2:1991. Главное в этих подходах — анализ различных аспектов происходящих в организации процессов. Процесс успешного внедрения Case-средств не ограничивается только их использованием. На самом деле он охватывает планирование и реализацию множества технических, организационных, структурных процессов, изменений в общей культуре организации и основан на четком понимании возможностей Case-средств. Рис.1 - Определение потребностей в CASE-средствах Рис.2 - Критерии выбора CASE средств На способ внедрения Case-средств может повлиять специфика конкретной ситуации. Например, если заказчик предпочитает конкретное средство или оно оговаривается требованиями контракта, этапы внедрения должны соответствовать такому предопределенному выбору. В иных ситуациях относительная простота или сложность средства, степень согласованности или конфликтности с существующими в организации процессами, требуемая степень интеграции с другими средствами, опыт и квалификация пользователей могут привести к внесению соответствующих корректив в процесс внедрения. Несмотря на все потенциальные возможности Case-средств, существует множество примеров их неудачного внедрения, в результате чего эти средства становятся "полочным" ПО . В связи с этим необходимо отметить следующее: Case-средства не обязательно дают немедленный эффект; он может быть получен только спустя какое-то время; реальные затраты на внедрение Case-средств обычно намного превышают затраты на их приобретение; Case-средства обеспечивают возможности для получения существенной выгоды только после успешного завершения процесса их внедрения. Ввиду разнообразной природы Case-средств было бы ошибочно делать безоговорочные утверждения относительно реального удовлетворения тех или иных ожиданий от их внедрения. Отметим факторы, усложняющие определение возможного эффекта от использования Case-средств: широкое разнообразие качества и возможностей Case-средств; относительно небольшое время использования Case-средств в различных организациях и недостаток опыта их применения; разнообразие практики внедрения Case-средств в различных организациях; отсутствие детальных метрик и данных для уже выполненных и текущих проектов; широкий диапазон предметных областей проектов; различная степень интеграции Case-средств в различных проектах. Вследствие этих сложностей доступная информация о реальных внедрениях крайне ограниченна и противоречива. Она зависит от типа средств, характеристик проектов, уровня сопровождения и опыта пользователей. Некоторые аналитики полагают, что реальная выгода от использования некоторых типов Case-средств может быть получена только после одно- или двухлетнего опыта. Другие считают, что воздействие может реально проявиться в процессе эксплуатации ПО, когда технологические улучшения могут привести к снижению эксплуатационных затрат. Ключом к успешному внедрению СА8Е-средств является готовность организации, которая включает следующие аспекты: технология — понимание ограниченности существующих возможностей и способность принять новую технологию; культура - способность воспринять новые процессы и взаимоотношения между разработчиками и пользователями; управление — четкое руководство и организованность по отношению к наиболее важным этапам и процессам внедрения. В случае отсутствия такой готовности внедрение Case-средств, скорее всего, закончится неудачей независимо от степени тщательности следования различным рекомендациям по внедрению. Чтобы принять взвешенное решение относительно инвестиций в Case-технологию, пользователи вынуждены производить оценку отдельных Case-средств, опираясь на неполные и противоречивые данные. Эта проблема зачастую усугубляется недостаточным знанием всех возможных "подводных камней" использования Case-средств. Среди наиболее важных проблем выделяются следующие: достоверная оценка отдачи от инвестиций в Case-средства затруднительна ввиду отсутствия приемлемых метрик и данных по проектам и процессам разработки ПО; внедрение Case-средств может представлять собой достаточно длительный процесс и может не принести немедленной отдачи. Возможно даже краткосрочное снижение продуктивности в результате усилий, затрачиваемых на внедрение. Вследствие этого руководство организации-пользователя может утратить интерес к Case-средствам и прекратить поддержку их внедрения; отсутствие полного соответствия между теми процессами и методами, которые поддерживаются Case-средствами, и теми, которые используются в данной организации, может привести к дополнительным трудностям; Case-средства зачастую трудно использовать в комплексе с другими подобными средствами, что объясняется как различными парадигмами, поддерживаемыми различными средствами, так и проблемами передачи данных и управления от одного средства к другому; некоторые Case-средства требуют слишком много усилий для того, чтобы оправдать их использование в небольшом проекте, при этом тем не менее можно извлечь выгоду из той дисциплины, к которой обязывает их применение; негативное отношение персонала к внедрению новой Case-технологии может быть главной причиной провала проекта. Пользователи Case-средств должны быть готовы к необходимости долгосрочных затрат на эксплуатацию, частому появлению новых версий и возможному быстрому моральному старению средств, а также к постоянным затратам на обучение новых сотрудников и повышение квалификации действующего персонала. Успешное внедрение Case -средств должно обеспечить: высокий уровень технологической поддержки процессов разработки и сопровождения ПО; положительное воздействие на некоторые или все из перечисленных факторов — производительность, качество продукции, соблюдение стандартов, документирование; приемлемый уровень отдачи от инвестиций в Case-средства. Несмотря на все высказанные предостережения и некоторый пессимизм, грамотный и разумный подход к использованию Case-средств позволяет преодолеть все перечисленные трудности. Контрольные вопросы Что понимают под инструментарием технологии программирования? Какие классы инструментария вы можете назвать? Что включают в себя средства для создания отдельных приложений? Приведите классификацию языков программирования. Охарактеризуйте системы программирования. Что понимают под средствами для создания информационных систем и технологий? Что такое Case-средства? Укажите особенности Case –средств. Какие компоненты входят в интегрированное Case-средство? Что такое репозиторий? Какие функции выполняют диаграммеры Case-средства? Какие виды контроля предусмотрены в Case-средстве? Какие этапы жизненного цикла поддерживают Case-средства? Приведите классификацию Case-средств по типам. Приведите классификацию Case-средств по категориям. |