Вы находитесь на странице: 1из 12

Тема 1: Программные продукты

1.1. Понятие программного продукта.


1.2. Классификация программных продуктов.
1.3. Жизненный цикл программного продукта.
1.4. Понятие лицензии.
1.5. Типы лицензий на программное обеспечение.

1.1. Понятие программного продукта.


Рассмотрим разные трактовки понятия « программное обеспечение»:
Программное обеспечение (ПО) - комплекс программ обеспечивающих обработку
или передачу данных предназначенных для многократного использования и применения
разными пользователями.
Программное обеспечение - совокупность программ системы обработки информации
и программных документов, необходимых для эксплуатации этих программ (ГОСТ 19781-
90).
Программное обеспечение - совокупность программ, процедур и правил, а также
документации, относящихся к функционированию системы обработки данных (СТ ИСО
2382/1-84).
Программное обеспечение - это совокупность всех программ и соответствующей
документации, обеспечивающая использование ЭВМ в интересах каждого ее
пользователя.
Программное обеспечение важная и неотъемлемая часть компьютера. Сфера
применения каждого компьютера определяется его программным обеспечением, ведь
компьютер сам по себе не обладает знаниями какой либо области. Все знания
сосредоточены в программах, которые предназначены для выполнения каких либо
определенных действий. Часто такие программы очень узкой специализации, например
обработка изображения или звука.
Первую программу написала Ада Лавлейс для разностной машины Чарльза
Бэббиджа, однако поскольку эта машина так и не была достроена, разработки леди
Лавлейс остались чисто теоретическими.
Первая теория, касающаяся программного обеспечения, была предложена
английским математиком Аланом Тьюрингом в 1936 году в эссе «On computable numbers
with an application to the Entscheidungsproblem» («О вычислимых числах с приложением к
проблеме разрешения»). Он создал так называемую машину Тьюринга, математическую
модель абстрактной машины, способной выполнять последовательности рудиментарных
операций, которые переводят машину из одного фиксированного состояния в другое.
Главная идея заключалась в математическом доказательстве факта, что любое наперёд
заданное состояние системы может быть всегда достигнуто последовательным
выполнением конечного набора элементарных команд (программы) из фиксированного
набора команд.
Первые электронно-вычислительные машины 1940—1950-х годов
перепрограммировались путём переключения тумблеров и переподключения кабелей, что
требовало глубокого понимания их внутреннего устройства. К таким машинам, в
частности, относился ENIAC (который, впрочем, впоследствии модифицировали, чтобы
он мог, по крайней мере частично, программироваться с помощью перфокарт).
Важным шагом в сторону современных компьютеров был переход к архитектуре
Джона фон Неймана, впервые воплощённой в Великобритании, в разработанном под
руководством Дж. Р. Уомерзли[en] и при участии Алана Тьюринга компьютере, известном
как Марк I. Первая программа, хранимая в памяти компьютера, была запущена на нём 21
июня 1941 года. Для облегчения программирования этой машины Тьюринг придумал
систему сокращённого кодирования, в которой для представления двоичного машинного
кода использовалась последовательность телетайпных символов, выводимых на
перфоленту.
Один из сотрудников Тьюринга, Джон Мочли, став позднее (вместе с Джоном
Преспером Эккертом) руководителем и основателем компании Eckert–Mauchly Computer
Corporation, разработавшей такие ЭВМ, как BINAC и UNIVAC, поручил своим
сотрудникам создать транслятор алгебраических формул. Хотя эта амбициозная цель в
1940-х годах и не была достигнута, под руководством Мочли был разработан так
называемый «Краткий код», в котором операции и переменные кодировались
двухсимвольными сочетаниями. Краткий код был реализован с помощью интерпретатора.
Грейс Хоппер, работая с начала 1950-х годов над набором математических подпрограмм
для UNIVAC I, изобрела программу-компоновщик «A-0[en]», которая по заданному
идентификатору осуществляла выборку нужной подпрограммы из библиотеки,
хранящейся на магнитной ленте, и записывала её в отведённое место оперативной памяти.
В 1950-е годы появились первые высокоуровневые языки программирования, Джон
Бэкус разработал FORTRAN, а Грейс Хоппер — COBOL. Подобные разработки
значительно упростили написание прикладного программного обеспечения, которое
писала тогда каждая фирма, приобретающая вычислительную машину.
В начале 1950-х годов понятие программного обеспечения ещё не сложилось. Так не
говорилось о нём ничего в вышедшей в январе 1952 года в журнале Fortune статье «Office
Robots», описывавшем компьютеры Univac. Хотя в статье уже рассказывается о
компьютере как об универсальном устройстве, процесс программирования в этой статье
был анахронически описан как «переключение тумблеров». Однако к середине 50-х годов
уже вполне сложилась разработка программного обеспечения на заказ, хотя сам термин
«программное обеспечение» ещё не использовался, тогда говорили просто о
«программировании на заказ» или «программистском обслуживании». Первой
программной фирмой стала компания System Development Corporation, созданная в 1956
году на базе принадлежащей правительству США фирме RAND Corporation. На этом
этапе заказчиками программного обеспечения (уникального и не тиражируемого) были
крупные корпорации и государственные структуры, и стоимость в один миллион долларов
за программу не была чем-то необычным.
1.2. Классификация программных продуктов.
Состав программного обеспечения (ПО) компьютера называют программной
конфигурацией. Между программами существует взаимосвязь - многие из них работают,
опираясь на программы находящиеся на более низком уровне, то есть, мы можем говорить
о межпрограммном интерфейсе. Возможность существования такого интерфейса тоже
основана на существовании технических условий и протоколов взаимодействия, а на
практике он обеспечивается распределением программного обеспечения на несколько
взаимодействующих между собой уровней. Рассмотрим две классификации программного
обеспечения М.В. Бастрикова и Алексеева Е.Г. М.В . Бастриков как раз таки представляет
ПО ввиде уровней. Уровни программного обеспечения представляют собой
пирамидальную конструкцию. Каждый следующий уровень опирается на программное
обеспечение предшествующих уровней (рис.1).

