Популярные услуги

Защита программных продуктов

2021-03-09СтудИзба

ЗАЩИТА ПРОГРАММНЫХ ПРОДУКТОВ

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

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

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

Защита программного обеспечения преследует цели:

• ограничение несанкционированного доступа к программам или их преднамеренное разрушение и хищение;

• исключение несанкционированного копирования (тиражирования) программ.

Программный продукт и базы данных должны быть защищены по нескольким направ­лениям от воздействия:

1) человека — хищение машинных носителей и документации программного обеспе­чения; нарушение работоспособности программного продукта и др.;

Рекомендуемые материалы

2) аппаратуры — подключение к компьютеру аппаратных средств для считывания программ и данных или их физического разрушения;

3) специализированных программ — приведение программного продукта или базы данных в неработоспособное состояние (например, вирусное заражение), несанкциониро­ванное копирование программ и базы данных и т.д.

Самый простой и доступный способ защиты программных продуктов и базы дан­ных — ограничение доступа. Контроль доступа к программному продукту и базе данных строится путем:

• парольной защиты программ при их запуске;

• использования ключевой дискеты для запуска программ;

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

Могут также использоваться и криптографические методы защиты ин­формации базы данных или головных программных модулей.

Программные системы защиты от несанкционированного копирования

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

Таким ключевым элементом могут быть:

• дискета, на которой записан не подлежащий копированию ключ;

• определенные характеристики аппаратуры компьютера;

• специальное устройство (электронный ключ), подключаемое к компьютеру и предна­значенное для выдачи опознавательного кода.

Программные системы защиты от копирования программных продуктов:

идентифицируют среду, из которой будет запускаться программа;

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

разрешен санкционированный запуск;

вырабатывают реакцию на запуск из несанкционированной среды;

регистрируют санкционированное копирование;

противодействуют изучению алгоритмов и программ работы системы.

Для идентификации запускающих дискет применяются следующие методы:

1)              нанесение повреждений на поверхность дискеты ("лазерная дыра"), которая с тру­дом может быть воспроизведена в несанкционированной копии дискеты;

2)             нестандартное форматирование запускающей дискеты.
Идентификация среды компьютера обеспечивается за счет:

1) закрепления месторасположения программ на жестком магнитном диске (так назы­ваемые неперемещаемые программы);

2) привязки к номеру BIOS (расчет и запоминание с последующей проверкой при за­пуске контрольной суммы системы);

3) привязки к аппаратному (электронному) ключу, вставляемому в порт ввода-вывода, и др.

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

Правовые методы защиты программных продуктов и баз данных

Правовые методы защиты программ включают:

• патентную защиту;

• закон о производственных секретах;

• лицензионные соглашения и контракты;

• закон об авторском праве.

           Различают две категории прав:

• экономические права, дающие их обладателям право на получение экономических выгод от продажи или использования программных продуктов и баз данных;

• моральные права, обеспечивающие защиту личности автора в его произведении.

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

Патентная защита устанавливает приоритет в разработке и использовании нового подхода или метода, примененного при разработке программ, удостоверяет их ори­гинальность.

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

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

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

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

• знак авторского права (обычно ©) и название разработчика, года выпуска программы, прочих ее атрибутов;

• знак патентной защиты или производственного секрета;

• торговые марки, соответствующие использованным в программе другим программ­ным изделиям (обычно и название фирмы-разработчика программного продукта);

• символ зарегистрированного права на распространение программного продукта (обычно ®).

Существует несколько типов лицензий на программные продукты.

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

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

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

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

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

Экономические отношения (рис. 8.8) между лицензиаром и лицензиатом могут стро­иться различным образом. За право пользования программным продуктом или базой дан­ных выплачивается единовременное вознаграждение (паушальный платеж,), которое и является фактической ценой лицензии. Возможны и периодические отчисления лицензиару за право пользования в виде роялти — фиксированная ставка в определенные интерва­лы времени в течение действия лицензионного соглашения, как правило, процент от стоимости программных продуктов или баз данных.

Рис. 8.8.  Движение прав, денег на программные продукты и базы данных при лицензионном соглашении

