8.2. Классификация программ

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

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

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

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

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

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

Важно разделять программное обеспечение на заказные и тиражные программы.

Заказное программное обеспечение (в англоязычной литературе custom software, bespoke software) исторически более ранний класс ПО. Собственно говоря, во времена больших ЭВМ в 60-70-х гг. ХХ века системные программы поставлялись исключительно производителями оборудования вместе с самим оборудованием, а прикладное ПО писалось под конкретные задачи коллективами штатных программистов или сторонними организациями по подрядным договорам в соответствии с техническим заданием. Сторонние коллективы программистов предлагали клиенту в этом случае не готовый программный продукт, а свои услуги по написанию, настройке и сопровождению программного обеспечения. Такие прикладные программы были приспособлены под нужды конкретной организации (только организация тогда могла позволить себе иметь ЭВМ) и в неизменном виде для других пользователей были малоинтересны.

Тиражные программы (в англоязычной литературе canned software, packaged software, standard software) представляют собой системные, прикладные или развлекательные программные продукты, потребительские свойства которых позволяют удовлетворять потребности широкого круга пользователей. Такие программы с конца 70-х гг. начали поставляться в виде стандартизованных, готовых к непосредственной эксплуатации пользователями пакетов. В наши дни дистрибутивы с такими программами обычно тиражируются достаточно большими количествами на носителях (отсюда и название) или распространяются через Интернет. Возможности по изменению или наращиванию функциональности в таких программных пакетах либо отсутствуют, либо предоставлены пользователю в незначительной степени (настройка интерфейса, подключение внешних компонентов и т.п.).

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

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