Рис.1
Каждый вышележащий уровень повышает функциональность всей системы
программного обеспечения. Рассмотрим каждый из этих уровней по подробней. Нижний
уровень это базовое ПО. Оно обеспечивает взаимодействие с базовыми аппаратными
средствами. Базовые программные средства находятся в специальных микросхемах,
которые называются постоянными запоминающими устройствами (ПЗУ—Read Only
Memory, ROM) и входят в состав базового оборудования. Программы и данные
записываются или говоря жаргонным языком, («прошиваются») в микросхемы ПЗУ на
начальном этапе производства и никак не могут изменяться в процессе эксплуатации.
Системный уровень является переходным. Программы, которые работают на данном
уровне, обеспечивают взаимодействие других программ компьютерной системы с
программами нижнего уровня, базового, и непосредственно, с аппаратным обеспечением,
то есть выполняют «посреднические» функции.
Совокупность программного обеспечения системного уровня образует ядро
операционной системы компьютера. На служебном уровне программное обеспечение
взаимодействует с программами базового и системного уровня. Служебные программы
называют утилитами и они отвечают на автоматизацию работ про проверке, наладке и
настройке системы. В основном они используются для улучшения функций системных
программ. Многие служебные программы заранее включают в состав операционной
системы.
Последний уровень это прикладной. Программное обеспечение этого уровня
выглядит как совокупность прикладных программ, для выполнения конкретных заданий.
Разнообразие этих заданий довольно широко, начиная от производственных и заканчивая
творческими и обучающими. Существует огромное наличие прикладных программ для
разнообразных видов деятельности, так как этот уровень обладает огромным
функциональным диапазоном возможных приложений средств вычислительной техники.
Функционирование и работа компьютера не ограничивается только лишь
аппаратными средствами, но также используется наборы различных программ,
называемыми программным обеспечением.
Все существующее в настоящее время программное обеспечение можно разделить
на:
1. Прикладное ПО, в которое входят программы для создания рисунков, текстов,
выполнения расчетов и т.п.
2. Системы программирования, в которое входят программы для автоматизации
разработки самих программ.
3. Системное ПО.
Ядром системного программного обеспечения являются операционные системы
(программы для управления ресурсами компьютера и организации диалога с
пользователем).
Алексеев Е.Г. представляет классификацию в виде схемы.

Прикладное ПО – это комплекс программ для решения задач определённого класса


конкретной предметной области. Прикладное ПО работает только при наличии
системного ПО.
Системное ПО – это совокупность программ для обеспечения работы компьютера.
Системы программирования – это совокупность программ для разработки, отладки и
внедрения новых программных продуктов.
Рассмотрев две классификации и разные трактовки понятий, мы видим много
общего и схожего между собой. Обе классификации похожи и имеют одинаковые блоки.
На мой взгляд М.В .Бастриков представил более понятную классификацию ПО,
представив ее в виде уровней .Вычленив из понятий ПО общее можно выделить основу,
что программное обеспечение это важная совокупность программ без которого не
возможна работа компьютера.
Подходы к классификации ПО достаточно подробно формализованы в
международном стандарте ISO/IEC 12182. В частности, первая версия стандарта
предусматривала 16 критериев классификации программных средств:
 по режиму эксплуатации;
 по масштабу;
 по стабильности;
 по функции;
 по требованию защиты;
 по требованию надёжности;
 по требуемым рабочим характеристикам;
 по исходному языку;
 по прикладной области;
 по вычислительной системе и среде;
 по классу пользователя;
 по требованию к вычислительным ресурсам;
 по критичности;
 по готовности;
 по представлению данных;
 по использованию программных данных.
