Понятие программного обеспечения по. Определение программного обеспечения. Системное ПО: драйвера

1.6.1. Основные понятия программного обеспечения информационного процесса

Основные понятия

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

Программа - упорядоченная последовательность команд (инструкций) компьютера для решения задачи.

Программное обеспечение (sowtware ) - совокупность программ обработки данных и необходимых для их эксплуатации документов.

При реализации информационных процессов с помощью компьютеров широко используются термины « задача» и « приложение».

Задача (problem, task ) - проблема, подлежащая решению.

Приложение (application ) - реализованное средствами информационной технологии решение задачи.

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

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

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

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

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

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

Программирование (programming )- теоретическая и практическая деятельность, связанная с созданием программ.

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

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

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

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

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

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

Понятие программного продукта

Все программы по типу их пользователей можно разделить на два класса (рис.1) - утилитарные программы и программные продукты (изделия).

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

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

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

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

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

Программные продукты могут создаваться как:

  • индивидуальная разработка под заказ;
  • разработка для массового распространения среди пользователей.

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

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

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

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

Сопровождение программного продукта - поддержка работоспособности программного продукта, переход на его новые версии, внесение изменений, исправление обнаруженных ошибок, и т.п.

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

Основными характеристиками программ являются:

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

1.6.2. Классификация программного обеспечения

Классификация по сфере использования

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

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

Для поддержки информационной технологии в этих областях выделим соответственно три класса программных продуктов, представленных на рис.2:

  • прикладное программное обеспечение;
  • инструментарий технологии программирования.

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

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

Рис. 2. Классификация программного обеспечения

Системное программное обеспечение направлено:

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

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

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

Операционная система предназначена для планирования и управления вычислительными ресурсами компьютера, для управления выполнением прикладного программного обеспечения. В этом классе программных продуктов наиболее широкое распространение получили операционные системы Windows (фирма Microsoft), OS/2 (фирма IBM), Unix (свободнораспространяемая).

Сервисное программное обеспечение составляют программы и программные комплексы, обеспечивающие:

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

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

Инструментарий технологии программирования

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

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

Инструментарий технологии программирования можно разделить на два подкласса, ориентированных на:

  • создание отдельных приложений или их комплексов;
  • автоматизацию процессов разработки и реализации информационных систем.

В рамках этих направлений сформировались следующие группы программных продуктов:

  • средства для создания приложений, включающие:
  • локальные средства выполнения отдельных работ по созданию программ;
  • интегрированные инструментальные среды разработчиков программ для выполнения комплекса взаимосвязанных работ по созданию программ;
  • CASE - технология (Computer-Aided System Engineering ), представляющая методы анализа, проектирования и создания программных систем с применением компьютерной техники.

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

Языки программирования , если в качестве признака классификации взять синтаксис образования его конструкций, можно условно разделить на классы:

  • машинные языки (computer language) - языки программирования, воспринимаемые аппаратной частью компьютера (машинные коды);
  • машинно-ориентированные языки (computer-oriented language) - языки программирования, которые отражают структуру конкретного типа компьютера (ассемблер);
  • алгоритмические языки (algorithmic language) - независящие от архитектуры компьютера языки программирования для отражения структуры алгоритма (ПАСКАЛЬ, ФОРТРАН, БЕЙСИК и др.);
  • проблемно-ориентированные языки (universal programming language) - языки программирования, предназначенный для решения задач определенного класса (ЛИСП, РПГ, СИМУЛА и др.);
  • интегрированные системы программирования.

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

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

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

Средства CASE - технологий делятся на две группы:

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

Некоторые CASE-технологии ориентированы только на системных проектировщиков и предоставляет специальные графические средства для изображения различного вида моделей, например, диаграммы потоков данных (DFD), диаграммы “сущность-связь” (ERD) и пр.

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

  • автоматическую генерацию кодов программ на основании их спецификаций;
  • проверку корректности описания моделей данных и схем потоков данных;
  • документирование программ согласно принятым стандартам и актуальному состоянию проекта;
  • тестирование и отладку программ.

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

Большинство CASE-технологий использует также метод “прототипов” для быстрого создания программ на ранних этапах разработки. Кодогенерация программ осуществляется автоматически.

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

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

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

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

Примерная классификация прикладного программного обеспечения представлена на рисунке 3.

