<<
>>

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

До 70-х годов изготовители ЭВМ, как правило, продавали лишь изделие одного вида - аппаратуру (Hard ware). Операционные системы (ОС), вспомогательные служебные программы, пакеты прикладных программ (ППП), эксплуатационная документация и учебные материалы часто поставлялись пользователям бесплатно.
В начале 70-х годов IBM, разделив свои программные средства (soft ware) и аппаратуру, установила отдельные цены, хотя по-прежнему продолжала поставлять программное обеспечение бесплатно, что связано с ростом значимости программного обеспечения (ПО).

Все это привело к следующим последствиям:

появилось большое количество фирм, разрабатывающих и продающих ПО;

создается индустрия ПО;

пользователь получил возможность выбора ПО у конкурирующих фирм;

развился модульный принцип и появились стандарты в программировании;

повысилась ответственность поставщиков ЭВМ за ПО.

Наряду с традиционно продаваемым Soft ware, появились Firm ware - аппаратно-ориентированное ПО, поставляемое производителем ЭВМ (например, BIOS), Share ware - условно бесплатное ПО, Free ware - бесплатное ПО и т.п.

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

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

237


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

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

Любая программа имеет три стадии (или фазы) жизни (рис. 6.1).


Рис. 6.1. Жизненный цикл программного обеспечения

На этапе продолжающейся разработки:

устраняются скрытые дефекты, не выявленные на этапе тестирования;

вносятся изменения в существующую версию, учитывающие опыт использования;

проводится адаптация программ к изменяющимся требованиям.

В общем объеме работ принято считать [8], что 33 % составляет фаза разработки, а 67 % - сопровождение (продолжающаяся разработка) и эксплуатация.

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

определение требований и заданий;

проектирование (алгоритмизация);

написание команд (кодирование - программирование);

компоновка;

тестирование;

документирование.

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

Затраты на разработку программного обеспечения довольно высоки. Так, в США ежегодно тратится более 20 млрд дол. на эти цели.

238




Высокая стоимость программ объясняется низкой скоростью роста производительности труда программистов. Говоря о высокой стоимости программного обеспечения, очень часто ошибочно абсолютизируют соотношение между стоимостью программной и аппаратной частями системы. Утверждение о том, что программное обеспечение намного дороже аппаратного (обычно распространяемое программистами) справедливо в редких случаях при разработке больших по объему уникальных программных комплексов (например, в системах управления спутниками Земли). В большинстве тиражируемых систем ПО (например, ПК) это соотношение может быть прямо противоположным.

В заключение приведем высказывание одного из ведущих специалистов США по разработке программного обеспечения Дж. Фокса. Он сказал [18]: «Разрабатывать программное обеспечение с каждым годом становится все труднее и в то же самое время разрабатывать программное обеспечение с каждым годом становится легче». Это связано, прежде всего, с тем, что стремление к автоматизации труда программиста путем включения в этот процесс ЭВМ привело к созданию очень большого количества программ, освоение которых требует дополнительных и немалых усилий. Дадим краткий обзор существующих на сегодняшний день программных продуктов.

1. Общесистемное ПО, в котором иногда выделяют две части:

системное ПО - программы, выполняемые вместе с прикладными (сопровождают выполнение прикладных программ);

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

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


239


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

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

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

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

Начиная с 1968 г. возникает мнение о кризисе программного обеспечения (Software Crisis), что связано с общим процессом проектирования, вызванным постоянным усложнением технических систем и появлением сложных технических систем (СТС), увеличением объема и сложности программных продуктов, значитель


240


ным ростом ресурсов вычислительных систем, массовым внедрением параллельных архитектур.

Традиционный, позадачный способ проектирования ПО при создании крупных программных комплексов оказался тормозом в развитии ПО. В связи с этим аналогично системам автоматизированного проектирования (САПР) при проектировании СТС появились средства автоматизированного проектирования ПО, т.е. включение компьютера в процесс проектирования ПО. Эти средства получили названия CASE-технологии (Computer Aided Software Engineering, т.е. создание ПО с помощью компьютера).

Эти средства реализуют блочно-иерархический подход при разработке ПО и так называемое проектирование сверху вниз.

Суть этого подхода давно и хорошо известна. Он связан с декомпозицией, т.е. с разбиением большой задачи на подзадачи и привлечением средств ЭВМ на всех шести этапах проектирования ПО, перечисленных выше, и использованием объектно-ориентированного подхода. К этим средствам относятся как текстовые и графические редакторы для изготовления описаний, блок-схем, графов и т.п. на верхних уровнях проектирования, так и средства генерации исполняемого кода на нижнем уровне - уровне базовых элементов.

К числу наиболее популярных элементов CASE-средств можно отнести унифицированный язык моделирования UML (United Modelling Language), имеющий четырехуровневую архитектуру и с 1997 г. являющийся стандартом в области визуального объектноориентированного моделирования.

6.1.

<< | >>

Еще по теме Общие сведения, классификация программного обеспечения и краткая характеристика отдельных частей:

  1. 1. Краткие общие сведения
  2. 1. Краткие общие сведения
  3. Программное обеспечение
  4. Статья 217. Правовые последствия недействительности отдельных частей сделки
  5. 2. Преимущественное право на получение отдельных частей наследства
  6. Богомазова Г.Н.. Установка и обслуживание программного обеспечения персональных компьютеров, серверов, периферийных устройств и оборудования, 2015
  7. Эд САЛЛИВАН. ВРЕМЯ — ДЕНЬГИ Создание команды разработчиков, программного обеспечения, 2001
  8. Том ДеМарко. Вальсируя с Медведями Управление рисками в проектах по разработке программного обеспечения, 2005
  9. Алистэр Коуберн. Люди как нелинейные и наиболее важные компоненты в создании программного обеспечения, 1999
  10. § 39 Классификация договоров в отдельных видах. – Римская классификация. – Система прусского закона, французского и австрийского кодекса. – Система русского свода. – Система настоящего изложения.
  11. I. Общие сведения о профессии.
  12. I. Общие сведения о профессии.