Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Модуль 3.
СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ КОМПЬЮТЕРА
[1] Лекция 1. Классификация и основные характеристики программных продуктов [2] Содержание лекции [2.1] Классификация программных продуктов [2.1.1] Системное программное обеспечение [2.1.2] Сервисное программное обеспечение [2.1.2.1] Антивирусные программы [2.1.3] Пакеты прикладных программ [2.1.3.1] Проблемно-ориентированные ППП [2.1.3.2] ППП автоматизированного проектирования [2.1.3.3] ППП общего назначения [2.1.3.4] Методо-ориентированные ППП [2.1.3.5] Офисные ППП [2.1.3.6] Настольные издательские системы [2.1.3.7] Программные средства мультимедиа [2.1.3.8] Системы искусственного интеллекта
[2.1.4] [2.1.4.1] Состав и назначение инструментария технологии программирования [2.1.4.2] Средства для создания приложений [2.1.4.3] CASE-технология создания информационных систем [2.2] Основные характеристики программного продукта [2.2.1] Процесс создания программы [2.2.1.1] Постановка задачи [2.2.2] Алгоритм и его свойства [2.2.3] Способы записи алгоритма [2.2.4] Правила построения блок-схем [2.2.5] Программирование [2.3] Специалисты, занятые разработкой и эксплуатацией программ |
Программное обеспечение неотъемлемая часть компьютера, являющаяся логическим продолжением технических средств.
Программы, в зависимости от функционального применения, можно условно разделить по категориям или классам. Выделяют три основных класса программных продуктов (см. схему рис. 3.1):
Рис. 3.1. Классы программных продуктов
Системное программное обеспечение (System Software) - совокупность программ и программных комплексов, определяющих работоспособность компьютера и сетей ЭВМ. Системные программы обеспечивают:
создание операционной среды функционирования других программ;
обеспечение надежной и эффективной работы самого компьютера и вычислительной сети;
проведение диагностики и профилактики аппаратуры компьютера и вычислительных сетей;
выполнение вспомогательных технологических процессов (копирование, архивирование и восстановление файлов программ и баз данных и т.д.)
Данный класс программных продуктов тесно связан с типом компьютера и является его неотъемлемой частью. Программные продукты в основном ориентированы на квалифицированных пользователей - профессионалов в компьютерной области: системного программиста, администратора сети, прикладного программиста, оператора. Однако знание базовой технологии работы с этим классом программных продуктов требуется и конечным пользователям персонального компьютера, которые самостоятельно не только работают со своими программами, но и выполняют обслуживание компьютера, программ и данных.
Программные продукты системного класса имеют общие предметные области применения, независимо от специфики. К ним предъявляются высокие требования по надежности и технологичности работы, удобству и эффективности использования.
Пакеты прикладных программ (application program package) - комплекс взаимосвязанных программ для решения задач определенного класса конкретной предметной области. Они служат программным инструментарием решения функциональных задач и являются самым многочисленным классом программных продуктов. В данный класс входят программные продукты, выполняющие обработку информации различных предметных областей.
Установка программных продуктов на компьютер выполняется квалифицированными пользователями, а непосредственную их эксплуатацию осуществляют, как правило, конечные пользователи - потребители информации. Деятельность конечных пользователей, во многих случаях, весьма далека от компьютерной области (бухгалтерия, контроль участков на производстве, дизайн, поиск по базам данных и пр.), поэтому программные продукты прикладного класса могут быть весьма специфичными для отдельных предметных областей.
Инструментарий технологии программирования - совокупность программ и программных комплексов, обеспечивающих технологию разработки, отладки и внедрения создаваемых программных продуктов. Инструментарий включает специализированные программные продукты, которые являются профессиональными средствами разработчика. Программные продукты данного класса поддерживают все технологические этапы процесса проектирования, программирования (кодирования), отладки и тестирования создаваемых программ. Пользователями этого класса программных продуктов являются системные и прикладные программисты.
На рис.3.2 представлена структура системного программного обеспечения - базового программного обеспечения, которое, как правило, поставляется вместе с компьютером, и сервисного программного обеспечения, которое может быть приобретено дополнительно.
Базовое программное обеспечение (base software) - минимальный набор программных средств, обеспечивающих работу компьютера.
Сервисное программное обеспечение - программы и программные комплексы, которые расширяют возможности базового программного обеспечения и организуют более удобную среду работы пользователя.
В базовое программное обеспечение входят:
операционная система (ОС);
операционные оболочки (текстовые и графические).
Рис. 3.2. Классификация системного программного обеспечения компьютера
Основную часть системного программного обеспечения составляют операционные системы.
Операционная система совокупность программных средств, обеспечивающих управление аппаратной частью компьютера и прикладными программами, а также их взаимодействие между собой и пользователем. Иными словами, операционные системы обеспечивают работоспособность ПК, взаимодействие всех его частей и интерфейс с пользователем.
Пользовательский интерфейс (interface средства взаимодействия, связи, согласования) методы и средства взаимодействия человека с аппаратными и программными средствами.
Операционная система обычно хранится во внешней памяти компьютера на диске. При включении компьютера она считывается с дисковой памяти и размещается в оперативной памяти. Этот процесс называется загрузкой операционной системы.
Операционные системы классифицируются:
Главным отличием многопользовательских систем от однопользовательских является наличие средств защиты информации каждого пользователя от несанкционированного доступа других пользователей.
В многозадачном режиме каждой задаче (программе, приложению) поочередно выделяется какая-то доля процессорного времени. Поскольку процесс переключения идет очень быстро, а выделяемые задачам доли процессорного времени достаточно малы, то для пользователя создается впечатление одновременного выполнения нескольких задач. Например, можно одновременно запустить на счет математическую систему, включить принтер для печати текста, вести поиск вирусов и раскладывать пасьянс заметить замедление работы компьютера будет практически невозможно.
Традиционно, сравнение ОС осуществляется по следующим характеристикам процесса обработки информации:
В настоящее время большинство компьютеров в мире работают под управлением какой-либо версии операционной системы Windows фирмы Microsoft. Рассмотрим наиболее распространенные версии.
Первая операционная система для персональных компьютеров, MS-DOS, появилась в 1981 г. Все программы MS-DOS хранятся на магнитных дисках, поэтому она называется дисковой операционной системой (Disk Operation System). Буквы MS являются сокращением названия фирмы-разработчика Microsoft. Начиная с 1996 г. MS-DOS распространяется в виде Windows 95 32-разрядной многозадачной и многопоточной операционной системы с графическим интерфейсом и расширенными сетевыми возможностями.
Операционная система Windows 98, преемница Windows 95, объединена с браузером Internet Explorer посредством интерфейса, выполненного в виде Web-браузера и оснащенного кнопками "Назад" и "Вперед" для перехода на предыдущую и последующую Web-страницы. Кроме этого, в ней улучшена совместимость с новыми аппаратными средствами компьютера, она одинаково удобна как для использования на настольных, так и на портативных компьютерах.
Windows NT 32-разрядная ОС со встроенной сетевой поддержкой и развитыми многопользовательскими средствами. Она предоставляет пользователям истинную многозадачность, многопроцессорную поддержку, секретность, защиту данных и многое другое. Эта операционная система очень удобна для пользователей, работающих в рамках локальной сети, для коллективных пользователей, особенно для групп, работающих над большими проектами и обменивающихся данными.
Windows 2000 Professional операционная система нового поколения для делового использования на самых разнообразных компьютерах от портативных до серверов. Эта ОС является наилучшей для ведения коммерческой деятельности в Интернете. Она объединяет присущую Windows 98 простоту использования в Интернете с надежностью, экономичностью и безопасностью Windows NT.
На сегодняшний день широкое распространение уже получила следующая версия Windows XP. Об операционной системе Windows XP будет рассказано несколько позже.
Перспективной является многопользовательская и многозадачная операционная система Unix, созданная корпорацией Bell Laboratory. Данная ОС реализует принцип открытых систем и широкие возможности по комплексированию в составе одной вычислительной системы разнородных технических и программных средств.
Unix получила распространение для суперкомпьютеров, рабочих станций и профессиональных компьютеров, имеет большое количество версий, разработанных различными фирмами. Согласно прогнозу, объем мирового рынка вычислительных систем, базирующихся на ОС Unix, будет существенно возрастать, особенно с переходом к сетевым технологиям.
Linux свободно распространяемая версия операционной системы UNIX. В ней не используется никаких частей программного обеспечения, принадлежащих каким-либо коммерческим организациям. По этой причине она получила достаточно широкое распространение. Первая версия ОС Linux была разработана в 1991 году Т. Линусом (Финляндия), а затем в ее разработке участвовало большое число людей из разных частей мира. Последние версии являются результатом коллективного творчества большого числа программистов.
Сетевые операционные системы комплекс программ, обеспечивающий обработку, передачу и хранение данных в сети. Сетевая ОС предоставляет пользователям различные виды сетевых служб (управление файлами, электронная почта, процессы управления сетью и др.), поддерживает работу в абонентских системах. Наибольшее распространение имеют Novell NetWare, Windows NT/2000.
Они оцениваются по комплексу критериев: производительность, разнообразие возможностей связи пользователей, возможности администрирования.
Операционные оболочки - специальные программы, предназначенные для общения пользователя с командами операционной системы. Операционные оболочки имеют текстовый и графический варианты интерфейса конечного пользователя.
Наиболее популярны следующие виды текстовых оболочек операционной системы MS-DOS:
Norton Commander;
Norton Navigator:
Far.
Эти программы существенно упрощают задание управляющей информации для выполнения команд операционной системы, уменьшают напряженность и сложность работы конечного пользователя.
В настоящее время операционные оболочки встраиваются в операционные системы. Они имеют графический интерфейс, расширяют набор основных и сервисных функций.
Расширением базового программного обеспечения компьютера является набор сервисных, дополнительно устанавливаемых программ, которые можно классифицировать по функциональному принципу следующим образом:
программы диагностики работоспособности компьютера позволяют проверить конфигурацию компьютера и работоспособность его устройств;
антивирусные программы предназначены для предотвращения заражения компьютерным вирусом и ликвидации последствий заражения;
программы обслуживания дисков имеют несколько разновидностей:
программы, обеспечивающие проверку качества поверхности магнитного диска;
программы для оптимизации дисков, позволяющие обеспечить более быстрый доступ к информации на диске за счет оптимизации размещения данных на нём;
программы динамического сжатия дисков, создающие псевдодиски, информация которых хранится в сжатом виде в виде файлов на обычных (настоящих) дисках компьютера, что позволяет хранить на дисках больше данных;
программы-кэши для диска, ускоряющие доступ к информации на дисках путем организации в оперативной памяти кэш-буфера, содержащего наиболее часто используемые участки диска;
программы создания страховых копий диска и т.д;
программы архивирования данных позволяют за счет применения специальных методов «упаковки» информации сжимать информацию на дисках, т.е. создавать копии файлов меньшего размера, а также объединять копии нескольких файлов в один файл;
программы обслуживания сети.
Эти программы часто называют утилитами. Подобные утилиты включаются и в состав операционных систем.
Антивирусные программы
Вирус это программа, которая стремится внедриться в другие программы, и при этом размножается. Обычно она бывает вредоносной, т.е. при запуске выполняет нежелательные действия вплоть до удаления всей информации с компьютера. Вирус попадает в компьютер вместе с копированием зараженного файла.
Пользователи должны знать основные меры по защите ЭВМ от заражения вирусами, а именно:
Антивирусная программа это программа, которая может обнаружить файл, содержащий вирус, и, в большинстве случаев, «вылечить» этот файл, т.е. без потери данных удалить вирус из файла. Такие программы обычно работают в двух режимах: монитора и сканера.
При работе в режиме монитора такая программа постоянно отслеживает все действия и проверяет, пользователь или вирус совершает эти действия. Также она может автоматически запускать проверку на наличие вирусов при попытке копирования информации с дискеты. При работе в режиме сканера программу должен запустить сам пользователь (рис. 3.3).
Рис. 3.3. Пример окна запуска антивирусной программы
В России наиболее популярны антивирусные программы:
Данный класс программных средств (ППП) наиболее представителен, что обусловлено, прежде всего, широким применением средств компьютерной техники во всех сферах деятельности человека.
Примерная классификация прикладного программного обеспечения представлена на рис. 3.4.
Рис. 3.4. Классификация пакетов прикладных программ
Проблемно-ориентированные ППП
Для некоторых предметных областей возможна типизация функций управления, структуры данных и алгоритмов обработки. Это привело к разработке значительного числа ППП одинакового функционального назначения и, таким образом, создало рынок программных продуктов:
ППП автоматизированного бухгалтерского учета;
ППП финансовой деятельности;
ППП управления персоналом (кадровый учет);
ППП управления производством и т.п.
Примером такого ППП, автоматизирующего бухгалтерский учет, является «1С: Бухгалтерия».
Для подобного класса программ высоки требования к оперативности обработки данных, велики объемы хранимой информации, что обусловливает повышение требований к средствам администрирования БД.
Наиболее важно для данного класса программных продуктов создание дружественного интерфейса для конечных пользователей.
ППП автоматизированного проектирования
Программы этого класса предназначены для конструкторов и технологов, деятельность которых связана с разработкой чертежей, схем, диаграмм, графическим моделированием и конструированием, созданием библиотеки стандартных элементов чертежей и их многократным использованием, созданием демонстрационных иллюстраций и мультфильмов.
Эти системы еще называют САПР - системами автоматизированного проектирования. Этому термину соответствует английская аббревиатура CAD Computer-Aided Design. Эти три буквы входят в названия многих программ, предназначенных для конструирования, черчения, трехмерного моделирования объемных объектов и оформления инженерной документации, например: P-CAD, OrCAD, ArchiCAD, AutoCAD.
P-CAD и OrCAD предназначены для проектирования радиоэлектронных изделий, начиная от составления принципиальной схемы и вплоть до подготовки документации на разработанное устройство.
Программа AutoCad фирмы AutoDesk является лидером среди инженерных графических пакетов.
Проектирование в таких системах является автоматизированным (в отличие от автоматического) и осуществляется под непосредственным контролем оператора (пользователя), чаще всего в форме диалога. Такой режим работы называется интерактивным режимом.
САПР не только облегчают процесс создания и описания новых объектов, но и являются удобными справочниками, которые позволяют пользователям накапливать и хранить информацию. Например, в базах машиностроительных САПР содержатся подробные сведения о болтах, гайках, винтах, штифтах, шайбах и т.п.
Наиболее широко САПР используются в электронике, электротехнике, архитектуре, строительстве, машиностроении, автомобилестроении, нефтехимической промышленности, аэрокосмической технике.
ППП общего назначения
Данный класс содержит широкий перечень программных продуктов, поддерживающих преимущественно информационные технологии конечных пользователей. Кроме конечных пользователей, этими программными продуктами за счет встроенных средств технологии программирования могут пользоваться и программисты для создания усложненных программ обработки данных.
Представители данного класса программных продуктов:
1. Системы управления базами данных (СУБД) позволяют управлять большими информационными массивами - базами данных. Простейшие СУБД позволяют обрабатывать на компьютере один массив информации, например, персональную картотеку. Более сложные СУБД поддерживают несколько массивов информации и сваи между ними, т.е. могут использоваться для задач, в которых участвует много различных видов объектов, связанных друг с другом различными соотношениями. Обычно эти СУБД включают средства программирования, но многие из них удобны и для интерактивного применения. Так, весьма мощны и довольно удобны в использовании СУБД DataEase, Paradox. При необходимости разработки небольших информационных систем часто применяются Microsoft Access, FoxPro, Clarion и др. Для создания больших многопользовательских информационных систем лучше подходят СУБД типа клиент-сервер. В них сама база данных располагается на мощном компьютере - сервере, который выполняет полученные от других компьютеров - клиентов запросы на получение той или иной информации из базы данных или осуществление определённых манипуляций с данными. Среди таких СУБД широко используется Oracle, Microsoft SQL Server, Sybase SQL Server, Informix и др.
2. Текстовые процессоры (редакторы документов) - это наиболее широко используемый вид прикладных программ. Они позволяют подготавливать документы гораздо быстрее и удобнее, чем с помощью пишущей машинки. Возможно использование различных шрифтов символов, абзацев произвольной формы, автоматического переноса слов на новую строку; оформление сносок, включение рисунков; использование автоматической нумерации страниц и т.д. Наиболее мощные текстовые процессоры позволяют проверять правописание, набирать тексты в несколько столбцов, создавать таблицы и диаграммы, строить оглавления, предметные указатели и т.д. Современные текстовые редакторы имеют возможность отмены некоторого числа ошибочно выполненных операций, такой режим называется откатом.
В качестве примера такой системы в рамках курса будет предложено изучение текстового процессора Word фирмы Microsoft.
3. Графические редакторы позволяют создавать и редактировать рисунки. В простейших редакторах предоставляются возможности рисования линий, кривых, раскраски областей экрана, создания надписей различными шрифтами. Такой редактор входит в состав Windows (Paint).
Современные графические редакторы снабжены набором инструментов для инвертирования, зеркального отображения, ретуширования изображения, формирования текстовых сообщений, имитации различных манер живописи, изменения яркости и контрастности, создания иллюзии движения и др.
Все графические редакторы можно условно разделить на два класса: растровые и векторные.
В растровых редакторах изображение строится на растре маленьких по величине квадратиков (пикселей). Растровая графика получается в результате сканирования фотографий, иллюстраций, в результате съемки с помощью цифрового фотоаппарата или цифровой видеокамеры.
В редакторах, ориентированных на обработку фотоизображений (например, Aldus Photostyler), можно обрабатывать изображения большого размера, в них имеются средства для настройки яркости и контрастности изображения или отдельных его частей, применения несложных цветовых эффектов и т.д. В профессиональных редакторах типа Adobe Photoshop, рассчитанных на создание художественных растровых изображений, имеется и множество других изобразительных средств.
Весьма популярны редакторы объектной (векторной) графики типа Corel Draw. Они работают с изображением, состоящим не из цветных точек, а из различных объектов линий, букв и т.д. Векторы представляют собой математическое описание объектов (например, для прямой линии задаются координаты двух точек, для круга координаты центра и радиус).
При использовании векторной графики запоминается математическая формула объекта, поэтому файлы с векторным изображением занимают значительно меньше места в памяти (десятки Кбайт). Изменение масштаба не приводит к искажениям.
Динамическое изображение создают с помощью редакторов 3D Studio MAX, Corel Draw, Animator Pro. С помощью этих редакторов трёхмерные объекты любой формы можно подвергать деформациям изгиба, кручения и сдвига.
4. Табличные процессоры удобная среда для вычислений силами конечного пользователя. При работе с табличным процессором на экран выводится прямоугольная таблица, в клетках которой могут находиться числа, пояснительные тексты и формулы для расчета значения в клетке по имеющимся данным. Все распространенные табличные процессоры позволяют вычислять значения элементов таблиц по заданным формулам, строить по данным в таблице различные графики и т.д. Современные табличные процессоры поддерживают трехмерные таблицы, позволяют создавать собственные входные и выходные формы (например, печатать платежные поручения или бухгалтерские балансы установленной формы), включать в таблицы рисунки, использовать средства автоматизации макрокоманды, работать с базами данных и т.д. Кроме того, имеется много возможностей декоративного характера включение звуковых эффектов, создание слайд-шоу и т.д.
Наибольшей популярностью в настоящее время пользуется Microsoft Excel, который и будет в дальнейшем подробно изучен в рамках этого курса.
Другие известные представители этого класса систем: Quattro Pro for Windows, Lotus 1-2-3 for Windows.
5. Средства презентационной графики - специализированные программы, предназначенные для создания изображений и показа их на экране, подготовки слайд-фильмов, мультфильмов, видеофильмов, их редактирования, определения порядка следования изображений.
Для работы этих программ также необходимо специализированное оборудование жидкокристаллическая проекционная панель, которая просвечивается проектором для вывода изображения на экран, видеотехника.
Примерами таких программ являются PowerPoint фирмы Microsoft, Freelance Graphics фирмы Lotus, Autodesk Animator Pro и др.
6. Интегрированные пакеты набор нескольких программных продуктов, функционально дополняющих друг друга, поддерживающих единые информационные технологии, реализованные на общей вычислительной и операционной платформе.
Наиболее распространены интегрированные пакеты, компонентами которых являются: СУБД, текстовый редактор (процессор), табличный процессор, органайзер, средства поддержки электронной почты, программы создания презентаций, графический редактор.
Компоненты интегрированных пакетов могут работать изолированно друг от друга, но основные достоинства интегрированных пакетов проявляются при их разумном сочетании друг с другом. Пользователи интегрированных пакетов имеют унифицированный для различных компонентов интерфейс, тем самым обеспечивается относительная легкость их освоения. Яркий пример такого интегрированного пакета Microsoft Office 2003.
К отличительным особенностям этого класса программных средств можно отнести:
Посмотреть, какие программы установлены на вашем компьютере можно, вызвав меню Пуск, а затем подменю Все программы, как показано на рис. 3.5.
Рис. 3.5 Пример подменю Все программы
Методо-ориентированные ППП
Данный класс включает программные продукты, обеспечивающие независимо от предметной области и функций информационных систем математические, статистические и другие методы решения задач. Наиболее распространены методы математического программирования, решения дифференциальных уравнений, имитационного моделирования, исследования операций. Примерами таких пакетов могут служить пакет обработки статистической информации StatGraphics и математический пакет Mathematica.
Офисные ППП
Данный класс программных продуктов охватывает программы, обеспечивающие организационное управление деятельностью офиса.
1. Органайзеры (планировщики) - программное обеспечение для планирования рабочего времени, составления протоколов встреч, расписаний, ведения записной и телефонной книжки. В состав программ органайзеров входят: калькулятор, записная книжка, часы, календарь и т.д.
2. Программыпереводчики, средства проверки орфографии и распознавания текста включают:
Примером такого пакета может служить ППП Stylus Lingvo Office, реализующий весь цикл «от листа до листа». С помощью сканера осуществляется считывание текстового изображения, находящегося на печатном листе; FineReader осуществляет распознавание графических образов и запись считанной информации в текстовом виде; Stylus for Windows выполняет перевод на указанный язык; корректор орфографии Lingvo Corrector и резидентный словарь Lingvo осуществляют проверку и правку. Результат перевода представляется в формате текстового редактора Word for Windows.
3. Коммуникационные ППП предназначены для организации взаимодействия пользователя с удаленными абонентами или информационными ресурсами сети. ( Пример такого ППП - Norton pcANYWHERE).
Настольные издательские системы
Данный класс программ включает программы, обеспечивающие информационную технологию компьютерной издательской деятельности:
форматирование и редактирование текстов;
автоматическую разбивку текста на страницы;
создание заголовков;
компьютерную верстку печатной страницы;
монтирование графики;
подготовку иллюстраций и т.д.
ППП Adobe Page Maker обеспечивает подготовку многостраничных цветных публикаций, гибкий дизайн страниц, высококачественную печать, расширенные возможности по верстке, разработаны и включены новые цветовые библиотеки, разработаны новые технологии, которые расширяют цветовую гамму традиционной офсетной печати.
Программные средства мультимедиа
Этот класс программных продуктов является относительно новым, он сформировался в связи с изменением среды обработки данных, появлением лазерных дисков высокой плотности записи с хорошими параметрами по доступным ценам, расширением состава периферийного оборудования, подключаемого к персональному компьютеру, развитием сетевой технологии обработки, появлением региональных и глобальных информационных сетей, располагающих мощными информационными ресурсами. Основное назначение программных продуктов мультимедиа - создание и использование аудио- и видеоинформации для расширения информационного пространства пользователя.
Программные продукты мультимедиа заняли лидирующее положение на рынке в сфере библиотечного информационного обслуживания, в процессе обучения, при организации досуга. Базы данных компьютерных изображений произведений искусства, библиотеки звуковых записей будут составлять основу для прикладных обучающих систем, компьютерных игр, библиотечных каталогов и фондов.
Некоторые продукты мультимедиа: Домашняя энциклопедия здоровья, Энциклопедия школьника (Кирилл и Мефодий), ART История искусств, Midi Music Shop музыкальный магазин, обучающие программы (English Gold, Правила дорожного движения и т.п.).
Мультимедийный отечественный лазерный диск «Большой энциклопедический словарь» содержит 85000 статей. Известные аналогичные издания за рубежом: Encarta, Comptons, Grolier.
Системы искусственного интеллекта
Данный класс программных продуктов реализует отдельные функции интеллекта человека. Основными компонентами систем искусственного интеллекта являются база знаний, интеллектуальный интерфейс с пользователем и программа формирования логических выводов. На идеях искусственного интеллекта построены экспертные системы (ЭС).
ЭС это интеллектуальная вычислительная система, в которую включены знания экспертов в определённой предметной области (финансы, медицина, право, геология, страхование и т.д.). ЭС позволяет накапливать, систематизировать и сохранять знания и опыт, которые могут быть использованы на практике неограниченное число раз. ЭС имитируют процесс принятия решения людьми (определение диагноза, рекомендация, совет или предположение).
В качестве примера кратко рассмотрим порядок работы медицинской ЭС Интернист (INTERNIST), которая диагностирует несколько сотен болезней. Для каждой болезни экспертами (опытными врачами) занесены в базу знаний характерные наборы симптомов. Пользователь (пациент или молодой врач) вводит конкретные симптомы неизвестной болезни, а ЭС по наибольшему числу совпадений определяет диагноз.
В медицине применяются также портативные ЭС, которые с помощью специальных датчиков могут контролировать состояние пациента и при необходимости автоматически вызывать ему неотложную помощь.
Экспертная система MYCIN (разработана Станфордским университетом) одна из первых и наиболее известных ЭС, предназначена для диагностики инфекционных заболеваний. Другая известная ЭС - РROSPECTOR помогает геологам в поиске новых полезных ископаемых. Система АВТАНТЕСТ определяет основные свойства личности по результатам психодиагностического тестирования. Система WILLARD разработана для определения прогноза погоды.
В группу программных средств искусственного интеллекта входят и так называемые «оболочки» (shells) «пустые» версии ЭС, т.е. готовые экспертные системы без базы знаний. Например, EMYCIN (Empty MYCIN пустой MYCIN), LOTA.
Состав и назначение инструментария технологии программирования
В настоящее время бурно развивается направление, связанное с технологией создания программных продуктов. Это обусловлено переходом на промышленную технологию производства программ, стремлением к сокращению сроков, трудовых и материальных затрат на производство и эксплуатацию программ; для обеспечения гарантированного уровня их качества. Это направление часто называют программотехникой. Программотехника (software engineering) - технология разработки, отладки, верификации и внедрения программного обеспечения.
Инструментарий технологии программирования - программные продукты поддержки (обеспечения) технологии программирования.
Сформировались следующие группы программных продуктов (см. рис. 3.6):
средства для создания приложений, включающие:
локальные средства, обеспечивающие выполнение отдельных работ по созданию программ;
интегрированные среды разработчиков программ, обеспечивающие выполнение комплекса взаимосвязанных работ по созданию программ;
CASE-технология (Computer-Aided System Engineering), представляющая методы анализа, проектирования и создания программных систем и предназначенная для автоматизации процессов разработки и реализации информационных систем.
Рис. 3.6. Классификация инструментария технологии программирования
Средства для создания приложений
Локальные средства для разработки программ. Эти средства на рынке программных продуктов наиболее представительны и включают языки и системы программирования, а также инструментальную среду пользователя.
Язык программирования - формализованный язык для описания алгоритма решения задачи на компьютере.
Средства для создания приложений - совокупность языков и систем программирования, а также различные программные комплексы для отладки и поддержки создаваемых программ.
Языки программирования, если в качестве признака классификации взять синтаксис образования его конструкций, можно условно разделить на классы:
машинные языки (computer language) - языки программирования, воспринимаемые аппаратной частью компьютера (машинные коды);
машинно-ориентированные языки (computer-oriented language) - языки программирования, которые отражают структуру конкретного типа компьютера (ассемблеры);
алгоритмические языки (algorithmic language) - не зависящие от архитектуры компьютера языки программирования для отражения структуры алгоритма (Паскаль, Фортран, Бейсик и др.);
проблемно-ориентированные языки (universal programming language) - языки программирования для решения задач определенного класса (Лисп, Java и др.);
интегрированные системы программирования.
Другой классификацией языков программирования является их деление на языки, ориентированные на реализацию основ структурного программирования, и объектно-ориентированные языки, поддерживающие понятие объектов, их свойств и методов обработки.
Язык машинных кодов в настоящее время практически не используется из-за громоздкости программ и трудоемкости программирования.
Язык ассемблера, по существу, аналогичен машинному языку компьютера, но он представлен в форме, более понятной людям. Важнейший момент языка ассемблера состоит в том, что программист записывает отдельные подробнейшие инструкции по выполнению программы. Разработка программы на этом языке оказывается длительным и утомительным процессом. Однако полученные программы отличаются высокой эффективностью: они короче и быстрее. Кроме того, программист может дать компьютеру команду на выполнение более узких, специфичных действий, а другие языки (кроме машинных кодов) не позволяют программистам использовать все возможности компьютера. Этот язык в настоящее время в основном используется для написания драйверов - программ управления устройствами (в основном это драйверы нестандартных устройств, т.к. драйверы стандартных устройств включены в состав операционных систем).
Языки высокого уровня (ЯВУ) лишены громоздкости языка машинных кодов и менее подвержены ошибкам языка ассемблера. ЯВУ содержат специальные программы трансляторы (компиляторы), которые переводят программу, написанную на языке высокого уровня, на язык машинных команд, понятный компьютеру. Языки высокого уровня реализуют две идеи: объединение многих машинных команд в одну команду (оператор программы) и устранение некоторых тонких деталей, которые влияют на работу компьютера, - это не относится к задаче программиста (например, адреса ячеек оперативной памяти, назначение регистров и т.п.).
В настоящее время предпочтение отдаётся таким языкам, как DELPHI (основан на языке Паскаль), С++ Builder, Visual C (основаны на языке С), Visual Basic (основа - язык Бейсик).
Программа, подготовленная на языке высокого уровня, проходит:
Трансляция может выполняться с использованием средств компиляторов (compiler) или интерпретаторов (interpreter). Компиляторы транслируют всю программу, но без ее выполнения. Интерпретаторы, в отличие от компиляторов, выполняют пооператорную обработку и выполнение всей программы.
Существуют специальные программы, предназначенные для трассировки и анализа выполнения программ, так называемые отладчики (debugger). Лучшие отладчики позволяют осуществить трассировку (отслеживание выполнения программы в пооператорном варианте), идентификацию места и вида ошибок в программе, «наблюдение» за изменением значений переменных, выражений и т.п.
Системы программирования (programming system) включают:
компилятор;
интегрированную среду обработки, включающую текстовый редактор для ввода и корректировки программ;
отладчик;
средства оптимизации кода программы;
набор библиотек (возможно с исходными текстами программ);
редактор связей;
сервисные средства (утилиты) для работы с библиотеками, текстовыми и двоичными файлами;
справочные системы;
документатор исходного кода программы;
систему поддержки и управления проектом программного комплекса (осуществляет отслеживание изменений, выполненных разработчиками программы, поддержку версий программы с автоматической разноской изменений, получение статистики о ходе работ проекта);
Примером такой системы программирования может служить система Турбо Паскаль американской фирмы Borland.
Инструментальная среда пользователя представлена специальными средствами, встроенными в пакеты прикладных программ, такими как:
библиотека функций, процедур, объектов и методов обработки;
макрокоманды;
языковые макросы;
программные модули-вставки;
генераторы приложений;
языки запросов высокого уровня и т.п.
Интегрированные среды разработки программ являются дальнейшим развитием средств разработки программ, которые объединяют набор средств для комплексного их применения на всех технологических этапах создания программы. Основное назначение инструментария данного вида - повышение производительности труда программистов, автоматизация создания кодов программ, обеспечивающих интерфейс пользователя графического типа, разработка приложения для архитектуры клиент - сервер, запросов и отчетов.
Примером такой среды является система Delphi, в активе которой разработчик программ имеет:
объектно-ориентированный язык программирования;
высокопроизводительный компилятор;
средства наглядного (визуального) создания программ;
специальная технология работы с базами данных;
принцип “открытой” системы: возможность добавления новых средств и перенос на другие платформы.
CASE-технология создания информационных систем
Средства CASE-технологии - относительно новое направление, сформированное в конце 1980-х годов. Технология предъявляет высокие требования к оборудованию рабочего места разработчика, поэтому достаточно дорогая в применении. Некоторые CASE-технологии предназначены для системных проектировщиков и предоставляют специальные графические средства для изображения различного вида моделей.
CASE-технология - программный комплекс, автоматизирующий весь технологический процесс анализа, проектирования, разработки и сопровождения сложных программных систем.
Основное достоинство этой технологии - поддержка коллективного труда над проектом за счет возможности работы в локальной сети разработчиков, экспорта/импорта любых фрагментов проекта и организационного управления проектом.
Возможности компьютера как технической основы системы обработки данных зависят от используемого программного обеспечения - программ (некоторые термины уже встречались в предыдущей главе, но здесь мы рассмотрим их подробнее).
Программа (program, routine) упорядоченная последовательность команд (инструкций) компьютера для решения задачи. Программы предназначены для машинной реализации задач.
Программное обеспечение (software) совокупность программ обработки данных и необходимых для их эксплуатации документов.
Задача (problem, task) проблема, подлежащая решению.
Приложение (application) программная реализация решения задачи на компьютере. Приложение, являясь синонимом слова «программа», считается более удачным термином и широко используется в информатике.
Таким образом, с помощью компьютера мы стремимся реализовать стоящую перед нами задачу (проблему), используя для этого информационные технологии в виде приложений.
Термин задача употребляется также в сфере мультипрограммирования (одновременного выполнения нескольких задач) и мультипроцессорной обработки (если в ЭВМ имеется несколько процессоров) как единица работы вычислительной системы. В этом случае задача определяет требующиеся вычислительные ресурсы (процессорное время, основная память и т.п.). Но в данной лекции второй смысл термина задача мы затрагивать не будем.
Существует большое разнообразие классификаций задач. С позиций специфики разработки, а также видов программного обеспечения будем различать 2 класса задач технологические и функциональные.
Технологические задачи ставятся при организации технологического процесса обработки информации на компьютере. Они являются основой для разработки сервисных средств программного обеспечения в виде утилит, сервисных программ, библиотек процедур и др., применяемых для обеспечения работоспособности компьютера, а также разработки других программ.
Функциональные задачи требуют решения при реализации функций управления, например, при управлении деятельностью торгового предприятия, планировании выпуска продукции, управлении перевозкой грузов и т.д. Функциональные задачи в совокупности образуют предметную область и полностью определяют ее специфику.
Предметная (прикладная) область (application domain) совокупность связанных между собой функций, задач управления, с помощью которых достигается выполнение поставленных целей.
Процесс создания программ можно показать как последовательность действий, представленных на рис.9.1.
Постановка задачи
Постановка задачи (problem definition) - это точная формулировка результата решения задачи на компьютере с описанием входной и выходной информации.
Постановка задачи обобщенный термин, который означает определенность содержательной стороны обработки данных. Постановка задачи связана с конкретизацией структуры входной и выходной информации, а также основных параметров её реализации.
В процессе формализованной постановки функциональных задач уточняются основные характеристики:
Входная информация определяется совокупностью данных, поступающих на вход задачи и используемых для ее решения. Входной информацией служат первичные данные документов ручного заполнения, информация, хранимая в файлах базы данных (результаты решения других задач, нормативно-справочная информация классификаторы, кодификаторы, справочники), входные сигналы датчиков (рис.9.2).
Выходная информация по задаче может быть представлена в виде документов (типа распечатки отчётов, заполненных форм), сформированных кадров (видеограммы на экране монитора), файла базы данных, выходного сигнала для дальнейшего использования в устройстве управления.
Обычно постановку задач выполняют в едином комплексе работ по автоматизации управления в рамках предметной области, т.е. создают структуру базы данных, проектируют формы и маршруты движения документов, вносят изменения в организационные вопросы.
Алгоритм это система точно сформулированных правил, определяющая процесс преобразования допустимых исходных данных (входной информации) в желаемый результат (выходную информацию) за конечное число шагов.
Алгоритм решения задачи имеет ряд обязательных свойств.
В алгоритме отражаются логика и способ формирования результатов решения с указанием необходимых расчетных формул, логических условий, соотношений для контроля достоверности выходных результатов. В алгоритме обязательно должны быть предусмотрены все ситуации, которые могут возникнуть в процессе решения комплекса задач.
На практике наиболее распространены следующие способы записи алгоритмов: словесный (формульно-словесный) и схемный.
При словесном способе записи алгоритма содержание последовательных этапов вычислений задается в произвольной форме на естественном языке. Если при записи алгоритма в такой форме используются математические символы и выражения, то говорят о формульно-словесном способе.
Пример
Требуется записать алгоритм нахождения наибольшего общего делителя (НОД) двух натуральных чисел (алгоритм Эвклида).
Алгоритм может быть следующим:
Описанный алгоритм применим к любым натуральным числам и должен приводить к решению поставленной задачи. Убедитесь в этом самостоятельно, определив с помощью этого алгоритма наибольший общий делитель чисел 125 и 75.
Словесная форма имеет ряд недостатков. Для достаточно сложных алгоритмов описание становится слишком громоздким и ненаглядным. Эта форма обычно используется на начальных стадиях разработки алгоритма.
При реализации практических задач составить их алгоритм решения сразу, без определенной предварительной работы, как правило, невозможно. Здесь обычно необходимо выделить предполагаемые этапы вычислительного процесса, определяемого алгоритмом, установить возможные логические связи между ними и четко указать порядок их следования в вычислительной схеме. Кроме того, содержание каждого автономного этапа подлежит дальнейшему описанию и анализу для выявления его элементарных операций, которые необходимо выполнить в установленном локальном (в пределах этапа) порядке. Такой подход называют «проектированием сверху вниз». Все это в целом, в зависимости от различных условий, порождает многообразные допустимые направления вычислительного процесса. Поэтому связи между этапами могут быть очень сложными. Изобразительным средством, предназначенным для разрешения подобных затруднений, являются схемы алгоритмов, называемые еще блок-схемами.
Схемой алгоритма называется графическое изображение логической структуры алгоритма, в котором каждый этап процесса переработки данных представляется в виде геометрических фигур (блоков), имеющих определенную конфигурацию в зависимости от характера выполняемых операций (отображаемых функций).
Основные блоки (символы)
Все эти блоки можно изобразить с помощью текстового процессора Microsoft Word (панель Рисование, список Автофигуры).
Линии потока. Нормальным направлением линий потока (следованием этапов процесса переработки данных) считается направление сверху вниз и слева направо и стрелками не обозначается. Во всех других случаях обозначение направления стрелками обязательно.
Линии, связывающие элементы схемы, должны проводиться только по вертикали или горизонтали параллельно линиям внешней рамки схемы и подводиться к середине блока. Чтобы показать изменение направления, линии проводят с изломом в 90 градусов. На схеме может быть пересечение двух несвязанных линий потока или слияние их.
Пересечение линий потока Слияние линий потока
Записи внутри блока должны быть представлены так, чтобы их можно было читать слева направо и сверху вниз, независимо от направления потока.
Для удобства нахождения блока на схеме блоки можно нумеровать. Номер символа задается в виде цифр, букв или сочетания букв и цифр. Номер проставляется сверху слева в разрыве контура. Нумеруются блоки в порядке сверху вниз и слева направо.
Если содержание пояснения не помещается внутри блока, то используется “комментарий”, который может относиться как к блоку, так и к линии потока. Комментарий помещают в свободном месте схемы и соединяют с поясняемым блоком или с линией потока штриховой линией. Записывают комментарий в пределах верхней и нижней граничных линий параллельно основной надписи.
Рассмотрим некоторые типовые структуры алгоритмов.
Последовательность. Включает фиксированный перечень блоков. Каждый очередной блок выполняется после завершения предыдущего без дополнительных условий.
Выбор. В блоке Условие содержится условие выбора блока обработки. Каждый блок выполняется один раз; выполнение одного из двух блоков обязательно.
Цикл «пока». В блоке Условие содержится условие выполнения тела цикла определенной обработки. Если условие не выполняется, цикл прерывается и осуществляется выход.
В качестве примера блок-схемы приведем реализацию алгоритма решения квадратного уравнения. Схема алгоритма приведена на рис.6.3.
Составление блок-схемы является важным и в большинстве случаев необходимым этапом решения задачи на ЭВМ, значительно облегчающим процесс составления программ.
Программирование (programming) теоретическая и практическая деятельность, связанная с созданием программ.
Программирование является собирательным понятием и может рассматриваться и как наука, и как искусство. Именно на этом основан научно-практический подход к разработке программ.
Программа результат интеллектуального труда, для которого характерно творчество, а оно, как известно, не имеет четких границ. В любой программе присутствует индивидуальность ее разработчика, программа отражает определенную степень искусства программиста. Вместе с тем, программирование предполагает и рутинные работы, которые могут и должны иметь строгий регламент выполнения и соответствовать стандартам.
Программирование базируется на комплексе научных дисциплин, направленных на исследование, разработку и применение методов и средств разработки программ (специализированного инструментария создания программ). При разработке программ используются ресурсоемкие и наукоемкие технологии, высококвалифицированный интеллектуальный труд.
Программирование это развитая отрасль хозяйственной деятельности, связанная со значительными затратами материальных, трудовых и финансовых ресурсов. По данным зарубежных источников, в конце XX века в мире было занято программированием до 2% трудоспособного населения. Совокупный оборот в сфере создания программных средств достигает несколько сот миллиардов долларов в год.
В связи с ростом потребности в разнообразных программах обработки данных весьма актуален вопрос применения эффективных технологий программирования и их перевода на промышленную основу. Это означает стандартизованность, тиражируемость методов программирования, внедрение прогрессивных инструментальных средств, использование специальных методов и организационных приемов в разработке программ.
Наиболее известные технологии программирования структурное программирование и объектно-ориентированное. Структурное программирование основано на модульной структуре программного продукта, т.е. программа разбивается на несколько составляющих (подпрограмм). Модуль это самостоятельная часть программы, где объединены ресурсы, которые направлены на реализацию конкретной задачи. Объектно-ориентированное программирование - новое поколение технологий программирования, широко используемое в наше время. Эта технология объединяет не только данные, но и методы их обработки в логические сущности объекты, которые, в свою очередь, имеют способность к наследованию характеристик других (одного или нескольких) объектов в своём классе и обеспечивают тем самым возможность неоднократного использования программного кода.
Основная категория специалистов, занятых разработкой программ, - это программисты (programmer). Программисты неоднородны по уровню квалификации, а также по характеру своей деятельности. Наиболее часто программисты делятся на системных и прикладных.
Системный программист (system /software programmer, toolsmith) занимается разработкой, эксплуатацией и сопровождением программного обеспечения, поддерживающего работоспособность компьютера и создающего среду для реализации функциональных задач.
Прикладной программист (application programmer) осуществляет разработку и отладку программ для решения функциональных задач.
Кроме того, в условиях создания больших (по масштабам и функциям обработки) программ появляется новая квалификация программист-аналитик (programmer-analyst), который анализирует и проектирует связи между программами в едином комплексе.
В процессе создания программ на начальной стадии работ участвуют и специалисты постановщики задач.
Большинство информационных систем основано на работе с базами данных. Если база данных является интегрированной, обеспечивающей работу с данными многих приложений, возникает проблема организационной поддержки, которая выполняется администратором базы данных.
Взаимодействие специалистов различного вида, участвующих в разработке и эксплуатации программ, показано на рис.6.4.
Основными потребителями программ служат конечные пользователи (end user), которые, как правило, относятся к категории пользователей-непрограммистов. Конечный пользователь не является специалистом в области программирования, т.е. не владеет технологией проектирования и создания программ, но имеет элементарные знания и навыки работы с вычислительной техникой. Такая квалификационная характеристика пользователя программного обеспечения в значительной степени влияет на спецификацию требований к создаваемым программам, интерфейсам, формам машинных документов, технологии решения задач на ЭВМ.
Возможна эксплуатация программ квалифицированными программистами или специально обученными техническими работниками операторами ЭВМ.
В ряде случаев один специалист совмещает несколько видов деятельности. Администратор базы данных и системный программист осуществляют подготовку информационных и программно-технических условий для работы программ. Пунктирные линии означают участие специалиста в качестве консультанта.
Характеристика программного продукта
Все программы по характеру использования и категориям пользователей можно разделить на два класса утилитарные программы и программные продукты.
Утилитарные программы предназначены для удовлетворения нужд их разработчиков («программы для себя»). Чаще всего утилитарные программы выполняют сервисную роль в технологии обработки данных, а также являются программами решения функциональных задач, которые не предназначаются для широкого распространения.
Программные продукты предназначены для удовлетворения потребностей массовых пользователей, для широкого распространения и продажи.
С использованием глобальных телекоммуникаций появились также новые варианты распространения программных продуктов:
Ряд производителей используют OEM-программы (Original Equipment Manufacturer), т.е. встроенные программы, устанавливаемые на компьютеры или поставляемые вместе с вычислительной техникой.
Программный продукт должен быть соответствующим образом подготовлен к эксплуатации, иметь необходимую техническую документацию, предоставлять сервис и гарантию надежной работы программы, иметь товарный знак изготовителя. Также желательно наличие кода государственной регистрации. Только при таких условиях программный комплекс может быть назван программным продуктом.
Вопросы для самопроверки
Дайте определение CASE-технологии. Где она используется?
EMBED Equation.3
Рис. 4.7. Схема процесса создания загрузочного модуля программы
Загрузочный модуль, готовый для исполнения
Редактор связей
Объектный код программы на машинном языке
Транслятор (компилятор)
Исходный код программы
на алгоритм. языке
Инструментальная среда пользователя
Языки и средства
программирования
Интегрированные
среды
Локальные
средства
Средства для создания информационных систем (CASE-технология)
Средства для создания приложений
Инструментарий технологии программирования
Настольные издательские
системы
Настольные мздательские
системы
Программные средства
мультимедиа
Интеллектуальные системы
ППП общего
назначения
Методо-
ориентированные ППП
Офисные ППП
ППП автоматизированного
проектирования
Проблемно-
ориентированные ППП
Пакеты прикладных программ
Программы
обслуживания сети
Программы
архивирования данных
Программы
обслуживания дисков
Антивирусные программы
Программы диагностики работоспособности компьютера
Операционная
оболочка
Операционная
система
Сервисное
программное обеспечение
Базовое
программное обеспечение
Системное программное обеспечение
Инструментарий технологии программирования
Пакеты прикладных программ
Системное программное обеспечение
Классы программных продуктов
Рис.6.4. Схема взаимодействия специалистов, связанных с созданием и эксплуатацией программ
Создание информационной среды выполнения программ
Создание операционной среды выполнения программ
Программирование
Алгоритмизация решения задач
Постановка задачи
Администратор БД
Системный программист
Оператор
ЭВМ
Прикладной программист
Эксплуатация программ
Постановщик
задачи
Конечный
пользователь
EMBED Equation.3
EMBED Equation.3
Вывод
x1 и x2
Вычисление x1
EMBED Equation.3
d>=0?
d=b2-4ac
Ввод
a, b, c
да
нет
Конец
Вывод: корней нет
Вычисление x2
Начало
Рис. 6.3. Блок-схема алгоритма решения квадратного уравнения ax2+bx+c=0.
Нет
Да
Условие
Конец
Тело цикла
Начало
Нет
Да
Условие
Конец
Блок 2
Блок 1
Начало
. . . . . . . .
Конец
Блок 2
Блок 1
Начало
Комментарий 2
Комментарий 1
Примечание. Значение а выбирается из ряда чисел 10, 15, 20 …мм; b = 1,5a.
- линии потока, отображают поток данных или управления
- узел (соединитель), указывает связи между прерванными линиями потока
- пуск-завершение (терминатор)
- ввод-вывод (здесь перечисляются данные, подлежащие вводу или выводу)
- подготовка (модификация), отображает модификацию команды или группы команд с целью воздействия на некоторую последующую функцию, используется для задания циклических действий
- решение (условие), имеет один вход и ряд альтернативных выходов, один из которых может быть активизирован после вычисления условий, определенных внутри этого блока
- предопределенный процесс (подпрограмма), состоящий из одной или нескольких операций, определенных в другом месте
- процесс, обозначающий выполнение операций или группы операций, в результате которых изменяются значение, форма или расположение данных
в
а
Рис.9.2. Схема взаимосвязи входной и выходной информации для решения задач
Сигнал
Видеограмма
БД
Машинограмма
Задача
Сигнал
БД
Документы
Документы
Рис. 9.1. Схема процесса создания программы
Программирование
Алгоритмизация решения задачи
Постановка задачи