Закон об охране программных продуктов и компьютерных баз данных автором при­знает физическое лицо, в результате творческой деятельности которого они созданы. Авто­ру независимо от его имущественных прав принадлежат личные авторские права (см. рис. 8.8): авторство, имя, неприкосновенность (целостность) программ или баз данных.

Авторское право действует с момента создания программного продукта или базы дан­ных в течение всей жизни автора и 50 лет после его смерти. Автор может:

• выпускать в свет;

• воспроизводить в любой форме, любыми способами;

• распространять;

• модифицировать;

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

Авторское право не связано с правом собственности на материальный носитель.

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

Программные продукты и базы данных могут использоваться третьими лицами — пользователями на основании договора с правообладателем.

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

• устанавливать один экземпляр, если не предусмотрено иное соглашение с правообла­дателем, программного продукта или базы данных на компьютер;

• исправлять явные ошибки;

• адаптировать программный продукт или базу данных;

• изготавливать страховые копии.

8.2. КЛАССИФИКАЦИЯ ПРОГРАММНЫХ ПРОДУКТОВ

КЛАССЫ ПРОГРАММНЫХ ПРОДУКТОВ

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


Рис. 8.9.  Классы программных продуктов


• аппаратная часть автономных компьютеров и сетей ЭВМ;

• функциональные задачи различных предметных областей;

• технология разработки программ.

Для поддержки информационной технологии в этих областях выделим соответственно три класса программных продуктов, представленных на рис. 8.9:

• системное программное обеспечение;

• пакеты прикладных программ;

• инструментарий технологии программирования. Системное программное обеспечение направлено:

• на создание операционной среды функционирования других программ;

• на обеспечение надежной и эффективной работы самого компьютера и вычислитель­ной сети;

• на проведение диагностики и профилактики аппаратуры компьютера и вычислитель­ных сетей;

▪    на выполнение вспомогательных технологических процессов (копирование, архивиро­вание, восстановление файлов программ и баз данных и т.д.).

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

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

Системное программное обеспечение (System Software) — совокупность программ и программных комплексов для обеспечения работы компьютера и сетей ЭВМ.

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

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

Пакет прикладных программ (application program package) — комплекс взаимосвязанных программ для решения задач определенного класса кон­кретной предметной области.

Инструментарий технологии программирования обеспечивает процесс разработки программ и включает специализированные программные продукты, ко­торые являются инструментальными средствами разработчика. Программные продукты данного класса поддерживают все технологические этапы процесса проектирования, программирования (кодирования), отладки и тестирования создаваемых программ. Пользовате­лями технологии программирования являются системные и прикладные программисты.

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

СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

Структура системного программного обеспечения

На рис. 8.10 представлена структура системного программного обеспечения — базового программного обеспечения, которое, как правило, поставляется вместе с компью­тером, и сервисного программного обеспечения, которое может быть приоб­ретено дополнительно.


Базовое программное обеспечение (base software) — минимальный набор программных средств, обеспечивающих работу компьютера. Сервисное программное обеспечение — программы и программные ком­плексы, которые расширяют возможности базового программного обеспе­чения и организуют более удобную среду работы пользователя.

Рис. 8.10. Классификация системного программного обеспечения компьютера

Базовое программное обеспечение

В базовое программное обеспечение входят:

• операционная система;

• операционные оболочки (текстовые и графические);

• сетевая операционная система.

Операционная система предназначена для управления выполнением пользо­вательских программ, планирования и управления вычислительными ресурсами ЭВМ.

В секторе программного обеспечения и операционных систем ведущее положение за­нимают фирмы IBM, Microsoft, UNISYS, Novell. Доход от продаж операционных систем в среднем превышает 20 млрд. дол. в год. Рассмотрим наиболее распространенные типы опе­рационных систем.

Операционные системы для персональных компьютеров делятся на:

• одно- и многозадачные (в зависимости от числа параллельно выполняемых приклад­ных процессов);

• одно- и многопользовательские (в зависимости от числа пользователей, одновременно работающих с операционной системой);

• непереносимые и переносимые на другие типы компьютеров;

• несетевые и сетевые, обеспечивающие работу в локальной вычислительной сети ЭВМ. Большое значение сегодня имеет применение 32-разрядных операционных систем для

персональных компьютеров:

