Денис Бесков

Руководитель школы,
основной автор федерального профстандарта системного аналитика,
Certified Professional for Requirements Engineering

Что мы создаём в ИТ-проектах?

Давайте рассмотрим, что обычно является результатом работы в ИТ-проектах и чем эти результаты отличаются:
  • компьютерная программа
  • программный элемент
  • программный модуль
  • программный компонент
  • программный комплекс
  • программное средство
  • программное изделие
  • программный продукт (ПП)
  • программное обеспечение (ПО)
  • программно-технический комплекс (ПТК)
  • информационная система (ИС)
  • система управления (СУ)
  • автоматизированная система (АС)
  • автоматизированная система управления (АСУ)
Заодно посмотрим, как их определяют российские и международные стандарты и попробуем собрать паззл (а это точно паззл, поверьте!).

1
Компьютерная программа
Компьютерная программа — это набор инструкций и команд для исполнения на компьютере.
Исходный код:

Компьютерная программа в текстовом виде на каком-либо языке программирования
ГОСТ Р 54593-2011
Информационные технологии. Свободное программное обеспечение. Общие положения
Компьютерная программа может существовать в 2-х ипостасях:
  • Design-time — в форме исходного кода;
  • Run-time — в форме исполняемого кода в момент его работы.

Скрипты и программы на интерпретируемых языках программирования можно запускать и использовать как есть.

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

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

Данные, предназначенные для управления конкретными компонентами системы обработки информации в целях реализации определенного алгоритма
ГОСТ 19781-90
Обеспечение систем обработки информации программное. Термины и определения
Из определения ГОСТа получается, что программа существует не сама по себе, а является частью системы обработки информации (хм!).
Кстати, вчитайтесь в слова «Обеспечение систем обработки информации программное» (название ГОСТа). Видимо, авторы ГОСТа — поклонники Звёздных Войн и Йоды.

Напомню для миллениалов — аббревиатура СОИ в 80-е годы и эпоху холодной войны означала «стратегическая оборонная инициатива» (программа НИОКР США по созданию системы космической противоракетной обороны), а не то, что вы подумали.

2
Программный элемент
Программный элемент (software item)

Любая идентифицируемая (выделяемая) часть компьютерной программы.
ИСО/МЭК 9003:2004
Разработка программных продуктов. Руководящие указания по применению ИСО 9001:2008 при разработке программных продуктов
Получается, что программный элемент — это уже терминология из мира конфигурационного управления.

3
Программный компонент
Программы бывают большие и маленькие. Для удобства работы с ними их разбивают на компоненты.
Программный компонент

Программа, рассматриваемая как единое целое, выполняющая законченную функцию и применяемая самостоятельно или в составе комплекса
ГОСТ 19.101-77
Единая система программной документации (ЕСПД). Виды программ и программных документов

4
Программный модуль
Программный модуль

Программа или функционально завершенный фрагмент программы, предназначенный для хранения, трансляции, объединения с другими программными модулями и загрузки в оперативную память
ГОСТ 19781-90
Обеспечение систем обработки информации программное. Термины и определения
В такой трактовке модуль — это единица конфигурационного управления.
Программный модуль

Программный элемент, который не может быть разделен на более мелкие части
ГОСТ Р МЭК 62304—2013
ИЗДЕЛИЯ МЕДИЦИНСКИЕ. Программное обеспечение. Процессы жизненного цикла
Вот тут медики уже жгут (напалмом). Что это за элемент такой, который не может быть разделен на более мелкие части? Подпрограмма, функция, класс, байт, бит?

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

5
Программный комплекс
Программы бывают большие и маленькие. Для удобства работы с ними их объединяют в комплексы.
Программа, состоящая из двух или более компонентов и (или) комплексов, выполняющих взаимосвязанные функции, и применяемая самостоятельно или в составе другого комплекса
ГОСТ 19.101-77
Единая система программной документации (ЕСПД). Виды программ и программных документов

6
Программное обеспечение (ПО)
В состав программного обеспечения (компьютерной системы обработки информации) входят, по разным версиям:
  • компьютерные программы,
  • данные,
  • программные документы,
  • процедуры,
  • правила,
  • сопутствующие документы.