Рис. 3. Классификация прикладного программного обеспечения

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

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

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

  • автоматизированного бухгалтерского учета;
  • финансовой деятельности;
  • управления персоналом (кадровый учет);
  • управления материальными запасами;
  • управления производством;
  • банковские информационные системы и т.п.

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

Основные тенденции в области развития проблемно-ориентированных программных средств:

  • создание программных комплексов в виде автоматизированных рабочих мест (АРМ) управленческого персонала;
  • создание интегрированных систем управления предметной областью на базе вычислительных сетей, объединяющих АРМы в единый программный комплекс с архитектурой “клиент-сервер”;
  • организация данных информационных систем в виде распределенной базы данных в компьютерной сети;
  • настройка функций обработки конечными пользователями (без участия программистов);
  • защита программ и данных от несанкционированного доступа.

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

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

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

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

Методо-ориентированное программное обеспечение включает программные продукты, обеспечивающие математические, статистические и другие методы решения задач для любой предметной области.

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

Офисное программное обеспечение составляют программы, обеспечивающие организационное управление деятельностью офиса, в том числе:

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

Интегрированные пакеты имеют в своем составе следующие типовые компоненты:

  • СУБД;
  • текстовый редактор;
  • графический редактор;
  • электронную таблицу;
  • органайзер;
  • средства поддержки электронной почты;
  • программу создания презентаций.

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

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

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

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

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

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

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

Выводы

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

Вопросы для самопроверки

  1. Что такое программа?
  2. Что такое программное обеспечение?
  3. Дайте определение задачи и приложения.
  4. Что такое предметная область?
  5. Какие вы знаете основные этапы процесса создания программ?
  6. В чем состоит постановка задачи?
  7. Что такое алгоритм решения задачи?
  8. Назовите основные свойства алгоритмов.
  9. Что такое программный продукт и каковы его свойства?
  10. Что такое сопровождение программного продукта?
  11. Как можно классифицировать программное обеспечение?
  12. Что входит в состав системного программного обеспечения?
  13. Что составляет подкласс сервисного программного обеспечения?
  14. Дайте определение программы утилиты. Приведите примеры.
  15. Что такое инструментарий технологии программирования?
  16. Дайте определение CASE-технологии и когда она используется.
  17. Какие виды языков программирования вы знаете?
  18. Материал с сайта http://mega.km.ru/pc/srch.asp
Корпоративные базы данных Материал с сайта http://mega.km.ru/pc/Encyclop.asp?Topic=pc_918

Введение

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

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

К программному обеспечению относится также вся область деятельности по проектированию и разработке ПО.

В нее включаются:

Технология проектирования программ;

Методы тестирования программ;

Методы доказательства правильности программ;

Анализ качества работы программ;

Документирование программ;

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

К сервисному программному обеспечению относятся:

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

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


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

Типичными представителями утилит являются:

Диспетчеры файлов или файловые менеджеры;

Архиваторы файлов, папок и дисков;

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

Средства обеспечения компьютерной безопасности (резервное копирование, антивирусные программы);

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

Деинсталляторы приложений, установленных на компьютере. Они служат заменой стандартному диалогу Добавить/Удалить программу Windows. При этом работают приблизительно в 5-10 раз быстрее. Имеется функция поиска приложения по ключевому слову.

Часто утилиты объединяются в комплексы, наиболее популярны комплексы Norton Utilities, PC Tools Deluxe и Mace Utilities.

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

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

Инструментальные средства программирования предназначены для создания программ. К ним относятся языки и системы программирования, которые обеспечивают поддержку всех этапов работ по созданию программ: создание исходного кода программы на языке программирования, компиляцию /интерпретацию, отладку, документирование, поддержку и сопровождение программных продуктов.

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

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

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

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

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

Под программным обеспечением (Software) понимается совокупность программ,

выполняемых вычислительной системой.

К программному обеспечению (ПО) относится также вся область деятельности по проектированию и разработке ПО:

Технология проектирования программ (например, нисходящее проектирование, структурное и объектно-ориентированное проектирование и др.);

Методы доказательства правильности программ;

Анализ качества работы программ;

Документирование программ;

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

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

Сам по себе компьютер не обладает знаниями ни в одной области применения.

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