OS/2 во всех модификациях (IBM);

Windows  во всех модификациях (Microsoft);

Unix во всех модификациях;

Next Step 3.2 (Next);

SCO Open Desktop 3.0 (Santa Cruz Operation);

Solaris 2.1 (SunSoft) — x86;

UnixWare Personal Edition 1.0 (Novell).

Операционная система MS DOS (фирма Microsoft) появилась в 1981 г. В настоящее время существуют версии 6.22 и 7.0 (в составе Windows 95), а также ее разновидности дру­гих фирм-разработчиков (DR DOS, PC DOS). Сегодня эта операционная система установле­на на подавляющем большинстве персональных компьютеров. Начиная с 1996 г. MS DOS распространяется в виде Windows 95 — 32-разрядной многозадачной и многопоточной опе­рационной системы с графическим интерфейсом и расширенными сетевыми возможнос­тями.

Операционная система OS/2 разработана фирмой IBM для персональных компьюте­ров на основе системной прикладной архитектуры, ранее используемой для больших ЭВМ. Это многозадачная, однопользовательская, высоконадежная операционная система, обеспе­чивающая как текстовый, так и графический интерфейс пользователя. OS/2 обеспечивает: •     поддержку графического интерфейса пользователя;

одновременную обработку нескольких приложений;

многопоточную обработку нескольких задач одного приложения;

32-разрядную обработку данных;

сжатие данных при записи на магнитные диски;

защиту памяти.

Важной особенностью операционной системы OS/2 является высокопроизводительная файловая система HPFS (High Perfomance File System), имеющая преимущества для серве­ров баз данных (в отличие от MS DOS поддерживаются длинные имена файлов), поддержка мультипроцессорной обработки — до 16 процессоров типа INTEL и PowerPC. Версия OS/2 Warp работает с мультисредой и имеет встроенный доступ в сеть Internet, систему распозна­вания речи VoiceType, интегрированную версию Lotus Notes Mail для передачи через In­ternet почты. В OS/2 могут выполняться прикладные программы Windows 3.1 и Win32s, но не могут выполняться приложения, работающие в среде Windows 95 или Windows NT. Спе­цификация Open 32 позволяет поставщикам программного обеспечения переносить его на новую платформу.

Перспективной является многопользовательская и многозадачная операционная система Unix, созданная корпорацией Bell Laboratory. Данная операционная система реализует принцип открытых систем и широкие возможности по комплексированию в со­ставе одной вычислительной системы разнородных технических и программных средств.

Unix обладает наиболее важными качествами, такими, как:

• переносимость прикладных программ с одного компьютера на другой;

• поддержка распределенной обработки данных в сети ЭВМ;

• сочетаемость с процессорами RISC.

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

Наиболее традиционное сравнение ОС осуществляется по следующим характеристи­кам процесса обработки информации:

• управление памятью (максимальный объем адресуемого пространства, типы памяти, технические показатели использования памяти);

• функциональные возможности вспомогательных программ (утилит) в составе опера­ционной системы;

наличие компрессии диска;

возможность архивирования файлов;

поддержка многозадачного режима работы;

поддержка сетевого программного обеспечения;

наличие качественной документации;

условия и сложность процесса инсталляции.

Сетевые операционные системы —комплекс программ, обеспечиваю­щий обработку, передачу и хранение данных в сети. Сетевая ОС предоставляет пользовате­лям различные виды сетевых служб (управление файлами, электронная почта, процессы ynpaвления сетью и др.), поддерживает работу в абонентских системах. Сетевые опе­рационные системы используют архитектуру клиент-сервер или одноранговую архитектуру. Вначале сетевые операционные системы поддерживали лишь локальные вы­числительные сети (ЛВС), сейчас эти операционные системы распространяются на ассоциа­ции локальных сетей. Наибольшее распространение имеют LAN Server, NetWare, VINES, Windows NT, Windows 95.

Они оцениваются по комплексу критериев: производительность, разнообразие воз­можностей связи пользователей, возможности администрирования.

В табл. 8.2 приведены характеристики некоторых популярных ОС.

Работа в сети ЭВМ требует использования программных продуктов для администри­рования и обслуживания рабочих станций типа, например:

