Примеры: AutoCAD, AutoDesk WorkCentre (обе - AutoDesk); Arena (AutoVision), Electronic Workbench (Interactive Image Technlogies), КОМПАС-5 (АО «Аскон»), КРЕДО (ОАО «НИЦ АСК»), T-FLEX CAD («ТопСистемы»), Free Style Router (TOO «Диал») .
Компании «Акелла», БУКА, 1С: Мультимедиа производят игровые программы, обучающие программы для детей, локализуют игры зарубежных компаний.
Ко второму относятся ППП, обеспечивающие создание, редактирование и воспроизведение мультимедийных продуктов.
Примеры: MS Windows MediaPlayer, QuickTime Pro (Apple Computer Inc.), Adobe Systems Premiere, MGI Software VideoWave, Pinnacle Systems Studio DV, Ulead Video Studio.
Например, мультимедийная технология QuickTime Pro 5 обладает следующими возможностями:
воспроизведение аудио- и видеоданных;
просмотр неподвижных изображений;
просмотр потоковых данных;
создание, редактирование, сохранение и экспорт видео, аудио и графики;
сжатие видео- и аудиоданных с помощью новейших кодеков;
создание слайд-шоу;
конвертирование графических изображений в различные форматы;
воспроизведение видеороликов в полноэкранном режиме;
позволяет использовать MIDI-инструменты для редактирования и синтеза звука;
просмотр мультимедиа-данных с Web-страниц и сохранение этих данных в формате ролика QuickTime и многое другое.
Данный класс программных продуктов реализует отдельные функции интеллекта человека. Основными компонентами систем искусственного интеллекта являются база знаний, интеллектуальный интерфейс с пользователем и программа формирования логических выводов. Их разработка идет по следующим направлениям:
программы-оболочки для создания экспертных систем путем наполнения баз знаний и правил логического вывода;
готовые экспертные системы для принятия решений в рамках определенных предметных областей;
системы управления базами знаний для поддержания семантических моделей;
системы анализа и распознавания речи и др.
Как правило, интеллектуальный интерфейс включает:
диалоговый процессор на естественном языке;
планировщик, преобразующий описание задачи в программу решения на основе информации базы знаний;
монитор, осуществляющий управление компонентами интерфейса.
Работа пользователя заключается в подготовке максимального числа примеров, включающих в себя совокупность входных данных и соответствующих им ответов. В процессе обучения ИИС оптимизирует свою внутреннюю структуру, чтобы добиться наилучшего совпадения с введенными данными и рассчитать выходы.
Примеры: нейросетевой пакет BrainMaker (California Scientific Software); на основе введенных данных он проводит анализ цикличности, анализ корреляции данных, анализ чувствительности процесса и т.п.; используется для прогнозов биржевых и рыночных тенденций, прогнозов финансовых показателей, оценки кредитных и проектных рисков, прогнозирования фьючерсов, анализа рынков ценных бумаг; ППП SIMER (Институт программных систем РАН) – предназначен для создания моделей (баз знаний) в плохо структурированных областях (медицинская диагностика, юриспруденция, военное дело, социология, демография).
В этот класс программного обеспечения входят программы и программные комплексы, обеспечивающие технологию разработки, отладки и внедрения создаваемых программных продуктов («программы для программ») – как относящихся к системному ПО, так и к прикладному.
Можно (с достаточной степенью условности) выделить два направления развития информационных технологий программирования (рисунок 2.2):
средства для создания программных приложений (RAD – Rapid Application Development), работающих в различных операционных системах (системы программирования и инструментальные среды разработки на базе различных языков программирования);
средства компьютерной поддержки разработки программного обеспечения и автоматизации создания сложных информационных систем (Computer Aided Software Engineering, CASE- технологии).
Рис. 2.2. Классификация технологий программирования
Системы программирования включают в себя:
компилятор или интерпретатор языка программирования;
отладчик и средства оптимизации кода программ;
набор стандартных библиотек;
редактор связей;
справочные системы.
Примеры: Turbo Pascal, Borland Pascal (Borland), MS Visual Basic, MS Visual C++, Visual Fortran (сначала Microsoft, затем DIGITAL).
Инструментальные интегрированные среды разработки (IDE – Integrated Development Environment) объединяют единым графическим интерфейсом набор средств коллективной разработки программ для комплексного их применения на всех технологических этапах создания программы. Основное назначение – повышение производительности труда программистов, автоматизация создания кодов программ, разработка приложений для архитектуры клиент-сервер, запросов и отчетов. Они обладают широкой функциональностью, совместимы со многими распространенными платформами и стандартами программирования.
Примеры: Oracle JDeveloper, Jbuilder 3 Enterprise (Borland), VisualAge for Java (IBM), VisualCafe for Java (Symantec), Forte for Java (Sun Microsystems), Kawa (Tec-Tools) – все на основе языка объектно-ориентированного программирования Java, Delphi (Borland) – на основе Object Pascal, C++ Builder (Borland) – на основе С++, MS Developer Studio.
Современное проектирование больших и сложных информационных систем невозможно без CASE – технологий. Дело в том, что самой большой проблемой, которую приходится решать программной инженерии, является сложность ПО (см. п.5.1). При увеличении размера ПО наблюдается нелинейный рост его сложности, появляются трудности в процессе общения между разработчиками, что ведет к ошибкам в продукте, превышению стоимости разработки, затягиванию выполнения графиков работ. Сложность структуры затрудняет развитие ПО и добавление новых функций.
CASE – технологии выделяют логические процессы преобразования информации, определяют группы элементов данных и их хранилища (базы данных), предоставляют специальные графические средства для изображения различного типа моделей, используемых при описании сложной системы: диаграмму потоков данных (DFD – Data Flow Diagrams), устанавливающую связь источников информации с потребителями, диаграмму «сущность–связь» (ERD – Entity Relationship Diagrams), являющуюся информационной моделью рассматриваемой предметной области и другие виды диаграмм.
CASE – технологии обеспечивают автоматическую генерацию кодов программ на основе их спецификаций, проверку корректности описания моделей данных и схем потоков данных, документирование программ в соответствии с принятыми стандартами, тестирование и отладку программ. В рамках CASE – технологий происходит поддержка полного жизненного цикла программного продукта с обеспечением эволюционности его развития, обеспечивается функциональная целостность проекта, поддержка одновременной работы групп разработчиков, возможность разработки приложений «клиент-сервер» требуемой конфигурации. Они обладают открытой архитектурой и возможностью экспорта/импорта.
Примеры: ProKit Workbench (McDonnell Douglas Information Systems), Design/IDEF (MetaSoftware), САSЕАналитик («Эйтекс»), ERwin, BPwin (LogicWorks), Silverrun (Silverrun Technologies), Oracle Designer, Rational Enterprise Suite 2000 (Rational Software).
В заключение отметим, что современные CASE-системы это средства разработки не только программных систем, но и организационно-управляющих систем, т.е. эту аббревиатуру можно расшифровать и как Computer Aided System Engineering. В рассматриваемом контексте CASE-технология фактически представляет собой совокупность методологий проектирования, моделирования, анализа и реорганизации бизнес-процессов (BPR – Business Process Reengineering, реинжиниринг бизнес-процессов) предприятий, поддержанную комплексом взаимоувязанных средств автоматизации.
В состав бизнес-модели должны входить следующие базовые компоненты: бизнес-функции, описывающие ЧТО делает бизнес; бизнес-процессы, описывающие КАК предприятие выполняет свои бизнес-функции; организационная структура, определяющая ГДЕ исполняются бизнес-функции и бизнес-процессы; роли, определяющие КТО исполняет бизнес-процессы; фазы, определяющие КОГДА (в какой последовательности) должны быть внедрены те или иные бизнес-функции; правила, определяющие связь между ЧТО, КАК, ГДЕ, КОГДА и КТО (рисунок 2.3).
Рис. 2.3. Структура бизнес-модели
TQM (Total Quality Management) – управление качеством
Для бизнес-аналитиков CASE – это инструментарий, заменяющий им бумагу и карандаш на компьютер для автоматизации анализа и проектирования бизнес-процессов.
Принципиальное отличие CASE-среды для бизнес-процессов от соответствующей среды для программного обеспечения заключается в том, что хотя в обоих случаях решаются задачи анализа и проектирования, задача генерации для бизнес-процесса гораздо сложнее, т.к. ПО является лишь одним из его компонентов.
Пакетом прикладных программ можно считать любой комплекс, ориентированный на решение некоторого класса задач. Формально такое определение не исключает из числа пакетов и библиотеки программ. Однако сложившееся на сегодняшний день представление о ППП как о самостоятельной форме программного обеспечения, позволяет указать на ряд характерных отличительных особенностей пакетов.
Одной из главных особенностей является ориентация ППП не на отдельную задачу, а на некоторый класс задач, включающий и специфические задачи предметной области. Отсюда следует необходимость, модульной организации ППП как основного технологического принципа его конструирования. Суть этого принципа состоит в оформлении общих фрагментов используемых алгоритмов в виде самостоятельных модулей. Решение сформулированной пользователем задачи осуществляется некоторой "цепочкой" таких модулей.
Другой особенностью ППП является наличие в его составе специализированных языковых средств, обеспечивающих удобную работу пользователя с пакетом. Как правило, развитый пакет обладает несколькими входными языками, ориентированными на выполнение различных функций и различные типы пользователей. Язык может предназначаться для формулировки исходной задачи, описания алгоритма решения и начальных данных, организации доступа и поддержания базы данных или информационной базы ППП, разработки программных модулей, описания модели предметной области, управления процессом решения в диалоговом режиме и других целей.
Еще одна особенность ППП состоит в наличии специальных сис-темных средств, обеспечивавших принятую в предметной области дисциплину работы. К их числу относятся специализированные банки данных, средства информационного обеспечения, средства взаимодействия пакета с операционной системой и т. п.
Несмотря на большое разнообразие конкретных пакетных разработок, можно выделить следующие основные компоненты ППП:
- входные языки;
- предметное обеспечение;
- системное обеспечение.
Важно отметить, что такое разбиение на составные элементы отражает в первую очередь функции, выполняемые с программами ППП, а не структуру самих программ, которая зависит от индивидуальных особенностей конкретного пакета. В разных пакетах указанные компоненты могут быть развиты в различной степени или вовсе отсутствовать. Однако наиболее развитые ППП, как правило, обладают всеми этими компонентами, каждый из которых может иметь довольно сложную структуру.
В многочисленных работах, посвященных пакетной проблематике, из-за не устоявшейся терминологии нередко используются другие названия составных элементов ППП. Например, входной язык называют также языком заданий или языком управления. Для обозначения предметного обеспечения применяются термины "функциональное наполнение", "функциональная подсистема" или "тело пакета". Системное обеспечение часто называют системным наполнением, организующей или управляющей программой, а также процессором пакета.
Рассмотрим функции каждого из компонентов ППП.
Входные языки представляют собой средство общения пользователя с пакетом. Развитый пакет может обладать несколькими входными языками, предназначенными для выполнения различных функций и ориентированными на различные типы пользователей.
Входные языки отражают объем и качество предоставляемых пакетом средств, а также удобство их использования. Таким образом, с точки зрения конечного пользователя именно входной язык является основным показателем возможностей ППП.
В качестве входных языков могут использоваться как универсальные, так и специализированные языки программирования. Например, в качестве входного языка разработчика ППП для написания прикладных и системных программ пакета обычно используется тот или иной универсальный язык программирования (Фортран, Паскаль). В то же время входной язык конечного пользователя в развитом пакете, как правило, является языком качественно более высокого уровня по сравнению с универсальными языками. Изобразительные средства такого языка учитывают особенности задач предметной области и специфику пользователей. Подобные языки называют проблемно-ориентированными, или предметно-ориентированными.