Программное обеспечение современных компьютеров включает миллионы программ - от игровых до научных.

В первом приближении все программы, работающие на компьютере, можно условно разделить на три категории (рис. 1):

Прикладные программы, непосредственно обеспечивающие выполнение необходимых пользователям работ;

Системные программы, выполняющие различные вспомогательные функции, например:

Управление ресурсами компьютера;

Создание копий используемой информации;

Проверка работоспособности устройств компьютера;

Выдача справочной информации о компьютере и др.;

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

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

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

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

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

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

На сегодняшний день можно сказать, что более или менее определённо сложились следующие группы программного обеспечения:

Операционные системы и оболочки;

Системы программирования (трансляторы, библиотеки подпрограмм, отладчики и т.д.);

Инструментальные системы;

Интегрированные пакеты программ;

Динамические электронные таблицы;

Системы машинной графики;

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

Прикладное программное обеспечение.

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

Прикладная программа - это любая конкретная программа, способствующая решению

какой-либо задачи в пределах данной проблемной области.

Профессионально-ориентированного программного обеспечения- программное обеспечение прикладного характера, предназначенное для решения задач в пределах какой-либо отрасли.

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

Прикладные программы могут носить и общий характер, например, обеспечивать составление и печатание документов и т.п.

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

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

Системные программы выполняются вместе с прикладными и служат для управления ресурсами компьютера - центральным процессором, памятью, вводом-выводом.

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

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

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

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

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

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

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

Рис. 2. Структура программного обеспечения компьютера

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

Программы оптимизации и контроля качества дискового пространства;

Программы восстановления информации, форматирования, защиты данных;

Коммуникационные программы, организующие обмен информацией между компьютерами;

Программы для управления памятью, обеспечивающие более гибкое использование оперативной памяти;

Программы для записи CD-ROM, CD-R и многие другие.

Часть утилит входит в состав операционной системы, а другая часть функционирует независимо от нее, т.е. автономно. ent Environments).

И программных документов, необходимых для эксплуатации этих программ.

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

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

Классификация программного обеспечения

Классификация программного обеспечения

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

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


Операционные системы

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

Понятие операционной системы

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

Есть приложения вычислительной техники, для которых ОС излишни. Например, встроенные микрокомпьютеры содержатся сегодня во многих бытовых приборах, автомобилях (иногда по десятку в каждом), сотовых телефонах и т. п. Зачастую такой компьютер постоянно исполняет лишь одну программу, запускающуюся по включении. И простые игровые приставки - также представляющие собой специализированные микрокомпьютеры - могут обходиться без ОС, запуская при включении программу, записанную на вставленном в устройство «картридже» или компакт-диске . Тем не менее, некоторые микрокомпьютеры и игровые приставки всё же работают под управлением особых собственных ОС. В большинстве случаев, это UNIX-подобные системы (последнее особенно верно в отношении программируемого коммутационного оборудования: файрволов , маршрутизаторов ).

Основные идеи ОС

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

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

Функции ОС

Основные функции (простейшие ОС):

§ Загрузка приложений в оперативную память и их выполнение.

§ Стандартизованный доступ к периферийным устройствам (устройства ввода-вывода ).

§ Управление оперативной памятью (распределение между процессами, виртуальная память ).

§ Управление доступом к данным на энергонезависимых носителях (таких как жёсткий диск , компакт-диск и т. д.), организованным в той или иной файловой системе .

§ Пользовательский интерфейс.

§ Сетевые операции, поддержка стека протоколов.

Дополнительные функции:

§ Параллельное или псевдопараллельное выполнение задач (многозадачность ).

§ Взаимодействие между процессами: обмен данными, взаимная синхронизация.


§ Защита самой системы, а также пользовательских данных и программ от действий пользователей (злонамеренных или по незнанию) или приложений.

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

Встроенные программы

Встроенные программы или firmware - это программы, "зашитые" в цифровые электронные устройства.

Утилиты

Утилиты (англ. utility или tool ) - программы, предназначенные для решения узкого круга вспомогательных задач.

Иногда утилиты относят к классу сервисного программного обеспечения .

Утилиты используются для:

§ Мониторинга показателей датчиков и производительности оборудования - мониторинг температур процессора, видеоадаптера; чтение S. M.A. R.T. жёстких дисков;