IBM Adstar Distributed Storage Manager 1.0 — средство резервного копирования в мас­штабах предприятия, которое позволяет обслуживать ЭВМ различных классов (мэйнфреймы, мини-ЭВМ, настольные системы), используя при этом один общий ин­терфейс);

• Symantec Norton Administrator for Networks 2.0 — обеспечивает администрирование
локальной вычислительной сети и управление приложениями для корпоративных
сетей (масштаба предприятия);

• Microsoft NT File and Print Service for NetWare — устраняет барьеры между NetWare и
Windows NT, обеспечивает полную эмуляцию для NT возможностей среды NetWare;

• Armon OnSite Manager — сегментирование сетей, фильтрация и поиск неисправностей
в сетях масштаба предприятия и др.

Операционные оболочки — специальные программы, предназначенные для облегчения общения пользователя с командами операционной системы. Операционные обо­лочки имеют текстовый и графический варианты интерфейса конечного пользователя.

Наиболее популярны следующие виды текстовых оболочек операционной системы MS DOS:

• Norton Commander 5.0 — фирма Symantec (см. гл. 10);

• XTree Gold 4.0;

• Norton Navigator и др.

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

Сервисное программное обеспечение

Расширением базового программного обеспечения компьютера является набор сервис­ных, дополнительно устанавливаемых программ, которые можно классифицировать по функциональному признаку следующим образом (см. рис. 8.10):

• программы диагностики работоспособности компьютера;

• антивирусные программы, обеспечивающие защиту компьютера, обнаружение и вос­становление зараженных файлов;

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

• программы архивирования данных, которые обеспечивают процесс сжатия информа­ции в файлах с целью уменьшения объема памяти для ее хранения;

• программы обслуживания сети.

Эти программы часто называются утилитами.

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

Наибольшее распространение сегодня имеют комплекты утилит:

• Norton Utilities — фирма Symantec;

• Checkit PRO Deliuxe 2.0 — фирма Touch Stone;

• PC Tools for Windows;

• программа резервного копирования HP Colorado Backup for Windows. Антивирусные продукты оцениваются по ряду критериев:

• точность обнаружения (идентификации) вируса;

возможность защиты данных от инфицирования;

эффективное устранение обнаруженных вирусов (восстановление файлов);

простота использования;

стоимость;

способность работы в локальных сетях;

возможность обнаружения и устранения boot-вирусов дисков.

Наиболее известные антивирусные программы:

• Virex (Microcom Inc.) — резидентный, сканирует известные вирусные модификации, использует метод контрольных сумм для слежения и контроля состояния файлов и ка­талогов, ограниченно используется в сетях;

• Anti-Virus (Central Point Software Inc.) — обнаружение завирусованных файлов без ис­правления, используется как в среде DOS, так и Windows;

• антивирусный комплект №2 "Диалог-Наука";

• AVP Toolkit У. Касперского;

• Norton Antivirus for Win95 — автоматическое создание резервных копий данных boot-секторов и критических файлов.

ИНСТРУМЕНТАРИЙ ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ

Состав и назначение инструментария технологии программирования

В настоящее время бурно развивается направление, связанное с технологией создания про­граммных продуктов. Это обусловлено переходом на промышленную технологию произ­водства программ, стремлением к сокращению сроков, трудовых и материальных затрат на производство и эксплуатацию программ, обеспечению гарантированного уровня их качест­ва. Это направление часто называют программотехникой. Программотехника (software en­gineering) — технология разработки, отладки, верификации и внедрения программного обеспечения. Инструментарий технологии программирования — про­граммные продукты поддержки (обеспечения) технологии программирования.

В рамках этих направлений сформировались следующие группы программных про­дуктов (рис.8.11):

•          средства для создания приложений, включающие:

—локальные средства, обеспечивающие выполнение отдельных работ по созданию программ;

Рис. 8.11.  Классификация инструментария технологии программирования

—интегрированные среды разработчиков программ, обеспечивающие выполнение

комплекса взаимосвязанных работ по созданию программ;

CASE-технология (Computer-AidedSystem Engineering), представляющая мето­ды анализа, проектирования и создания программных систем и предназначенная для автоматизации процессов разработки и реализации информационных систем.

Средства для создания приложений

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