Совокупность программ системы обработки информации и программных документов, необходимых для эксплуатации этих программ
ГОСТ 19781-90
Обеспечение систем обработки информации программное. Термины и определения
Программы, процедуры, правила и любая соответствующая документация, относящиеся к работе вычислительной системы.
ГОСТ Р ИСО/МЭК 9126-93
Информационная технология (ИТ). Оценка программной продукции. Характеристики качества и руководства по их применению
program or set of programs used to run a computer
ISO/IEC 26514:2008
Systems and software engineering — requirements for designers and developers of user documentation
Совокупность программ системы обработки информации и программных документов, необходимых для их эксплуатации
ГОСТ Р 54593-2011
Информационные технологии. Свободное программное обеспечение. Общие положения
computer programs, procedures and possibly associated documentation and data pertaining to the operation of a computer system

all or part of the programs, procedures, rules, and associated documentation of an information processing system
IEEE 828-2012
IEEE Standard for Configuration Management in Systems and Software Engineering

7
Программное средство (ПС)
Следующий, более хитрый зверь — программное средство.

В его составе:
  • программы,
  • процедуры,
  • правила,
  • документация,
  • данные.

Из определения ГОСТа снова получается, что оно существует не само по себе, а является частью системы обработки информации.

Из ранних, постсоветских определений непонятно его принципиальное отличие от ПО выше :(
Объект, состоящий из программ, процедур, правил, а также, если предусмотрено, сопутствующих им документации и данных, относящихся к функционированию системы обработки информации.
ГОСТ 28806-90
Качество программных средств. Термины и определения
А вот из более свежего определения эмбедщиков выглядит так, что программное средство — это прежде всего предмет поставки, сборка единиц поставки по конкретному контракту:
ПО и связанные с ним документы, вновь созданные, модифицированные или сгруппированные для удовлетворения требованиям контракта.
ГОСТ Р 51904-2002
Программное обеспечение встроенных систем. Общие требования к разработке и документированию

8
Программный продукт (ПП)
Программный продукт (ПП) — это частный случай ПС, которое можно кому-то отдать в использование.

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

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

Рекламные материалы также являются частью продукта, потому что они рассказывают про сам продукт.
Программное средство, предназначенное для поставки, передачи, продажи пользователю.
ГОСТ 28806-90
Качество программных средств. Термины и определения
Программный объект, предназначенный для поставки пользователю.
ГОСТ Р ИСО/МЭК 9126-93
Информационная технология (ИТ). Оценка программной продукции. Характеристики качества и руководства по их применению

9
Программная система
Программная система

Система, состоящая из ПО и, возможно, компьютерного оборудования для его выполнения
ГОСТ Р 51904-2002
Программное обеспечение встроенных систем. Общие требования к разработке и документированию
Вот это «возможно» конечно совсем сбивает с толку. Т.е. если оборудования нет, то программная система = программное обеспечение? Нипонятно.
Программная система (software system)

Совокупность программных элементов, предназначенных для выполнения конкретной функции или набора функций.
ГОСТ Р МЭК 62304—2013
ИЗДЕЛИЯ МЕДИЦИНСКИЕ. Программное обеспечение. Процессы жизненного цикла

10
Программно-аппаратное средство
Это уже оборудование со встроенным софтом — например, беспроводные наушники, любой другой гаджет со встроенной операционкой.
Программно-аппаратные средства (firmware):

Технические средства, содержащие компьютерную программу и данные, которые не могут изменяться средствами пользователя. Компьютерная программа и данные, входящие в программно-аппаратные средства, классифицируются как программное обеспечение; схемы, содержащие компьютерную программу и данные, классифицируются как технические средства.
ГОСТ Р ИСО/МЭК 9126-93
Информационная технология (ИТ). Оценка программной продукции. Характеристики качества и руководства по их применению

11
Программно-технический комплекс
(ПТК АС)
Программно-технический комплекс (АС) — это совокупность ПО и оборудования, на котором оно исполняется.

При внедрении ПО в какой-либо организации необходимо оборудование.

Оборудование бывает уникальным, созданным специально под это ПО, или типовым, тиражируемым.

Программно-технический комплекс автоматизированной системы; ПТК АС:

Продукция, представляющая собой совокупность средств вычислительной техники, программного обеспечения и средств создания и заполнения машинной информационной базы при вводе системы в действие достаточных для выполнения одной или более задач АС
ГОСТ 34.003-90
Информационная технология (ИТ). Комплекс стандартов на автоматизированные системы. Автоматизированные системы. Термины и определения

12
Информационная система
Информационная система — это информационная модель какой-то части реальности и инструменты для хранения и изменения этой модели.

Информационная модель включает структуру данных и сами данные.

Информационная система

Система, которая организует хранение и манипулирование информацией о предметной области

Система, которая организует процессы сбора, хранения и обработки информации о проблемной области
ГОСТ 34.321-96
Информационные технологии (ИТ). Система стандартов по базам данных. Эталонная модель управления данными
Информационная система

Система, предназначенная для хранения, поиска и обработки информации, и соответствующие организационные ресурсы (человеческие, технические, финансовые и т. д.), которые обеспечивают и распространяют информацию.
ISO/IEC 2382:2015
Information technology — Vocabulary
Примером информационной системы может служить любой реестр в виде Excel.

Рассмотрим пример с амбарной книгой:

Амбарная книга — это перечень того, что поступает на или уходит со склада. На склад в такой-то день поступает такой-то товар — допустим, 100 кг картошки, и мы это фиксируем в амбарной книге, которая отражает реальное состояние склада.

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

Данные — это записи, которые записаны в строках или лежат в ячейках согласно структуре информационной модели:

Инструменты ввода данных в случае настоящей амбарной книги — это карандаш, ручка, резинка. В случае Excel это сам софт Excel.

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

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

Допустим, у нас есть штатное расписание. Это список сотрудников с указанием, кто какие должности занимает. С одной стороны, есть сотрудники компании, с другой — есть сама модель.

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

Назначение информационной системы — отражать реальное положение дел.

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

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

13
Автоматизированная система
Автоматизированная система (АС) — это система, помогающая выполнять какую-то деятельность автоматизированным образом, используя какое-то оборудование и софт.

По российским ГОСТам в систему обычно входит и ПО и оборудование и правила осуществления деятельности и люди. Присутствие в этом определении людей — это отличие отечественной школы от западной.

В западной школе люди не являются частью системы: отдельно ПО, отдельно оборудование, отдельно люди.

В российской практике люди считаются частью системы, поэтому у нас есть специальные разделы в ГОСТах — требования к персоналу.

Автоматизированная система

Система, состоящая из персонала и комплекса средств автоматизации его деятельности, реализующая информационную технологию выполнения установленных функций
ГОСТ 34.003-90
Информационная технология. Комплекс стандартов на автоматизированные системы. Автоматизированные системы. Термины и определения
Примером может служить автоматизированная система «Выборы», которая позволяет автоматизировать голосование в масштабах страны: быстро, надежно и безопасно собирать голоса, обрабатывать и хранить их, а также выдавать информацию.

Сейчас практически в каждой компании определенного масштаба есть система для автоматизации какой-либо деятельности.

14
Система управления
Система управления — это система, которая позволяет управлять другой системой или объектом.

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


15
Автоматизированная система управления
Автоматизированная система управления — это по сути надстройка над информационной системой, которая помимо индикации и ввода данных позволяет иметь какие-то рычаги влияния на сам объект.

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

Автоматизированные системы, информационные системы и системы управления часто встречаются в сочетаниях — АИС, АСУ и др.

Частным примером АСУ может быть, например, АСУТП (автоматизированная система управления технологическими процессами).
На конкретной нефтяной вышке есть датчики, насосы, буры. Есть ПО, которое всем этим управляет и находится со всем этим в связи для выполнения технологических операций. Вкупе с оборудованием для работы ПО они образуют АСУТП.
Error get alias