Примерами классов функции ПС являются:
 обработка деловых сообщений;
 компиляция;
 научные вычисления;
 обработка текстов;
 медицинские системы;
 системы управления.
Примерами классов прикладной области являются:
 наука;
 бытовые устройства;
 оборудование;
 аппаратура управления процессом;
 предпринимательство;
 система организации сети.
Примерами классов масштаба ПС являются:
 малый;
 средний;
 большой.
Примерами классов критичности являются:
 национальная безопасность;
 человеческая жизнь;
 социальный хаос или паника;
 организационная безопасность;
 частная собственность;
 секретность.
Примерами классов пользователя являются:
 начинающий;
 средний;
 специалист (эксперт);
 обычный;
 случайный;
 другая система программного обеспечения;
 технические средства.
Примерами классов стабильности являются:
 постоянное внесение изменений;
 дискретное внесение изменений;
 маловероятное внесение изменений.
По степени переносимости программы делят на
 платформозависимые;
 кроссплатформенные.
По способу распространения и использования программы делят наПерейти к разделу
«Лицензия»
 проприетарные;
 открытые;
 свободные.
По назначению программы делят на:
 системныеПерейти к разделу «#Системное программное обеспечение»;
 прикладныеПерейти к разделу «#Прикладное программное обеспечение».
По видам программы делят на:
 компонент — программа, рассматриваемая как единое целое, выполняющая
законченную функцию и применяемая самостоятельно или в составе
комплекса;
 комплекс — программа, состоящая из двух или более компонентов и (или)
комплексов, выполняющих взаимосвязанные функции, и применяемая
самостоятельно или в составе другого комплекса.
1.3. Жизненный цикл программного продукта.
Жизненный цикл программного обеспечения (ПО) — период времени, который
начинается с момента принятия решения о необходимости создания программного
продукта и заканчивается в момент его полного изъятия из эксплуатации.
Частный случай жизненного цикла системы (в данном случае программной
системы).
Стандарт группирует различные виды деятельности, которые могут выполняться в
течение жизненного цикла программных систем, в семь групп процессов. Каждый из
процессов жизненного цикла в пределах этих групп описывается в терминах цели и
желаемых выходов, списков действий и задач, которые необходимо выполнять для
достижения этих результатов.
 процессы соглашения — два процесса;
 процессы организационного обеспечения проекта — пять процессов;
 процессы проекта — семь процессов;
 технические процессы — одиннадцать процессов;
 процессы реализации программных средств — семь процессов;
 процессы поддержки программных средств — восемь процессов;
 процессы повторного применения программных средств — три процесса.
Основные:
1. Приобретение (действия и задачи заказчика, приобретающего ПО)
2. Поставка (действия и задачи поставщика, который снабжает заказчика
программным продуктом или услугой)
3. Разработка (действия и задачи, выполняемые разработчиком: создание ПО,
оформление проектной и эксплуатационной документации, подготовка тестовых
и учебных материалов и т. д.)
4. Эксплуатация (действия и задачи оператора — организации, эксплуатирующей
систему)
5. Сопровождение (действия и задачи, выполняемые сопровождающей
организацией, то есть службой сопровождения). Сопровождение — внесений
изменений в ПО в целях исправления ошибок, повышения производительности
или адаптации к изменившимся условиям работы или требованиям.
Вспомогательные
Документирование (формализованное описание информации, созданной в течение
ЖЦ ПО)
Управление конфигурацией (применение административных и технических
процедур на всем протяжении ЖЦ ПО для определения состояния компонентов ПО,
управления его модификациями).
Обеспечение качества (обеспечение гарантий того, что ИС и процессы её ЖЦ
соответствуют заданным требованиям и утверждённым планам)
Верификация (определение того, что программные продукты, являющиеся
результатами некоторого действия, полностью удовлетворяют требованиям или условиям,
обусловленным предшествующими действиями)
Аттестация (определение полноты соответствия заданных требований и созданной
системы их конкретному функциональному назначению)
Совместная оценка (оценка состояния работ по проекту: контроль планирования и
управления ресурсами, персоналом, аппаратурой, инструментальными средствами)
Аудит (определение соответствия требованиям, планам и условиям договора)
Разрешение проблем (анализ и решение проблем, независимо от их происхождения
или источника, которые обнаружены в ходе разработки, эксплуатации, сопровождения
или других процессов)
Организационные
Управление (действия и задачи, которые могут выполняться любой стороной,
управляющей своими процессами)
Создание инфраструктуры (выбор и сопровождение технологии, стандартов и
инструментальных средств, выбор и установка аппаратных и программных средств,
используемых для разработки, эксплуатации или сопровождения ПО)
Усовершенствование (оценка, измерение, контроль и усовершенствование процессов
ЖЦ)
Обучение (первоначальное обучение и последующее постоянное повышение
квалификации персонала)
Каждый процесс включает ряд действий. Например, процесс приобретения
охватывает следующие действия:
 Инициирование приобретения
 Подготовка заявочных предложений
 Подготовка и корректировка договора
 Надзор за деятельностью поставщика
 Приёмка и завершение работ
