Программное обеспечение ПЭВМ
Назначением ЭВМ является выполнение программ. Совокупность программ для персонального компьютера называется программным обеспечением (ПО). ПО ПЭВМ включает в себя три больших класса программ (рис.2.4):
§ системное программное обеспечение – совокупность программ и программных комплексов для обеспечения работы компьютера или сети ПЭВМ;
§ инструментарий технологии программирования – набор программ и программных комплексов для разработки, отладки и сопровождения программ;
§ пакеты прикладных программ – комплексы взаимосвязанных программ для решения задач в конкретной области применения ПЭВМ.
Системное ПО ПЭВМ делится на базовое ПО и сервисное ПО и имеет структуру, показанную на рис. 2.5.
Базовое ПО (БПО) – это минимальный набор программ, обеспечивающий работу ПЭВМ. БПО включает в себя:
v операционную систему;
v операционную оболочку;
v сетевую операционную систему.
Операционная система (ОС) предназначена для управления программными и аппаратными средствами ПЭВМ, для обеспечения их взаимодействия между собой и пользователем. ОС выполняет следующие функции:
v управление работой каждого блока ПЭВМ и их взаимодействием;
v управление запуском и выполнением программ;
v организация хранения информации во внешней памяти;
v поддержка пользовательского интерфейса.
Обычно ОС хранится на жестком диске. При включении компьютера ОС автоматически загружается с диска в оперативную память и занимает в ней определенное место в течение всего сеанса работы пользователя с ПЭВМ. Для работы с операционной системой пользователь использует команды ОС или графический интерфейс.
В нашей стране наиболее распространены операционные системы фирмы Microsoft:
v работающая в текстовом режиме (с использованием интерфейса команд) система MS DOS версии 6.22 и 7.0;
v различные версии графической операционной системы Windows – MS Windows 98/NT/2000/XP.
Программы, предназначенные для работы под управлением конкретной ОС, называются приложениями этой ОС. Операционная оболочка – это специальная программа, которая предназначена для облегчения взаимодействия пользователя с ОС.
Наиболее известными операционными оболочками являются:
v Norton Commander;
v Volkov Commander;
v DOS Navigator;
v Far Manager;
v Windows 3/11;
v Windows Commander.
Операционные оболочки бывают графические и текстовые. Например, Norton Commander – оболочка текстового типа, эта система имеет удобное меню, с помощью которого можно выполнять действия, аналогичные командам MS DOS. Примером оболочки графического типа является работающая под управлением MS DOS система MS Windows 3.11, которая имеет графический интерфейс пользователя, может самостоятельно управлять ресурсами ПЭВМ, обеспечивает многозадачный режим работы и может управлять работой как DOS-приложений, так и Windows-приложений.
Сетевая операционная система – это комплекс программ, обеспечивающий обработку, передачу и хранение данных в сети. Сетевая ОС предоставляет пользователям различные виды сетевых служб (управление файлами, электронная почта, процессы управления сетью и др.), поддерживает работу сервера и рабочих станций сети. Примером сетевой ОС является MS Windows NT (New Technology). В настоящее время используются версии MS Windows NT Workstation и MS Windows NT Server.
Рассмотрим подробнее организацию хранения данных во внешней памяти, обеспечиваемую операционной системой. Основными объектами во всех операционных системах являются файлы и каталоги (папки). Совокупность размещенных на диске файлов и папок называется файловой структурой диска. Часть ОС, управляющая размещением и доступом к информации во внешней памяти ПЭВМ, называется файловой системой.
Информация хранится во внешней памяти в виде файлов. Файл – это логически связанная совокупность данных или программ, для размещения которой выделяется именованная область внешней памяти (на жестком диске, CD-ROM/R/RW или дискете). Файл служит учетной единицей информации в операционной системе.
Любые действия с информацией выполняются над файлами: запись на диск, вывод на экран дисплея, ввод с клавиатуры, чтение с диска, выдача на принтер и др. Устройства внешней памяти имеют конкретные имена в операционной системе. Дисководы гибких дисков обозначаются латинскими буквами a и b; накопитель на жестком диске может разбиваться на разделы, которые обозначаются буквами c, d, и т.д. Устройство CD-ROM/RW также обозначается буквой латинского алфавита. Доступом называется процедура связи с устройством внешней памяти и размещенным на нем файлом.
В операционных системах фирмы Microsoft принята иерархическая структура организации хранения файлов. На каждом диске имеется главный, корневой каталог, он создается при форматировании диска. Каталог – это элемент структуры организации хранения файлов на диске, в котором регистрируются файлы и другие каталоги, называемые подкаталогами. Каталог представляет собой специальный файл для регистрации файлов. В ОС MS Windows 98/NT/2000/XP каталоги называются папками.
Каталог, в котором производится работа пользователя в текущий момент времени, называется текущим или активным каталогом. Обращение к файлу производится по его полному имени или по спецификации. Если файл находится в текущем каталоге, то пользователь может обратиться к нему по его полному имени, которое состоит из двух частей:
<имя файла>.<тип файла>.
Имя файла в MS DOS содержит не более 8 символов, в MS Windows – не более 255 символов. Тип файла задается строкой из 3 символов, например
v exe – исполняемая программа;
v doc – документ MS Word;
v xls - документ MS Excel;
v pas – текст программы на языке Паскаль.
Обращение к любому файлу по спецификации файла производится следующим образом:
<имя диска>:\<путь к файлу>\<полное имя файла>.
Путь к файлу – это цепочка соподчиненных каталогов, которую надо пройти по иерархической структуре к каталогу, где зарегистрирован файл. Пример пути показан на рис. 2.6.
Доступ к заданному файлу осуществляется по спецификации: C:\K1\K2\file1.txt.
В операционной системе MS DOS был предусмотрен большой набор команд, с помощью которых можно искать, просматривать, создавать, удалять, переименовывать файлы и каталоги. Эти команды надо было вводить с клавиатуры, что, естественно, неудобно для пользователя. Для того, чтобы облегчить работу в MS DOS, были разработаны операционные оболочки.
В MS Windows имеется встроенный графический интерфейс пользователя, и нет необходимости ввода команд с клавиатуры. Требуемую операцию достаточно выбрать из меню или с помощью значков на экране и активизировать с манипулятором «мышь». Доступ к файлам, папкам и другим ресурсам ПЭВМ осуществляется с помощью стандартных Windows - приложений Мой компьютер и Проводник.
Сервисное ПО является расширением базового ПО и представляет собой набор утилит, дополнительно устанавливаемых на ПЭВМ. Утилиты – это программы, служащие для выполнения вспомогательных операций или обслуживания компьютеров; а именно,
v для диагностики и тестирования аппаратных и программных средств;
v для создания архивов и работы с ними;
v для восстановления разрушенной информации на дисках;
v для защиты компьютера от вирусов.
Инструментарий технологии программирования – это группа программных продуктов, используемых для поддержки разработки ПО; к ним относятся:
средства разработки приложений;
средства разработки информационных систем (инструментарий CASE-технологии).
Средства разработки приложений – это совокупность языков и систем программирования, а также различные программные комплексы для отладки поддержки создаваемых программ.
Инструментарий CASE-технологии – это программный комплекс, автоматизирующий весь технологический процесс анализа, проектирования, разработки и сопровождения информационных систем.[1]
Язык программирования – это формализованный язык для описания решения задач с использованием компьютера. В настоящее время создано и используется большое количество языков программирования. Примерная классификация языков приведена на рис. 2.7.
В приведенной классификации языки программирования различаются уровнем языка. Уровень языка определяется сложностью решения задач с использованием этого языка. Чем проще записывается решение задачи, тем выше уровень языка. На нижних уровнях находятся машинно-зависимые языки, на верхних – машинно-независимые языки. К машинно-зависимым языкам относятся машинные языки, языки ассемблера без макросредств (мнемокоды) и языки ассемблера с макросредствами (макроассемблеры).
Машинный язык включает в себя набор команд, воспринимаемых центральным процессором компьютера конкретного типа. Программирование на машинном языке – это весьма трудоемкий процесс кодирования машинных программ в двоичных кодах.
Машинно-ориентированные языки – мнемокоды и макроассемблеры, дают возможность программирования с использованием символических имен команд и ячеек памяти компьютера, они наиболее полно учитывают особенности компьютера и позволяют получать достаточно эффективные по скорости выполнения программы, но не обеспечивают переносимости программ с ПЭВМ одного типа на ПЭВМ другого типа.
Машинно-независимые языки называются языками высокого уровня; они делятся на процедурные и непроцедурные языки. Процедурные языки – это языки записи алгоритмов, т.е. алгоритмические языки, с помощью которых программист указывает компьютеру, что и как нужно сделать для решения задачи. Среди процедурных языков можно выделить группу универсальных языков программирования: ПЛ/1, Pascal, C/C++, Ada, пригодные для программирования любых задач.
Непроцедурные языки называются проблемно-ориентированными языками; к ним относятся следующие группы языков:
v языки СУБД;
v объектно-ориентированные языки;
v функциональные языки;
v логические языки и
v языки web-программирования.
Одна группа от другой отличается принципами программирования.
Таким образом, рассматриваемая классификация содержит пять уровней языков:
0 – машинные языки;
1 – мнемокоды;
2 – макроассемблеры;
3 – процедурные языки;
4 – непроцедурные языки.
В данном учебном пособии внимание сосредоточено на языках высокого уровня. Программа на языке высокого уровня записывается в виде текста, понятного программисту, и затем должна быть переведена на машинный язык с помощью специальной программы-транслятора, входящего в состав системы программирования для данного языка.
Система программирования (СП) – это набор взаимосвязанных программ, предназначенных для поддержки разработки программного обеспечения на конкретном языке высокого уровня и включающий в себя следующие компоненты:
v экранный редактор для создания исходных текстов программ;
v транслятор, осуществляющий перевод программы с языка высокого уровня на машинный язык;
v редактор связей (компоновщик), создающий загрузочный модуль программы, готовый к выполнению на ПЭВМ;
v программу загрузки выполняемой программы пользователя;
v средства отладки;
v библиотеки стандартных подпрограмм; и вспомогательные средства (утилиты).
Системы программирования можно разделить на встроенные и самостоятельные. Самостоятельные СП являются приложениями ОС и работают под управлением конкретной ОС, например, СП Borland Pascal 7.0, система Delphi и Borland C++ Builder. Встроенные СП являются составной частью другого пакета, например, СП Visual Basic for Applications встроена в пакет MS Office.
Трансляторы, входящие в состав СП, могут быть двух типов: компиляторы и интерпретаторы.
Компилятор переводит программу с исходного языка на машинный и строит сохраняемый объектный модуль, который состоит из нескольких частей, и затем обрабатывается редактором связей. Общая схема функционирования СП с компиляцией показана на рис. 2.8.
Библиотеки стандартных подпрограмм
| |
Интерпретатор переводит исходную программу в промежуточную форму и выполняет ее с помощью подпрограмм, входящих в его состав. Промежуточная форма не сохраняется.
Редактор связей[2] выполняет сборку исполняемой программы из объектных модулей и библиотечных подпрограмм и создает загрузочный модуль программы, который может быть помещен в оперативную память и выполнен на ПЭВМ.
Рассмотрим последний класс программного обеспечения ПЭВМ – пакеты прикладных программ (ППП). ППП разрабатываются для автоматизации работы в конкретных областях человеческой деятельности и включают в себя следующие типы программных продуктов:
текстовые процессоры;
табличные процессоры;
системы управления базами данных;
графические редакторы;
средства создания презентаций;
средства для работы с web – документами;
математические пакеты и др.
Основы алгоритмизации
Этапы разработки программ
Разработка программ включает в себя следующие этапы:
1. Анализ и уточнение требований, предъявляемых к программе. Иногда этот этап называют постановкой задачи.
2. Проектирование алгоритма и выбор структур данных (или алгоритмизация).
3. Программирование и отладка.
4. Тестирование программы.
5. Документирование, подготовка инструкции для пользователя программы.
Первые два этапа являются определяющими этапами разработки программного обеспечения. Этап анализа и уточнения требований, предъявляемых к программе – необходимый и весьма ответственный этап , который осуществляется совместно пользователем (заказчиком) программы и ее разработчиком. На этом этапе на основе требований заказчика уточняются три основных момента:
· исходные данные программы: формат данных, источник и порядок ввода, объем исходных данных и ограничения на их значения;
· выходные данные программы: содержание, формат и порядок вывода, возможный объем исходных данных, заголовки и предполагаемые ограничения на их значения;
· аварийные ситуации при вводе и обработке данных и действия пользователя, предусматриваемые при их возникновении.
На этапе анализа и уточнения требований создается более полное, уточненное описание задачи, называемое спецификацией задачи. Спецификация задачи – это очень важный документ, который является техническим заданием на разработку программы и частью соглашения (договора) между разработчиком программного обеспечения и заказчиком.
В спецификации задачи выделяют две ее части:
· функциональную спецификацию;
· эксплуатационную спецификацию.
Функциональная спецификация описывает объекты, относящиеся к задаче: разбиение на предполагаемые подзадачи, их входные и выходные данные, связи между ними, реакции на аварийные ситуации.
Эксплуатационная спецификация содержит требования к скорости работы программы и используемым ресурсам памяти, характеристикам и конфигурации ЭВМ, на которой должна работать программа, и специальные требования к надежности и безопасности ее работы.
На втором этапе разработки программного обеспечения проектируется алгоритм решения задачи в соответствии с заданной спецификацией, формируется общая структура программы, определяются компоненты и их входные и выходные параметры.
Основным подходом к проектированию структуры программы является нисходящее проектирование или пошаговое уточнение. Этот подход заключается в том, что программа первоначально рассматривается как «черный ящик», который выполняет некоторую функцию F, преобразующую единственные входные данные в единственные выходные данные. Это общая функция F может быть разделена на ряд более простых подфункций F1, F2,…, Fk. Каждая из этих функций сама по себе представляет такой же «черный ящик».
Процесс разбиения завершается тогда, когда любая из определенных функций может быть описана с помощью простых базовых операций и управляющих структур алгоритмов.[3] В процессе проектирования формируется структура задачи в виде дерева подзадач (подфункций) (См. рис. 3.1).
Эта иерархическая структура задачи определяет структур компонент создаваемой программы. Компонента программы называется подпрограммой. В случае, если задача является сложной, целесообразно программу разделить на компоненты, одна из которых будет главной и организующей вычислительный процесс, а другие компоненты будут подпрограммами, которые будут выполняться в порядке, соответствующем алгоритму. Программы, выполняющие относительно простые задачи, могут не содержать подпрограмм.
Результатом данного этапа разработки является формализованное описание алгоритма или проект программы. Формы представления алгоритмов рассмотрены в п. 3.2.
Третьим этапом разработки программы является программирование и отладка. На этом этапе алгоритм записывается на языке программирования высокого уровня, и производится отладка программы с помощью соответствующей системы программирования (транслятора данного языка). Во время отладки исправляются обнаруженные в тексте программы ошибки. Результатом отладки является текст программы, не содержащей ошибок и выполненной хотя бы один раз на ПЭВМ. Таким образом, создается работоспособная программа.
На этапе тестирования программы выполняется проверка правильности работы программы с использованием заранее подготовленных тестов. Тест – это набор исходных данных и соответствующих им результатов, которые должна выдавать программа при обработке этих исходных данных. Для сложных задач составление тестов является весьма трудоемкой работой, включающей ручные расчеты или использование других программ-аналогов.
При обнаружении неправильных результатов на этапе тестирования происходит возврат на предыдущие этапы разработки программы. Результатом тестирования является окончательная версия программы и документация о результатах выполнения тестов.
Последний этап разработки ПО – подготовка пользовательской документации, состав которой определяется заказчиком. Обычно документация для пользователя включает в себя:
описание применения, которое содержит сведения о назначении программы, требования к техническим и программным средствам ЭВМ, состав и функции программы, применяемые математические алгоритмы;
руководство пользователя, в котором описаны входные и выходные данные, способы запуска программы, режимы работы, дан перечень сообщений и описана реакция пользователя на каждое сообщение.
|