§ Управления параметрами оборудования - ограничение максимальной скорости вращения CD-привода; изменение скорости вращения вентиляторов .

§ Контроля показателей - проверка ссылочной целостности; правильности записи данных.

§ Расширения возможностей - форматирование и/или переразметка диска с сохранением данных, удаление без возможности восстановления.

Типы утилит

§ Дисковые утилиты

¨ Дефрагментаторы

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

¨ Очистка диска - удаление временных файлов, ненужных файлов, чистка «корзины».

¨ Разметка диска - деление диска на логические диски, которые могут иметь различные файловые системы и восприниматься операционной системой как несколько различных дисков.

¨ Резервное копирование - создание резервных копий целых дисков и отдельных файлов, а также восстановление из этих копий.

¨ Сжатие дисков - сжатие информации на дисках для увеличения вместимости жёстких дисков.

§ Утилиты работы с реестром

§ Утилиты мониторинга оборудования

§ Тесты оборудования

§ ассемблеры - компьютерные программы, осуществляющие преобразование программы в форме исходного текста на языке ассемблера в машинные команды в виде объектного кода .

§ трансляторы - программы или технические средства, выполняющее трансляцию программы.

§ компиляторы - Программы, переводящие текст программы на языке высокого уровня, в эквивалентную программу на машинном языке.

§ интерпретаторы - Программы (иногда аппаратные средства), анализирующие команды или операторы программы и тут же выполняющие их

§ компоновщики (редакторы связей) - программы, которые производят компоновку - принимают на вход один или несколько объектных модулей и собирают по ним исполнимый модуль.

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

§ Отладчик (debugger)- является модулем среды разработки или отдельным приложением, предназначенным для поиска ошибок в программе.

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

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

§ библиотеки подпрограмм - сборники подпрограмм или объектов, используемых для разработки программного обеспечения.

§ Редакторы графического интерфейса

Системы управления базами данных

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

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

Основные функции СУБД

§ управление данными во внешней памяти (на дисках);

§ управление данными в оперативной памяти с использованием дискового кэша ;

§ журнализация изменений , резервное копирование и восстановление базы данных после сбоев;

§ поддержка языков БД (язык определения данных, язык манипулирования данными).

Классификация СУБД по способу доступа к БД

§ Файл-серверные

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

На данный момент файл-серверные СУБД считаются устаревшими.

Примеры : Microsoft Access , Paradox , dBase .

§ Клиент-серверные

Такие СУБД состоят из клиентской части (которая входит в состав прикладной программы) и сервера

Примеры : Firebird , Interbase , IBM DB2 , MS SQL Server , Sybase , Oracle , PostgreSQL , MySQL , ЛИНТЕР , MDBS.

§ Встраиваемые

Встраиваемая СУБД - библиотека , которая позволяет унифицированным образом хранить большие объёмы данных на локальной машине.

Примеры: OpenEdge , SQLite , BerkeleyDB , один из вариантов Firebird , один из вариантов MySQL , Sav Zigzag , Microsoft SQL Server Compact , ЛИНТЕР .

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

К прикладному программному обеспечению (application software) относятся компьютерные программы , написанные для пользователей или самими пользователями, для задания компьютеру конкретной работы. Программы обработки заказов или создания списков рассылки - пример прикладного программного обеспечения. Программистов, которые пишут прикладное программное обеспечение, называют прикладными программистами.

Классификация

По типу

§ программные средства общего назначения

§ Текстовые редакторы

§ Системы компьютерной вёрстки

§ Графические редакторы

§ СУБД

§ программные средства специального назначения

§ Экспертные системы

§ Мультимедиа приложения (Медиаплееры , программы для создания/редактирования видео, звука, Text-To-Speech и пр.)

§ Гипертекстовые системы (Электронные словари , энциклопедии, справочные системы)

§ Системы управления содержимым

§ программные средства профессионального уровня

§ САПР

§ АРМ

§ АСУ

§ АСУ ТП

§ АСНИ

§ Геоинформационные системы

§ Биллинговые системы

§ CRM

По сфере применения

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

§ Программное обеспечение обеспечивает доступ пользователя к устройствам компьютера.

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

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

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

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

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

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

