Лекция программное обеспечение компьютера виды прикладных программ
1. Что такое программное обеспечение
В компьютерном жаргоне часто используется слово «софт» от английского software, которое, в этом смысле впервые применил в статье American Mathematical Monthly математик из Принстонского университета Джон Тьюки (John W. Tukey) в 1958 г.
К программному обеспечению (ПО) относится также вся область деятельности по проектированию и разработке ПО:
· технология проектирования программ (например, нисходящее проектирование, структурное и объектно-ориентированное проектирование и др.);
· методы тестирования программ;
· методы доказательства правильности программ;
· анализ качества работы программ;
разработка и использование программных средств, облегчающих процесс проектирования программного обеспечения, и многое другое.
Программное обеспечение — неотъемлемая часть компьютерной системы. Оно является логическим продолжением технических средств. Сфера применения конкретного компьютера определяется созданным для него ПО. Сам по себе компьютер не обладает знаниями ни в одной области применения. Все эти знания сосредоточены в выполняемых на компьютерах программах.
Программное обеспечение в настоящее время составляет сотни тысяч программ, которые предназначены для обработки самой разнообразной информации с самыми различными целями.
2. Виды программного обеспечения
Все программы, работающие на компьютере, можно условно разделить на три вида:
прикладные программы, непосредственно обеспечивающие выполнение необходимых пользователям работ;
системные программы, предназначены для управления работой вычислительной системы, выполняют различные вспомогательные функции, например:
· управление ресурсами компьютера;
· создание копий используемой информации;
· проверка работоспособности устройств компьютера;
· выдача справочной информации о компьютере и др.;
· инструментальные программные системы, облегчающие процесс создания новых программ для компьютера.
При построении классификации ПО нужно учитывать тот факт, что стремительное развитие вычислительной техники и расширение сферы приложения компьютеров резко ускорили процесс эволюции программного обеспечения. Если раньше можно было легко перечислить основные категории ПО — операционные системы, трансляторы, пакеты прикладных программ, то сейчас ситуация коренным образом изменилась. Развитие ПО пошло как вглубь (появились новые подходы к построению операционных систем, языков программирования и т.д.), так и вширь (прикладные программы перестали быть прикладными и приобрели самостоятельную ценность). Соотношение между требующимися программными продуктами и имеющимися на рынке меняется очень быстро. Даже классические программные продукты, такие, как операционные системы, непрерывно развиваются и наделяются интеллектуальными функциями, многие из которых ранее относились только к интеллектуальным возможностям человека.
3. Прикладное программное обеспечение
Какие программы называют прикладными?
Прикладная программа — это любая конкретная программа, способствующая решению какой-либо задачи в пределах данной проблемной области.
Прикладные программы могут носить и общий характер, например, обеспечивать составление и печатание документов и т.п.
В противоположность этому, операционная система или инструментальное ПО не вносят прямого вклада в удовлетворение конечных потребностей пользователя.
Прикладные программы могут использоваться либо автономно, то есть решать поставленную задачу без помощи других программ, либо в составе программных комплексов или пакетов.
Редакторы документов — это наиболее широко используемый вид прикладных программ. Они позволяют подготавливать документы гораздо быстрее и удобнее, чем с помощью пишущей машинки. Текстовые редакторы могут обеспечивать выполнение разнообразных функций, а именно:
· редактирование строк текста;
· возможность использования различных шрифтов символов;
· копирование и перенос части текста с одного места на другое или из одного документа в другой;
· контекстный поиск и замена частей текста;
· задание произвольных межстрочных промежутков;
· автоматический перенос слов на новую строку;
· автоматическая нумерацию страниц;
· обработка и нумерация сносок;
· выравнивание краев абзаца;
· создание таблиц и построение диаграмм;
· проверка правописания слов и подбор синонимов;
· построение оглавлений и предметных указателей;
· распечатка подготовленного текста на принтере в нужном числе экземпляров и т.п.
Возможности текстовых редакторов различны — от программ, предназначенных для подготовки небольших документов простой структуры, до программ для набора, оформления и полной подготовки к типографскому изданию книг и журналов (издательские системы).
Представители редакторов документов — программы Microsoft Word, Wordpad, Microsoft Publisher, Corel Ventua и Adobe age Maker.
Табличные процессоры. При работе с табличным процессором на экран выводится прямоугольная таблица, в клетках которой могут находиться числа, пояснительные тексты и формулы для расчета значения в клетке по именующимся данным. Все распространенные табличные процессоры позволяют вычислять значения элементов таблиц по заданным формулам, строить по данным в таблицах различные графики и т.д.
Табличные процессоры представляют собой удобное средство для проведения бухгалтерских и статистических расчетов. В каждом пакете имеются сотни встроенных математических функций и алгоритмов статистической обработки данных. Кроме того, имеются мощные средства для связи таблиц между собой, создания и редактирования электронных баз данных.
Специальные средства позволяют автоматически получать и распечатывать настраиваемые отчеты с использованием десятков различных типов таблиц, графиков, диаграмм, снабжать их комментариями и графическими иллюстрациями.
Табличные процессоры имеют встроенную справочную систему, предоставляющую пользователю информацию по конкретным командам меню и другие справочные данные. Многомерные таблицы позволяют быстро делать выборки в базе данных по любому критерию.
Представители семейства табличных процессоров: Microsoft Excel, Quatro Pro, Lotus 1-2-3.
Графические редакторы позволяют создавать и редактировать рисунки. В простейших редакторах предоставляются возможности рисования линий, кривых, раскраски областей экрана, создание надписей различными шрифтами и т.д. Большинство редакторов позволяют обрабатывать изображения, полученные с помощью сканеров. Представители графических редакторов — программы Adobe Photoshop, Corel Draw.
Правовые базы данных содержат тексты нормативных документов и предоставляют возможности справки, контекстного поиска, распечатки и т.д. Представители правовых баз данных — пакеты Гарант и Консультант+.
Системы автоматизированного проектирования (САПР) или CAD (англ. Computer-Aided Design) — программный пакет, предназначенный для создания чертежей, конструкторской и/или технологической документации и/или 3D моделей. Среди систем малого и среднего класса в мире наиболее популярна система AutoCad фирмы AutoDesk. Отечественный пакет с аналогичными функциями — Компас.
Существуют остроумные способы визуализации наиболее простых многомерных объектов — множеств точек. Один из них носит название «лица Чернова» (Чернов — современный американский математик). . Этим способом можно отображать 10-20-мерные множества. Суть способа такова: каждому из измерений сопоставляется один из параметров схематически изображённого человеческого лица, например, первое измерение дает отношение высоты лица к ширине, второе — размер носа, третье — расстояние между глазами и т.д. Таким образом, каждой точке исходного множества будет сопоставлено лицо. Рассматривая эти лица, можно отобрать похожие между собой или же выделить абсолютно непохожие и тем самым произвести некую классификацию исходного множества.
Системы управления базами данных (СУБД) позволяют управлять большими информационными массивами — базами данных. Программные системы этого вида позволяют обрабатывать на компьютере массивы информации, обеспечивают ввод, поиск, сортировку выборку записей, составление отчетов и т.д. Представители данного класса программ — Microsoft Access, Clipper, Paradox, FoxPro.
Интегрированные системы сочетают в себе возможность системы управления базами данных, табличного процессора, текстового редактора, системы деловой графики, а иногда и другие возможности. Как правило, все компоненты интегрированной системы имеют схожий интерфейс, что облегчает обучение работе с ними. Представители интегрированных систем — пакет Microsoft Office и его бесплатный аналог Open Office.
4. Системные программы
Роль и назначение системных программ.
Системные программы выполняются вместе с прикладными и служат для управления ресурсами компьютера — центральным процессором, памятью, вводом-выводом.
Это программы общего пользования, которые предназначены для всех пользователей компьютера. Системное программное обеспечение разрабатывается так, чтобы компьютер мог эффективно выполнять прикладные программы.
Системное программное обеспечение направлено:
· на создание операционной среды функционирования других программ;
· на обеспечение надежной и эффективной работы самого компьютера и вычислительной сети;
· на проведение диагностики и профилактики аппаратуры компьютера и вычислительных сетей;
· на выполнение вспомогательных технологических процессов (копирование, архивирование, восстановление файлов программ и баз данных и т.д.).
Данный класс программных продуктов тесно связан с типом компьютера и является его неотъемлемой частью. Программные продукты в основном ориентированы на квалифицированных пользователей — профессионалов в компьютерной области: системного программиста, администратора сети, прикладного программиста, оператора. Однако знание базовой технологии работы с этим классом программных продуктов требуется и конечным пользователям персонального компьютера, которые самостоятельно не только работают со своими программами, но и выполняют обслуживание компьютера, программ и данных.
Программные продукты данного класса носят общий характер применения, независимо от специфики предметной области. К ним предъявляются высокие требования по надежности и технологичности работы, удобству и эффективности использования.
Системного программное обеспечение можно разделить на:
· базовое программное обеспечение (base software) — минимальный набор программных средств, обеспечивающих работу компьютера, (как правило, поставляется вместе с компьютером). В базовое программное обеспечение входят: операционная система; операционные оболочки (текстовые и графические); сетевая операционная система.
· сервисное программное обеспечение — программы и программные комплексы, которые расширяют возможности базового программного обеспечения и организуют более удобную среду работы пользователя — утилиты, (может быть приобретено дополнительно).
5. Операционная система
Что такое операционная система
Это комплекс взаимосвязанных системных программ, назначение которого — организовать взаимодействие пользователя с компьютером и выполнение всех других программ.
Операционная система выполняет роль связующего звена между аппаратурой компьютера, с одной стороны, и выполняемыми программами, а также пользователем, с другой стороны.
Операционная система обычно хранится во внешней памяти компьютера на диске. При включении компьютера она считывается с дисковой памяти и размещается в ОЗУ. Этот процесс называется загрузкой операционной системы.
В функции операционной системы входит:
· осуществление диалога с пользователем;
· ввод-вывод и управление данными;
· планирование и организация процесса обработки программ;
· распределение ресурсов (оперативной памяти и кэша, процессора, внешних устройств);
· запуск программ на выполнение;
· всевозможные вспомогательные операции обслуживания;
· передача информации между различными внутренними устройствами;
· программная поддержка работы периферийных устройств (дисплея, клавиатуры, дисковых накопителей, принтера и др.).
Анализ и исполнение команд пользователя, включая загрузку готовых программ из файлов в оперативную память и их запуск, осуществляет командный процессор операционной системы.
Операционную систему можно назвать программным продолжением устройства управления компьютера. Операционная система скрывает от пользователя сложные ненужные подробности взаимодействия с аппаратурой, образуя прослойку между ними. В результате этого люди освобождаются от очень трудоёмкой работы по организации взаимодействия с аппаратурой компьютера.
Кроме того, именно ОС обеспечивает возможность индивидуальной настройки компьютера: ОС определяет, из каких компонентов собран компьютер, на котором она установлена, и настраивает сама себя для работы именно с этими компонентами.
Ещё не так давно работы по настройке приходилось выполнять пользователю вручную, а сегодня производители компонентов компьютерной техники разработали протокол plug-and-play (включил — заработало). Этот протокол позволяет операционной системе в момент подключения нового компонента получить информацию о новом устройстве, достаточную для настройки ОС на работу с ним.
В зависимости от количества одновременно обрабатываемых задач и числа пользователей, которых могут обслуживать ОС, различают четыре основных класса операционных систем:
· однопользовательские однозадачные, которые поддерживают одну клавиатуру и могут работать только с одной (в данный момент) задачей;
· однопользовательские однозадачные с фоновой печатью, которые позволяют помимо основной задачи запускать одну дополнительную задачу, ориентированную, как правило, на вывод информации на печать. Это ускоряет работу при выдаче больших объёмов информации на печать;
· однопользовательские многозадачные, которые обеспечивают одному пользователю параллельную обработку нескольких задач. Например, к одному компьютеру можно подключить несколько принтеров, каждый из которых будет работать на «свою» задачу;
· многопользовательские многозадачные, позволяющие на одном компьютере запускать несколько задач нескольким пользователям. Эти ОС очень сложны и требуют значительных машинных ресурсов.
В различных моделях компьютеров используют операционные системы с разной архитектурой и возможностями. Для их работы требуются разные ресурсы. Они предоставляют разную степень сервиса для программирования и работы с готовыми программами.
6. Что такое программы-оболочки
Оболочки — это программы, созданные для упрощения работы со сложными программными системами, такими, например, как DOS. Они преобразуют неудобный командный пользовательский интерфейс в дружественный графический интерфейс или интерфейс типа «меню». Оболочки предоставляют пользователю удобный доступ к файлам и обширные сервисные услуги.
Самая популярная у пользователей IBM-совместимого ПК оболочка — пакет программ Norton Commander. Он обеспечивает:
· создание, копирование, пересылку, переименование, удаление, поиск файлов, а также изменение их атрибутов;
· отображение дерева каталогов и характеристик входящих в них файлов в форме, удобной для восприятия человека;
· создание, обновление и распаковку архивов (групп сжатых файлов);
· просмотр текстовых файлов;
· редактирование текстовых файлов;
· выполнение из её среды практически всех команд DOS;
· выдачу информации о ресурсах компьютера;
· создание и удаление каталогов;
· поддержку межкомпьютерной связи;
· поддержку электронной почты через модем.
Что такое сетевые операционные системы.
Сетевые операционные системы — комплекс программ, обеспечивающий обработку, передачу и хранение данных в сети. Сетевая ОС предоставляет пользователям различные виды сетевых служб (управление файлами, электронная почта, процессы управления сетью и др.), поддерживает работу в абонентских системах. Сетевые операционные системы используют архитектуру клиент-сервер или одноранговую архитектуру. Они оцениваются по комплексу критериев: производительность, разнообразие возможностей связи пользователей, возможности администрирования.
7. Что такое утилиты
Важными классами системных программ являются также программы вспомогательного назначения — утилиты (лат. utilitas — польза). Они либо расширяют и дополняют соответствующие возможности операционной системы, либо решают самостоятельные важные задачи.
Кратко опишем некоторые разновидности утилит:
Программы контроля, тестирования и диагностики, которые используются для проверки правильности функционирования устройств компьютера и для обнаружения неисправностей в процессе эксплуатации; указывают причину и место неисправности;
Программы-драйверы, которые расширяют возможности операционной системы по управлению устройствами ввода-вывода, оперативной памятью и т.д.; с помощью драйверов возможно подключение к компьютеру новых устройств или нестандартное использование имеющихся;
Программы-упаковщики (архиваторы), которые позволяют за счет применения специальных алгоритмов упаковки информации сжимать информацию на дисках, т.е. создавать копии файлов меньшего размера, а также объединять копии нескольких файлов в один архивный файл. Применение программ-архиваторов очень полезно при создании архива файлов, так как в большинстве случаев значительно удобнее их хранить, предварительно сжав программами-архиваторами. Представители данных программ -WinRar и WinZip.
Антивирусные программы, предназначенные для предотвращения заражения компьютерными вирусами и ликвидации последствий заражения вирусами. Компьютерный вирус — это специально написанная небольшая по размерам программа, которая может «приписывать» себя к другим программам для выполнения каких-либо вредных действий — портит файлы, «засоряет оперативную память и т.д. Представители антивирусного семейства программ — Kaspersky Antivirus, DrWeb, Norton Antivirus.
Согласно исследованию организации AVIEWS (Antivirus Information & Early Warning System), Sophos обнаруживает не менее 80 процентов неизвестных зловредных кодов, значительно опережая многие другие весьма популярные и именитые программы. Второе место занял «Антивирус Касперского», который обнаруживает 65 процентов угроз. Интересно, что третье место с 60 процентами занял Ikarus, не известная широким массам программа. А такая именитая программа, как Panda, показала всего 10%.
Программы для создания резервных копий информации позволяют периодически копировать важную информацию, находящуюся на жестком диске компьютера, на дополнительные носители. Представители программ резервного копирования — APBackUp, Acronis True Image.
Программы оптимизации и контроля качества дискового пространства;
Программы восстановления информации, форматирования, защиты данных;
Коммуникационные программы, предназначены для организации обмена информацией между компьютерами. Это программы позволяют удобно пересылать файлы с одного компьютера на другой при соединении кабелем их последовательных портов. Другой вид таких программ обеспечивает возможность связи компьютеров по телефонной сети (при наличии модема). Они дают возможность посылать и принимать телефаксные сообщения. Представители коммуникационных программ — Venta Fax, Cute FTP.
Программы для управления памятью, обеспечивающие более гибкое использование оперативной памяти;
Программы для печати экрана бывают весьма полезны при использовании графических программ для вывода на печать содержимого экрана, так как отнюдь не всегда это можно сделать с помощью самой графической программы. Представители программ для печати экрана — SnagIt, HyperSnap-DX.
Программы для записи CD-ROM, CD-R и многие другие.
Часть утилит входит в состав операционной системы, а другая часть функционирует независимо от нее, т.е. автономно.
8. Инструментальные системы
Какие программы называются инструментальными.
Инструментальные программные средства — это программы, которые используются в ходе разработки, корректировки или развития других прикладных или системных программ.
Инструментальные программные средства могут оказать помощь на всех стадиях разработки ПО. По своему назначению они близки системам программирования.
К инструментальным программам, например, относятся:
· средства компоновки программ;
· отладочные программы, т.е. программы, помогающие находить и устранять ошибки в программе;
· вспомогательные программы, реализующие часто используемые системные действия;
· графические пакеты программ и т.п.
Система программирования — это система для разработки новых программ на конкретном языке программирования.
Современные системы программирования обычно предоставляют пользователям мощные и удобные средства разработки программ. В них входят:
· компилятор или интерпретатор;
· интегрированная среда разработки;
· средства создания и редактирования текстов программ;
· обширные библиотеки стандартных программ и функций;
· отладочные программы, т.е. программы, помогающие находить и устранять ошибки в программе;
· «дружественная» к пользователю диалоговая среда;
· многооконный режим работы;
· мощные графические библиотеки; утилиты для работы с библиотеками;
· встроенная справочная служба;
· другие специфические особенности.
Транслятор (англ. translator — переводчик) — это программа-переводчик. Она преобразует программу, написанную на одном из языков высокого уровня, в программу, состоящую из машинных команд.
Трансляторы реализуются в виде компиляторов или интерпретаторов. С точки зрения выполнения работы компилятор и интерпретатор существенно различаются.
Компилятор (англ. compiler — составитель, собиратель) читает всю программу целиком, делает ее перевод и создает законченный вариант программы на машинном языке, который затем и выполняется.
Интерпретатор (англ. interpreter — истолкователь, устный переводчик) переводит и выполняет программу строка за строкой.
После того, как программа откомпилирована, ни сама исходная программа, ни компилятор более не нужны. В то же время программа, обрабатываемая интерпретатором, должна заново переводиться на машинный язык при каждом очередном запуске программы.
Откомпилированные программы работают быстрее, но интерпретируемые проще исправлять и изменять.
Популярные системы программирования — Turbo Basic, Quick Basic, Turbo Pascal, Turbo C. Borland C++, Borland Delphi и др.
Каждый конкретный язык ориентирован либо на компиляцию, либо на интерпретацию — в зависимости от того, для каких целей он создавался. Например, Pascal обычно используется для решения довольно сложных задач, в которых важна скорость работы программ. Поэтому данный язык обычно реализуется с помощью компилятора. С другой стороны, Basic создавался как язык для начинающих программистов, для которых построчное выполнение программы имеет неоспоримые преимущества.
Иногда для одного языка имеется и компилятор, и интерпретатор. В этом случае для разработки и тестирования программы можно воспользоваться интерпретатором, а затем откомпилировать отлаженную программу, чтобы повысить скорость ее выполнения.
9. Тенденции развития программного обеспечения
Бурный рост и быстрые темпы развития рынка ПО.
Создание программного обеспечения для персональных компьютеров за последнее десятилетие превратилось из занятия отдельных программистов в важную и мощную сферу промышленности. Поэтому развитие программного обеспечения, предназначенного для широкого круга пользователей, происходит в процессе ожесточенной конкурентной борьбы между фирмами-производителями программного обеспечения. Доля некоммерческого программного обеспечения постоянно снижается и все более ограничивается программами, создаваемыми в процессе научных исследований или для собственного использования.
При разработке коммерческих программ основной задачей фирм-разработчиков является, естественно, обеспечение их успеха на рынке. Для этого необходимо, чтобы программы обладали следующими качествами:
· функциональность программы, т.е. полнота удовлетворения ею потребностей пользователя;
· наглядный, удобный, интуитивно понятный и привычный пользователю интерфейс (т.е. способ взаимодействия программы с пользователем);
· простота освоения программы даже начинающими пользователями, для чего используются информативные подсказки, встроенные справочники и подробная документация;
· надежность программы, т.е. устойчивость ее к ошибкам пользователя, отказам оборудования и т.д., и разумные ее действия в этих ситуациях.
Расширяется практика сдачи программного обеспечения в аренду.
Стандартизация и интеграция продуктов ПО.
Во многих областях совместная работа различных производителей программного обеспечения приводит к стандартизации отдельных элементов интерфейса программ, форматов данных и т.д., что весьма удобно для пользователей. Это происходит, прежде всего, потому, что разработчики программ перенимают друг у друга удачные находки и приемы и стремятся обеспечить совместимость с другими наиболее популярными программами.
Увеличение мощности программ
Важнейшей тенденцией развития программного обеспечения является неуклонное увеличение их мощности — программы могут обрабатывать большие количества данных, делать это быстрее, предоставляют пользователю больше выполняемых функций и т.д. Таким образом, разработчики программного обеспечения используют возможности, появляющиеся из-за увеличения мощности компьютеров. Весьма заметно и стремление к интеграции функций программного обеспечения.
Возможность дистанционного запуска ПО через Web.
Сегодня большинство систем плавно перетекают в Web. Всемирная паутина затягивает все больше и больше приложений. Базы данных приобретают Web-интерфейсы пользователей, взамен имеющихся ранее настольных приложений. В конечном итоге, стоит ожидать, что конечному пользователю будет нужен лишь веб-браузер, чтобы иметь возможность удовлетворять все возможные потребности в программном обеспечении. В данном случае пользователю все равно, какая операционная система управляет локальным компьютером, главное — надежность и производительность сервера. (Например, пакет Microsoft Office может быть установлен на удаленных серверах, а не на системах конечных пользователей, но запуск приложений при этом будет происходить не менее быстро, чем на локальных ПК). Таким образом, все программы получат возможность как локального исполнения, так и дистанционного запуска через Web.