
- •Программное обеспечение и технология программирования
- •2.1. Классификация программного обеспечения
- •Интерфейс – совокупность средств и правил, которые обеспечивают взаимодействие устройств, программ и человека.
- •2.2.Алгоритмы и способы их описания
- •2.3 Основные стили и языки программирования
- •2.4 Трансляция и компиляция программ
- •2.5.Классификация прикладных программных средств
- •Текстовый процессор – прикладное программное обеспечение, используемое для создания текстовых документов.
- •Контрольные вопросы
Программное обеспечение и технология программирования
2.1. Классификация программного обеспечения
Назначением ЭВМ является выполнение программ. Совокупность программ образует программное обеспечение (ПО).
Конечная цель любой компьютерной программы – управление аппаратными средствами. Даже если на первый взгляд программа никак не воздействует с оборудованием, не требует никакого ввода данных с устройств ввода и не осуществляет вывод данных на устройства вывода, все равно ее работа основана на управлении аппаратными устройствами компьютера. Программное и аппаратное обеспечение в компьютере работают в непрерывном взаимодействии. Несмотря на это можно рассматривать данные категории отдельно, как две составляющие части вычислительной системы.
Межпрограммный интерфейс. Между программами, как и между физическими узлами и блоками существует взаимосвязь – многие программы работают, опираясь на другие программы более низкого уровня, те мы можем говорить о межпрограммном интерфейсе.
Интерфейс – совокупность средств и правил, которые обеспечивают взаимодействие устройств, программ и человека.
Возможность существования такого интерфейса основана на наличии технических условий и протоколов взаимодействия. Протокол – совокупность технических условий для успешной согласованной работы устройств. На практике он обеспечивается распределением ПО на несколько взаимодействующих между собой уровней. Они представляют собой пирамидальную конструкцию. Каждый следующий уровень опирается на программное обеспечение предшествующих уровней. Такое членение удобно для всех этапов работы с вычислительной системой, начиная с установки программ до практической эксплуатации и технического обслуживания. Каждый вышележащий уровень повышает функциональность всей системы. Так, например, вычислительная система с программным обеспечением базового уровня не способна выполнять большинство функций, но позволяет установить системное программное обеспечение.
Базовый уровень. Самый низкий уровень программного обеспечения представляет базовое программное обеспечение. Оно отвечает за взаимодействие с базовыми аппаратными средствами. Как правило, эти средства входят в состав базового оборудования и хранятся в специальных микросхемах, называемых постоянными запоминающими устройствами (ПЗУ- Read Only Memory, ROM). Программы и данные записываются (прошиваются) в микросхемах ПЗУ на этапе производства и не могут быть изменены в процессе эксплуатации. В тех случаях, когда это является технически целесообразным, вместо микросхем ПЗУ применяют перепрограммируемые постоянные запоминающие устройства (ППЗУ – Erasable and Programmable Read Only Memory, EPROM). В этом случае изменение содержания ПЗУ можно выполнять как непосредственно в составе вычислительной системы (такая технология называется флэш - технологией), так и вне ее, на специальных устройствах, называемых программаторами.
Системный уровень. Он – переходный. Программы, работающие на нём, обеспечивают взаимодействие прочих программ компьютерной системы с программами базового уровня и непосредственно с аппаратным обеспечением, то есть выполняют "посреднические" функции. От программного обеспечения этого уровня во многом зависят эксплуатационные показатели всей вычислительной системы в целом. Так, например, при подключении к вычислительной системе нового оборудования на системном уровне должна быть установлена программа, обеспечивающая для других программ взаимосвязь с этим оборудованием.
Драйверами устройств – конкретные программы, отвечающие за взаимодействие с определенными устройствами. Они входят в состав программного обеспечения системного уровня.
Другой класс программ системного уровня отвечает за взаимодействие с пользователем. Именно благодаря им он получает возможность вводить данные в вычислительную систему, управлять ее работой и получать результат в удобной для себя форме. Эти программные средства называют средствами обеспечения пользовательского интерфейса. От них напрямую зависит удобство работы с компьютером и производительность труда на рабочем месте.
Совокупность программного обеспечения системного уровня образует ядро операционной системы компьютера, включающее в себя операционные системы, сетевое ПО, сервисные программы, а также средства разработки программ (трансляторы, редакторы связей, отладчики и пр.). Основные функции операционных систем (ОС) заключаются в управлении ресурсами (физическими и логическими) и процессами вычислительных систем. Физическими ресурсами являются: оперативная память, процессор, монитор, печатающее устройство, магнитные и оптические диски. К логическим ресурсам можно отнести программы, файлы, события и т. д. Под процессом понимается некоторая последовательность действий, предписанная соответствующей программой и используемыми ею данными.
Полное понятие операционной системы будет рассмотрено позже, а здесь только отметим, что если компьютер оснащен программным обеспечением системного уровня, то он уже подготовлен к установке программ более высокого уровня, к взаимодействию программных средств с оборудованием и, самое главное, к взаимодействию с пользователем. То есть наличие ядра операционной системы – непременное условие для возможности практической работы человека с вычислительной системой.
Служебный уровень. Программное обеспечение этого уровня взаимодействует как с программами базового уровня, так и с программами системного уровня. Основное назначение служебных программ (их называют утилитами) состоит в автоматизации работ по проверке и настройке компьютерной системы. Во многих случаях они используются для расширения или улучшения функций системных программ.
Утилиты предоставляют пользователям средства обслуживания компьютера и его ПО. Они обеспечивают реализацию следующих действии:
• обслуживание магнитных дисков;
• диагностику работоспособности компьютера;
• сжатие дисков;
• обслуживание файлов и каталогов;
• предоставление информации о ресурсах компьютера;
• шифрование информации;
• резервирование данных на внешних носителях;
• защиту от компьютерных вирусов;
• архивацию файлов и др.
Существуют отдельные утилиты, используемые для решения одного из перечисленных действий, и многофункциональные комплекты утилит. В настоящее время для ПЭВМ среди многофункциональных утилит одним из наиболее совершенных является комплект утилит Norton Utilities. Существуют его версии для использования в среде DOS и Windows.
Для расширения возможностей операционных систем и предоставления набора дополнительных услуг используются сервисные программы, которые также относятся к служебному уровню. Их можно разделить на интерфейсные системы и оболочки операционных систем.
Интерфейсные системы являются естественным продолжением операционной системы и модифицируют как пользовательский, так и программный интерфейсы, а также реализуют дополнительные возможности по управлению ресурсами ЭВМ.
Оболочки операционных систем, в отличие от интерфейсных систем, модифицируют только пользовательский интерфейс, предоставляя пользователю качественно новый интерфейс по сравнению с реализуемым операционной системой. Такие системы существенно упрощают выполнение часто запрашиваемых функций, например, таких операций с файлами, как копирование, переименование и уничтожение, а также предлагают пользователю ряд дополнительных услуг. В целом, программы-оболочки заметно повышают уровень пользовательского интерфейса, наиболее полно удовлетворяя потребности пользователя.
На ПЭВМ широко используются такие программы-оболочки, как Norton Commander, Dos Navigator для ОС MS DOS, а также Windows Commander и Far Meneger для ОС Windows.
Некоторые служебные программы (как правило, это программы обслуживания) изначально включают в состав операционной системы, но большинство из них являются для операционной системы внешними и служат для расширения ее функций.
В разработке и эксплуатации служебных программ существует два альтернативных направления: интеграция с оперативной системой и автономное функционирование. В первом случае служебные программы могут изменять потребительские свойства системных программ, делая их более удобными для практической работы. Во втором случае они слабо связаны с системным программным обеспечением, но предоставляют пользователю больше возможностей для персональной настройки их взаимодействия с аппаратным и программным обеспечением.
Прикладной уровень. Программное обеспечение прикладного уровня представляет собой комплекс прикладных программ, с помощью которых на данном рабочем месте выполняются конкретные задания. Спектр этих заданий необычайно широк – от производственных до творческих и развлекательнообучающих. Огромный функциональный диапазон возможных приложений средств вычислительной техники обусловлен наличием прикладных программ для разных видов деятельности.
Поскольку между прикладным программным обеспечением и системным существует непосредственная взаимосвязь (первое опирается на второе), то можно утверждать, что универсальность вычислительной системы, доступность прикладного программного обеспечения и широта функциональных возможностей компьютера напрямую зависят от типа используемой операционной системы, от того, какие системные средства содержит ее ядро, как она обеспечивает взаимодействие триединого комплекса человек – программа – оборудование.
Из всего разнообразия прикладного ПО выделяют группу наиболее распространенных программ (типовые пакеты и программы), которые можно использовать во многих областях человеческой деятельности.
К типовому прикладному ПО относят:
• текстовые процессоры;
• табличные процессоры;
• системы иллюстративной и деловой графики (графические процессоры);
• системы управления базами данных;
• экспертные системы;
• программы математических расчетов, моделирования и анализа экспериментальных данных.
Предлагаемые на рынке ПО приложения, в общем случае, могут быть выполнены как отдельные программы либо как интегрированные системы. Интегрированными системами обычно являются экспертные системы, программы математических расчетов, моделирования и анализа экспериментальных данных, а также офисные системы. Примером мощной и широко распространенной интегрированной системы является офисная система Microsoft Office.
Классификация программного обеспечения по функциональному признаку. В настоящее время отсутствует единая классификация состава программных средств. Ее проводят с различной степенью подробности применительно к рассматриваемой предметной области с той или иной позиции. С точки зрения пользователя все множество программных средств, используемых при реализации информационной технологии по функциональному признаку, разбивается на общее, или системное (System Software), специальное, или прикладное (Application or special Software) программное обеспечение (ПО) и инструментальные системы технологии программирования, обеспечивающие создание новых программных продуктов для компьютера (рис. 2.1).
Рис. 2.1. Виды программных средств
Под системным понимается программное обеспечение, включающее в себя операционные системы (ОС), сетевое ПО, сервисные программы: драйверы, операционные оболочки и утилиты. Это минимальный набор программных средств, обеспечивающих работу компьютера.
Прикладное (специальное) ПО, предназначенно для решения определённой целевой задачи из проблемной области: пакеты прикладных программ. Часто такие программы называют приложениями.
Спектр проблемных областей в настоящее время весьма широк, это и промышленное производство, инженерные разработки, научные исследования, медицина, управление (менеджмент), делопроизводство, образование и т. д.
Под инструментальным понимаем специализированные программные продукты, предназначенные для разработок, отладки и внедрения создаваемых программных продуктов: трансляторов языков программирования, системы программирования и т. д.
Системы программирования используются для разработки нового программного обеспечения как системного, так и прикладного. Рассмотрим основы их построения.