- •Банк идей
- •1)Общая характеристика и классификация программного обеспечения и базовых технологий управления информационными ресурсами
- •2) Программное обеспечение
- •3) Введение
- •1 Программное обеспечение информационных систем: основные понятия
- •2 Классификация программного обеспечения
- •3 Операционные системы: основные функции и типы
2 Классификация программного обеспечения
В настоящее время в литературе, в том числе и учебной, существует как несколько классификаций программного обеспечения (ПО), так и разные определения различных видов ПО, выделяемых в соответствии с предлагаемой классификацией. Различают три вида ПО: системное, прикладное и инструментальное.[4]
В основание классификации и соответственно определения этих видов ПО положена инвариантность (независимость) ПО по отношению к специфике той или иной проблемной области, в которой предполагается его использование. Другими словами, определяется степень влияния специфики проблемной области на специфику разработки и использования той или иной программы (приложения). Так, например, специфика использования текстового процессора Microsoft Word практически не зависит от специфики той или иной проблемной области. Таким образом, возможно выделение таких программ (приложений), которые поддерживают те функции (задачи) профессиональной деятельности пользователя, которые являются общими для различных проблемных областей.
С другой стороны, если специфика проблемной области является определяющей при разработке некоторой программы (приложения) и ее использовании, то речь идет уже о другом типе ПО, нежели в предыдущем случае. Примером такого вида ПО являются бухгалтерские программы (приложения).
Определяющим фактором при определении инвариантности ПО по отношению к той или иной проблемной области выступают типы объектов, для манипулирования которыми разработана та или иная программа (приложение). В данном случае под объектом понимается любой элемент (графический, текстовый: значок, кнопку, слово и т. п.) на экране монитора, который является представителем реального объекта некоторой проблемной области.
Можно различать три типа объектов, которыми манипулирует пользователь, применяя ту или иную программу (приложение):
− объекты, относящиеся к сфере профессиональной деятельности пользователя, специфичные для нее;
− объекты, общие для всех (абсолютного большинства) проблемных областей;
− объекты, относящиеся к проблемной области информационных технологий.
Примеры первого типа объектов − отдел или какое-либо другое подразделение организации, являющиеся объектом в системе управления кадрами; пример второго − символы, числа, графические элементы; объекты третьего типа − это диски, папки и файлы, с которыми работает (манипулирует) пользователь, а также различные элементы интерфейса пользователя − окна, кнопки и т. д.
Если основное назначение программы −манипулирование с объектами первого и второго типа, то она относится к прикладному ПО, если она предназначена для манипулирования с объектами третьего типа − к системному ПО.
Прикладное ПО, предназначенное для манипулирования объектами первого типа, назовем специализированным прикладным ПО.
Прикладное ПО, предназначенное для манипулирования объектами второго типа, назовем универсальным прикладным ПО.
Итак, к системному ПО будем относить такое ПО, использование которого ориентировано на манипулирование специфичными для информационных технологий объектами, инвариантными по отношению к конкретной проблемной области (сфере профессиональной деятельности пользователя).
Прикладное ПО − это ПО, предназначенное для манипулирования объектами, специфичными для конкретной проблемной области (сферы профессиональной деятельности пользователя) либо типичными для большинства (всех) этих проблемных областей.
С указанной точки зрения все приложения, входящие в состав офисной программной системы Microsoft Office, относятся к универсальному прикладному ПО. Более того, обычный пользователь, как правило, имеет дело именно с этим видом прикладного ПО, либо с системным ПО.
Специализированное прикладное ПО можно разделить на профессиональное и потребительское, т. е. используемое в бытовых, развлекательных целях. Данное деление достаточно условно, так как одна и та же программа может быть использована и в профессиональной, и в бытовой сфере. Даже наиболее яркий пример потребительского специализированного ПО − игровые программы могут быть использованы в целях тестирования либо как тренажеры.
Следует отметить, что в рассматриваемых выше случаях под пользователем понимали пользователя − «потребителя» информационных технологий в отличие от пользователя, занимающегося собственно разработкой ПО, т. е. до сих пор речь шла об использовании, но не о создании программ и приложений. Создают (разрабатывают) программные средства профессионалы в области информационных технологий, прежде всего прикладные программисты. При создании ПО ими используются соответствующие инструментальные средства − системы программирования, в состав которых входят языки программирования, а также средства автоматизации процессов проектирования, разработки и сопровождения сложных приложений и информационных систем.
Инструментальное ПО − совокупность программных средств, предназначенных для разработки программ, программных систем, программного и информационного обеспечения АИС специалистами в области информационных технологий. В настоящее время инструментальное ПО существует в виде инструментальных систем (инструментальных программных систем), в той или иной степени автоматизирующих процессы создания программ, приложений и программных систем.
На рисунке 1 приведена классификация ПО.
К универсальному прикладному ПО относятся: текстовые, табличные и графические процессоры (редакторы); программные средства работы с мультимедиаинформацией; офисные системы; системы управления базами данных; системы искусственного интеллекта; программы (приложения) для работы в локальных и глобальных сетях, прежде всего для просмотра информационных ресурсов сети, а также для обеспечения коммуникаций (в том числе на основе электронной почты).
К специализированному прикладному ПО (профессиональному) относятся: научное ПО; финансовое ПО; ПО автоматизации проектирования и др.
К инструментальному ПО (инструментальным системам) относятся: инструментальные системы программирования; СА8Е-системы.
К системному ПО относятся: операционные системы, среды и оболочки; системы диагностики и сервиса - сервисные программы (приложения) для повышения удобства работы пользователя с компьютером и диагностики состояния программно-аппаратных ресурсов ЭВМ и сети; программные средства технического обслуживания (СТО) информационных систем.
Программа (приложение), относящаяся к системному ПО, называется системной программой (приложением); программа (приложение), относящаяся к прикладному ПО, − прикладной программой (приложением). Аналогично можно выделить универсальные и специализированные прикладные программы (приложения).
В системное приложение могут быть «вкраплены» прикладные программы (как правило, универсальные либо игровые). Так, в состав операционной системы Windows входит приложение Блокнот, которое относится к универсальному прикладному ПО. В то же время, как правило, в приложении, которое относится к прикладному ПО, могут быть использованы и системные программы. Однако с точки зрения основного назначения того или иного системного (прикладного) приложения прикладной (системный) компонент носит вспомогательный, сервисный характер.
Важной особенностью функционирования прикладных программ является то, что они при выполнении на ЭВМ при обращении к требуемым аппаратным ресурсам «опираются» на системные программы. Взаимодействие прикладных программ с процессором, оперативной памятью и другими аппаратными компонентами компьютера осуществляется при этом только через такие системные программы, т. е. имеет место иерархия компонентов ПО с точки зрения доступа к аппаратным ресурсам.
Системное программное обеспечение служит для обеспечения эффективной работы аппаратуры компьютера.
К группе системных программ относятся операционные системы, операционные оболочки, утилиты, драйверы, архиваторы, антивирусные и некоторые другие программы.
Операционные системы представляют собой пакеты программ, которые обеспечивают эффективную работу всех аппаратных средств компьютера, а также возможность управления всеми его ресурсами.
Операционные оболочки представляют собой дополнительные программы, которые предназначены для повышения удобства управления работой операционных систем.
Утилиты представляют собой небольшие, но очень полезные программы, которые выполняют разнообразные вспомогательные функции по управлению работой аппаратных средств, по повышению эффективности их работы, проверки работоспособности, обслуживания и настройки.
Для выполнения операций по обмену данными между программой и различными внешними устройствами в состав операционной системы включается ряд специализированных программ, которые принято называть драйверами. У контроллера каждого устройства есть набор регистров, используемых для того, чтобы давать управляемому устройству команды и считывать состояние устройства. Число таких регистров и выдаваемые команды зависят от конкретного устройства. Например, программа управления мышью должна получать от мыши информацию о том, насколько далеко она продвинулась по горизонтали и вертикали, а также о нажатых кнопках мыши. Программа управления диском должна знать о секторах, дорожках, цилиндрах, головках, их перемещении и времени установки, двигателях и тому подобных вещах, необходимых для правильной работы диска. Очевидно, что эти программы управления будут сильно различаться. Такая программа управления каждым устройством ввода-вывода, подключенным к компьютеру, называется драйвером устройства. Она обычно пишется производителем и распространяется вместе с устройством. Поскольку для каждой ОС требуются специальные драйверы, производители устройств обычно поставляют драйверы для нескольких наиболее популярных операционных систем.
Каждый драйвер устройства поддерживает один тип устройства или, максимум, класс близких устройств. Например, драйвер дисков может поддерживать различные диски, отличающиеся размерами и скоростями. Однако мышь и джойстик отличаются настолько сильно, что обычно требуют использования различных драйверов.
Чтобы получить доступ к аппаратной части устройства, т.е. к регистрам контроллера, драйвер устройства должен быть частью ядра операционной системы. Но возможно создать и драйвер, работающий в пространстве пользователя. Это позволило бы изолировать ядро от драйверов, а драйверы друг от друга. При этом была бы устранена основная причина крушения операционных систем: драйверы, содержащие ошибки, сталкивающиеся с ядром тем или иным образом.
Операционная система обычно классифицирует драйверы по нескольким категориям в соответствии с типами обслуживаемых ими устройств. К наиболее общим категориям относятсяблочные устройства, например, диски, содержащие блоки данных, к которым возможна независимая адресация, и символьные устройства, такие как клавиатуры и принтеры, формирующие или принимающие поток символов.
В большинстве операционных систем определены два стандартных интерфейса, один из которых должны поддерживать все блочные драйверы, а второй — все символьные драйверы. Эти интерфейсы включают наборы процедур, которые могут вызываться остальной операционной системой для обращения к драйверу. К этим процедурам относятся, например, процедуры чтения блока или записи символьной строки.
Программы-архиваторы служат для создания архивных копий важных программ и наборов данных. Архиваторы также минимизируют объем, который нужен для размещения архива на внешнем носителе.
Антивирусные программы обеспечивают пользователя необходимыми средствами борьбы с компьютерными вирусами. Разрабатываются, настраиваются и поддерживаются в рабочем состоянии системные программы специалистами, которых принято называть системными программистами. Они должны обладать высокой квалификацией, в деталях знать аппаратное обеспечение компьютера и способы работы с данными на машинном уровне. Рядовому пользователю приходится постоянно сталкиваться с системными программами, но уже с точки зрения их эксплуатации, использования их возможностей для решения своих задач. С некоторыми программами этой группы мы познакомимся в следующих главах пособия.
Можно выделить три основные задачи (функции), решаемые системной программой:
1. Обеспечение выполнения множества необходимых манипуляций с объектами (целевая функция программы).
2. Обеспечение максимальной эффективности использования аппаратных ресурсов ЭВМ.
3. Обеспечение максимального удобства работы пользователя с ЭВМ («дружественность» интерфейса пользователя).
В общем случае та или иная системная программа должна выполнять все указанные задачи, однако в каждом конкретном случае в зависимости от назначения программы одна из этих задач может быть преобладающей. Так, для операционной системы задача эффективного использования аппаратных ресурсов важнее, чем для операционной оболочки, где больше внимания уделяется интерфейсу пользователя.
Указанные функции системного ПО особенно важны, если учесть, что часть системного ПО − операционные системы − выполняет роль промежуточной абстрактной машины между аппаратурой и прикладным ПО. Это означает, что обращение прикладной программы к аппаратным компонентам компьютера осуществляется не непосредственно, а только через системные программ.