Язык программирования — формализованный язык для описания алго­ритма решения задачи на компьютере.

Средства для создания приложений — совокупность языков и систем программирования, а также различные программные комплексы для отлад­ки и поддержки создаваемых программ.

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

• машинные языки (computer language) — языки программирования, воспринимаемые аппаратной частью компьютера (машинные коды);

• машинно-ориентированные языки (computer-oriented language) — языки программиро­вания, которые отражают структуру конкретного типа компьютера (ассемблеры);

• алгоритмические языки (algorithmic language) — не зависящие от архитектуры ком­пьютера языки программирования для отражения структуры алгоритма (Паскаль, Фортран, Бейсик и др.);

• процедурно-ориентированные языки (procedure-oriented language) — языки програм­мирования, где имеется возможность описания программы как совокупности проце­дур (подпрограмм);

• проблемно-ориентированные языки (universal programming language) — языки про­граммирования, предназначенные для решения задач определенного класса (Лисп, РПГ, Симула и др.);

• интегрированные системы программирования.

Другой классификацией языков программирования является их деление на языки, ориентированные на реализацию основ структурного программирования, и объектно-ориен­тированные языки, поддерживающие понятие объектов и их свойств и методов обработки. Более подробно об этом делении см. гл. 18 и 19.

Программа, подготовленная на языке программирования, проходит этап трансляции, когда происходит преобразование исходного кода программы (source code) в объект­ный код (object code), который далее пригоден к обработке редактором связей. Ре­дактор связей — специальная программа, обеспечивающая построение загрузочного модуля (load module), пригодного к выполнению (рис. 8.12).

Рис. 8.12.  Схема процесса создания загрузочного модуля программы

Трансляция может выполняться с использованием средств компиляторов (com­piler) или интерпретаторов (interpreter). Компиляторы транслируют всю програм­му, но без ее выполнения. Интерпретаторы, в отличие от компиляторов, выполняют пооператорную обработку и выполнение программы.

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

Системы программирования (programmingsystem)включают.

компилятор;

интегрированную среду разработчика программ;

отладчик;

средства оптимизации кода программ;

набор библиотек (возможно с исходными текстами программ);

редактор связей;

сервисные средства (утилиты) для работы с библиотеками, текстовыми и двоичными

файлами;

справочные системы;

документатор исходного кода программы;

систему поддержки и управления проектом программного комплекса.

Средства поддержки проектов — новый класс программного обеспечения, предназна­чен для:

• отслеживания изменений, выполненных разработчиками программ;

• поддержки версий программы с автоматической разноской изменений;

• получения статистики о ходе работ проекта.

Инструментальная среда пользователя представлена специальными средствами, встроенными в пакеты прикладных программ, такими, как:

библиотека функций, процедур, объектов и методов обработки;

макрокоманды;

клавишные макросы;

языковые макросы;

программные модули-вставки;

конструкторы экранных форм и отчетов;

генераторы приложений;

языки запросов высокого уровня;

языки манипулирования данными;

конструкторы меню и многое другое.

Более подробно эти средства рассмотрены в гл. 19.

Средства отладки и тестирования программ предназначены для подготовки разработанной программы к промышленной эксплуатации.

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

*        СASE-технология создания информационных систем

Средства CASE-технологии — относительно новое, сформировавшееся на рубеже 80-х гг. направление. Массовое применение затруднено крайне высокой стоимостью и предъявляе­мыми требованиями к оборудованию рабочего места разработчика.

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

Средства CASE-технологий делятся на две группы:

• встроенные в систему реализации — все решения по проектированию и реализации
привязаны к выбранной системе управления базами данных (СУБД);

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

Основное достоинство CASE-технологии — поддержка коллективной работы над про­ектом за счет возможности работы в локальной сети разработчиков, экспорта/импорта любых фрагментов проекта, организационного управления проектом.

Некоторые CASE-технологии ориентированы только на системных проектировщиков и предоставляют специальные графические средства для изображения различного вида моделей:

• диаграмму потоков данных (DFD — data flow diagrams) совместно со словарями дан­ных и спецификациями процессов;

• диаграмму "сущность-связь" (ERD — entity relationship diagrams), являющуюся инфо-логической моделью предметной области (см. гл. 15);

