Что такое программное обеспечение (software)?
Программное обеспечение это набор компьютерных программ, процедур и связанной с ними документации и данных (ISO/IEC 12207). Взгляд на ПО как только на программу, сидящую в компьютере слишком узок. Дело в том, что продается (поставляется) не только программа, но еще и документация, в которой можно прочитать как установить программу и как ей пользоваться и данные для установки программы в различных условиях (конфигурационные файлы). Поэтому ПО иногда называют программным продуктом. Т.е. программный продукт (программное обеспечение) – это не только программы, а также вся связанная с ними документация и конфигурационные данные, необходимые для корректной работы программы. А специалисты по программному обеспечению разрабатывают программные продукты, т.е. такое ПО, которое может быть продано потребителю.
В зависимости от того, для кого разрабатываются программные продукты (конкретного заказчика или рынка, программные продукты бывают двух типов:
коробочные продукты (generic products – общие продукты или shrink-wrapped software – упакованное ПО)
заказные продукты (bespoke – сделанный на заказ или customized products – настроенный продукт). Важная разница между ними заключается в том, кто ставит задачу (определяет, или специфицирует требования). В первом случае это делают сами разработчики на основе анализа рынка (маркетинга) – и при этом рискуют сами. Во втором – заказчик и при этом рискует, что разработчик не сможет реально выполнить все требования в срок и при выделенном бюджете.
Что такое программная инженерия?
Программная инженерия — это инженерная дисциплина, которая связана со всеми аспектами производства ПО от начальных стадий создания спецификации до поддержки системы после сдачи в эксплуатацию. В этом определении есть две ключевые фразы:
Все аспекты производства ПО
Инженерная дисциплина. Инженеры – это те специалисты, которые выполняют практическую работу и добиваются практических результатов. Ученый-математик может сказать: проблема неразрешима в рамках существующих теорий и это будет научный результат, достойный опубликования и защиты диссертации.
Инженеры для решения задачи применяют теории, методы и средства, пригодные для решения данной задачи, но они применяют их выборочно и всегда пытаются найти решения, даже в тех случаях, когда теорий или методов, соответствующих данной задаче, еще не существует. В этом случае инженер ищет метод или средство для решения задачи, применяет его и несет ответственность за результат – ведь метод или средство еще не проверены. Набор таких инженерных методов или способов, теоретически возможно не обоснованных, но получивших неоднократное подтверждение на практике, играет большую практическую роль. В программной инженерии они получили название лучших практик (bestpractices). Академик Александров говорил, что математики делают, то, что можно как нужно, а инженеры делают то, что нужно, как можно.
Инженеры работают в условиях ограниченных ресурсов: временных, финансовых и организационных (оборудование, техника, люди). Иными словами, продукт должен быть создан в установленные сроки, в рамках выделенных средств, оборудования и людей. Хотя это в первую очередь относится к созданию заказных продуктов (условия оговариваются в рамках контракта), но при создании коробочных продуктов эти ограничения имеют не меньшее значение, т.к. здесь они диктуются условиями рыночной конкуренции.
Все аспекты производства ПО. Программная инженерия занимается не только техническими вопросами производства ПО (специфицирование требований, проектирование, кодирование,…), но и управлением программными проектами, включая вопросы планирования, финансирования, управления коллективом и т.д. Кроме того, задачей программной инженерии является разработка средств, методов и теорий для поддержки процесса производства ПО.
Программные инженеры применяют систематичные и организованные подходы к работе для достижения максимальной эффективности и качества ПО. Их задача состоит в адаптации существующих методов и подходов к решению свой конкретной проблемы.***
Software — это что такое? Что за программа Software?
Наверняка каждый пользователь персонального компьютера ежедневно сталкивается с таким понятием, как Software. Современное понимание данного термина наоборот трактуется как «программное обеспечение», или сокращенно ПО. Давайте рассмотрим некоторые важные аспекты, которые касаются типов программного обеспечения, а также взаимосвязи с остальными компонентами компьютерных систем. Что же такое Software?
Software: общие понятия
Software в общем смысле – это набор команд, директив по их исполнению на основе какого-то языка программирования, набор программ или программа, которые отвечают не только за взаимодействие между компьютерной системой и пользователем, но и между железными компонентами ПК или другими приложениями, созданными для определенных целей. В зависимости от функций, возложенных на программное обеспечение, весь софт условно можно поделить на несколько классов. Об этом речь пойдет немного позже.
Software и Hardware: взаимосвязь и отличия
Значение этих двух терминов возникло со времен появления первых персональных компьютеров. На сегодняшний день принято считать, что Hardware представляет собой аппаратную часть персонального компьютера. Это те «железные» компоненты, которые можно пощупать руками. К ним относятся процессоры, материнские платы, оперативная память, периферия и другие устройства, которые подключаются к системе. Термин Software имеет совершенно противоположное толкование. Дословно данный термин можно перевести как «мягкое изделие». В более широком смысле этого слова имеется в виду то, что программу нельзя потрогать руками, Она представляет собой некоторый виртуальный компонент. Интереснее всего то, что для использования «железных» компонентов и получения доступа к его возможностям необходимо в обязательном порядке использовать специальное программное обеспечение в виде специальных управляющих программ, которые отвечают за работоспособность таких устройств. К Software относятся драйверы, наборы команд ввода/вывода BIOS и так далее. Термин Software, трактовка и перевод которого сегодня повсеместно используются в контексте программного обеспечения, на заре развития компьютерной техники даже не был в обиходе. Только в начале 60-х годов прошлого столетия он сформировался окончательно. Это было связано с введением четкого разграничения команд, которые отвечают за управление аппаратной частью персонального компьютера, и конечным пользователем.
Также появились взаимосвязанные классы – Software и Hardware, которые стали называть программно-аппаратными комплексами.
Программное обеспечение: классификация по нескольким критериям
Так как Software представляет собой программную часть любой компьютерной системы, то такое программное обеспечение, исходя из возложенных на него задач, можно разделить на несколько больших категорий.Например, программное обеспечение по тиражированию и использованию разделяют на ПО для широкого круга пользователей и корпоративное (выполненное на заказ для крупных компаний и фирм). Если рассматривать ПО с точки зрения переносимости, то программы могут быть кроссплатформенными, адаптированными к различным операционным системам, и платформозависимыми, то есть работающими только в одной среде и с одним типом аппаратных компонентов. Программное обеспечение по типу распределения можно разделить на закрытые программы, открытые и свободные. Сюда также нередко включают бесплатное, платное и условно-бесплатное ПО. Условно-бесплатное программное обеспечение имеет полную или частично ограниченную функциональность в течение определенного периода времени. По истечении этого времени, пользователю придется купить программу, в противном случае она просто перестанет работать. Классификация программного обеспечения по назначению подразумевает наличие трех больших категорий: системное, прикладное и инструментальное.
Системное программное обеспечение
В качестве системных компонентов могут выступать не только приложения в обычном смысле этого слова. Операционные системы на самом деле тоже являются программами. Однако, зачастую системное программное обеспечение можно представить в виде некой прослойки, которая связывает пользовательские программы со средой операционной системы, в которой они функционируют, а также с аппаратной частью, которая задействована при выполнении той или иной задачи. Это могут быть те же драйвера для различных устройств. Чтобы было более понятно, необходимо привести один простой пример. Возьмем ОС Windows, «железный» компонент в виде звуковой карты и проигрыватель мультимедиа (прикладное программное обеспечение). Чтобы звуковая карта смогла воспроизвести звук, необходим драйвер, т.е. системное программное обеспечение, которое обеспечивает управление устройством самой ОС, которая представляет собой платформу для проигрывателя. Так как система распознает устройство, она передает управление им плееру посредством своих директив. Плеер для распознавания файла звукового типа использует специальные кодеки и декодеры, которые относятся к дополнительным программным инструментам. В данном случае взаимосвязь вполне очевидна.
Прикладное ПО
К прикладным программам относятся все приложения, которые не управляют компонентами компьютерной системы или только частично используют их. Данный тип программ предназначен для решения строго определенных пользовательских задач. Сегодня можно привести множество примеров подобного программного обеспечения. Это и офисные пакеты, и редакторы мультимедиа, и системы проектирования и математических вычислений, и средства для управления сетями и доступа в интернет, архиваторы и так далее. Как вы сами можете убедиться, каждый тип программного обеспечения представляет собой инструмент, который ориентирован на выполнение узкого круга задач и взаимодействует непосредственно с пользователем компьютерной системы.
Software: инструменты и утилиты
К категории инструментов относится программное обеспечение, предназначенное для разработки и провождения ПО других типов. Можно отнести сюда платформы языков программирования, пакеты SDK,среды разработки, системы контроля версий и отслеживания ошибок. Что же касается утилит, то под ними довольно часто подразумеваются программные продукты, предназначенные для настройки параметров программных или аппаратных компонентов, которые входят в объединенную компьютерную систему. Без использования таких программных продуктов доступ к настройкам не может быть осуществлен другими методами. Такое программное обеспечение может устанавливаться отдельно или быть встроенным в операционные системы. Утилиты в некоторых случаях могут задействовать полную автоматизацию настроек.
Заключение
У многих пользователей нередко возникает еще один вопрос, связанный с термином Software: что за программа? Подобная постановка вопроса является не совсем корректно, так как это может быть не единичное приложение, а целая совокупность программ, набор директив, языковых команд и правил языка программирования для управления другими компонентами системы или их передачи центральному процессору для выполнения в виде двоичного кода. Приведенная выше классификация является весьма условной. В описании были представлены только основные типы программного обеспечения без разделения на подклассы, которых на сегодняшний день можно насчитать очень много.
Похожие статьи:
- MuLab — программа для написания музыки
- Создание скриншотов с Jing
- MixMeister — программа для работы со звуком
- WaveLab профессиональное средство для мастеринга аудиотреков
- Veeam Backup: резервное копирование виртуальных машин
При подготовке материала использовались источники:
https://studfile.net/preview/6308934/page:4/
https://computerologia.ru/software-eto-chto-takoe-chto-za-programma-software/