ГЛАВА 8. СОСТОЯНИЕ И ТЕНДЕНЦИИ РАЗВИТИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

 

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

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

 

Программное обеспечение является очень широким понятием, которое охватывает:

§ системное программное обеспечение работоспособности компьютеров;

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

§ инструментарий технологии программирования (программное обеспечение сферы производства программ).

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

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

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

ПОСЛЕ ИЗУЧЕНИЯ ГЛАВЫ ВЫ ДОЛЖНЫ ЗНАТЬ:

Ø Основные понятия и термины программного обеспечения

Ø Характерные особенности программного продукта

Ø Этапы жизненного цикла программных продуктов

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

Ø Классификацию программных продуктов

Ø Характерные особенности системного программного обеспечения

Ø Характерные особенности инструментария технологии программирования

Ø Характерные особенности пакетов прикладных программ

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

 

§ Основные понятия программного обеспечения

§ Характеристика программного продукта

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

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

Основные понятия

 

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

Программа(program, routine) – упорядоченная последовательность команд (инструкций) компьютера для решения задачи.

Программное обеспечение(sowtware) – совокупность программ обработки данных и необходимых для их эксплуатации документов.

 

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

 

Задача(problem, task) – проблема, подлежащая решению.

Приложение(application) – программная реализация на компьютере решения задачи.

 

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

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

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

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

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

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

 

Процесс создания программ можно представить как последовательность действий, представленных на рис. 8.1.

 

Рис. 8.1.Схема процесса создания программ

Постановка задачи(problem definition) – это точная формулировка решения задачи на компьютере с описанием входной и выходной информации.

 

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

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

§ цель или назначение задачи, ее место и связи с другими задачами;

§ условия решения задачи с использованием средств вычислительной техники;

§ содержание функций обработки входной информации при решении задачи;

§ требования к периодичности решения задачи;

§ ограничения по срокам и точности выходной информации;

§ состав и форма представления выходной информации;

§ источники входной информации для решения задачи;

§ пользователи задачи (кто осуществляет ее решение и пользуется результатами решения).

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

 

Рис. 8.2. Схема взаимосвязи входной и выходной информации для решения задачи

 

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

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

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

 

Алгоритм решения задачи имеет ряд обязательных свойств:

§ дискретность – разбиение процесса обработки информации на более простые этапы (шаги выполнения), выполнение которых компьютером или человеком не вызывает затруднений;

§ определенность алгоритма – однозначность выполнения каждого отдельного шага преобразования информации;

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

§ массовость – пригодность алгоритма для решения определенного класса задач.

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

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

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

Программирование(programming) – теоретическая и практическая деятельность, связанная с созданием программ.

 

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

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

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

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

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

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

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

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