•          диаграмму переходов состояний (STD — state transition diagrams), учитывающую со­бытия и реакцию на них системы обработки данных.

Диаграмма DFD устанавливает связь источников информации с потребителями, выде­ляет логические функции (процессы) преобразования информации, определяет группы эле­ментов данных и их хранилища (базы данных).

Описание структуры потоков данных, определение их компонентов хранятся в акту­альном состоянии в словаре данных, который выступает как база данных проекта. Каждая логическая функция может детализироваться с помощью DFD нижнего уровня согласно ме­тодам нисходящего проектирования (см. гл. 18).

Выполняются автоматизированное проектирование спецификаций программ (задание основных характеристик для разработки программ) и ведение словаря данных.

Другой класс CASE-технологий поддерживает только разработку программ, включая:

• автоматическую генерацию кодов программ на основании их спецификаций;

• проверку корректности описания моделей данных и схем потоков данных;

• документирование программ согласно принятым стандартам и актуальному состоя­нию проекта;

• тестирование и отладку программ.

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

В рамках CASE-технологий проект сопровождается целиком, а не только его про­граммные коды. Проектные материалы, подготовленные в CASE-технологий, служат зада­нием программистам, а само программирование скорее сводится к кодированию — переводу на определенный язык структур данных и методов их обработки, если не предус­мотрена автоматическая кодогенерация.

Большинство CASE-технологий использует также метод "прототипов" для быстрого создания программ на ранних этапах разработки. Кодогенерация программ-осуществляется автоматически — до 85 - 90% объектных кодов и текстов на языках высокого уровня, а в качестве языков наиболее часто используются Ада, Си, Кобол.

Программные продукты для создания приложений

Данный класс программных средств, как уже отмечалось выше, весьма представителен. Приведем характеристику некоторых продуктов, которые предлагает фирма Microsoft.

Макроассемблер MASM, обеспечивающий создание программ, быстро мани­пулирующих с данными большой размерности, поддерживающих различные форматы объ­ектных файлов. Кроме того, можно создавать динамические библиотеки (DLL, VBX) для Microsoft Visual Basic, генерировать DOS-, Windows-приложения. Средства данного языка наиболее часто используются для разработки драйверов — специальных программ для эму­ляции нестандартных устройств, подключаемых к компьютеру, различных преобразований форматов данных, поддержания интерфейсов доступа к данным в разнородных программ­ных системах.

Компилятор Visual C++ for Windows Professional Edition 1.5 является систе­мой программирования объектно-ориентированного типа, обеспечивающей просмотр ие­рархии классов объектов приложения (Source Browser), работу отладчика (Debugger), компилятора и др. В состав пакета входит библиотека классов MFC (Microsoft Foundation Classes Library), содержащая классы для реализации сложного пользовательского интерфей­са, средства изготовления структуры пользовательского интерфейса (АррWizard), создания

диалогов, меню, икон, растров, курсоров (Арр Studio), свойств новых интерфейсных клас­сов, наследующих свойства классов MFC (Class Wizard). Компилятор полностью поддержи­вает стандарт OLE 2.0 системы Windows (см. ниже), ODBC (Open DataBase Connectivity) — для обеспечения доступа к данным в различных форматах, хранимых как в локальной базе данных, так и на сервере баз данных.

Visual Basic fo r Windows 4.0 — система программирования объектно-ори­ентированного типа, транслирующая команды по мере их ввода, позволяющая создавать и управлять множеством объектов (кнопками, флажками, комбинированными списками, ок­нами ввода, переключателями, линейками и т.п.), поддержку объектов OLE 2.O. Данный язык является языковой платформой приложений Microsoft Office (см. гл. 18) и имеет диа­лект Microsoft Basic for Application.

Microsoft IMSL Mathematical and Statistical Library —матема­тическая и статистическая библиотеки набора функций и примеров их использования (более 1000), которые можно вызвать из программ, написанных на языке C++.

Средства поддержки проектов Microsoft Delta for Windows, используемые для независимой от всего проекта новой версии программного модуля, отсле­живания новых версий, автоматической разноски изменений по копиям проекта программ­ной системы.

Технологические стандарты Microsoft, которые могут быть использо­ваны разработчиками прикладных программ.