§ Прикладные программы для проектирования и конструирования. Используются при разработке аппаратного («Железо») и программного обеспечения. Охватывают автоматизированный дизайн (computer aided design - CAD), автоматизированное проектирование (computer aided engineering - CAE), редактирование и компилирование языков программирования, программы интегрированной (Integrated Development Environments), интерфейсы для прикладного программирования (Application Programmer Interfaces).

Проприетарное программное обеспечение ( англ. proprietarysoftware ; от proprietary - частное , патентованное, в составе собственности http://ru. wikipedia. org/wiki/%D0%9F%D1%80%D0%BE%D0%BF%D1%80%D0%B8%D0%B5%D1%82%D0%B0%D1%80%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5 - cite_note-slov-0и software - программное обеспечение) - программное обеспечение , являющееся частной собственностью авторов или правообладателей и не удовлетворяющее критериям свободного ПО (наличия открытого программного кода недостаточно). Правообладатель проприетарного ПО сохраняет за собой монополию на его использование, копирование и модификацию, полностью или в существенных моментах. Обычно проприетарным называют любое несвободное ПО, включаяполусвободное .

Несвободное ПО, которое разрешает практически неограниченное использование, распространение и изменение (в том числе с распространением изменённых версий) ПО в некоммерческих целях.

Свободное программное обеспечение

Свободное программное обеспечение (СПО) - широкий спектр программных решений , в которых права пользователя («свободы») на неограниченную установку, запуск, а также свободное использование, изучение, распространение и изменениеб (совершенствование) http://ru. wikipedia. org/wiki/%D0%A1%D0%B2%D0%BE%D0%B1%D0%BE%D0%B4%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5 - cite_note-gnu. org-0 программ защищены юридически авторскими правами при помощи свободных лицензий . Обычно СПО доступно без всякой оплаты, но может иметь цену, например, в форме взимания платы за компакт-диски или другие носители. Чтобы распространяемое ПО было свободным, получателям должны быть доступны его исходные коды, из которых можно получить исполняемые файлы, с соответствующими лицензиями.

Движение СПО зародилось в 1983 году, когда Ричард Столлман сформировал идею о необходимости дать программную свободу (англ. softwarefreedom ) пользователям. В 1985 году Столлман основал Фонд свободного программного обеспечения , чтобы обеспечить организационную структуру для продвижения своей идеи.

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

§ Программу можно свободно использовать с любой целью («нулевая свобода »).

§ Можно изучать, как программа работает, и адаптировать её для своих целей («первая свобода »). Условием этого является доступность исходного текста программы.

§ Можно свободно распространять копии программы - в помощь товарищу («вторая свобода »).

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

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

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

Открытый доступ к исходным текстам программ является ключевым признаком свободного ПО, поэтому предложенный несколько позднее Эриком Реймондом термин «open source software» (ПО с открытым исходным текстом) некоторым представляется даже более удачным для обозначения данного феномена, чем изначально предложенный Столлманом «free software». Столлман настаивает на различии этих двух понятий, так как слова «open source» указывают лишь на наличие одного, не самого важного (хотя и необходимого для реализации двух из четырёх свобод), по его мнению, из свойств, присущих свободному ПО - возможности увидеть исходный код.

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

Термин opensource (англ. открытое программное обеспечение ) был создан вместе с определением в 1998 году Эриком Реймондом и Брюсом Перенсом , которые утверждали, что термин freesoftware (свободное программное обеспечение ) в английском языке неоднозначен и смущает многих коммерческих предпринимателей .

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

Отличие между движениями открытого ПО и свободного ПО заключается в основном в приоритетах. Сторонники термина «open source» делают упор на эффективность открытых исходников как метода разработки, модернизации и сопровождения программ. Сторонники термина «free software» считают, что именно права на свободное распространение, модификацию и изучение программ являются главным достоинством свободного открытого ПО.

Существуют программы, имеющие открытый исходный код, но не являющиеся свободными, например, UnRAR, распаковщик RAR -архивов. Его исходный код находится в открытом доступе, но лицензия запрещает использовать его для создания RAR-совместимых архиваторов. Так же существует целый класс программ, называемых коммерческим ПО с открытым исходным кодом или Open Core, которые используют термин «Open Source» применительно к несвободному программному обеспечению .

Исходные коды открытых программ выпускаются либо как общественное достояние , либо на условиях «свободных» лицензий - как, например, GNU General Public License или BSD License . Свободная лицензия позволяет использовать исходный код программы для своих нужд с минимальными ограничениями, не противоречащими определению OpenSource. org. Таким ограничением может быть требование ссылаться на предыдущих создателей или требование сохранять свойство открытости при дальнейшем распространении той же самой или модифицированной открытой программы (копилефт ). В некоторых случаях (например, Apache или FreeBSD ) эти ограничения очень малы, в других (например, GNU General Public License ) достаточно распространять ПО вместе с исходным кодом и текстом лицензии, не изменяя её.

Каковы основные тенденции в разработке ЭВМ 5–­го поколения?

Опишите принцип действия лазерных принтеров.

Что такое материнская плата? Какие компоненты ПК на ней находятся?

Какие программы входят в состав BIOS?

Какие функции в компьютере выполняет оперативное запоминающее устройство?

Какие основные параметры процессора? Что характеризует тактовая частота и в каких единицах она измеряется?

В чем смысл магистрально – модульного принципа построения архитектуры ПК?

Какие типы шин существуют в компьютере и для чего они предназначены?

Какая элементная база была основой создания ЭВМ третьего поколения?

Какие принципы построения ЭВМ разработал Джон фон Нейман?

В чем состоит вклад Ч. Бэббиджа в развитие средств вычислительной техники?


ГЛАВА 3

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПЕРСОНАЛЬНЫХ КОМПЬЮТЕРОВ

КЛЮЧЕВЫЕ СЛОВА: программа, системное программное обеспечение, прикладное программное обеспечение, файл, папка, операции с файлами, файловая система, ОС Windows XP, главное меню, стандартные программы, ярлык, Рабочий стол, окна, панель управления, программа Проводник, Корзина, форматирование, поисковая система, пакет Microsoft Office, компьютерное пиратство, лицензионное соглашение.

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

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

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

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

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

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



Ядром любой СПО являются ОС, поэтому они более подробно будут рассмотрены далее.

Системы программирования в большинстве своем предназначены для создания новых программ. К этим системам обычно относят языки программирования, которые, как правило, предназначены для профессиональных программистов. Любая система программирования работает только в соответствующей ОС, под которую она и создана, однако она может позволить разрабатывать программы и под другие ОС. В последнее время появились мощные системы программирования на языках Java, Delphi, СИ++, Visual Basic.

Важными классами системных программ являются также программы вспомогательного назначения – утилиты (лат. utilitas – польза).

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

Различают следующие разновидности утилит:

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

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

— программы – упаковщики (архиваторы), которые позволяют записывать информацию на дисках более плотно, а также объединять копии нескольких файлов в один архивный файл;

— антивирусные программы , предназначенные для предотвращения заражения компьютерными вирусами и ликвидации последствий такого заражения;

— программы оптимизации и контроля качества дискового пространства ;

— программы восстановления информации, форматирования, защиты данных ;

— коммуникационные программы , организующие обмен информацией между компьютерами при их объединении в компьютерные сети;

— программы для управления памятью , обеспечивающие более гибкое использование оперативной памяти;

— программы для записи CD – ROM, CD – RW, DVD и многие другие.

Часть утилит входит в состав ОС, а другие функционируют автономно.

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

Файл – это именованный набор данных, организованных в виде совокупности записей одинаковой структуры. Для управления этими данными и создаются системы управления файлами. Как правило, все современные ОС имеют системы управления файлами. Имеются ОС, обеспечивающие работу с несколькими файловыми системами. Некоторые простейшие ОС могут работать и без файловых систем.

По способам именования файлов различают «короткое» и «длинное» имя. До появле­ния ОС Windows 95 общепринятым способом именования файлов было Соглашение 8.3. Согласно этому соглашению, принятому в MS – DOS, имя файла состояло из двух частей: собственно имени и расширения. На имя файла отводится 8 символов, а на его расширение – 3 символа. Имя от расширения отделяется точкой. Как имя, так и расширение могут включать только алфавитно – цифровые символы латинского алфавита.

Основным недостатком «коротких» имен является их низкая содержательность. Далеко не всегда удается выразить несколькими символами характеристику файла, поэтому с появлением ОС Windows 95 было введено понятие «длинного» имени. Такое имя может содержать до 256 символов. Этого вполне достаточно для создания содержательных имен файлов. В имени разрешается использовать пробелы и несколько точек. Прописные и строчные буквы не различаются ОС, однако символы разных регистров отображаются ОС. Расширением имени счи­таются все символы, идущие после последней точки, например:


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

— .xls – электронная таблица MS Excel;

— .doc – текстовый файл редактора MS Word;

— .mdb – файл базы данных MS Access;

— .zip – упакованный файл;

— .bmp – графический файл и т.д.

Кроме имени и расширения имени файла, ОС хранит для каж­дого файла дату его создания (изменения), размер и несколько флаговых величин, назы­ваемых атрибутами файла.

Атрибуты – это дополнительные параметры, опреде­ляющие свойства файлов. ОС позволяет их контролировать и изменять. Значения атрибутов учитываются при проведении опе­раций с файлами.

Основных атрибутов четыре:

— Только для чтения (Read only);

— Скрытый (Hidden);

— Системный (System);

— Архивный (Archive).

Атрибут «Только для чтения » ограничивает возможности работы с файлом. Его уста­новка означает, что файл не предназначен для внесения изменений.

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

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

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

Папка (каталог) – это специальное место на диске, в котором регистрируются все сведения о файлах (имя, размер, свойства, дата и время создания и т.д.).

До появления ОС Windows 95 при описании иерархической файловой структуры использовался термин «каталог». С появлением семейства ОС Windows был введен новый термин – «папка». Эти термины равнозначны: каждому каталогу файлов на диске соответствует одно­именная папка ОС системы.

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

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

В иерархических структурах данных адрес объекта задается маршрутом (путем доступа), ведущим от вершины структуры к объекту. При записи пути доступа к файлу, проходящего через систему вложенных каталогов, все промежуточные ката­логи разделяются между собой определенным символом. Во многих ОС в качестве такого символа используется «\» (обратная косая черта), например:


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

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

Для загрузки самой ОС и организации работы той или иной системы управления файлами были приняты специальные соглашения о структуре жесткого диска.Принцип организации файловой системы зависит от ОС. Жесткий диск представляется как набор поверхностей. У гибких дисков их всего две (верхняя и нижняя). Жесткие диски – это на самом деле «этажерки», состо­ящие из нескольких пластин, поэтому количество поверхностей у них больше. Каждая поверхность диска разделяется на кольцевые дорожки, а каж­дая дорожка – на секторы (рис. 3.2). Размеры секторов фиксированы и равны 512 байт.

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

Цилиндр – это совокупность всех дорожек, имеющих одинако­вые номера, то есть равноудаленные от оси вращения. Поэтому реально местопо­ложение файла на жестком диске определяется номером цилиндра, номером поверх­ности и номером сектора.

Сектор – это наименьшая единица хранения данных, но для адресации она используется далеко не во всех файловых системах из – за малого размера. Такие ОС, как MS – DOS, Windows, OS/2, используют для адресации более крупную единицу хранения, называемую клас­тером. Кластер – это группа соседних секторов. Размер кластера зависит от раз­мера жесткого диска. Чем больше диск, тем большим назначается размер кластера. Типовые значения размера одного кластера: 8, 16, 32 или 64 сектора.

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

В таблице 3.1. перечислены типы файловых систем и версии ОС Windows, которые их используют.

Используемыми ОС Windows файловыми системами являются:

— FAT16 – наиболее старая файловая система, которую могут использовать практически все Из – за имеющихся ограничений она не может использовать диски больше, чем 4096 Мб. Система FAT16 считается устаревшей, хотя иногда успешно применяется и по сей день. Максимально возможный размер файла – 4 Гб.

— FAT32 – более новая файловая система, с которой могут работать все новые ОС, выпущенные после 1998 г. Размер дисков под FAT32 может достигать 127 Гб. Максимально возможный размер файла – 4 Гб.

— NTFS – старая, но тщательно разработанная файловая система, отличающаяся от FAT16 и FAT32 своей надежностью и способностью обеспечить защиту от несанкционированного доступа. Эту файловую систему «понимают» далеко не все ОС.

— CDFS – файловая система, используемая для дисков CD – ROM. На жестких дисках она не применяется. Используется всеми современными ОС.

  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то