Кодировщик – создает и отлаживает тексты программ на алгоритмических языках.
Тестер – планирует испытания и проверяет работоспособность продукта. Тестер проводит альфа-тестирование - проверку работоспособности программы силами группы разработчиков. Затем проводится бета-тестирование - проверку работоспособности заинтересованными пользователями.
Большинство информационных систем основано на работе с базами данных (БД). Если база данных является интегрированной, обеспечивающей работу с данными многих приложений, возникает проблема организационной поддержки базы данных, которая выполняется администратором базы данных.
В некоторых ситуациях прямой контакт с техникой невозможен или нежелателен. В этом случае помощь оказывает представитель технического персонала - оператор ЭВМ.
Основным потребителем программ служит конечный пользователь, который, как правило, относится к категории пользователей-непрограммистов. Конечный пользователь не является специалистом в области программирования, т. е. не владеет методами и технологией проектирования и создания программ, но имеет элементарные знания и навыки работы с вычислительной техникой.
" .~ 302 ГЛАВА 8. СОСТОЯНИЕ И ТЕНДЕНЦИИ РАЗВИТИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ Возможна эксплуатация программ квалифицированными программистами или СIIeП8' ально обученными техническими работниками - о пер а тор ам и Э В м Взаимодействие специалистов различного ВИДа, участвующих в разработке и ЭКСIL~ тации программ, показано на рис. 8.3. В ряде случаев один специалист совмеrэ?8! несколько 8ИДОВ деятельности. Администратор базы данных и системный программист г C~ щестВЛJIЮТ подготовку информационных и программно-технических УСЛОВИЙ для раЕ,.. программ. Пунктирные линии означают участие специалиста в качестве консультанта. ........... 1........ Постановка задачи J .......... .. ............. ............. ............. ............. ......... .. .. ......... .. .. .. ...4о _. "1 , ОПЕРАТОР ЭВМ ПРИКЛАДНОЙ ПРОГРАММИСТ Anroритмизация решения 38Дачи ...................... ........................... Проrpаммироаание :.. ...... СИСТЕМНЫЙ ПРОГРАММИСТ Создание операционной среды выпonнения nporpaМII :....... . .. ... " . ....... Соэдание инфор мационной среды ... выпonнения nporpaMU J Рис. 8.3. Схема взаимодействия специалистов, связанных с созданием и эксплуатацией проrpамм ХАРАКТЕРИСТИКА ПРОГРAММIIОГО ПРОДУКТА Все программы по характеру использования и категориям пользователей можно раздел~ на два класса (рис.8.4) - утилитарные программы и программные продукты (изделия). у т и л и т а р н ы е про гр ам мы ("программы ДI1я себя") предназначены для уД08 летворения нужд их разработчиков. Чаще Всего утилитарные программы выполНJIЮТ PrUI сервиса в технологии обработки данных либо ЯВЛJIЮТСЯ программами решения функцио нальных задач, не предназначенных для широкого распространения. Программные продукты (изделия) предназначены для удовлетворения 00 требностей пользователей, широкого распространения и продажи. В настоящее время существуют и другие варианты легального распространения про граммных продуктов, которые появились с использованием глобальных или регионалl>'-:',;,r: телекоммуникаций: Рис. 8.4. Классификация проrpамм по категориям пользователей ПРОfPАММЫ :? 11111111111111 ..... . |
I |
Каждая программа должна отвечать таким требованиям, как правильность, точность, совместимость, надежность, универсальность, защищенность, полезность, эффективность, проверяемость, адаптируемость, мобильность, дружественность.
Будем говорить, что программа является
- правильной, если она функционирует в соответствии с техническим заданием. Подразумевается, что техническое задание составлено в четкой форме, позволяющей однозначно судить о том, действительно ли программа отвечает перечисленным в нем требованиям;
- точной, если выдаваемые ею результаты имеют допустимые отклонения от аналогичных результатов, полученных с помощью идеальных математических зависимостей;
- совместимой, если она работает должным образом не только автономно, но и в составе программной системы;
- надежной, если она при всех условиях обеспечивает полную повторяемость результатов.
- универсальной, если она правильно работает при любых допустимых вариантах исходных данных. В ходе разработки программ должны предусматриваться специальные средства защиты от ввода неправильных исходных данных;
- защищенной, если она сохраняет работоспособность при возникновении сбоев. Это качество особенно важно для программ, предназначенных для решения задач в режиме реального времени. В подобных приложениях отказ оборудования может повлечь катастрофические последствия - например, аварию ракеты или ядерного реактора. Указанным свойством должны также обладать программы с большим временем выполнения, осуществляющие обработку постоянно хранимых файлов;
- полезной, если задача, которую она решает, представляет практическую ценность;
- эффективной, если объем требуемых для ее работы ресурсов не превышает допустимого предела;
- проверяемой, если ее качества могут быть продемонстрированы на практике. Здесь подразумевается возможность проверки таких свойств программы, как правильность и универсальность. Можно применить формальные математические методы, позволяющие установить, действительно ли программа удовлетворяет техническим условиям и выдает достаточно точные результаты. Однако существуют и неформальные способы оценки качества программ такие, как прогоны с остановами в контрольных точках, обсуждения результатов с заинтересованными пользователями и др.;
- адаптируемой, если она допускает быструю модификацию с целью приспособления к изменяющимся условиям функционирования;
- мобильной, если она независима от аппаратуры, операционной системы, сетевого окружения, специфики предметной области;
- дружественной, если она имеет удобный интерфейс для работы конечного пользователя, контекстно-зависимые подсказки, обучающую систему, подробную документацию и диагностику возникших ошибок.
Во многих цивилизованных странах несанкционированное копирование программ в целях продажи или бесплатного распространения рассматривается как государственное преступление, карается штрафом или тюремным заключением.
Правовые методы защиты программ являются самыми надежными и включают в себя:
- патентную защиту;
- закон о производственных секретах;
- лицензионные соглашения и контракты;
- закон об авторском праве.
Патентная защита устанавливает приоритет в разработке и использовании нового подхода или метода, примененного при разработке программ, удостоверяет их оригинальность.
Статус производственного секрета ограничивает круг лиц, знакомых или допущенных к эксплуатации программы, а также определяет меру их ответственности за разглашение секретов.
Лицензия - договор на передачу одним лицом (лицензиаром) другому лицу (лицензиату) права на использование имени, продукции, технологии.
В лицензионном соглашении оговариваются все условия эксплуатации программ, в том числе создание копий. На каждой копии программы должны быть те же отметки, что и на оригинале:
- знак авторского права (обычно ©), название разработчика, год выпуска программы,
- знак патентной защиты или производственного секрета;
- торговые марки, соответствующие использованным в программе другим программным изделиям (обычно ™ и название фирмы-разработчика программного изделия),
- символ зарегистрированного права на распространение программного продукта (обычно ®).
Существует несколько типов лицензий на программные продукты
Исключительная лицензия - продажа всех имущественных прав на программный продукт или базу данных, покупателю лицензии предоставляется исключительное право на их использование, а автор или владелец патента отказывается от самостоятельного их применения или предоставления другим лицам.
Эго самый дорогой вид лицензии, к нему прибегают для монопольного владения с целью извлечения дополнительной прибыли либо с целью прекращения существования на рынке программного продукта.
Простая лицензия - лицензиар предоставляет право лицензиату использовать программный продукт или базу данных, оставляя за собой право применять их и предоставлять на аналогичных условиях неограниченному числу лиц (лицензиат при этом не может сам выдавать сублицензии, может лишь продать копии приобретенного программного продукта или базы данных).
Такой вид лицензии приобретают дилер (торговец) либо фирмы-производители, использующие купленные лицензии как сопутствующий товар к основному виду деятельности. Например, многие производители и фирмы, торгующие компьютерной техникой, осуществляют продажу вычислительной техники с установленным лицензионным программным обеспечением (операционная система, текстовый редактор, электронная таблица, графические пакеты и т.д.).
Этикеточная лицензия - лицензия на одну копию программного продукта или базы данных. Данный тип лицензии применяется при розничной продаже. Каждый официальный покупатель заключает лицензионное соглашение с продавцом на их использование, но при этом сохраняется авторское право разработчика.