OLE (Object Linking and Embedding) 2.0 — позволяющий создавать приложения, вклю­чающие в свой состав объекты, полученные из других приложений.

Объект имеет две составляющие:

• внешнее представление объекта (presentation data);

• способ редактирования объекта (native data).

Любой объект может либо внедряться (embedding), либо связываться (linking) с прило­жением.

Технология OLE 2.0 обеспечивает:

• редактирование "чужого" объекта внутри приложения;

• экономию трудовых затрат на разработку программ за счет ссылок на существующие
внешние объекты;

• информационную интеграцию приложений.

ODBC (Open DataBase Connectivity) — создание единого интерфейса доступа к раз­личным базам данных на различных платформах.

Программа выступает в качестве клиента, а база данных — в качестве сервера, доступ реализуется с помощью драйвера. Разработчики новых СУБД обеспечивают создание соот­ветствующих их форматам драйверов. Для создания прикладных программ, использующих стандарт ODBC, используется инструментарий ODBC Sowrware Development Kit (SDK).

MAPI (Messaging Application Program Interface) — обеспечение независимости прило­жений от систем связи в режиме телекоммуникаций, который также работает по принципу драйвера.

MAPI поддерживает стандарт Х.400 Association's Common Messaging Calls (CMC), a также ряд других интерфейсов (API, SDK, DDK).

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

• Delphi 2.0;

• Clarion for Windows 1.5 и др.

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

сети типа файл-сервер и клиент-сервер, ожидается, что начиная с середины 90-х годов 90% вновь создаваемых приложений будут являться приложениями типа клиент-сервер.

Рассмотрим систему Delphi 2.0, позволяющую создавать приложения типа клиент-сер­вер. Разработчику программ с использованием Delphi 2.0 предоставлены:

• объектно-ориентированный язык программирования;

• высокопроизводительный компилятор — скорость компилирования 120000 строк в минуту, это в настоящее время мировой рекорд скорости компиляции;

• объектно-ориентированная модель многократно используемых компонентов;

• средства наглядного (визуального) создания программ — набор визуальных средств для создания системы меню, экранных форм, отчетных форм и т.п., использование библиотеки визуальных компонентов и визуальных объектов;

• масштабируемая технология работы с базами данных — использование реляционно полного языка SQL, встроенная поддержка баз данных под управлением СУБД Oracle, Informix, Sybase, Interbase; применение локального сервера Interbase для отладки при­ложений;

• принцип "открытой системы", возможность добавления новых средств и перенос на другие платформы. Так, первоначально предполагается использовать среду Windows 3.1, затем — Windows 95 и Windows NT.

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

Если Вам понравилась эта лекция, то понравится и эта - 14. Требования к оформлению реквизитов.

• нажатие левой кнопкой мыши один раз;

• двукратное нажатие левой кнопкой мыши;

• перемещение мыши (уход от объекта, фокусировка объекта и т.п.).

Свойства объектов можно заранее фиксировать либо изменять программным спосо­бом во время работы программы. Для каждого события создается программный код.

В состав системы входит менеджер проектов, который предназначен для управления проектами в среде Delphi, позволяя объединять ряд форм в единое приложение, добавлять и удалять файлы, перемещаться по файлам проекта, просматривая исходные тексты программ обработки событий и т.п. Для удобства редактирования объектов используется так назы­ваемый браузер объектов (Browser). Интегрированный отладчик позволяет выполнять пошаговую трассировку кода, задавать точки останова (Break points). Для создания пользо­вательских меню приложений служит редактор меню, позволяющий использовать готовые либо создавать новые шаблоны меню. Графический редактор дает возможность разработчи­ку приложения создавать графические изображения, кнопки, иконки, использовать масшта­бирование и вставку внешних графических изображений.

Для повышения производительности труда разработчиков обеспечивается многократ­ное использование программных модулей. Например, объекты OLE можно импортировать и встраивать в любое место. По отзывам экспертов, Delphi наиболее перспективная среда разработчика Windows-ориентированных приложений, функционирующих в архитектуре клиент-сервер.

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5224
Авторов
на СтудИзбе
426
Средний доход
с одного платного файла
Обучение Подробнее