Информатика
Программное обеспечение (ПО) – это совокупность программных и документальных средств для создания и эксплуатации систем обработки данных средствами вычислительной техники. В зависимости от функций, выполняемых программным обеспечением, его можно разделить на:
1.системное ПО (базовое программное обеспечение);
Системное ПО – программы, управляющие работой компьютера и выполняющие различные вспомогательные функции, например, управление ресурсами компьютера, создание копий информации, проверка работоспособности устройств компьютера, выдача справочной информации о компьютере и др. Они предназначены для всех категорий пользователей, используются для эффективной работы компьютера и пользователя, а также эффективного выполнения прикладных программ.
К прикладному ПО относятся программы, предназначенные для решения задач в различных сферах деятельности человека (бухгалтерские программы, текстовые и графические редакторы, базы данных, экспертные системы, переводчики, энциклопедии, обучающие, тестовые и игровые программы и т.д.).
К инструментальному ПО относятся среды программирования для создания новых программ (ЛОГО, QuickBASIC, Pascal, Delphi и т.д.)
Системное программное обеспечение.
Системное программное обеспечение (СПО) направлено:
1.на создание операционной среды функционирования других программ,
2.обеспечение надежной и эффективной работы самого компьютера и компьютерной сети,
3.проведение диагностики и профилактики аппаратуры компьютера и компьютерных сетей,
4.выполнение вспомогательных технологических процессов (копирование, архивирование, восстановление файлов, программ и баз данных и т.д.)
Операционная система (ОС) — системный комплекс взаимосвязанных программ, который служит посредником при организации диалога пользователя с компьютером, управляет распределением и использованием компьютерных ресурсов, руководит работой всех аппаратных средств компьютера.
Диалоговые оболочки — комплексы программ, создающих для пользователя удобный интерфейс, упрощающих реализацию диалога между пользователем и компьютером, делающих наглядным и простым выполнение базовых операций над объектами операционной системы (файлами и каталогами).
Драйверы — это программы, обеспечивающие взаимодействие прикладных программ и операционной системы с внешними устройствами. Именно драйверы отвечают за обработку информации, поступающей от таких устройств, как мышь, клавиатура, принтер и сканер.
Утилиты — программы вспомогательного назначения, обеспечивающие дополнительный сервис (форматирование дискет, восстановление ошибочно удаленных файлов, дефрагментация файлов на диске и т. п.). Часть утилит входит в состав операционной системы, а другая часть функционирует независимо от неё, т.е. автономно). Утилиты могут распространятся как по одиночке, так и в составе больших и мощных утилитных комплексов, например, Norton Utilities.
Архиваторы (программы-упаковщики) позволяют за счет применения специальных методов сжатия уплотнять информацию, освобождая место на носителях информации. Программы-архиваторы позволяют создавать и такие архивы, для извлечения из которых содержащихся в них файлов не требуются какие-либо программы, так как сами архивные файлы называются самораспаковывающимися.
Антивирусные программы предназначены для предотвращения заражения компьютера компьютерными вирусами и ликвидации последствий заражения, если оно произошло. Примеры: Norton, Dr.Web, Mc Afee, Eset, Kaspersky и др.
Программы обслуживания дисков и операционной системы отвечают за системную обработку дисковой информации. К таким программам относят: программы оптимизации и контроля качества дискового пространства; программы восстановления информации, форматирования, защиты данных; программы для управления памятью, которые обеспечивают более гибкое использование оперативной памяти программы для записи CD-ROM, CD-RW, DVD-RW и т.д, коммуникационные программы, которые организуют обмен информацией между компьютерами; программы контроля, тестирования и диагностики, которые используются для проверки правильности функционирования устройств компьютера и обнаружения неисправностей и другие программы.
Комплекс средств, включающих в себя входной язык программирования, транслятор, машинный язык, библиотеки стандартных программ, средства отладки оттранслированных программ и компоновки их в единое целое, называется системой программирования. В системе программирования транслятор переводит программу, написанную на входном языке программирования, на язык машинных команд конкретной ЭВМ. В зависимости от способа перевода с входного языка (языка программирования) трансляторы подразделяются на компиляторы и интерпретаторы. В компиляции процессы трансляции и выполнения программы разделены во времени. Сначала компилируемая программа преобразуется в набор объектных модулей на машинном языке, которые затем собираются (компонуются) в единую машинную программу, готовую к выполнению и сохраняемую в виде файла на магнитном диске. Эта программа может быть выполнена многократно без повторной трансляции.
Интерпретатор осуществляет пошаговую трансляцию и немедленное выполнение операторов исходной программы: каждый оператор входного языка программирования транслируется в одну или несколько команд машинного языка, которые тут же выполняются без сохранения на диске. Таким образом, при интерпретации программа на машинном языке не сохраняется и поэтому при каждом запуске исходной программы на выполнение ее нужно (пошагово) транслировать заново. Главным достоинством интерпретатора по сравнению с компилятором является простота.
Входной язык программирования называется языком высокого уровня по отношению к машинному языку, называемому языком низкого уровня.
Особое место в системе программирования занимают ассемблеры, представляющие собой комплекс, состоящий из входного языка программирования ассемблера и ассемблер-компилятора. Ассемблер представляет собой мнемоническую (условную) запись машинных команд и позволяет получить высокоэффективные программы на машинном языке. Однако его использование требует высокой квалификации программиста и больших затрат времени на составление и отладку программ.
Наиболее распространенными языками программирования являются: Pascal, Basic, C++, Fortran и др.
Прикладные программы служат программным инструментарием решения прикладных задач и являются самым многочисленным классом программных продуктов. В данный класс входят программные продукты, выполняющие обработку информации различных предметных областей. Конечные пользователи таких программ – потребители информации, деятельность которых во многих случаях далека от компьютерной области. Прикладное ПО подразделяется на программы общего назначения и пакеты прикладных программ.
Программы общего назначения объединяют программы, используемые большинством пользователей и не требующие для освоения специфических знаний из других, не связанных с информатикой наук.
Пакеты прикладных программ – это системы программ, которые по сфере применения делятся на проблемно – ориентированные, пакеты общего назначения и интегрированные пакеты. Современные интегрированные пакеты содержат до пяти функциональных компонентов: тестовый и табличный процессор, СУБД, графический редактор, телекоммуникационные средства.
Существуют сотни текстовых редакторов, различных как по функциональным возможностям, так и по сложности освоения работы с ними. По назначению выделяют:
Редакторы документов ориентированы на работу с текстами, имеющими структуру документа, т. е. состоящими из разделов, страниц, полей, абзацев и т. д. (MS Word).
Издательские системы позволяют создавать сложные документы (рекламные буклеты, газеты, журналы, книги) высокого качества. В них процесс верстки автоматизирован, т. е. встроены специальные средства для размещения текста по страницам со вставкой рисунков, фотографий (PageMaker, QuarkXPress).
Специализированные редакторы созданы для пользователей, работающих с документами, в которых встречаются емкие формулы (например, математические или химические) и специальные символы (например, нотные знаки (ChiWriter).
Таблицы, обрабатываемые табличным процессором, называются электронными таблицами. Визуально электронные таблицы отображаются в виде прямоугольных таблиц, состоящих из строк и столбцов, пересечение которых образует ячейки. Каждая ячейка имеет свой адрес, состоящий из двух координат — имени столбца и номера строки, на пересечении которых она располагается. В ячейках могут содержаться числа, текст или формулы, задающие зависимость значения в одной ячейке от данных, находящихся в других ячейках. Табличные процессоры обычно применяются тогда, когда ведется работа с относительно сложными формулами и большими объемами исходных данных(MS Excel).
Обработкой баз данных занимаются системы управления базами данных (СУБД) — комплекс программ и языковых средств, предназначенных для создания и ведения базы данных, ввода, редактирования и удаления данных, организации взаимодействия баз данных с прикладными программами, обеспечения управления данными, доступа к ним, создания запросов и отчетов.
Посредством СУБД определяются физическая и логическая структуры базы данных. Физический уровень описания отражает способ физического хранения данных; логическое описание — это тот вид данных, который доступен пользователю и которым он оперирует. (MS Access).
Графические редакторы – программы, предназначенные для создания и обработки графических изображений. В данном классе различают растровые редакторы, векторные редакторы и программные средства для создания и обработки трехмерной графики.
Основной причиной появления интегрированных пакетов считается потребность в совместном использовании данных разных форматов. Поэтому такие пакеты разрабатывались по принципу единой (интегрированной) системы. Преимущества интегрированных пакетов проявляются в предоставлении пользователю однотипных средств доступа к данным различного вида и упрощении их переноса из одной программы пакета в другую. К недостаткам можно отнести повышенные требования к системным ресурсам (Microsoft Office).
Веб-редакторы – особый класс редакторов, предназначенный для создания и редактирования веб-документов. Объединяют в себе свойства текстовых и графических редакторов.
Браузеры – программные средства, предназначенные для просмотра электронных документов, выполненных в формате HTML. Пример: окно браузера Mozilla Firefox.
Экспертные системы – предназначены для анализа данных, содержащихся в базах знаний, и выдачи рекомендаций по запросу пользователя. Характерной особенностью экспертных систем является их способность к саморазвитию.
Бухгалтерские системы – это специализированные системы, сочетающие в себе функции текстовых и табличных редакторов, электронных таблиц и систем управления базами данных. Предназначены для автоматизации подготовки первичных бухгалтерских документов предприятия и их учета, для ведения счетов, а также для автоматической подготовки регулярных отчетов по итогам производственной, хозяйственной и финансовой деятельности.
Программы для сканирования предназначены для автоматического перевода печатных копий документов в электронный вид.
Программы-переводчики позволяют переводить информацию с одного естественного языка на другой.
Программы-словари — это электронные версии обычных словарей с некоторыми весьма удобными дополнительными возможностями.
Программа (компьютер)
Компью́терная програ́мма — последовательность инструкций, предназначенная для исполнения устройством управления вычислительной машины. Чаще всего образ программы хранится в виде исполняемого модуля (отдельного файла или группы файлов). Из этого образа, находящегося как правило на диске, исполняемая программа в оперативной памяти может быть построена программным загрузчиком. В зависимости от контекста, рассматриваемый термин может относиться также и к исходным текстам программы.
В системном программировании существует более формальное определение программы как размещённых в оперативной памяти компьютера данных и машинных кодов, исполняемых процессором для достижения некоторой цели. Здесь подчёркиваются две особенности: нахождение программы в памяти и её исполнение процессором.
Процесс создания компьютерных программ носит название «программирование», а людей, занимающихся этим видом деятельности, называют программистами. При разработке программ в них часто проникают ошибки. Программа содержит ошибки, если для некоторых данных она даёт сбои, отказы или неправильные результаты.
Процесс поиска и исправления ошибок в программах называется отладкой. Количество ошибок в программах обычно заранее неизвестно. Поэтому заранее неизвестна продолжительность отладки программ. Программа (алгоритм) не содержит ошибок, если она даёт правильные результаты для всех допустимых данных.
Запись исходных текстов программ при помощи языков программирования облегчает понимание и редактирование человеком. Этому, в частности, помогают комментарии, допустимые в синтаксисе большинства языков. Для выполнения на компьютере готовый текст программы преобразуется (компилируется) в машинный код.
Программы с общедоступными исходными текстами называются открытыми. Компьютерные программы являются объектами авторского права. Авторы и правообладатели программ имеют право ограничивать доступ к исходным текстам программ, которые являются их интеллектуальной собственностью.
Некоторые языки программирования позволяют обходиться без предварительной компиляции программы и переводят её в инструкции машинного кода непосредственно во время исполнения. Этот процесс называется динамической компиляцией и он позволяет добиться большей переносимости программ между разными аппаратными и программными платформами при сохранении многих плюсов компиляции.
Интерпретируемые программы, для которых как правило не применяется процесс компиляции и которые интерпретируются операционный системой или специальными программами-интерпретаторами, называются скриптами или «сценариями».
Исходные тексты компьютерных программ в большинстве языков программирования состоят из списка инструкций, точно описывающих заложенный алгоритм. Подобный подход в программировании называется императивным. Однако применяются и другие методологии программирования. Например, описание исходных и требуемых характеристик обрабатываемых данных и предоставление выбора подходящего алгоритма решения специализированной программе-интерпретатору — такой подход называется декларативным программированием. Также, применяются функциональное и логическое программирование.
Большинство пользователей компьютеров используют программы, предназначенные для выполнения конкретных прикладных задач, таких как подготовка и оформление документов, математические вычисления, обработка изображений и т. п. Соответствующие программные средства называют прикладными программами или прикладным программным обеспечением. Управление компонентами вычислительной системы и формирование среды для функционирования прикладных программ берёт на себя системное программное обеспечение, наиболее важной составляющей которого является операционная система.
См. также
Wikimedia Foundation . 2010 .
ТОП-9 самых полезных программ для ПК
Ни для кого не секрет, что приобрести компьютер – это только половина дела. Чтобы начать им полноценно пользоваться, необходимо установить ряд программ. Ведь несмотря на то, что компания Microsoft старается по полной облегчить жизнь своим пользователям, невозможно довольствоваться исключительно тем, что есть на ОС изначально. Поэтому, перед покупкой новенького ПК, просто необходимо узнать, какие программы установить на компьютер для его корректной работы. И на этом этапе многих пользователей кидает в дрожь. В голове рисуются ужасные картины бесконечных поисков и безумных трат.
Но, на самом деле, все самое необходимое можно найти спокойно в свободном доступе бесплатно или за символическую цену. И специально для Вас мы подготовили ТОП-10 самых полезных программ, которые Вы с легкостью сможете установить самостоятельно. Они значительно расширят функционал Вашего компьютера и сделают Вашу работу комфортной и удобной. Программы в рейтинге расположены в случайном порядке.
Самые нужные программы для компьютера
Браузер
Все мы слышали шутки про Internet Explorer. Мы не утверждаем, что он плохой, но в качестве альтернативы вполне можно установить один из предложенных ниже:
Если исходить из статистики, то самым скачиваемым является именно Google Chrome. Кроме стандартных функций – закладки, история, виджеты и так далее, у него есть масса расширений и удобная синхронизация со всеми устройствами. Вы можете установить Google Chrome или любой другой браузер, а в процессе уже решить каким Вам удобнее пользоваться.
Антивирус
Это именно то, без чего Вам точно не обойтись, ведь он обеспечивает главное – безопасность. На рынке представлено великое множество программ, но если говорить о бесплатных, то стоит присмотреться к этим:
Споры о том, какие из них лучшие, не утихают по сей день. Конечно, платные версии имеют более расширенный функционал, но если Вам нужна простая защита, то выбирайте любой из перечисленных выше.
Архиватор
Самый популярный вариант – это WinRar. Он справляется со всеми самыми распространенными форматами. В качестве альтернативы можете использовать и 7-Zip. По сути, они одинаковые, но первая программа не работает с форматами «.7z», а вторая с «.rar». Со всеми остальными одна и другая справляются.
Пакет офисных программ
Конечно, все мы ещё со школы привыкли к стандартному офисному пакету Microsoft Office. И если есть возможность, то лучше приобрести ключ именно для него. Но, если Вам необходим бесплатный вариант, то стоит обратить внимание на LibreOffice. Его можно установить как на Windows 7, так и на Windows 10. Он практически дублирует первый вариант и у него есть все те же самые редакторы. Но тем, кто привык к Microsoft Office на первых порах будет не совсем удобно. Кроме того, если сохранить файл в LibreOffice, а потом его открыть в Microsoft Office, то велика вероятность, что у Вас «поедут» шрифты и весь текст в целом. Подойдет как для ноутбука, так и для ПК.
Программное обеспечение
Программное обеспечение, или ПО, – это совокупность программ на компьютере или другом устройстве. Еще так называют сами программы. По-английски программное обеспечение – software, поэтому используется еще и термин «софт».
Цифровая система состоит из трех компонентов:
- hardware, или «железо» – аппаратные составляющие;
- middleware – «прослойка» между железом и программами, инфраструктура для связи компонентов друг с другом;
- software – программная «начинка» устройства.
Для примера можно взять смартфон. В нем есть процессор, экран, оперативная память – это «железо». Есть разные протоколы и службы – это middleware. А еще есть операционная система и приложения внутри нее – это software, программное обеспечение.
Кто пользуется программным обеспечением
В широком смысле с ПО работает каждый, у которого есть компьютер или другой гаджет. Программная начинка есть и в более мелкой технике: смарт-часах и браслетах, «умных» чайниках и пылесосах, наушниках. Задача софта в таких устройствах – выполнять заданные алгоритмы, например, управлять мотором или ставить музыку на паузу при нажатии.
В компьютерах и смартфонах ПО разнообразнее. Это системные приложения для нормальной работы ОС, прикладные программы – профессиональные и бытовые. Видеоигра, текстовый редактор, приложение социальной сети – все это софт.
В узком смысле с ПО работают программисты, тестировщики и другие IT-специалисты. Их задача – не просто пользоваться софтом, а разрабатывать и отлаживать его. Команды айтишников создают и поддерживают программное обеспечение – программируют, пишут код, который выполняет нужные инструкции.
Для чего используют ПО
Есть электроника, которая работает без программного обеспечения, но ее мало. Это обычно примитивные устройства вроде настольных ламп – там процессы происходят благодаря непрограммируемым электрическим схемам.
Чаще, чтобы «железо» выполняло свои функции, нужны программы. Программирование дает возможность работать с устройством более гибко и разнообразно, благодаря нему техника стала умнее и функциональнее. А еще программируемые контроллеры часто дешевле, чем непрограммируемые схемы – так что электроника стала еще и более доступной.
Программное обеспечение очень разнообразно. Его используют, чтобы:
- управлять работой «железных» компонентов;
- взаимодействовать с компьютером через интерфейс;
- выходить в сеть и делиться информацией;
- генерировать, хранить и пересылать данные;
- выполнять прикладные задачи – писать, считать, рисовать что-то и так далее.
И это только часть примеров. Софт везде: без него компьютер стал бы просто конструкцией из металла и пластика, которая почти ничего не умеет.
Каким бывает ПО по назначению
Существует популярная классификация программного обеспечения по видам. Это не единственное разделение – о других мы поговорим позже. Но конкретно эта классификация помогает понять, для чего вообще используют разное ПО.
Системное. Это программное обеспечение, которое нужно для работы компьютерной системы. Как пример такого софта – операционная система Windows или macOS, ее службы и процессы. Без нее обычный пользователь просто не сможет пользоваться компьютером, да и профессионал вряд ли обойдется вообще без софта. Еще к системному ПО относят прошивки смартфонов и других умных устройств, управляющие инструкции в домашней технике и промышленной электронике. Системное ПО есть практически в любой системе – от принтера до космической ракеты.
Инструментальное. Так называют софт, который нужен для создания других программ. Это профессиональные инструменты айтишников. Компиляторы и интерпретаторы языков программирования, разные библиотеки и фреймворки, среды программирования и редакторы кода – все это инструментальное ПО. Часть таких программ есть на вашем компьютере, даже если вы не занимаетесь IT. Ведь даже некоторое прикладное ПО не запускается, если на компьютере не установлен инструментальный софт для его языка.
Прикладное. Это самая знакомая обычному пользователю группа – программы, которыми мы пользуемся в повседневной жизни, от «Блокнота» до 1С. Сюда же относятся приложения на телефон, разные плагины и надстройки для программ, браузеры и многое другое. Онлайн-сервисы – по сути тоже прикладное ПО. Это такие же программы, только установлены они не на компьютере пользователя, а на удаленных серверах.
Примеры программного обеспечения
Приведем несколько примеров разнообразного софта – так будет легче увидеть, насколько широкое это понятие.
Операционные системы. Операционная система нужна, чтобы компьютером можно было управлять. Через нее запускаются прикладные программы, она же администрирует управление «железом»: выделяет оперативную память, делает запросы и дает команды. Без операционной системы работать с большей частью возможностей компьютера невозможно.
ОС тоже бывают разными. Есть домашние, такие как Windows и macOS, а есть профессиональные – их устанавливают на сервера, мощные сетевые компьютеры. Такие системы отличаются от домашних: ими сложнее управлять, иногда у них даже нет графического интерфейса. Но и возможности очень широкие.
Современные домашние компьютеры поставляются с уже предустановленной операционной системой. Но даже если ОС на них нет, и ее приходится устанавливать самостоятельно – софт все равно есть. Это примитивные и очень близкие к железу программы, без которых не получилось бы даже установить Windows.
СУБД. Еще один пример программного обеспечения, без которого никуда. Системы управления базами данных и сами базы данных – это не аппаратные сущности, а программные. Базы данных хранят информацию, а СУБД помогают управлять ей: вызывать и выдавать по запросу, удалять, обновлять и так далее. Это так важно, потому что в компьютерных системах все есть информация: и маленькая картинка, и огромный список пользователей сайта — и даже этот текст.
Корпоративные системы. Программами пользуются компании и производства – не только обычные люди. CRM, CMS, ERP – все эти сложные аббревиатуры означают разные виды профессионального софта. Он предназначен для работы с бизнес-процессами:
- учетом пользователей и продаж,
- администрированием сайтов,
- ведением бухгалтерии,
- хранением данных,
- автоматизацией документооборота и многим другим.
Например, всем известная 1С относится как раз к категории корпоративных систем. Зарубежные системы вроде SAP – тоже.
«Бытовые» приложения. Здесь все, чем мы пользуемся каждый день. Текстовые и графические редакторы, интернет-браузеры, программы-плееры для просмотра кино и прослушивания музыки, видеоигры и многое, многое другое. Фитнес-трекер на умных часах или приложение для VPN – все это ПО для повседневного использования. Кстати, некоторые программы вполне могут существовать в нескольких версиях – например, домашней и профессиональной.
Профессиональные программы. Еще есть специализированный софт для разных профессиональных задач. Например, AutoCAD для инженера или Blender для 3D-моделлера. Математики и аналитики могут работать в MATLAB или похожем ПО. А про инструментальный софт, нужный любому программисту, мы уже говорили.
Программное обеспечение по типу доступа
Как мы и говорили – есть разные классификации софта. Еще одна популярная – по типу доступа. Она описывает, какие части программы могут быть доступны пользователю и на каких условиях. Тут обычно выделяют три типа ПО.
Закрытое, или проприетарное. В основном это коммерческие программы – такие, которые продаются за деньги. Такими программами можно пользоваться, если у вас есть к ним доступ, но посмотреть исходный код нельзя. Он закрыт, его не видно. Нельзя и дорабатывать программу по своему усмотрению – авторские права запрещают нецелевое использование.
Свободное. Такое ПО дает пользователю больше свободы. Он может запускать, изучать, улучшать и распространять программу – в отличие от проприетарного софта, который можно только запускать. У создателя свободного ПО остаются авторские права, его разработка выпускается под одной из специальных «свободных» лицензий. Исходный код в таких программах обычно открыт, его можно посмотреть и отредактировать. Пользователи могут дорабатывать свободный софт, выпускать свои «версии» и «сборки» – но на развитие основного продукта не влияют.
Открытое. Свободное и открытое ПО иногда путают. На самом деле эти понятия различаются, хоть и похожи. Открытым, или open-source, называют софт с открытым исходным кодом – любой может просмотреть этот код и внести в него свои правки. Хотя у свободного софта исходный код чаще всего тоже открыт, есть разница: классический open-source полностью общедоступен. Это значит, что даже владелец не имеет исключительных прав на такую программу, а помогать в ее разработке могут и сами пользователи.
Коммерческое и бесплатное ПО
Это разделение немного отличается от способа доступа. Оно показывает, как создатели монетизируют программное обеспечение:
- коммерческие программы стоят денег – их нужно купить один раз или оплачивать подписку регулярно;
- за бесплатные программы платить не нужно, они доступны для всех.
В теории открытая программа может при этом быть коммерческой и платной, а проприетарная – бесплатной. Но чаще всего открытое и свободное ПО – бесплатное. Платные программы в большинстве случаев проприетарные, например, Windows или Adobe Photoshop.
Есть программы, которые сразу выпускают в двух версиях: бесплатной и платной. Обычно бесплатной можно пользоваться новичкам, ученикам или тем, кто не собирается извлекать из софта выгоду. А платная – для профессионалов и компаний, у нее обычно более широкие возможности.
Другие классификации программного обеспечения
Классификаций программ очень много. Вот только несколько видов.
По режиму использования. Бывают персональные программы для работы в одиночку, коллективные – для работы в команде, и сетевые, где доступ есть у каждого, кого пригласят через сеть.
По стабильности. Стабильные программы – те, которые редко сбоят. Они предсказуемы и удобны. Еще есть ПО средней стабильности и нестабильное – оно чаще «падает» и ведет себя некорректно. Обычно это софт, который вышел недавно.
По масштабу. Бывает малое, среднее и большое ПО. Масштаб измеряется в том, сколько ресурсов потребляет программа и сколько функций реализует. «Блокнот» – малое ПО, ERP-система – большое.
По языку и среде. Программы различаются еще и тем, на каком языке программирования они написаны и для какой среды предназначены. Например, приложение для Android не запустится в Windows. А программа на языке C++ будет отличаться от программы на Python и логикой, и быстродействием.
По степени защиты, доступу и так далее. Эти классификации в основном используют для корпоративного софта. В компаниях важны защищенность и возможность разделить доступ к данным. Например, есть ПО, которое дает рядовому пользователю одни функции, а руководителю – другие, более широкие. Есть разные типы программ по спектру выполняемых задач, по требованиям к мощности и другим параметрам – но обычные пользователи редко сталкиваются с этими классификациями.
Жизненный цикл программного обеспечения
Программные продукты не возникают из ниоткуда. Их пишут разработчики, проверяют тестировщики, выпускают на рынок менеджеры. Каждая, даже небольшая программа – это серьезный труд людей. Если маленькую программку сможет написать один человек, то в разработке какого-нибудь пакета офисного ПО обычно заняты сотни, если не тысячи специалистов.
Стадии создания и работы с продуктом можно условно разделить на три части.
Написание. На этом этапе программа еще не готова. Есть какая-то идея, которую нужно реализовать. Возможно, есть и планы, как это сделать. Планы и идеи – зона ответственности менеджеров или тех, кто придумал проект.
А вот реализацией занимаются специалисты. Разработчики пишут код, дизайнеры создают интерфейс, тестировщики ищут ошибки. Есть и люди, которые руководят процессом: тимлиды, проджект-менеджеры и продуктовые менеджеры.
Не всегда работает именно такая команда. Есть проекты, созданные 1-2 людьми – это обычно ПО, которое придумали и разработали «по зову души». Яркий пример – инди-игры.
В зависимости от размера проекта разработка может занимать как несколько недель, так и несколько лет. Например, высокобюджетные игры создают годами. А, скажем, небольшой плагин можно набросать за несколько дней.
Запуск и работа. Рано или поздно программа оказывается готова, и наступает следующий этап. Продукт нужно запустить и вывести на рынок. Тут тоже много работы: рассказать пользователям о продукте, развернуть его в нужной среде или дать инструкции для установки на локальный компьютер. А еще маркетинг, выбор площадки и многое другое.
После релиза – так называется выпуск программы – она остается работать. И тут обязанности создателей не заканчиваются. ПО, которое только что выпустили, часто «сырое», недоработанное, в нем есть ошибки – чем-то неудобно пользоваться, какой-то важной функции нет. Разработчики доделывают программу: если она работает не сервере, дописывают ее и разворачивают снова, а если это ПО для локальной установки – выпускают патчи или новые версии.
Поддержка. Даже программы, которым уже много лет, постоянно доделывают и улучшают. Это нормально, ведь рынок меняется, как и требования и нужды пользователей. Вспомните любой сайт 10 лет назад и сейчас – получится два разных продукта и внешне, и по функциям. Без обновлений программа быстро устареет.
Но поддержка – это не только выпуск обновлений. Это еще и работа с клиентами, ответы на их вопросы: кто-то спросил, как исправить ошибку, у кого-то проблемы с новой функцией. Кстати, так монетизируют некоторые open-source проекты: бесплатное и открытое ПО, но платная техподдержка.
Как создать программу самостоятельно
Большие команды работают над сложными проектами. Но и в одиночку можно создать сервис или программу, которая окажется полезной людям или просто интересной. Например, известную игру Minecraft создал разработчик-одиночка. А уж утилит для разработки, созданных одним человеком, и вовсе очень много.
Чтобы создать свое ПО, нужно уметь программировать. Иногда люди выпускали пилотные проекты, не умея ничего на старте – они обучались в процессе разработки. Не обещаем, что так получится у каждого, но практика – действительно хороший способ научиться создавать реальные проекты.