Программное обеспечение

Виды программного обеспечения

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

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

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

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

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

Системное программное обеспечение – это не только операционные системы. Это также различные программы-утилиты для диагностики ресурсов компьютера (например, тестирования оперативной памяти), предоставления пользователю удобного способа работы взаимодействия с компьютером (например, командная строка), а также обслуживания ресурсов компьютера (например, разметка диска).

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

К средствам программирования относятся множество языков программирования, средства для автоматизации процесса создания программ, компиляторы и интерпретаторы.

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

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

Понятие операционной системы. Семейства операционных систем

Что такое операционная система?

Все разнообразие ПО (программного обеспечения) по большому счету делят на системные и прикладные программы. Первая группа обеспечивает работу второй на имеющемся «железе» (процессоре, дисках, оперативной памяти, устройствах ввода вывода). Операционные системы (ОС) относятся к системному ПО. Одной из задач ОС является реализация алгоритмов работы с аппаратным обеспечением. Может возникнуть вопрос: зачем это нужно? Ведь если подумать, каждая прикладная программа может включать код, обеспечивающий обращение к «железу». Однако, это только бы усложнило жизнь программистам и раздуло бы ПО до больших размеров. И что самое грустное — в прикладных программах было бы много одинакового кода, отвечающего за реализацию низкоуровневых команд (обращений к железу). Кроме того, как решить проблему совместной работы разных программ на одном компьютере — еще один вопрос. Поэтому операционные системы и другое системное ПО вполне обоснованно занимают отведенную им роль посредника между прикладным ПО и аппаратным обеспечение компьютера.

Место операционной системы в логической структуре компьютера

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

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

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

Назначение операционной системы

Итак, операционная система выполняет две основные задачи:

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

ОС семейства Windows

операционная система Windows XP

На сегодняшний день наиболее популярными являются операционные системы семейства Windows, которые являются проприетарным (коммерческим) продуктом корпорации Microsoft.

Свою «родословную» Windows начинают от операционной системы DOS и первоначально представляли собой надстраиваемые над ней оболочки (Windows запускался из под DOS), увеличивающие возможности DOS и облегчающие неподготовленному пользователю работу с компьютером. Уже более поздние версии (начиная с Windows NT) представляли собой полноценные операционные системы.

Преимуществом Windows считается дружественный для пользователя интерфейс. Из недостатков отмечают ненадежность системы.

Unix-подобные ОС

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

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

Не смотря на то, что Unix-подобные системы уступают по популярности Windows, они работают на больших типах компьютеров.

Linux

операционная система AltLinux

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

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

MAC OS

операционная система Mac OS

Это операционная система также создавалась на основе ядра UNIX.

Является продукт компании Apple для ее же компьютеров Macintosh.

Считается надежной и удобной. Но в отличие от Windows не так популярна.

Изображения, использованные в статье

Буфер обмена и технология OLE

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

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

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

Технология OLE (Object Linking and Embedding) - это технология встраивания и связывания объектов. Технология OLE включает следующие возможности:

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

Технология OLE может быть использована в двух вариантах:

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

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

Для данных представимых в наглядном виде (текст, рисунок и пр.) активизация связи приведет к запуску приложения, в котором можно будет произвести редактирование объекта.

Связывание осуществляется следующим образом. Первоначально создается исходный документ. Затем с помощью некоторой программы создается объект, который должен быть помещен в исходный документ. Этот объект сохраняется в файле. Эта процедура обязательная, без нее невозможно установление связи. После этого в программе с исходным документом выполняется команда по связыванию объекта с документом.

Преимущества связывания:

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

Преимущества внедрения:

Виды интерфейсов пользователя операционных систем

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

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

Текстовые ОС

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

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

Графические ОС

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

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

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

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

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

Речевые ОС

В случае SILK-интерфейса (от англ. speech – речь, image – образ, language – язык, knowledge – знание) – на экране по речевой команде происходит перемещение от одних поисковых образов к другим.

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

Текстовые редакторы и текстовые процессоры

Раздел: 
Информатика как наука

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

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

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

Особенности текстовых редакторов

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

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

Наиболее известным и простым текстовым редактором является «Блокнот», который поставляется вместе с операционной системой Windows. В GNU/Linux распространены более сложные текстовые редакторы. Их множество. В качестве примеров можно назвать более простой Gedit и более сложный Geany.

Особенности текстовых процессоров

В определенном смысле текстовые процессоры можно считать разновидностью текстовых редакторов.

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

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

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

Видимость панелей инструментов настраивается. Так во многих текстовых процессорах по-умолчанию отображены только две панели «Стандартная» и «Форматирование».

У текстовых редакторов также могут быть панели инструментов. Однако они есть не у всех редакторов. В то время как панели инструментов есть у всех текстовых процессоров.

На сегодняшний день наиболее популярные текстовые процессоры входят в состав пакетов приложений. Так, MS Word входит в состав пакета MS Office, а LibreOffice Writer входит в состав пакета LibreOffice. Офисные пакеты приложений обычно включают текстовый и табличный процессор, приложение для создание презентаций, систему управления базами данных и др.

Графические процессоры

Раздел: 
Информатика как наука

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

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

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

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

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

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

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

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

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

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

Издательские системы

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

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

Предусмотренные в программных пакетах данного типа средства позволяют:

Известными пакетами среди издательских систем для компьютеров являются PageMaker, QuarkXPress, Scribus и др.

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

Издательские системы второго вида больше подходят для подготовки объемных документов, например книг. Одна из таких систем — Ventura Publisher (Corel Ventura) – управляет меню и может считывать тексты, подготовленные с помощью других текстовых редакторов (например, Microsoft Word), сохраняя при этом параметры форматирования, заданные этим редакторами.

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

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

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

Электронные таблицы

Раздел: 
Программное обеспечение

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

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

Функции табличных процессоров весьма разнообразны и включают:

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

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

Системы управления базами данных (СУБД)

Раздел: 
Программное обеспечение

Система управления базами данных или сокращенно СУБД - это программное обеспечение объединенное со специализированным языком, предназначенное для работы с базами данных.

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

СУБД бывают разными. Кроме того, специалисты по отношению к ним могут быть трех типов:

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

Ряд СУБД представляет собой приложения, с которыми можно работать, не зная языка программирования для баз данных. Примерами таких приложений являются Microsoft Access и LibreOffice Base. Другие СУБД предполагают более серьезный уровень профессиональной подготовки. Примером такой СУБД является MySQL.

СУБД классифицируются по ряду признаков: по модели данных (реляционные, иерархические и др), по способу доступа. Реляционные базы данных на сегодняшний день являются наиболее распространенными.

Реляционная система управления базами данных должна позволять создавать таблицы с данными, создавать запросы, вносить данные и изменения и др.