Каждое действие включает ряд задач. Например, подготовка заявочных
предложений должна предусматривать:
 Формирование требований к системе
 Формирование списка программных продуктов
 Установление условий и соглашений
 Описание технических ограничений (среда функционирования системы и т.
д.)
 Стадии жизненного цикла ПО, взаимосвязь между процессами и стадиями
Модель жизненного цикла ПО — структура, определяющая последовательность
выполнения и взаимосвязи процессов, действий и задач на протяжении жизненного цикла.
Модель жизненного цикла зависит от специфики, масштаба и сложности проекта и
специфики условий, в которых система создается и функционирует.
Стандарт ГОСТ Р ИСО/МЭК 12207-2010 не предлагает конкретную модель
жизненного цикла. Его положения являются общими для любых моделей жизненного
цикла, методов и технологий создания ИС. Он описывает структуру процессов
жизненного цикла, не конкретизируя, как реализовать или выполнить действия и задачи,
включенные в эти процессы.
Модель ЖЦ ПО включает в себя:
 Стадии;
 Результаты выполнения работ на каждой стадии;
 Ключевые события — точки завершения работ и принятия решений.
Стадия — часть процесса создания ПО, ограниченная определёнными временными
рамками и заканчивающаяся выпуском конкретного продукта (моделей, программных
компонентов, документации), определяемого заданными для данной стадии
требованиями.
На каждой стадии могут выполняться несколько процессов, определённых в
стандарте ГОСТ Р ИСО/МЭК 12207-2010, и наоборот, один и тот же процесс может
выполняться на различных стадиях. Соотношение между процессами и стадиями также
определяется используемой моделью жизненного цикла ПО.
1.4. Понятие лицензии.
Пользователь получает программное обеспечение вместе с лицензией, которая
предоставляет ему право использовать программный продукт при условии выполнения
положений о лицензировании. Как правило, эти условия ограничивают возможности
пользователя передавать программный продукт другим пользователям, изменять код.
Часть программного обеспечения поставляется со свободной лицензией. Такие
лицензии позволяют распространять программное обеспечение, а также модифицировать
его.
Часть программного обеспечения распространяется как бесплатное. Существует
также условно бесплатное программное обеспечение. В этом случае обычно пользователь
бесплатно получает демонстрационную версию программного продукта с несколько
ограниченными возможностями на определённый испытательный период, а после его
окончания обязан или приобрести продукт, или деинсталлировать его.
Лицензия - разрешение (право) на осуществление лицензируемого вида
деятельности при обязательном соблюдении лицензионных требований и условий,
выданное лицензирующим органом юридическому лицу или индивидуальному
предпринимателю. Лицензия выдается отдельно на каждый лицензируемый вид
деятельности. Вид деятельности, на осуществление которого получена лицензия, может
выполняться только получившим лицензию юридическим лицом или индивидуальным
предпринимателем.
Лицензионные условия - это совокупность установленных норм и правил,
выполнение которых обязательно для получения и дальнейшего владения лицензией на
осуществление лицензируемого вида деятельности.
В лицензии указывается:
1) наименование органа, выдавшего лицензию;
2) для юридических лиц - наименование и юридический адрес;
3) для индивидуальных предпринимателей - фамилия, имя, отчество, паспортные
данные (серия, номер, кем и когда выдан, место жительства);
4) вид деятельности, на осуществление которой выдается лицензия;
5) срок действия лицензии;
6) условия осуществления лицензируемой деятельности;
7) регистрационный номер лицензии и дата выдачи.
Содержанием последней является перечень полномочий, составляющих
компетенцию хозяйствующего субъекта (см. Приложение В). Его определение вызывает
некоторые вопросы. В частности, нуждаются в уточнении пределы усмотрения органов
управления в установлении этого перечня. Известно, что должностные лица по
собственному усмотрению вычеркивают или вписывают в выдаваемую лицензию
отдельные направления деятельности. Это представляется недопустимым. Необходимо,
чтобы в лицензию включались по просьбе хозяйствующего субъекта все виды не
запрещенных законом операций в пределах данного направления деятельности, для
ведения которых этот субъект представил необходимые обоснования.
1.5. Типы лицензий на программное обеспечение.
Выделяют следующие типы лицензий программного обеспечения:
1. Freeware
Свободно распространяемые (БЕСПЛАТНЫЕ) полнофункциональные программы.
Приобретать подобные программы не нужно.
Они, как правило, распространяются через среду Интернет или в качестве
дополнения с платными коммерческими продуктами.
2. Shareware.
Условно-бесплатное программное обеспечение - пользователю бесплатно
предоставляется программное обеспечение неполного функционала, то есть с некоторыми
ограничениями, действующими до тех пор, пока не будет произведена оплата за
полнофункциональный продукт.
Ограничения могут быть:
 функциональными, т.е. пользователю доступны не все функциональные
