Прикладной называют программу для решения конкретной задачи пользователя.
С развитием компьютерных технологий были выделены наборы взаимосвязанных задач, которые требовалось решать в интересах определенных групп пользователей. Естественно было объединить прикладные программы связанных задач в комплекс программ, разработать такой комплекс централизованно и поставлять его отдельным пользователям и заинтересованным организациям. С конца 1960-х годов многофункциональные комплексы взаимосвязанных программ стали называть пакетами прикладных программ (ППП).
Формальной границы между прикладной программой и ППП нет, поскольку любой ППП можно рассматривать как прикладную программу. По мере разработки все большего числа прикладных программ появлялись и новые определения того, что следует понимать под пакетом программ.
Вместе с тем концепция ППП, переход от отдельных программ к пакетам - это переход к новому качеству прикладного программного обеспечения (ПО).
Рассмотрим концепцию ППП на примере программ для решения расчетных задач. Все многообразие прикладного ПО можно разделить на два больших класса: «расчетчики» и «анализаторы».
Расчетными будем называть задачи, в которых входные и выходные данные являются числовыми, решение задачи получается в результате применения математических методов. К расчетным задачам можно отнести выполнение расчетов по формулам, решение систем линейных и нелинейных уравнений, численное дифференцирование и интегрирование, определение экстремумов функций и т.п.
Исходные данные для решения расчетной задачи могут задаваться или все сразу в начале выполнения программы, или поступать порциями (записями, сообщениями).
Решение многих расчетных задач укладывается в типовую схему, включающую последовательные шаги ввода исходных данных, выполнения вычислений и вывода результатов. В ряде случаев решение расчетных задач сводится к последовательному применению нескольких алгоритмов (программ). Например, при решении систем обыкновенных дифференциальных уравнений может потребоваться сначала провести расчет начальных условий и коэффициентов уравнений, а затем вычислить обобщенные характеристики исследуемого процесса по заданным формулам.
Можно выделить несколько типовых подходов к организации применения ЭВМ для решения расчетных задач. Эти подходы, рассматриваемые в историческом плане, можно считать этапами развития ППП:
1. При возникновении потребности в решении конкретной задачи составляется и отлаживается программа или несколько последовательно выполняемых программ. Для программирования используется один из универсальных языков программирования (Basic, Pascal, Fortran, С, C++, Assembler и т.д.).
2. Заранее составляются подпрограммы реализации типовых шагов алгоритмов, например, для реализации методов численного анализа, преобразования форм представления данных и т.п. Такие готовые подпрограммы накапливаются в форме исходных или объектных модулей в библиотеке. При составлении прикладной программы в нее включаются обращения к библиотечным подпрограммам. Сами библиотечные подпрограммы присоединяются к прикладной программе в процессе трансляции (исходные модули) или при редактировании связей (объектные модули).
Библиотеку готовых подпрограмм уже можно рассматривать как ППП, используемый совместно с прикладной программой.
3. Для совокупности родственных задач разрабатывается ППП, охватывающий некоторую предметную область. Здесь ППП - это совокупность программных модулей, между которыми установлены связи по управлению и по данным в соответствии с решаемой прикладной задачей. Модули пакета могут объединяться в программы, а программы - использовать общие файлы данных. Для запуска программ пакета в нужной последовательности могут использоваться средства операционной системы. Для решения новой прикладной задачи нужно готовить соответствующие исходные данные и разрабатывать последовательность обращений к операционной системе (ОС) для выполнения программ пакета в требуемой последовательности.
4. Дальнейшим развитием ППП стало построение пакетов с собственным языком управления - входным языком пакета (ВЯ). От пользователя требуется составление описания задачи, которую требуется решить на ВЯ пакета и подготовка необходимых данных. Для запуска такого пакета обычно требуются минимальные сведения об используемой ОС.
Перечисленные выше четыре подхода к применению ЭВМ предполагают различную квалификацию пользователей.
Для реализации первого подхода требуется знание языка программирования, языка управления ОС и знание прикладной предметной области. То есть первый подход типичен для специалиста в области прикладного программирования.
Это в полной мере относится и ко второму подходу, где применение библиотек подпрограмм обеспечивает повышение производительности труда прикладного программиста.
В третьем подходе функции прикладного программиста и пользователя пакета разделены. Прикладной программист разрабатывает пакет программ, для чего обычно требуется более высокий уровень квалификации, чем для разработки отдельных программ. От пользователя пакета требуются знание правил применения пакета и квалификация в той предметной области, к которой относятся задачи, решаемые с применением пакета, а также ограниченные сведения об используемой ОС.
Четвертый подход требует от пользователя пакета еще меньшей квалификации в области программирования, для него достаточно изучить сравнительно несложный входной язык пакета.
В настоящее время термин «пакет прикладных программ» применяется к комплексам программ различной сложности и назначения. Отметим, что наряду с этим термином все чаще используются понятия программного приложения или информационно-вычислительной системы.
ППП - это совокупность совместимых программ для решения задач определенного класса. ППП всегда ориентируется на пользователей определенной квалификации, как в программировании, так и в области, к которой относятся задачи, решаемые с применением этого ППП.
Совместимость программ, составляющих ППП, означает возможность их взаимного использования, общность структуры управляющих данных и используемых информационных массивов. Кроме того, ППП следует рассматривать как самостоятельное программное изделие, как особый вид прикладного ПО.
Исходя из определения, можно выделить некоторые общие свойства ППП:
1. Пакет состоит из нескольких программных единиц.
2. Пакет предназначен для решения определенного класса задач, и в пределах своего класса обладает определенной универсальностью, т.е. позволяет решать большинство задач этого класса.
3. Пакет допускает настройку на конкретные условия применения, т.е. в пакете предусмотрены средства управления, позволяющие выбирать конкретные возможности из числа предусмотренных.
4. Пакет разработан с учетом возможности его использования за пределами той организации, в которой он создан, и удовлетворяет общим требованиям к программному изделию:
· соответствует существующим стандартам;
· снабжается пользовательской документацией;
· допускает возможность послепродажного обслуживания;
· имеет установленную цену;
· документация и способы применения пакета ориентированы на пользователя, имеющего определенный уровень квалификации в той области знаний, к которой относятся решаемые пакетом задачи.
Поскольку ППП предназначен для решения задач определенного класса, можно говорить о функциональном назначении пакета.
Классификация ППП
Классификация ППП по их функциональному назначению приведена на рис. 7.2.
Рис. 7.2. Классификация пакетов прикладных программ
Рассмотрим каждый пакет подробнее.
ППП общего назначения
Данный класс содержит широкий перечень программных продуктов, поддерживающих преимущественно информационные технологии конечных пользователей. Кроме конечных пользователей этими программными продуктами, за счет встроенных средств технологии программирования, могут пользоваться и программисты для создания программ обработки данных.
Представители данного класса программных продуктов:
1. Настольные системы управления базами данных (СУБД), обеспечивающие организацию и хранение локальных баз данных на автономно работающих компьютерах, либо централизованное хранение баз данных на файл-серверах и сетевой доступ к ним.
В настоящее время наиболее широко представлены реляционные СУБД для персональных компьютеров, осуществляющие:
• работу с базой данных через экранные формы;
• организацию запросов на поиск данных с помощью специальных языков запросов высокого уровня, например, SQL (Structured Query Language);
• генерацию отчетов различной структуры данных с подведением промежуточных и окончательных итогов;
• вычислительную обработку путем выполнения встроенных функций, программ, написанных с использованием языков программирования и макрокоманд.
Пользовательские приложения (прикладные, программы), функционирующие в среде СУБД, создаются по типу меню работы конечного пользователя, каждая команда которого обеспечивает автоматизированное выполнение определенной функции.
В современных СУБД содержатся элементы CASE-технологии процесса проектирования, в частности:
• визуализирована схема баз данных, позволяющая пользователю в диалоговом режиме создавать таблицы, формы, запросы, отчеты и макросы;
• осуществлена автоматическая поддержка целостности баз данных при различных видах обработки (включение, удаление или модификация данных баз данных);
• предоставляются мастера, автоматизирующие процесс проектирования (режим «конструктор») - мастер таблиц, мастер форм, мастер отчетов, построитель меню и т.д.;
• наличие собственного языка программирования.
Все это свидетельствует о расширении функциональных возможностей СУБД как инструментального средства для создания приложений (dBase, Clipper, FoxPro, Approach, Paradox, Access).
2. Серверы баз данных - успешно развивающийся вид программного обеспечения, предназначенный для создания и использования при работе в сети интегрированных баз данных в архитектуре клиент-сервер, в сети Интернет.
Многопользовательские СУБД (Paradox, Access, FoxPro и др.) в сетевом варианте обработки данных хранят информацию на файл-сервере - специально выделенном компьютере в централизованном виде, но сама обработка данных ведется на рабочих станциях. Серверы баз данных, напротив, всю обработку (хранение, поиск, извлечение и передачу данных клиенту) данных выполняют самостоятельно, одновременно обеспечивая данными большое число пользователей сети.
Общим для различных видов серверов баз данных является использование реляционного языка для реализации запросов к данным.
Большинство серверов баз данных может использовать одновременно несколько платформ (Windows NT, Unix, OS/2 и др.) и поддерживать широкий спектр протоколов передачи данных (IPX, TCP/IP, X.25 и др.).
Некоторые серверы реализуют распределенное хранение информации в сети, поддерживают интерфейсы на уровне вызова типа:
• ODBC - Open Data Base Connectivity для доступа к разнородным базам данных;
• DAL - Data Access Language для создания запроса на выборку данных, распределенных в сети;
• SAG/CLI - SQL Access Group/ Call Level Interface для распределенных запросов и др.
Самой большой проблемой применения серверов баз данных являются обеспечение целостности (непротиворечивости) баз данных, решение вопроса, связанного с дублированием (тиражированием) данных по узлам сети и их синхронным обновлением (MS SQL Server, Oracle Internet Application Server).
3. Генераторы (серверы) отчетов - самостоятельное направление развития программных средств, обеспечивающих реализацию запросов и формирование отчетов в печатном или экранном виде в условиях сети с архитектурой клиент-сервер.
Сервер отчетов подключается к серверу баз данных, используя все уровни передач и драйверы сервера баз данных. Серверы отчетов включают:
• программы планирования - учет времени для формирования отчетов по требованию пользователей, составление расписания выдачи и распространения отчетов по сети;
• программы управления очередью запросов на формирование отчетов;
• программы ведения словаря пользователей для разграничения доступа к сформированным отчетам;
• программы ведения архивов отчетов и др.
Подготовленные отчеты рассылаются клиентам по электронной почте или с помощью другого транспортного агента. Серверы отчетов обычно поддерживают разнородные платформы, тем самым они эффективно работают в неоднородных вычислительных сетях (Crystal Report, Report Smith).
4. Текстовые процессоры (текстовые редакторы) - пакеты прикладных программ для подготовки текстовых документов; предоставляют возможности автоматического форматирования документов, вставки рисованных объектов, графики, формул, составления оглавлений и указателей, проверки орфографии, шрифтового оформления, подготовки шаблонов документов и т.п. (MS Word, Corel Word Perfect, Chi Writer, ЛЕКСИКОН).
Развитием данного направления программных продуктов являются настольные издательские системы.
5. Табличные процессоры (электронные таблицы) - предназначены для хранения данных в двумерной табличной форме и работы с этими данными: вычисления по формулам, решение задач оптимизации, статистическая обработка данных, построение диаграмм и графиков, создание простых баз данных и т.д. (MS Excel, Lotus 1-2-3, Quattro Pro, Super Calc).
6. Графические редакторы - предназначены для обработки графических документов, включая иллюстрации, фотографии, диаграммы, чертежи, схемы (MS Paint, MS PhotoDraw, Photo Paint Shop Pro, Adobe Photoshop, Corel Draw, Macromedia Freehand, 3D Studio Max, VISIO Pro, Smart Draw).
7. Средства презентационной графики - специализированные программы, предназначенные для подготовки мультимедиа-презентаций (слайд-фильмов), состоящих из нескольких слайдов, на которых размещаются рисунки, таблицы, графики, диаграммы, текстовая информация. Их показ может сопровождаться звуковыми эффектами, анимацией (MS Power Point, Adobe Persuasion, Lotus Freelance Graphics, Gold Disk Astound, Novell Presentations, Harvard Graphics).
8. Интегрированные пакеты - набор нескольких программных продуктов, функционально дополняющих друг друга, поддерживающих единые информационные технологии, реализованные на общей вычислительной и операционной платформе.
Наиболее распространены интегрированные пакеты, компонентами которых являются:
• СУБД;
• текстовый редактор;
• табличный процессор;
• органайзер;
• средства поддержки электронной почты;
• программы создания презентаций;
• графический редактор.
Отличительными особенностями данного класса программных средств являются:
• полнота информационных технологий для конечных пользователей;
• однотипный интерфейс конечного пользователя для всех программ, входящих в состав интегрированного пакета;
• общий сервис для программ интегрированного пакета (словарь и средства орфографии для проверки правописания, построитель диаграмм и др.);
• легкость обмена и ссылок на объекты, созданные программами интегрированного пакета (применяется два метода: DDE -динамический обмен данными и OLE - динамическая компоновка объектами), единообразный перенос объектов (метод drag-and-drop);
• наличие единой языковой платформы для разработки макрокоманд, пользовательских программ;
• возможность создания документов, интегрирующих в себе возможности различных программ, входящих в состав интегрированного пакета (MS Office, MS Works, MS Suite 2000, Lotus SmartSuite, Perfect Office, Star Office, Claris Works).
Офисные ППП
Данный класс программных продуктов охватывает программы, обеспечивающие организационное управление деятельностью офиса.
1. Органайзеры (планировщики, личные информационные системы) - программное обеспечение для планирования рабочего времени, бюджета, учета расходов, составления протоколов встреч, расписаний, ведения записной и телефонной книжки (Lotus Organizer, MS Money, MS Outlook, Daily Journal, Day-Timer Organizer, Any Time).
2. Программы переводчики, средства проверки орфографии и распознавания текста включают:
• программы переводчики, предназначенные для создания подстрочника исходного текста на указанном языке;
• словари орфографии, используемые при проверке текстов;
• словари синонимов, используемые для стилевой правки текстов;
• программы для распознавания считанной сканерами информации и преобразования в текстовое представление (OCR - программы).
3. Справочные базы данных и информационно-поисковые системы.
4. Коммуникационные ППП - предназначены для организации взаимодействия пользователя с удаленными абонентами или информационными ресурсами сети.
В условиях развития глобальной информационной сети Internet появился новый класс программного обеспечения - браузеры, средства создания WWW страниц. Они различаются возможностями поддержки языка HTML, использованием цвета при оформлении фона, текста, форматирование текста, использованием графических форматов изображений, таблиц, фонового звука, мультипликации и т.п. Большинство браузеров использует язык Java (MS Internet Explorer, Netscape Navigator, Opera).
Проблемно-ориентированные ППП
Это класс программных продуктов, внутри которого проводится классификация по следующим признакам:
• типам предметных областей;
• информационным системам;
• функциям и комплексам задач, реализуемым программным способом, и др.
Основные тенденции в области развития проблемно-ориентированных программных средств:
• создание программных комплексов в виде автоматизированных рабочих мест (АРМ) управленческого персонала;
• создание интегрированных систем управления предметной областью на базе вычислительных сетей, объединяющих АРМы в единый программный комплекс с архитектурой клиент-сервер;
• организация данных больших информационных систем в виде распределенной базы данных на сети ЭВМ;
• наличие простых языковых средств конечного пользователя для запросов к базе данных;
• настройка функций обработки силами конечных пользователей;
• защита программ и данных от несанкционированного доступа.
Для подобного класса программ предъявляются высокие требования к оперативности обработки данных.
Для данного класса программных продуктов важно создание дружественного интерфейса для конечных пользователей.
Данный класс программных продуктов весьма динамичен как по составу реализуемых ими функций, так и по используемому для их создания инструментарию разработчика.
ППП автоматизированного проектирования
Программы этого класса (Computer Aided Design, CAD - программы) предназначены для поддержания работы конструкторов и технологов, связанных с разработкой чертежей, схем, диаграмм, графическим моделированием и конструированием.
Отличительной особенностью этого класса программных продуктов являются высокие требования к технической части системы обработки данных, наличие библиотек встроенных функций, библиотек стандартных элементов чертежей объектов, интерфейсов с графическими системами и базами данных.
ПО САПР включает следующие виды обеспечений: математическое, лингвистическое, информационное, программное, техническое, методическое и организационное.
Методо-ориентированные ППП
Данный класс включает программные продукты, обеспечивающие, независимо от предметной области и функций информационных систем, математические, статистические и другие методы решения задач.
Наиболее распространены методы математического программирования, имитационного моделирования, исследования операций (MathLab, MathCAD, Mathematica, Statistica, Statgraphics Plus).
Настольные издательские системы
Данный класс программ включает ППП, обеспечивающие информационную технологию компьютерной издательской деятельности:
• форматирование и редактирование текстов;
• автоматическую разбивку текста на страницы;
• создание заголовков;
• компьютерную верстку печатной страницы;
• монтирование графики и многостраничных цветных иллюстраций и т.п. (Corel Ventura, Adobe PageMaker, MS Publisher, Quark Xpress).
Программные средства мультимедиа
Этот класс программных продуктов сформировался в связи с изменением среды обработки данных, появлением лазерных дисков высокой плотности записи с хорошими техническими параметрами, расширением состава периферийного оборудования, развитием сетевой технологии обработки, появлением региональных и глобальных информационных сетей. Основное назначение программных продуктов мультимедиа - создание и использование аудио- и видеоинформации для расширения информационного пространства пользователя.
Их можно разбить на два класса.
К первому относятся мультимедийные продукты (обучающие программы, тренажеры, игры, мультимедийные энциклопедические издания, музыкальные диски, путеводители, видеофильмы, картинные галереи и пр.).
Ко второму классу относятся ППП, обеспечивающие создание, редактирование и воспроизведение мультимедийных продуктов (MS Windows Media Player, QuickTime Pro, Adobe Systems Premiere).
Системы искусственного интеллекта
Данный класс программных продуктов реализует отдельные функции интеллекта человека. Основными компонентами систем искусственного интеллекта (СИИ) являются база знаний, интеллектуальный интерфейс с пользователем и программа формирования логических выводов. Их разработка идет по следующим направлениям:
• программы-оболочки для создания экспертных систем путем наполнения баз знаний и правил логического вывода;
• готовые экспертные системы для принятия решений в рамках определенных предметных областей;
• системы управления базами знаний для поддержания семантических моделей;
• системы анализа и распознавания речи и др.
Как правило, интеллектуальный интерфейс включает:
• диалоговый процессор на естественном языке;
• планировщик, преобразующий описание задачи в программу решения на основе информации базы знаний;
• монитор, осуществляющий управление компонентами интерфейса.
Работа пользователя заключается в подготовке максимального числа примеров, включающих в себя совокупность входных данных и соответствующих им ответов. В процессе обучения СИИ оптимизирует свою внутреннюю структуру, чтобы добиться наилучшего совпадения с введенными данными и рассчитать выходы.
Информационные технологии программирования
В этот класс программного обеспечения входят программы и программные комплексы, обеспечивающие технологию разработки, отладки и внедрения создаваемых программных продуктов («программы для программ»), относящихся как к системному ПО, так и прикладному.
Можно выделить два направления развития информационных технологий программирования (рис. 7.3):
• средства для создания программных приложений (RAD - Rapid Application Development), работающих в различных операционных системах (системы программирования и инструментальные среды разработки на базе различных языков программирования);
• средства компьютерной поддержки разработки программного обеспечения и автоматизации создания сложных информационных систем (Computer Aided Software Engineering, CASE технологии).
Системы программирования включают в себя:
• компилятор или интерпретатор языка программирования;
• отладчик и средства оптимизации кода программ;
• набор стандартных библиотек;
• редактор связей;
• справочные системы.
Примеры: Turbo Pascal, Borland Pascal, MS Visual Basic, MS Visual C++, Visual FORTRAN.
Рис. 7.3. Классификация технологий программирования
Инструментальные интегрированные среды разработки (IDE - Integrated Development Environment) объединяют единым графическим интерфейсом набор средств коллективной разработки программ для комплексного их применения на всех технологических этапах создания программы.
Основное их назначение - повышение производительности труда программистов, автоматизация создания кодов программ, разработка приложений для архитектуры клиент-сервер, запросов и отчетов. Они обладают широкой функциональностью, совместимы со многими распространенными платформами и стандартами программирования (Oracle JDeveloper, Visual Age for Java, Forte for Java).
Современное проектирование больших и сложных информационных систем невозможно без CASE (Computer Aided Software Engineering) -
технологий.
CASE технологии выделяют логические процессы преобразования информации, определяют группы элементов данных и их хранилища (базы данных), предоставляют специальные графические средства для изображения различного типа моделей, используемых при описании сложной системы: диаграмму потоков данных (DFD - Data Flow Diagrams), устанавливающую связь источников информации с потребителями, диаграмму «сущность-связь» (ERD - Entity Relationship Diagrams), являющуюся информационной моделью рассматриваемой предметной области и другие виды диаграмм.
CASE технологии обеспечивают автоматическую генерацию кодов программ на основе их спецификаций, проверку корректности описания моделей данных и схем потоков данных, документирование программ в соответствии с принятыми стандартами, тестирование и отладку программ. В рамках CASE технологий происходит поддержка полного жизненного цикла программного продукта, обеспечивается функциональная целостность проекта, поддержка одновременной работы групп разработчиков, возможность разработки приложений «клиент-сервер» требуемой конфигурации. Они обладают открытой архитектурой и возможностью экспорта/импорта (Design/IDEF, САSЕ Аналитик, ERwin, BPwin, Silverrun, Oracle Designer).
Современные CASE-системы - это средства разработки не только программных систем, но и организационно-управляющих систем, т.е. эту аббревиатуру можно расшифровать и как Computer Aided System Engineering. CASE технология фактически представляет собой совокупность методологий проектирования, моделирования, анализа и реорганизации бизнес-процессов (BPR - Business Process Reengineering, реинжиниринг бизнес-процессов) предприятий, поддержанную комплексом взаимоувязанных средств автоматизации.
Инструментальное ПО
Инструментальное программное обеспечение (ИПО) — программное обеспечение, предназначенное для использования в ходе проектирования, разработки и сопровождения программ.
Применяется инструментальное обеспечение в фазе разработки. Инструментальное программное обеспечение — это совокупность программ, используемых для помощи программистам в их работе, для помощи руководителям разработки программного обеспечения в их стремлении проконтролировать процесс разработки и получаемую продукцию. Наиболее известными представителями этой части программного обеспечения являются программы трансляторов с языков программирования, которые помогают программистам писать машинные команды. Инструментальными программами являются трансляторы с языков Фортран, Кобол, Джо-виал, Бейсик, АПЛ и Паскаль. Они облегчают процесс создания новых рабочих программ. Однако трансляторы с языков это только наиболее известная часть инструментальных программ; существует же их великое множество.
Использование вычислительных машин для помощи в создании новых программ далеко не очевидно для людей, не являющихся профессиональными программистами. Часто же бывает так, что профессионалы рассказывают об инструментальном (фаза разработки) и системном (фаза использования) программном обеспечении на едином дыхании, предполагая, что не посвященному в тайны их мастерства известно об этой роли инструментального программного обеспечения. Так же как и в фазе использования (для прикладных программ), системное обеспечение работает и в фазе разработки, но только совместно с инструментальным обеспечением. Инструментальное ПО или системы программирования - это системы для автоматизации разработки новых программ на языке программирования.
В самом общем случае для создания программы на выбранном языке программирования (языке системного программирования) нужно иметь следующие компоненты:
1. Текстовый редактор для создания файла с исходным текстом программы.
2. Компилятор или интерпретатор. Исходный текст с помощью программы-компилятора переводится в промежуточный объектный код. Исходный текст большой программы состоит из нескольких модулей (файлов с исходными текстами). Каждый модуль компилируется в отдельный файл с объектным кодом, которые затем надо объединить в одно целое.
3. Редактор связей или сборщик, который выполняет связывание объектных модулей и формирует на выходе работоспособное приложение - исполнимый код.
Исполнимый код - это законченная программа, которую можно запустить на любом компьютере, где установлена операционная система, для которой эта программа создавалась. Как правило, итоговый файл имеет расширение .ЕХЕ или .СОМ.
В последнее время получили распространение визуальный методы программирования (с помощью языков описания сценариев), ориентированные на создание Windows-приложений. Этот процесс автоматизирован в средах быстрого проектирования. При этом используются готовые визуальные компоненты, которые настраиваются с помощью специальных редакторов.
Наиболее популярные редакторы (системы программирования программ с использованием визуальных средств) визуального проектирования:
1) Borland Delphi - предназначен для решения практически любых задачи прикладного программирования.
2) Borland C++ Builder - это средство для разработки DOS и Windows приложений.
3) Microsoft Visual Basic - инструмент для создания Windows-программ.
4) Microsoft Visual C++ - это средство позволяет разрабатывать любые приложения, выполняющиеся в среде ОС типа Microsoft Windows
Таким образом, сущность инструментального программного обеспечения заключается в создании любой исполняемой программы , путем преобразования формально логических выражений в исполняемый машинный код, а также его контроль и корректировка
Задачи и функции инструментального программного обеспечения
Для инструментального программного обеспечения, как особой разновидности программного обеспечения, характерны общие и частные функции, как и для всего программного обеспечении в целом. Общие функции рассмотрены нами выше, а специализированными функциями, присущими только данному типу программ, являются:
1. Создание текста разрабатываемой программы с использованием специально установленных кодовых слов (языка программирования), а также определенного набора символов и их расположения в созданном файле - синтаксис программы.
2. Перевод текста создаваемой программы в машинно-ориентированный код, доступный для распознавания ЭВМ. В случае значительного объема создаваемой программы, она разбивается на отдельные модули и каждый из модулей переводится отдельно.
3. Соединение отдельных модулей в единый исполняемый код, с соблюдением необходимой структуры, обеспечение координации взаимодействия отдельных частей между собой.
4. Тестирование и контроль созданной программы, выявление и устранение формальных, логических и синтаксических ошибок, проверка программ на наличие запрещенных кодов, а также оценка работоспособности и потенциала созданной программы.
Виды инструментального программного обеспечения
Исходя из задач, поставленных перед инструментальным программным обеспечением, можно выделить большое количество различных по назначению видов инструментального программного обеспечения:
1) Текстовые редакторы
2) Интегрированные среды разработки
3) SDK
4) Компиляторы
5) Интерпретаторы
6) Линковщики
7) Парсеры и генераторы парсеров
8) Ассемблеры
9) Отладчики
10) Профилировщики
11) Генераторы документации
12) Средства анализа покрытия кода
13) Средства непрерывной интеграции
14) Средства автоматизированного тестирования
15) Системы управления версиями и др.
Базы данных
Состав и структура информационной базы, объемные характеристики данных, требования к качественным характеристикам информации (полнота, актуальность, точность, достоверность и др.) полностью определены функциями управления. Информационная база содержит данные и знания, представленные на машинных носителях в виде базы данных (Data Base - DВ, БД), хранилища данных (Data Warehouse - DW или ХД), базы знаний (Knjwledge Base - КВ, БЗ).
База данных находится под управлением СУБД, содержит структурированные данные, обеспечивает интегрированное представление и многоцелевое использование хранимых данных, однократный ввод и редактирование данных, их многократное использование, санкционированный доступ к данным пользовательских программ.
С появлением БД произошло разделение данных и программ их обработки, процессы создания и ведения БД, с одной стороны, и разработка программ приложений - с другой, относительно независимы. С помощью БД можно моделировать логику приложений предметной области.
Организация БД возникла в связи с появлением нового вида запоминающих устройств прямого доступа - магнитных барабанов и дисков, с помощью которых стало возможным представление различных структур данных (рис. 7.4).
Таблица 1 | Таблица 2 | Таблица 3 | |||||||||
Поле1 | Поле 2 | Поле 3 | Поле 4 | Поле 5 | Поле 6 | Поле 7 | Поле 8 | Поле 9 | Поле 10 | ||
12 | 100 | АА | 12,5 | А1 | 7600 | 12 | А1 | 500 | Нет | ||
13 | 200 | ПА | 3,4 | А2 | 2100 | 12 | А2 | 650 | Да | ||
21 | 300 | РР | 19,0 | А3 | 3200 | 21 | А3 | 450 | Да |
Рис.7.4. Иерархические, сетевые и реляционные базы данных
Различают следующие структуры данных:
• иерархические (см. рис. 7.4, а) - каждый тип данных связан только с одним исходным типом данных, но может иметь много подчиненных типов данных;
• сетевые (см. рис. 7.4, б) - подчиненные типы данных могут быть связаны с несколькими исходными типами данных, а также иметь много подчиненных типов данных;
• реляционные (табличные) (см. рис. 7.4).
Иерархическая структура данных основана на левостороннем обходе дерева. Этот порядок сохраняется как при расположении, так и при поиске данных. Ввод данных в БД требует определения точки входа в иерархическую ветвь, заполнение деревьев осуществляется в направлении «сверху вниз». При удалении данных автоматически удаляются подчиненные им по иерархии данные.
Сетевая структура данных обеспечивает большую по сравнению с иерархической структурой гибкость установления связей различных типов данных. Связи устанавливаются с помощью физических адресов и образуют цепочки.
Реляционная структура данных отличается простотой восприятия, благодаря которому получила широкое распространение для БД, реализованных на ПК. С помощью языков манипулирования данными выполняется объединение и пересечение таблиц, выборка, проекция данных. Между таблицами устанавливаются связи на основе общих значений полей связи (внешних ключей).
Проектирование БД осуществляется путем разработки моделей данных на логическом и физическом уровнях представления. Разделение уровней позволяет оптимизировать каждую модель данных в отдельности:
• концептуальная модель - интегрированное представление данных предметной области на логическом уровне, выраженное средствами структур данных выбранной СУБД;
• внутренняя модель - отображение концептуальной модели на физическую структуру хранения БД на машинных носителях для выбранной СУБД;
• внешние модели - подмножества концептуальной модели данных, обеспечивающие санкционированный доступ к БД различных приложений.
Существуют различные организационные формы БД ИС, которые можно разделить на два вида:
• подсистемная - создание БД для отдельных функций системы управления, комплексов задач;
• системная - создание интегрированной БД ИС.
Данные БД хранятся на локальных компьютерах, а в условиях использования компьютерных сетей - на сетевых. В зависимости от архитектуры компьютерных сетей различают БД, хранимые на файловом сервере, и серверы БД.
В первом случае единицей обмена между сервером и клиентом (рабочей станцией) является файл БД, обработка которого выполняется целиком на рабочей станции; во втором случае рабочая станция выдает запрос на данные, сервер выполняет первичную обработку данных, передает рабочей станции результат запроса. Если в сети имеется несколько серверов для хранения информации, то БД носит название распределенной БД.
Для решения аналитических задач системы управления, требующих ретроспективных данных за длительные интервалы времени, создаются предметно-ориентированные ХД. Развитие систем управления идет в сторону роста их функциональности, интеллектуального анализа данных. В результате создаются ИС, основанные на знаниях, которые используют базы знаний.
Развитие БД современных ИС имеет следующие общие тенденции:
• широкое использование БД реляционной структуры данных;
• возрастание объемов хранимых данных (несколько десятков гигабайт информации);
• переход к «клиент-серверной» организации распределенной БД в компьютерной сети;
• высокие требования к защите БД;
• создание ХД для целей оперативной аналитической обработки данных;
• использование базы знаний как основы построения экспертных ИС.
Рассмотрим более подробно наиболее распространенные сегодня реляционные базы данных
Реляционные базы данных. Модель данных.
Проектирование базы данных - сложный процесс, который ставит своей задачей отобразить предметную область в набор данных и процедур доступа к ним.
Принято выделять три этапа проектирования базы данных (БД) (рис. 7.5):
1) инфологическое проектирование - получение семантических (смысловых) моделей, отражающих информационное содержание проблемы;
2) логическое проектирование - каким образом отобразить объекты предметной области в абстрактные объекты модели данных так, чтобы это отображение не противоречило семантике предметной области, и было по возможности наилучшим (эффективным, удобным и т.д.);
Рис. 7.5. Этапы проектирования баз данных
3) физическое проектирование — каким образом, имея в виду особенности конкретной СУБД, расположить данные во внешней памяти, создание каких дополнительных структур (например, индексов) необходимо потребовать и т.д.
В настоящее время все большее распространение приобретает модель типа «Сущность-Связь» (Entity-Relationship - ER-модель). Базы данных, построенные на основе этой модели, называют реляционными. Основными понятиями ER-модели являются сущность (объект), атрибут, связь.
Сущность (объект) - реальный или представляемый объект предметной области, информация о котором должна сохраняться и быть доступна. Различают такие понятия, как тип сущности и экземпляр сущности. Понятие «тип сущности» относится к набору однородных предметов, событий, личностей, выступающих как единое целое. Экземпляр сущности относится к конкретной вещи в наборе. Например, сущность - счет-фактура, экземпляр сущности - СФ № 15 от 10.10.03, контрагент ООО «Солнышко» на сумму 37 000 руб. Сущность - клиент, экземпляр сущности - ЧП Иванов.
Атрибут - поименованная характеристика сущности, определяющая его свойства и принимающая значения из некоторого множества значений. Каждый атрибут обеспечивается именем, уникальным в пределах сущности, например: Клиент.Название, Клиент.Юридический_адрес, Клиент.ИНН.
Множество из одного или нескольких атрибутов, значения которых однозначно определяют каждый экземпляр сущности, называется идентификатором (ключом). Каждая сущность должна иметь хотя бы один идентификатор. Если идентификаторов несколько, один из них выбирается как привилегированный. Например, для сущности «Клиент» идентификатором может служить ИНН, для счет-фактуры — дата и номер.
Атрибуты могут классифицироваться по принадлежности к одному из трех типов:
1) описательные представляют характеристики, внутренне присущие каждому экземпляру сущности (например, Счет-фактура.Сумма);
2) указывающие используются для присвоения имени или обозначения экземпляров сущности (например, Счет-фактура.Номер);
3) вспомогательные используются для связи экземпляра одной сущности с экземпляром другой (например, Счет-фактура. ИНН_Клиента).
Представление сущности: Клиент (ИНН_Клиента, название_клиента, юридический_адрес, телефон, контактное_лицо). Графическое представление сущности дано на рис. 7.6.
Клиент |
ИНН клиента |
название клиента |
юридический адрес |
телефон |
контактное лицо |
Рис. 7.6. Графическое представление сущности
Правила атрибутов:
1) один экземпляр сущности имеет одно-единственное значение для каждого атрибута в любое данное время. В табличной интерпретации это правило требует, чтобы существовал один и только один элемент данных для каждых строки и столбца. Это делает невозможным появление незаполненных ячеек и ячеек с группой значений;
2) атрибут не должен содержать никакой внутренней структуры (например, название банка. БИК банка и номер расчетного счета не могут быть в одном атрибуте);
3) когда сущность имеет составной идентификатор, каждый атрибут, не являющийся частью идентификатора, представляет характеристику всей сущности, а не ее части, а тем более не характеристику чего-либо другого (например, Перемещение (Склад. Склад2. материал, количество) — атрибуты материал и количество указывает количество перемещаемого, а не количество хранимого на каком-либо складе);
4) каждый атрибут, не являющийся частью идентификатора, представляет характеристику экземпляра, указанного идентификатором, а не характеристику некоторого другого атрибута-неидентификатора.
Связь - поименованная графически изображаемая ассоциация, устанавливаемая между сущностями и представляющая собой абстракцию набора отношений, которые систематически возникают между различными видами предметов в реальном мире. При анализе связей между сущностями могут иметь место бинарные связи (между двумя сущностями или между сущностью и ею же самой — рекурсивная связь), в общем случае - n-арные связи. В ER-диаграммах связь обозначается направленными ребрами с соответствующими надписями (нотация IDEF1). Среди бинарных связей существуют три фундаментальных вида связи: один к одному (1:1), один ко многим (1:М), многие ко многим (М: N).
Связь «один к одному» (1:1) существует, когда один экземпляр одной сущности связан с единственным экземпляром другой сущности, например: Сущность Подразделение - сущность Руководитель (рис. 7.7).
Рис.7.7. Связь «один-к-одному»
Связь «один ко многим» (1 : М) существует, когда один экземпляр одной сущности связан с одним или более экземпляром другой сущности и каждый экземпляр второй сущности связан только с одним экземпляром первой сущности, например: отгрузка — клиент (рис. 7.8).
Рис. 7.8. Связь «один-ко-многим»
Связь «многие ко многим» (М : N) существует, когда один экземпляр одной сущности связан с одним или более экземпляром другой сущности и каждый экземпляр второй сущности связан с одним или более экземпляром первой сущности (рис. 7.9);
Рис. 7.9. Связь «многие-ко-многим»
Хранилища данных
На сегодняшний день создана и активно внедряется новая форма организации внутримашинной информационной базы, которая представляет совокупность взаимосвязанных компонентов (рис. 7.10):
• операционная база данных (БД) - служит для обеспечения работы функциональных модулей ЕRР-системы, составляет основу ОLТР-системы обработки данных КИС;
• специализированные хранилища данных (ХД), основа ОLАР-систем обработки данных для различных функциональных компонентов КИС.
Операционные БД обеспечивают хранение данных большого объема и сложной логической структуры, находятся под управлением мощных СУБД, как правило, реляционного типа (Оracle, МS SQL Serverг, Informix, DВ/2 и др.). Такие БД используются в составе многоуровневой клиент-серверной архитектуры КИС; они могут размещаться на одном или нескольких серверах БД. Как правило, БД отделены от программ функциональных модулей, использующих эти данные. Интерфейс пользователя (формы, отчеты, запросы и т.п.) находится на рабочей станции или специализированном сервере.
Основными проблемами ведения операционных БД являются:
• обеспечение необходимого уровня производительности информационных систем (измеряется количеством транзакций в единицу времени) для реализации регламентированных приложений ИС;
Рис. 7.10. Новая форма организации внутримашинной информационной базы
• соответствие требованиям приложений по составу, структуре, объемам данных, времени получения и качеству выходной информации;
• обеспечение надежного хранения данных (периодическое архивирование БД, восстановление БД после сбоев из страховых копий, ведение журнала транзакций для их «отката» и т.п.).
Операционную БД вместе с внешними информационными источниками следует рассматривать как «сырье» для создания предметно-ориентированных, интегрированных, неизменяемых по структуре хронологических данных - ХД, анализируемых в системах поддержки принятия решений. Витрина (киоск) - подмножество ХД, обеспечивает необходимую производительность получения и анализа данных для конечных пользователей и защиту от несанкционированного доступа.
По определению Б. Инмона, хранилище данных — это предметно-ориентированный, интегрированный, неизменяемый, поддерживающий хронологию набор данных, организованный для целей поддержки принятия решений. Как правило, ХД ориентированы на решение определенных задач анализа и представления данных. В ХД имеются три категории данных:
• метаданные (сведения об источнике, методах сбора информации);
• детальные;
• агрегированные (сводные).
Программное обеспечение ХД обеспечивает: загрузку, форматирование, анализ и реструктуризацию данных; управление доступом к ним; построение витрин данных.
Средства Data Mining ( DM )
Средства DМ подразумевают извлечение («раскопку», «добычу») данных и направлены на выявление отношений между информацией, хранящейся в цифровых базах данных предприятия, которые аналитик может использовать для построения моделей, позволяющих количественно оценить степень влияния интересующих его факторов. Кроме этого, такие средства могут быть полезны для построения гипотез о возможном характере отношений информации в цифровых базах данных предприятия.
Технология добычи текстовых данных (Техt Mining - ТМ) представляет собой набор инструментов, позволяющий анализировать большие наборы информации в поисках тенденций, шаблонов и взаимосвязей, способные помочь в принятии стратегических решений.
Технология Image Mining - IМ содержит средства для распознавания и классификации различных визуальных образов, хранящихся в базах данных предприятия или полученных в результате оперативного поиска из внешних информационных источников.
Для решения проблем по обработке и хранению всех данных используют следующие подходы:
1) создание нескольких систем резервного копирования или одной системы распределенного документооборота, которые позволяют сохранять данные, но обладают медленным доступом к сохраненной информации по запросу пользователя;
2) построение Интернет-систем, обладающих высокой гибкостью, но не приспособленных для реализации поиска и хранения текстовых документов;
3) внедрение Интернет-порталов, которые хорошо ориентированны на запросы пользователей, но не обладают описательной информацией относительно загружаемых в них текстовых данных.
Системы обработки текстовой информации, свободные от перечисленных выше проблем, можно разделить на две категории: системы лингвистического анализа и системы анализа текстовых данных.
Основными элементами технологии Техt Mining являются:
• суммаризация;
• тематический поиск;
• кластеризация;
• классификация;
• ответ на запросы;
• тематическое индексирование;
• поиск по ключевым словам;
• создание и поддержка офтаксономии и тезаурусов.
К программным продуктам, реализующим технологию Техt Mining, относятся:
IBM Intelligent Miner for Text - набор отдельных утилит, запускаемых из командной строки, или скриптов, независимых друг от друга (основной упор делается на механизмы добычи данных — information retrieval);
Oracle InterMedia Text - набор, интегрированный в СУБД, позволяющий наиболее эффективно работать с запросами пользователей (позволяет работать с современными реляционными СУБД в контексте сложного многоцелевого поиска и анализа текстовых данных);
Megaputer Техt Analyst - набор встраиваемых в программу СОМ-объектов, предназначенных для решения задач Техt Mining.
Дата: 2019-02-02, просмотров: 270.