возможности – это так называемые демо-версии (demo);
 временными, т.е. без оплаты продукт в полном функционале работает какое-то
календарное время или определенное количество запусков – так называемые
пробные версии (trial).
3. Public domain software.
Данный тип лицензий похож на freeware — программные продукты этого типа также
распространяются бесплатно.
Однако, в отличие от freeware, где за автором программы сохраняются все права на
нее, в случае с public domain у автора эти права отсутствуют.
Программное обеспечение распространяется вместе с исходным кодом, и автор,
выкладывая свой продукт в общий доступ, полностью отказывается от своих прав.
Распространение такого рода лицензий было характерно для начала массового
доступа в Интернет. В настоящее время продукты с этим типом лицензии практически не
выпускаются
4. Open Source.
Программное обеспечение распространяется на бесплатной основе вместе с
исходным кодом. Однако автор уже не отказывается от своих прав.
Существует международная система требований к лицензии на программный
продукт, который называется The Open Source Definition (OSD).
Модифицированное любым соавтором обеспечение должно распространяться на тех
же условиях, что и исходный продукт – то есть модифицированное ПО нельзя перевести в
платное и коммерческое.
5. Commercial.
Коммерческое программное обеспечение, т.е. программное обеспечение, всегда
распространяемое только за плату. Оплата должна быть произведена авансом или сразу
после получения копии на лицензионном диске или дискете в фирменной упаковке.
ПРИМЕЧАНИЕ: Использование продуктов Commercial без оплаты является
незаконным.
Коммерческое программное обеспечение, как правило, распространяется с
использованием трех основных вариантов лицензирования:
1. Лицензии для покупки вместе с новым компьютером (OEM).
Данный вид лицензии предназначен только для производителей и/или сборщиков
персональных компьютеров.
В отличие от коробочной версии программного обеспечения, OEM-версия имеет
технологическую упаковку (чаще всего футляр или заливку в пленку на подложке),
внутри которой, как правило, содержится:
- сертификат подлинности;
- дистрибутив продукта;
- соглашение с конечным пользователем.
OEM-версия продукта чаще всего имеет более низкую стоимость по сравнению с
коробочной версией.
К недостаткам OEM-версии следует отнести то, что установленный продукт не
может быть переустановлен на другую рабочую станцию, соответственно при выходе
данного компьютера из строя и/или его ремонте или модернизации необходимо будет
вновь приобретать лицензию на ранее используемый программный продукт.
2. Коробочные версии продуктов.
При данном виде лицензирования покупателю передается фирменная упаковочная
коробка, с CD или DVD диском с программой, документация на продукт, лицензионное
соглашение и сертификат подлинности.
Данный вариант является наиболее оптимальным при покупке небольшого
количества экземпляров программного обеспечения.
3. Корпоративная лицензия.
Лицензия для организаций (корпоративная лицензия) — это соглашение между
компанией и производителем программного обеспечения об использовании программного
обеспечения. Корпоративная лицензия представляет собой именную лицензию,
выписанную производителем на клиента - юридическое лицо.
Дистрибутивы и документация по программе корпоративного лицензирования
приобретаются, при необходимости, отдельно.
Срок действия корпоративной лицензии, как правило, неограничен, однако в
реальности возникает необходимость обновления лицензий в связи с отказом
производителя поддерживать устаревшие версии ПО.

Вам также может понравиться