- •Введение
- •1. Системный анализ проблемы создания специального программного обеспечения информационных систем
- •2. Концептуальные основы построения информационных систем на основе формализма синтаксически вариантных лингвистических систем и метода метауправления
- •V (кдс-прививка)
- •Модели и методики построения типовых систем обработки информации как информационных систем с метауправлением функциональностью, и примеры их применения
- •5. Технологические основы создания специального, по с применением сквозного моделирования, поддержанного синтаксически вариантными средствами
- •Заключение
1. Системный анализ проблемы создания специального программного обеспечения информационных систем
/./. Современные представления о специальном программном обеспечении информационных систем и управлении его качеством
В предисловии к учебному пособию "Информационные системы", подготовленному кафедрой "Информационные системы в экономике и менеджменте" Санкт-Петербургского государственного технического университета для студентов, обучающихся по специальности 071900 "Информационные системы (по областям применения)" указывается, что "Нет единой трактовки понятия "Информационная система1', устоявшейся классификации информационных систем, общепринятого представления о структуре информационной системы,..." (/91/, с. 3). Приведенная цитата весьма наглядно характеризует сложившуюся практику: сочетание неопределенности понятия "информационная система" с его широким применением (в том числе в документах нормативного характера). Дискуссии по поводу того, что считать информационной системой, продолжаются и в настоящее время - например, /92/.
В целом преобладают следующие подходы к определению информационной системы:
информационная система рассматривается как часть (первая очередь) АСУ /91/ (хотя, например, по классификации в /93/ АСУ является частным видом информационной системы);
информационная система фактически отождествляется с АСУ, но использование нового термина подчеркивает применение современных технологий, архитектур и средств, и преследует цель обойти негативную реакцию заказчиков (потребителей) на термин "АСУ", обусловленную во многом отрицательным опытом внедрения всевозможных АСУ на протяжении нескольких десятилетий (например, /94,95/);
по /7/ под информационными системами понимается одна из двух разновидностей целевых систем автоматизации (другую составляют системы реального времени);
информационной системой называют систему, реализующую информационную технологию /96/.
Ряд авторов также использует термины "автоматизированная информационная система", "информационно-техническая система*1, "информационно- управляющая система" с целью подчеркнуть использование средств вычислительной техники и типы решаемых задач управления (см., например, /97- 101/), однако по /102/ любое управление есть выработка информационных, управляющих и организационных решений, и с этих позиций любая информационная система используется в целях управления.
В настоящей работе под информационной системой понимается совокупность в общем случае технических, программных, информационных, лингвистических и других средств (по видам обеспечения автоматизированных систем - /5/), являющихся результатом работ но автоматизации решения прикладных задач в определенной (заданной, установленной) предметной области.
Основными признаками (характерными свойствами) рассматриваемых в настоящей работе ИС являются:
принадлежность к автоматизированным системам;
преобладание интерактивного режима функционирования;
наличие собственной информационной базы;
создание в рамках работ по автоматизации функционального, системно- аналитического или организационно-технологического уровня (определение и детальное описание этих уровней приведено в /33, 81, 82,85/);
в большинстве случаев - типовая архитектура в виде совокупности базы данных, системы управления базой данных и ряда функциональных приложений.
С позиций конструктивно-технологических аспектов создания ИС в настоящей работе в основном используется классификация ИС, приведенная в /103/, которая, в частности, предполагает разделение ИС на одиночные, групповые и корпоративные.
Для потенциальных потребителей рынка информационных технологий возможны три основных способа стать владельцами информационных систем:
приобрести один или несколько из имеющихся на рынке "коробочных" продуктов и адаптировать его к конкретным практическим нуждам и условиям эксплуатации путем соответствующей организации применения;
воспользоваться услугами консалтинговых фирм, системные интеграторы которых осуществляют адаптацию типовых решений (как правило - от крупных фирм-производителей масштабируемых информационных систем) без разработки уникальных программных кодов;
осуществить разработку уникальной системы — либо собственными силами, либо путем привлечения сторонней организации-разработчика.
Суть, достоинства и недостатки каждого из этих способов обсуждаются, в частности, в /104, 105/. В данном случае важно лишь то, что потребитель становится владельцем информационной системы, в которой выполнение алгоритмов содержательной обработки информации в интересах решения прикладных задач возлагается на программное обеспечение. Основу такого ПО доставляет программная реализация специального математического обеспечения управления /106/.
В соответствии с /5/ ПО ИС в общем случае составляют общее программное обеспечение (ОПО) и специальное программное обеспечение (СПО).
Под СПО понимается совокупность программных средств, разрабатываемых (или разработанных) при создании данной ИС - в отличие от ОПО, представляющего собой совокупность программ общего назначения.
Возвращаясь к трем перечисленным выше способам приобретения ИС, можно отметить, что в первом и втором случаях речь может идти о создании ИС на основе как ОПО, так и СПО, а в третьем только на основе СПО, которое впоследствии может тиражироваться в качестве "типового решения".
Таким образом, принципиальное отличие СПО от ОПО состоит в том, что оно создается в контексте требований к конкретной ИС по решению некоторого множества задач управления в той или иной предметной области (ПрО) - независимо от того, создается ли эта ИС в единичном экземпляре или изначально предполагается ее последующее тиражирование.
В создании современных ИС за последнее десятилетие главный акцент усилий и затрат практически полностью сместился в область разработки именно специального программного обеспечения, что объясняется следующим:
ИС в абсолютном большинстве случаев реализуются на базе серийных образцов вычислительной техники и средств телекоммуникаций, разработка уникальных технических устройств осуществляется в единичных случаях и выполняется, как правило, для создания разного рода периферийного оборудования - датчиков, исполнительных устройств и устройств сопряжения (согласования);
рынок программных средств достаточно сильно насыщен общесистемным программным обеспечением — операционными системами, системами управления базами данных, сервисными программами и т. д., что делает нерентабельной разработку таких средств в рамках проекта конкретной ИС.
Достижения современной индустрии программирования в совокупности со специфическими особенностями процессов создания программного обеспечения
привели к тому, что наиболее "узким местом" создания, внедрения и применения ПО современных ИС является не программирование как таковое, а анализ и формализация требований к ПО и выработка проектных решений с такой степенью их формализации, которая позволяет максимально эффективно осуществить последующее кодирование компонентов СПО (в идеале - как автоматическую кодогенерацию).
Кроме того, исторически сложившееся жаргонное разделение средств вычислительной техники на "жесткое" и "мягкое" оборудование фактически привело к тому, что на практике длительное время зачастую к разработке СПО причисляли создание и тесно связанных с ним математического, информационного и лингвистического обеспечения, и рассматривали ИС как программно-аппаратную систему, в которой все, что не относится к техническим средствам, есть средства программные (за исключением, разумеется, персонала, документации и т. д.) /107 -109/.
Учитывая вышеизложенное и*направленность данной работы, из дальнейшего рассмотрения исключены вопросы создания (выбора) О ПО, а также технического, организационного, правового и др. обеспечения.
Особо следует отметить, что создание ИС и их СПО является одной из существенных составляющих жизнедеятельности любого современного индустриально развитого государства:
внедрение ИС рассматривается как важнейший фактор повышения производительности труда, ускорения научно-технического прогресса (в частности, в одном из немногих изложений вызывающей широкий интерес методологии бизнес-реинжиниринга отмечается "решающая роль информационных технологий в реинжиниринге, обеспечивающая получение весомых конкурентных преимуществ ... и /110/,с. 45);
ИС применяются практически во всех сферах жизнедеятельности современного общества, а осуществление государственного управления, решение
ряда других задач (например, оборонного характера) без применения соответствующих ИС объективно невозможно ввиду конечности интеллектуальных возможностей человека по запоминанию и преобразованию информации/106, 109/;
информационное противоборство, борьба за достижение превосходства в информационной сфере стали неотъемлемыми атрибутами национальной безопасности /111/ (в частности, в Доктрине информационной безопасности Российской Федерации указано следующее: "Третья составляющая национальных интересов Российской Федерации в информационной сфере включает в себя развитие современных информационных технологий, отечественной индустрии информации, в том числе индустрии средств информатизации, телекоммуникации и связи, обеспечение потребностей внутреннего рынка ее продукцией и выход этой продукции на мировой рынок, а также обеспечение накопления, сохранности и эффективного использования отечественных информационных ресурсов. Б современных условиях только на этой основе можно решать проблемы создания наукоемких технологий, технологического перевооружения промышленности, приумножения достижений отечественной науки и техники"—/3, u. 1/).
В целом в масштабах государства потенциально возможные свойства ИС и их СПО определяются рядом компонентов, схематично показанных на рис. 1.1. Не останавливаясь на анализе приведенной схемы (она подробно рассматриваемся в /82/), можно заметить, что в конечном итоге определяющую роль играют содержание и технологическая поддержка создания СПО ИС, концентрирующие в себе достижения науки и техники и отражающие состоятельность всей системы производства СПО.
Все вышеизложенное свидетельствует о важности и актуальности работ, направленных на совершенствование создания СПО ИС.
Одним из центральных понятий технологический основ создания СПО ИС является понятие его жизненного цикла, роль которого определяется зависимостью технологической схемы производства СПО и организационно- технического обеспечения технологии создания СПО от структуры и содержания процессов, составляющих жизненный цикл /112 -114/.
Рис.
1.1. Основные компоненты, определяющие
потенциальные свойства ИС и их СПО
Жизненный цикл (ЖЦ) любого ПО обычно определяется как непрерывный процесс, который начинается с момента принятия решения о создании ПО и заканчивается в момент его полного изъятия из эксплуатации /113/. Относительно ЖЦ ПО необходимо учитывать следующее: в настоящее время имеется достаточно много трактовок содержания ЖЦ ПО, зачастую принципиально отличающихся друг от друга в том числе за счет учета специфики рассматриваемого ПО (см., например, /112,114 -117/);
в основе жизненного цикла лежит та или иная схема жизненного цикла, фиксирующая последовательность смены стадий и этапов ЖЦ и соответствующих им состояний ПО (в настоящее время широко используются каскадная и спиральная схемы и их различные модификации - /7,118/);
ЖЦ СПО неразрывно связан с ЖЦ ИС;
имеется ряд стандартов, регламентирующих содержание состав и содержание стадий и этапов Ж11 ПО, среди которых ведущую роль имеют международные стандарты ISO/IOC 12207 и 1ЕЕЕ 1074-1995, а также ГОСТ ЕСПД 19.102-77, ГОСТ 24.602-86 и ГОСТ 34.601-90 /115,119/.
Следует отметить, что ГОСТ ЕСПД и ГОСТы серий 24 и 34 предполагают использование каскадной схемы ЖЦ и во многом морально устарели. Кроме того, организациями - производителями СПО могут применяться отраслевые стандарты и стандарты предприятий, уточняющие и дополняющие национальные стандарты применительно к организации создания программного обеспечения определенного назначения и (или) в определенных условиях (как, например, отраслевой стандарт "Организация производства программного обеспечения коммутационных систем. Технология промышленного производства программного продукта. Основные положения" /120/, и методика Oracle CDM (Custom Development Method) по разработке прикладных информационных систем, являющаяся стандартом предприятия /121/).
В силу своего предназначения (решение прикладных задач) СПО ИС всегда является программным продуктом (ПП) - то есть продуктом промышленного производства, отчуждаемым от разработчиков с целью его последующей эксплуатации 1X221. СПО как вид промышленной продукции обладает рядом особенностей* основными из которых являются:
уникальный характер производства* обусловленный уникальностью самих ИС и областей их применения - как правило, СПО ИС создается в единичных экземплярах* разрабатывается зачасгую годами и непереносимо из одной ИС в другую без существенной модификации;
сложность и объем СПО требуют коллективной организации труда по его созданию, причем коллективы разработчиков включают в себя специалистов различного профиля;
создание СПО осуществляется в тесной взаимосвязи с созданием других видов обеспечения ИС;
требования к СПО в сильной степени зависят от требований к ИС и особенностей области ее применения, часто не формализуемы и противоречивы* и могут изменяться (уточняться) в ходе работ по созданию ИС.
Существенную специфику в создание СПО вносят и две объективные закономерности* отрицательно сказывающиеся на общей эффективности процесса создания СПО:
наличие так называемого "мертвого времени ошибки"* то есть существование отрезки технологического времени, на протяжении которых ошибка какого-либо этапа проектирования себя не обнаруживает, причем наиболее длителен период недосягаемости для выявления ошибок конечного пользователя (заказчика)/1/;
стоимость обнаружения и исправления каждой ошибки не линейно (в 10 - 100 раз) возрастает по мере приближения к завершающим этапам создания СПО/123/.
Перечисленные выше особенности СПО как продукта промышленного производства привели к всеобщему осознанию главенствующей роли качества СПО при высокой вариантности способов организации и реализации процессов создания СПО в промышленных условиях, определяющих содержание ряда этапов его жизненного цикла.
Свойства СПО и процесса его создания характеризуются показателями качества. Поскольку требуемое качество (или требования к качеству) является внешним критерием процесса создания СГ10, проблема управления качеством является одной из центральных проблем промышленного производства СПО.
Так, по данным Департамента но торговле и промышленности Великобритании при внедрении проектов информационных технологий на предприятиях потери из-за низкого качества программного обеспечения составляют в среднем около 20% от общего объема потерь, а по разным оценкам аналогичный показатель для России достигает величины от 30 до 50% /124/.
Существенно, что именно несоответствие качества создаваемого СПО предъявляемым к нему требованиям, выявляемое в ходе промежуточного или итогового контроля, придаем процессу создания СПО итеративный характер.
Организация управления качеством требует решения ряда задач, подробно рассматриваемых, например, в /122, 125, 126/, среди которых центральное место занимает определение самого понятия качества СПО и перечня характеризующих его показателей.
Несмотря на то, что попытки формального определения качества ПО осуществлялись практически на всем историческом периоде программирования как вида деятельности, удовлетворительного решения этой задачи до сих пор не найдено. Предложены самые различные подходы к трактовке понятия качества ПО, в том числе с разбивкой показателей качества по стадиям жизненного цикла, аспектам применения и т. д. (/126 - 131/ и др.). Имеются и невостребованные на практике государственные стандарты "первого поколения»
в области качества ПО /132, 133/, так как попытки унифицировать показатели качества ПО оказались несостоятельными в силу зависимости их перечня от целого ряда факторов, которые делают невозможным применение подобного подхода.
Современная концепция качества ПО заключается в сочетании относительной свободы в выборе показателей качества с формализацией оценки управления качеством, осуществляемого организацией - разработчиком ПО. При этом под качеством в целом понимается то, насколько хорошо и как долго разработанный программный продукт и его сопровождение отвечают требованиям заказчика. Тем самым при оценке качества ПО предполагается оценивать не только значения выбранных его показателей, но и технологию и схемы процессов контроля качества, ислользусмые данным разработчиком и называемые моделью качества. При этом предполагается, что чем эффективнее организовано управление качеством в организации-разработчике (то есть чем выше достигнутый уровень модели управления качеством), тем выше качество создаваемого сю 1Ю и степень доверия к этой организации.
Данный подход базируется на ряде международных и национальных стандартов (стандарты группы "ISO 9000" (имеются ряд соответствующих стандартов ГОСТ Р), ISO 8402, ISO/IEC 12119, ГОСТ Р ИСО 9126 и др. - /115, 119, 134/), а основными используемыми моделями качества являются модели СММ и Trillium /115, 128, 135 - 138/.
Capability Maturity Model (СММ) была разработана Software Engineering Institute (S1:I) совместно с Университетом Корнеги-Меллона и рассматривает процесс разработки программного обеспечения как поэтапное достижение компанией определенного уровня зрелости. Согласно модели СММ выделяется пять уровней управления качеством в ходе создания ПО - на первом уровне каждый проект рассматривается как абсолютно новая задача, а на пятом уровне все действия заранее расписаны и происходит постоянный процесс их усовершенствования.
Модель Trillium, созданная в 1994.г. фирмами Bell Canada, Northern Telecom и Bell-Northern Research, основана на CMM и дает иную трактовку уровней управления качеством.
Одна из важнейших особенностей управления качеством именно СПО состоит в том, что ИС либо создаются как уникальные изделия, либо тиражируются в виде относительно малого количества экземпляров. Это делает невозможным применение методов управления качеством, широко используемых при осуществлении массового производства (как, например, бета- тестирование ОПО). Применение методологий типа Total Quality Management (TQM) в данном случае становится весьма проблематичным в силу их ориентации на потоковое производство с "обратной связью" /139/.
Как следует из вышеизложенного, современное состояние в области качества ПО (а следовательно - и СПО) можно охарактеризовать следующим образом:
отсутствует единая система показателей качества, и возможность ее создания представляется весьма сомнительной;
осуществляется переход от попыток стандартизации понятия и показателей качества ПО к унификации и стандартизации систем управления качеством у разработчиков;
оценка производителей ПО с позиций качества создаваемого ПО осуществляется (должна осуществляться) по степени совершенства используемой ими системы управления качеством создаваемого ПО, определяемой в результате аудита и сертификации.
Таким образом, роль и значение СПО ИС в современной жизни весьма высоки и продолжают возрастать, процесс его создания во многом остается искусством, критерии этого процесса и его результатов весьма расплывчаты, а капшаловложения в создание СПО ИС характеризуются сочетанием относительно высоких риска и прибыли /140 -142/.
Анализ положения в области технологической поддержки жизненного цикла специального программного обеспечения информационных систем
В мировой практике создания ПО достаточно длительное время имеет место противоречие между требуемыми объемом и функциональностью создаваемого ПО, и его качеством, что обусловлено:
ростом возможностей вычислительной техники, расширением сферы применения ЭВМ, возрастанием перечня и важности решаемых с помощью ПО задач;
видоизменением продукта труда — ПО приобрело характер промышленного продукта, его разработка носит коллективный характер;
производительностью труда программистов, качеством создаваемого ПО и затратами на его создание, обусловленных существующими способами и формами организации процессов создания ПО.
Как следствие сложившейся ситуации, более чем два десятилетия динамика роста производительности труда программ истов на несколько порядков ниже динамики снижения стоимости ЭВМ и роста их вычислительной мощности и надежности /122/.
Данное несоответствие между потребностями в ПО и имеющейся производительностью труда его разработчиков не может быть разрешено только экстенсивными мерами, ибо увеличение количества программистов, не сопровождающееся качественными изменениями организации их деятельности, не в состоянии удовлетворить гораздо более быстро растущий спрос результатов их чруда.
Все вышеизложенное в полной мере относится и к СПО, для которого можно выявить две стратегии исследований в области повышения качества СПО и производительности процессов его создания: поиск частных решений п переход к индустрии создания СПО.
Первая стратегия предполагает создание и применение высокоэффективных средств (подходов) методологического и инструмен1ального характера применительно к конкретным типам СПО, областям применения создаваемого СПО, классам решаемых посредством СПО задач и т. д. В этом случае достигаемый эффект является следствием узкой специализации создаваемых и используемых средств. В зависимости от степени формальности, направленности, инструментальной поддержки и широты охвата работ по созданию СПО частные решения носят название методологий, принципов, стратегий, подходов, методов, технологий и т. д. В качестве примеров частных решений различного характера, получивших развитие в последние годы, можно привести визуальное и сборочное программирование, технологии COM (Component Object Model) и ActiveX, MIDAS (Multi-tiered Distributed Application Services) и CORBA (Common Object Request Broker Architecture) и т. д. (/143 - 148/ и др.)- Составление детальной классификации и подробного перечня частных решений является практически неразрешимой задачей - большинство организаций, делающих ставку на создание СПО, стремятся либо создать свое "ноу хау", либо "диктовать свою моду", заявляя о создании оригинальных методологических и инструментальных средства и стремясь возвести их в ранг стандарта "ле факто".
Вторая стратегия предполагает проведение работ по унификации, стандартизации процессов создания СПО, разработку и внедрение индустриальных технологий его производства. В идеале данное направление предусматривает создание цехов и заводов гибкого автоматизированного производства ПО, организуемого по конвейерному или роторному принципу /122, 125, 126/.
На сегодняшний день абсолютное большинство работ в области повышения эффективности процессов создания ПО выполняется в рамках первого направления:
оно более экономично (с позиций затрат и сроков их окупаемости);
объем и сложность СПО, создаваемого мелкими и средними производителями, не порождают в явном виде проблем, требующих обязательного перехода к промышленным методам производства ПО.
Применительно к созданию СПО термин "технология" используют в различных аспектах - методологическом, реализационном, индустриальном и прагматическом /70/ (рис. 1.2).
Не приводя детального описания всех компонентов, показанных на рис. 1.2 (оно имеется в /60, 70/), следует отметить, что технологии проектирования, разработки, изготовления и сопровождения СПО делают акцент на индустриальных аспектах создания, внедрения и поддержания (сопровождения) СПО. В их основе лежит формализация схемы жизненного цикла СПО, определение составляющих се процессов (работ, операций), методологическая и инструментальная поддержка заявленных стадий и этапов жизненного цикла.
Первенство в данном направлении достаточно долго прочно удерживают CASE-технологии (Computer-Aided Software/System Engineering) (/7, 118/ и др.). CASE-технология представляет собой совокупность методологий анализа, проектирования, разработки и сопровождения сложных систем программного обеспечения, поддержанную комплексом средств автоматизации (CASE- средств). В свою очередь, С А SB-средства - это инструментарий для системных аналитиков, разработчиков и программистов, позволяющий значительно увеличить производительность их труда. Имеются вариации CASE- технологий, учитывающие специфику количества и организации труда разработчиков, характер создаваемого СПО и т. д. - например, методология быстрой разработки приложений RAD (Rapid Application Development) (соотношение CASE и RAD рассматривается, в частности, в /149/).
В качестве примера типовой последовательности работ, предусматриваемой CASE-технологиями, на рис. 1.3 приведена схема создания ИС, поддерживаемая CASE-средством Designer/2000 фирмы Oracle /150/, которое относят к числу наиболее развитых и эффективных средств /151/. В соответствии с базирующимися на методологии IDEFlx /152, 153/ CDM фирмы Oracle (см. п. 1.1) и приведенной схемой основным содержанием создания ИС является разработка ряда формализованных описаний (моделей), фиксирующих функциональную структуру ИС, ее информационную модель и т. д., и дальнейшая
полуавтоматическая генерация структуры базы данных и функциональных приложений.
Из всей совокупности индустриальных технологий наиболее объемлющими являются технологии промышленного производства программного продукта (ТПППП). Под Tl 1111111 понимается технология, способная в течение заданного времени производить определенное количество копий программных средств или больших программных комплексов, реализованная в виде технологической линии как совокупности автоматизированных звеньев, специализированных по стадиям, этапам и операциям создания I !П, обеспечивающих
объемлющими являются технологии промышленного производства программного продукта (ТПППП). Под TI1111 111 понимается технология регламентированное, своевременное и качественное выполнение всех операций, предусмотренных технологическим процессом /122,125/. По/125,126/ТПППП должна: быть "гибкой", "базовой" и "сквозной";
иерархически вписываться в производство программных комплексов, программно-аппаратных комплексов и систем как ее органическая часть;
содержать базовое ядро и механизм адаптации дня настройки на создание СПО в рамках конкретного проекта;
обеспечивать декомпозицию процесса производства до уровня элементарных технологических операций;
максимально автоматизировать технологические операции и процессы;
обеспечивать возможность использования (участия) специалистов "пониженного" уровня профессиональных способностей - то есть ориентирована на "массового" производителя;
регламентировать и обеспечивать опережающее документирование результатов операций;
обеспечивать возможность нормирования интеллектуального труда разработчиков, планирования и управления процессом производства.
Имеющиеся концепции ТПППП /ИЗ, 117, 122, 154, 155/базируются на декомпозиции процессов, составляющих жизненный цикл ПО, и средств, обеспечивающих технологические процессы жизненного цикла. Согласно /113/ базовыми компонентами технологической системы производства ПП являются:
методическое обеспечение технологии, которое составляют принятые принципы построения технологии с поддерживающей ее технологической системой, а также конкретные методы создания ПП;
обеспечение внедрения технологии - рекомендации, обеспечивающие устойчивость процесса внедрения технологической системы и сокращающие его трудоемкость;
организационно-технологическое обеспечение технологии, которое регламентирует вопросы организации работ в соответствии с принятой технологией;
инструментально-технологическое обеспечение пехнологической системы, предназначенное для эффективного выполнения работ в рамках технологической системы.
В настоящее время имеется достаточно большое количество технологий, в различное время заявленных как ТТТТ1ГТП - например, семейство технологий "Яуза", "Протва", "Прометей", Н-технология, МВП-Т технология, RTST++ и др. (/120, 155-158/). Причинами многообразия ТПППП являются ориентация авторов технологии на определенные классы разрабатываемых программных средств, вид получаемого продукта, типы средств вычислительной техники. Однако практически всем имеющимся технологиям присущи определенные недостачки, к числу основных из которых можно отнести: наличие ограничений, резко сужающих возможности применения (используемые средства, классы задач и типы создаваемого СПО);
ориентация на процессы непосредственно программирования и слабая поддержка процессов проектирования и (или) комплексирования и аттестования конечной продукции;
сложность решения ряда принципиальных проблем, вытекающих из перечисленных выше требований к ТПППП.
Кроме того, опыт последнего десятилетия показал, что высокие темпы эволюции парка средств вычислительной техники не дают возможности выполнить анализ объекта исследования (процессов промышленного создания ПО) и синтез технологических решений в сроки, соизмеримые со сроком морального
старения инструментальных средств, на обязательное применение которых ориентирован технологический процесс. Поэтому большинство перечисленных выше технологий на сегодняшний день морально устарели.
Существенно, что в нашей стране интерес к созданию ТПППП в последнее время значительно снизился, что вызвано следующими основными причинами:
возникающие сомнения в состоятельности указанного выше подхода к формированию концепций ТПППП, сформированного в 80-х годах, в условиях лавинообразного роста номенклатуры средств вычислительной техники и инструментальных средств создания С110;
на смену государственным заказчикам "больших" АСУ /(08/ пришло множество заказчиков из сферы малого и среднего бизнеса, вынужденных решать "сиюминутные11 проблемы путем внедрения ИС (складской и иной учет, бухгалтерские расчеты, электронная коммерция и т. д.), для создания которых технологии класса ТПППП не требуются.
В то же время объективно существует отдельный и достаточно большой класс ИС, к которым очносятся как эксплуатируемые АСУ (и в большинстве своем морально, а чаще - и технически устаревшие), так и вновь создаваемые ИС в области государственного управления, обороны и безопасности и т. д. Для таких систем, называемых далее в настоящей работе информационно- управляющими автоматизированными системами (ИУАС), характерно следующее:
большие объем, сложность и распределенное асинхронное функционирование разнородных компонентов;
сотни и тысячи рабочих мест, крайне разнородная и зачастую малопроизводительная телекоммуникационная среда, необходимость решения задач сопряжения с аналогичными по своему характеру и крайне разнородными и
по используемым техническими и программными средствам системами, уже имеющимися в эксплуатации (см., например,/159,160/);
сочетание процессов организационного и технологических* управления;
достаточно высокая длительность создания, сложность задач проектирования, корпоративный характер процесса создания;
наличие нескольких штатных режимов работы, одна часть которых относится к повседневной деятельности, а другая -• к функционированию в разного рода чрезвычайных обстоятельствах, которые в реальной жизни могут и не возникнуть;
принадлежность к ''критическим*1 системам с повышенными требованиями к их программно-технологической безопасности/161/.
Когда возникает вопрос о создании СПО ИС описанного выше класса, переход к промышленным технологиям становится единственной разумной альтернативой (только CASE-тсхнологий, которые не обеспечивают решение всех возникающих задач (см., например, /56/), в данном случае крайне недостаточно), причем использование импортируемых технологий и средств, равно как и размещение заказов на создание этого СПО за рубежом, являются недопустимыми/21, 161/.
ТПППЛ для разработки СПО ИУАС в настоящее время отсутствует, а по ряду причин (и прежде всего - лавинообразного роста количества эксплуатируемых ИУАС, нуждающихся в технической модернизации, неизбежно приводящей к необходимости реинжиниринга их СПО) можно ожидать, что потребность в технологиях подобного класса в ближайшее время будет возрастать /82/,
Причины ограниченности адаптации функциональности информационных систем в процессе их эксплуатации
При создании любой ИС с использованием существующих подходов к его осуществлению и типовой архитектуры ИС происходит фиксация (рис. 1.4):
целей создания ИС (Sc), предъявляемых к ней требований (SR) и ресурсов, выделяемых на ее создание (S\V);
перечня задач (Z), подлежащих решению с помощью данной ИС и требований к их решению (Zr) (отличаются от S« тем, что формулируются применительно к каждой задаче из Z и носят полностью функциональный характер - оперативность решения задачи, точность получаемых результатов, форма представления результатов и т. д.);
методик решения задач (ZM), определяющих организацию .решения за* дач из Z с помощью данной ИС.
Далее, исходя из U = (Sc» SR, Sw, Z, ZR, ZM) выбирается система управления базой данных (СУБД), формируется база данных (БД) (а точнее - определяется ее структура X* и производится разметка таблиц и каталогов базы данных) и тем или иным образом (разработка, адаптация или использование готовых реализаций) формируется набор функциональных приложений, в которых программно реализовано множество алгоритмов содержательной обработки данных Ха, объединяемых управляющими алгоритмами функциональных приложений.
Для упрощения дальнейшего рассмотрения целесообразно считать, что управляющие алгоритмы функциональных приложений не зависят от содержания Xj и Хв - их задачей является ожидание действий пользователя, инициализирующих выполнение какого-либо процесса вычислений, и вызов соответствующего элемента из X» Такое упрощение не снижает общности дальнейших рассуждений — оно носит, в основном, конструктивный характер (влияет только на программную реализацию архитектуры ИС и определяет конструкцию приложений), во многом соответствует современной идеологии объект- но-ориснтировакной реализации программ /103,162/ и даже канонизируется в отдельных работах по методологии создания приложений /163/.
Таким образом, содержательно при создании ИС осуществляется процесс синтела, который можно записать как
[ (Sc, SR, Sw) -»(Z,ZR)->ZMJ^(Xd,Xa) (1.1)
Рассматривая создание конкретной ИС, от (1.1) можно перейти к записи Щс) - On (tc), (U(tc)) = 0р (0„ (О),
где U(t«) - совокупность (Sc, Sr, Sw, Z, Z«, ZM), зафиксированная при создании ИС в некоторый момент времени 1С (более строго, 1с представляет
собой интервал проектирования системы, на котором определяются составляющие U, но в данном контексте это несущественно);
$п Ос) — оператор конкретного процесса проектирования данной ИС, выполненный в момент (« (такое определение 0 позволяет абстрагироваться от того факта, что U зависит не от времени как такового, а от множества факторов по их состоянию на момент tc — свойства суперсистемы, предметной области, проектировщиков и т. д.);
0Р - оператор конкретного процесса реализации результатов проектирования в совокупность алгоритмов обработки и структур баз данных.
Такая формализация содержания создания ИС является несколько поверхностной, однако в данном случае важен факт, что U(tc) - 0„ (tc) = const (если не рассматривать исправление ошибок в U).
Закономерность (1.1), отражающую сущность императивного программирования (а точнее - реализации ИС с использованием императивного программирования), один из 4,огцови >современного программирования, автор языков протраммирования Паскаль и Оберон проф. Н. Вирт зафиксировал даже в названии своего бестселлера "Алгоритмы + структуры данных н программы" /164/. И хотя речь в этой монографии шла не об ИС, а о более "примитивных" программных системах второй половины 70-х годов, общая закономерность сохранила свою справедливость для современных ИС. Более того
она получила гипертрофированное развитие: большинство разработчиков ИС, являющихся поклонниками литературы "что-нибудь за 21 день'1 скажет, что создать относительно "небольшую" ИС довольно просто - надо взять СА$К-средства, описать структуру данных, экранные формы и формы отчетов, и выполнить автоматическую кодогенерацию, а если потребуется, то дополнить получившийся код приложений уникальной реализацией функциональных возможностей (конкретные расчетные формулы, специфические преобразования данных и т. д.). А если что-то не учли, пропустили - для этого
случая и существует спиральная схема ЖЦ, и можно выполнить еще одну итерацию разработки. Некая доля истины в таком ответе есть - достаточно вернуться к рис. 1.3.
Несмотря на все недостатки подобного подхода к созданию ИС (см. критический анализ в /165» 166/)» он весьма популярен в силу относительно низких временных и материальных затрат, необходимых для получения представляемого пользователям результата разработки (особенно первой, а возможно - и единственной редакции). Справедливости ради следует отметить, что применение данного подхода зачастую оправдано - он, несомненно, имеет свою область эффективного применения, и альтернатив ему с точки зрения возможности повышения производительности труда разработчиков практически нет.
Более того, большинство современных методологии создания информационных систем (особенно корпоративных) предполагают концентрацию усилий проектировщиков на начальных этапах проектирования (что само по себе абсолютно справедливо), предполагая максимально возможную автоматизацию процесса реализации (оператора 0Р) за счет автоматической кодогенера- ции в рамках типовой архитектуры и технологии обработки (среди которых лидирующее положение занимает архитектура "клиент-сервер" и ее различные модификации) - /103,118,153,167 - 172/ и др.
Тем не менее, как показано ниже, проблемы эффективного автоматизированною решения прикладных задач с созданием ИС не заканчиваются.
Опустив аспекты, связанные с реализацией и организацией применения ИС, можно считать, что содержательные возможности любой ИС по решению прикладных задач обработки (преобразования) информации определяются ее базой данных и функциональными приложениями:
функциональность ИС находится в прямой зависимости от структуры БД и алгоритмов функциональных приложений;
состоятельность ИС в решении конкретных прикладных задач определяется ее функциональностью и содержимым (наполнением) ее базы данных в виде совокупности конкретных данных D (см. рис. 1.4).
Следует заметить, что термины "функциональность" и "состоятельность", применяемые в отношении ИС (см., например, /173/) можно трактовать как потенциал ИС и ее фактическую готовность к решению прикладных задач.
В силу объективных законов развития природы и общества любая система не является статичной. В том числе это относится и к суперсистемам, задающим определенные требования к ИС, и к предметным областям применения ИС, также определяющим часть требований. Кроме того, может иметь место изменение сопряжений ИС с взаимодействующими системами - при наличии таких систем.
Таким образом, требования к ИС потенциально динамичны. В данном контексте под требованиями понимается вся совокупность U = (Sc» Sr, Sw, Z, Zr, Zm) - при этом даже не важно, как они взаимосвязаны, важно лишь то, что реализация (Х^ А*) выполнена разработчиками для некоторого U, зафиксированного в ходе разработки как U(tc) и до сдачи системы в эксплуатацию считавшегося неизменным.
Определим различие между требованиями U(tc), зафиксированными при создании ИС и реализованными в ней, и требованиями, которым должна отвечать система п соответствии со свойствами ее окружения в данный момент времени [.'(0 как AU(t,tc) = U(t) - U(tc). Очевидно, что дискретно-непрерывная функция AU(t,tc) оо при t оо4
Чем больше величина AU(t,tc), тем меньше эффективность ИС как инструмента решения прикладных задач. Рано или поздно наступает момент t*p, когда AU(t*p,tc) начинает превышать некоторую критическую величину ДЦф, после чего эксплуатация ИС нецелесообразна или невозможна. Причем речь
идет не о моральном старении техники и не о прекращении использования ИС по внешним причинам, приводящим к исчезновению необходимости в данной ИС, а о функциональном старении ИС, вызванном изменением функциональных требований к ней.
Своевременная модернизация ИС позволяет уменьшить величину AU, однако любые изменения в U и, как следствие, в (Х;; А») требуют участия разработчиков ИС и не всегда тривиальны. Достаточно легко описать часто встречающуюся на практике ситуацию, когда эффективнее (дешевле и быстрее) создать новую ИС, чем вносить изменения в эксплуатируемую систему. Также можно привести ряд примеров, когда по тем или иным причинам момент tKp наступал еще до завершения создания системы.
ИС может иметь некоторую способность адаптации к изменениям U, которая позволяет обеспечить достаточно эффективное применение ИС в некоторой области U(tc)±Ua и может быть осуществлена без привлечения разработчиков. Однако такая адаптация по определению не может затрагивать X, и, как правило, весьма ограничена по возможностям изменения Х^. На практике количество ИС, в которых пользователю предоставляется некоторая возможность изменения состава хранимых данных, весьма мало, а способы реализации этих возможностей, как правило, уникальны и не переносимы без существенной модификации на конструкции других ИС - см., например, /173 - 176/. Поэтому данная возможность никак не решает в методологическом плане проблему корректировки пользователем структуры БД - тем более, что такая корректировка зачастую требует и одновременной коррекции программных кодов процедур X,.
В классификации ИС, приведенной в /93/, подкласс 1 определяется как "системы с неизменным алгоритмом обработки, но изменяющимися данными". а подкласс 2 - как "системы с адаптивным алгоритмом обработки, то есть алгоритм настраивается на условия применения; настройка осуществляется
путем либо изменения управляющих коэффициентов, либо автоматического выбора алгоритма из множества равносильных алгоритмов" (/93/, с. 108)-рис. 1.5.
Социальное
пространство
Рис. 1.5. Классификация информационных систем (по С. Расторгуеву)
Нели речь идет об автоматизированных ИС, то для систем подкласса 1 адаптация достигается варьированием содержимого БД, а для систем подкласса 2 первом случае возможность адаптации отсутствует, а во втором она ограничена выбором компонентов из множества X* и не предполагает его изменения (поэтому сочетание "адаптивный алгоритм обработки" в приведенной цитате несколько некорректно - речь идет, скорее, об "алгоритме адаптивной обработки”, ибо сам алгоритм как совокупность императивов фиксирован).
Привлечение разработчиков для модернизации системы имеет смысл, если U(t)«£ (U(tc)±Ua). Модернизация позволяет внести изменения в (Aj. Аа), преобразовав их в (V. V) и обеспечив U(t<>) = U(t) (или, по крайней мере, U(tc) » U(t)) (см. рис. 1.4).
В зависимости от величины различий U(t) и U(cc), а также ряда других факторов модернизация может осуществляться в рамках или сопровождения, или перепроектирования (реинжиниринга) ИС. Существенно, что затраты на модернизацию Wm зависят от величины функционалов различий n(U(t), U(tc))
и n((^.uw.a
На практике разработчики ИС и их СПО признают актуальность, сложность и высокую стоимость сопровождения СПО (см, например, оценки в /177 - 179/). В то же время на фоне создания ИС проблематика ее последующего сопровождения как бы отходит "на второй план": заказчики в большинстве своем не могут адекватно представить и оценить, во что выльется сопровождение приобретаемой ими ИС (какую "головную боль" они приобретают, и в какую зависимость от разработчиков попадают), а разработчиков такое положение устраивает, ибо дает гарантированный источник отнюдь не маленьких доходов.
В связи с вышеизложенным можно также отметить, что широко распространенные CASE-тсхнологии и средства, в частности, направлены не только и не столько на повышение производительности труда программистов, как это часто декларируется, но и для того, чтобы "отодвинуть" момент наступления Ц) путем сокращения сроков создания ИС и использования при разработке как можно более адекватного описания U, а также сократить затраты на сопровождение путем максимально возможного упрощения технологических действий по модернизации ИС. Повышение производительности труда в данном случае есть способ (а точнее - один из способов) достижения этой цели. Таким образом, основной эффект в технологических достижениях последнего
времени в абсолютном большинстве относится к созданию СПО, и лишь как побочный эффект — к его сопровождению, причем не в плане устранения ошибок (с этим как раз все существенно обстоятельнее (службы технической поддержки, рекламационная работа и т. д.), потому что цена ошибок зачастую слишком велика, и разработчикам гораздо более проще признать, что их продукт на что-то не способен (и получить заказ на доработку, модернизацию и т. д.), чем наличие в нем ошибок), а в плане адаптации функциональности.
Поскольку изменения в окружающем мире происходят достаточно часто - изменяется нормативно-правовая база, происходят всякого рода структурные преобразования в государственном управлении, экономике и т. д., можно утверждать, что методология построения ИС в виде (1.1) ведет к широкомасштабным затратам и потенциально может обеспечить только некоторый уровень эффективности ИС, который в перспективе будет становится все более недостаточным.
Описанная выше ситуация хорошо известна и осознанна. В частности, дебаты по поводу кризиса императивного программирования, ограниченности алгоритмическою подхода к описанию процессов, несовершенства технологий создания ПО и т. д. продолжаются уже несколько десятилетий — см., например,/125,128, 146, 167,180/.
Вышеизложенное свидетельствует о том, что любые конструктивные подходы к изменению существующего положения в принципах построения СПО ИС и технологиях его создания, направленные на снижение степени и сроков функционального старения ИС и повышение их способности к адаптации функциональности с целью сокращения затрат на сопровождение и обеспечение стабильной эффективности применения ИС, весьма актуальны.
Структуризация проблемы совершенствования создания и обеспечения эффективного функционирования специального программного обеспечения информационных систем
Обобщая изложенное в пп. 1.1-1.3, можно утверждать, что в настоящее время в области создания и обеспечения эффективного функционирования СПО ИС имеется весьма актуальная проблема, заключающаяся в необходимости совершенствования способов и средств осуществления этих процессов, обусловленная сложившимся несоответствием между:
с одной стороны - стремлением к сокращению сроков создания СПО, повышению его качества (включая обеспечение возможности адаптации функциональности ИС), а также к сокращению затрат на создание и сопровождение СПО;
с другой стороны - реальными возможностями по созданию и сопровождению СПО и приданию ему требуемых свойств, определяемыми используемыми конструктивно-технологическими решениями в области индустрии СПОИС.
Проблема, формулировка которой приведена выше, приобретает специфическую направленность по отношению к ИС различных типов. В рамках данного исследования рассматриваются ИС трех типов:
уникальные или тиражируемые ИС длительного применения с потенциальной неопределенностью и (или) высокой динамикой требований к их функциональности;
ИС однократного применения;
ИУАС, основные особенности которых перечислены в п. 1.2.
Такое разделение обусловлено тем, что, как показано ниже, применение существующих методологий построения ИС и CASE-технологий дает совершенно различный эффект по отношению к ИС перечисленных выше классов, и порождает различающиеся по своей сути частные проблемы (рис. 1.6).
Д ля ИС первого типа (ИС длительного применения с потенциальной неопределенностью и (или) высокой динамикой требований к их функциональности) существующая технологическая поддержка создания СПО наиболее эффективна и направлена на сокращение сроков создания СПО, обладающее требуемым качеством, затрат на его создание и сопровождение (способы достижения этих целей подробно рассматриваются в современных CASE-технологиях "второго поколения" -/7,118,181,182/ и др.).
По отношению к ИС первого типа рассматриваемая проблема трансформируется в проблему необходимости совершенствования возможностей адаптации функциональности подобных ИС, вызванную противоречием между статичностью их функциональности и динамикой предъявляемых к ним функциональных требований. Основной причиной данного противоречия является архитектурно-технологические особенности используемой методологии создания ИС первого типа (в том числе на базе современных CASE- технологий и объектно-ориентированного подхода, ибо объекты как средство абстракции /162,183/ также по сути своей статичны), что ведет к сложности и высокой стоимости изменения функциональности ИС во время их эксплуатации, и снижает их общую эффективность применения (см. п. 1.3). Очевидный подход к решению данной проблемы заключается в поиске принципов, методологии и способов построения СПО и ИС в целом, обеспечивающих существенно более высокую степень адаптивности функциональности в сочетании с максимальным осуществлением этой адаптации непосредственно пользователями ИС.
ИС второго типа - это ИС, создаваемые для однократного применения, то ссть для использования в течение относительно непродолжительного периода времени, ограниченного решением единовременной (уникальной, разовой) задачи. К ИС этого типа относятся, например, системы информационной поддержки разного рода выставок и конференций, средства разработки переходных
учебных планов о учебных заведениях, средства решения разного рода задач проектирования уникальных изделий (поддержка информационного обследования крупного предприятия, планирование уникальной спасательной операции и управление ею) и т. д., с различными специфическими особенностями, приводящими к необходимости создания уникальной ИС. Автоматизация решаемых задач в подобных случаях крайне желательна, однако полноценное создание ИС по "классической" методологии, применяемой для ИС первого типа (см. п. 1.3) зачастую неренгабсльно и (или) не приемлемо по срокам создания необходимой ИС. С другой стороны, для ИС второго типа задача адаптации функциональности, как правило, не актуальна.
В идеале создание ИС второго типа должно осуществляться с минимальной разработкой программною кода и уникальных программных реализаций функциональных приложений, для чего их конструкция должна быть выполнена в виде инвариантного программною ядра, адаптируемого к решаемой задаче путем задания (изменения) управляющей информации.
Как отмечалось в п. 1.2, существенным тормозом в создании СПО ИС третьего типа (ИУАС) является отсутствие соответствующих ТПППП, обусловленное противоречием между требованием к унификации процессов создания СПО ИУАС в рамках ТПППП и уникальностью создаваемых больших и сложных (различие в этих понятиях трактуется по /108, 184/) ИУАС, а также необходимостью фиксации базиса технологии и динамикой технологической поддержки создания СПО (в широком смысле этой поддержки - то есть принципов, подходов, методов, средств: концепций, архитектур, профилей, протоколов, средств разработки и реализации и т. д.).
Основной задачей, подлежащей решению в этой области, является поддержка процессов создания СПО ИУАС широким набором средств решения задач проектирования, разработки и управления качеством, которые не накладывают ограничений на организацию и содержание осуществляемых процессов
создания СПО. С учетом технологической системы, реализующей ТПППП и анализа отрицательного опыта создания технологий подобного класса (см. п. 1.2) можно предположить, что возможным подходом к решению данной задачи является формирование организационнометодологического базиса ТПППП на основе выделения инвариантных составляющих процессов создания СПО ИУАС и его поддержка набором адаптируемых инструментальных средств. Последнее означает, что основную часть средств поддержки в случаях, когда существующих CASE-средств недостаточно, могут составлять ИС второго типа.
Проблематика создания ИС всех трех указанных выше типов достаточно взаимосвязана:
задачи повышения эффективности функционирования СПО ИС предполагается решать посредством адекватных решений по его созданию;
совершенствование создания СПО первого и второго типов может быть осуществлено путем изменения принципов его построения и методологии создания с применением нетрадиционных архитектурно-технологических решений, обеспечивающих повышение возможности адаптации функциональности и рентабельности разработки соответственно;
решение указанной выше задачи для ИС первого и второго типа дает возможность поиска новых подходов к формированию организационно- методологического базиса ТПППП СПО ИУАС, предполагающих создание ядра ТПП! III с высокой степенью его адаптации в интересах конкретных проектов ИУАС.
Таким образом, поиск подходов к решению общей проблемы совершенствования создания и обеспечения эффективного функционирования СПО ИС требует отыскания нетрадиционных подходов к построению СПО ИС, позволяющих в той или иной мере положительно отразиться рассмотренной выше на частной проблематике создания СПО ИС различных типов.
Возможность повышения эффективности создания и. фуикциоии- рования информационных систем путем внесения элементов синтаксической вариантности и метауправления
Как отмечалось в п. 1.3, одним из направлений повышения эффективности функционирования ИС путем увеличения их адаптируемости к изменению целей, задач и условий их применения является поиск таких решений в области методологии построения ИС, которые обеспечат возможность варьирования структур данных и алгоритмов обработки данных в процессе эксплуатации ИС с минимально возможным привлечением разработчиков, то есть силами пользователей.
Проведенный анализ результатов исследований в данной области и опыта создания ИС с интуитивными частными решениями по обеспечению повышенной адаптируемости этих систем (/103, 168, 174, 185 - 189/ и др.) позволяет предположить, что перспективным нетрадиционным подходом к получению удовлетворительного решения рассматриваемой проблемы может послужить переход к созданию ИС более высокой семантической сложности в сочетании с введением элементов метауправления функциональностью ИС.
Для определения класса семантической сложности, к которому принадлежит информационная система, можно воспользоваться классификацией семантической сложности формальных лингвистических систем, предложенной А. И. Губинскнм /8/. В ней используются следующие обозначения:
у - множество символов алфавита;
v - множество правил соединения символов алфавита друг с другом в выражения (цепочки), допустимые (правильные) в данном языке;
<v,v> - синтаксис системы;
а = cty иа, - множество правил изменения синтаксиса (а* - множество правил изменения синтаксиса, ocv - множество правил изменения правил соединения символов);
λ - множество семантически правильных выражений или формул (набор аксиом или истинно интерпретируемых правильных выражений или формул);
<0 - множество правил вывода (множество правил получения следствий из X - новых правильно построенных выражений);
<Х,й)> - семантика системы;
Р — рх ^ Р«й - множество правил изменения семангики.
Согласно /8/ (с. 51), "... по нарастающей семантической сложности можно выделить следующие классы систем:
Фоо ~ формальные синтаксически неизменные системы, относящиеся к классу несемантических, описываемые кортежем
<T>oi>= <7,v>;
Ф01 - формальные синтаксически-варнантные системы, относящиеся к классу несемантических (Ф<>), описываемые кортежем
Фо1 = <Y,v,a>;
Ф| ~ формальные семантически неизменные системы, описываемые кортежем
Ф, = <Y,v,ot1X><D>;
Ф2 - семиотические (семантически изменяющиеся, или суперсеманти- ческие) системы, описываемые кортежем
Фг = <y,v,a,X,co,f)>
Данная классификация воспроизведена полностью как имеющая ключевое значение для настоящего исследования и трактовки его результатов.
Переход от теоретико-множественного к лингвистическому представлению применительно к ИС дает возможность сопоставить любой ИС некоторую формальную лингвистическую систему, или считать, что функциональность ИС может быть задана (описана) предложениями языка некоторой формальной лингвистической системы.
Абстрагируясь от собственно вычислительной среды ИС, семантики использованных языков программирования и реализационных вариантов конструкции составляющих ИС, и используя описание компонентов ИС, приведенное в п. 1.3, можно считать, что описания реализованной структуры БД и реализуемых процессов обработки данных и есть предложения, описывающие функциональность ИС.
Таким образом, здесь и далее под семантической сложностью ИС понимается семантическая сложность формальной лингвистической системы, в рамках языка которой могут быть заданы (описаны) компоненты, определяющие функциональность ИС.
Алфавит у языка указанной формальной лингвистической системы (который можно рассматривать как язык реализации функциональности (ЯРФ)) образуют идентификаторы структур хранения данных в БД и заданных на них отношений (yd), а также идентификаторы алгоритмов обработки данных (у,). Синтаксис ЯРФ определяется его алфавитом и правилами v композиции символов алфавита в логически правильные (синтаксически допустимые) цепочки (предложения), описывающие структуру БД (то есть А^) и процессы обработки данных (то есть кл). В свою очередь, правила v есть правила, являющиеся результату приложения синтаксических правил инструментальных лингвистических средств, использованных при создании БД и функциональных приложений ИС, к алфавиту у. Следовательно, можно записать: у = уй \jу,-алфавитЯРФ;
Gft = (y,v) - грамматика, описывающая синтаксис ЯРФ;
) .r(Gr) - собственно ЯРФ, то есть множество всех терминальных цепочек, порождаемых Gr;
X = Х<| и Ха - совокупность предложений ЯРФ (то есть \ с Lr(Gr)), реализованных в ИС и определяющих ее функциональность.
Предложения λ имеют денотационную и вычислительную модели семантики. Первая из них определяет соотношение данных предложений с объектами предметной области, для информационного моделирования которых использованы эти предложения» а вторая — соотношение с вычислительной семантикой (семантикой вычислительной среды ИС) последовательности императивов, к выполнению которых сводится выполнение этих предложений.
В силу фиксации (Xd, К) в программной реализации ИС, построенных по описанной в n. 1.3 "классической" методологии, подобные ИС можно отнести к классу синтаксически неизменных, несемангичсских систем. Именно фиксированность (Л* Х„) и приводит к необходимости привлечения разработчиков для изменения любого из этих компонентов в случае необходимости модернизации ИС.
Модернизация ИС может затрагивать либо только Xj или Ха (хотя изменения в Xj в большинстве случаев требуют адекватных изменений в Ха), либо и алфавит у с соответствующими изменениями в (X* Ха). В первом случае модернизация осуществляется в рамках неизменного синтаксиса, а во втором - предполагает изменение и самого синтаксиса ИС (следует также учитывать, что изменение алфавита неизбежно ведет к изменению правил композиции символов алфавита, то есть правил v). Соответственно, адаптацию функциональности ИС можно классифицировать как несинтаксическую или синтаксическую.
Согласно приведенной выше классификации семантической сложности формальных лингвистических систем, наиболее сложными в этом аспекте являются
семантические системы. Однако массовое создание ИС подобного класса, лежащее в области интересов теории и практики искусственного интеллекта, на сегодняшний день являегся задачей, весьма далекой от своего удовлетворительного решения - как по методологическому аппарату, так и по средствам реализации (/189 - 195/ и др.). Кроме того, привнесение в ИС сложности семантических систем не всегда целесообразно с позиций соотнесения сложности инструмента и сложности задач, для решения которых он используется.
Промежуточное место между синтаксически и семантическими системами занимают синтаксически вариантные, несемантические системы, характерной чертой которых является наличие правил изменения синтаксиса.
Следовательно, формальная лингвистическая система ИС будет синтаксически вариантной при наличии правил изменения алфавита ЯРФ и правил композиции символов этого алфавита.
В свою очередь, ИС будет синтаксически вариантной, если соответствующая формальная лингвистическая система синтаксически вариантна, а в ИС имеется механизм реализации изменений синтаксиса в рамках заданных правил этих изменений (то сеть в ИС должны быть предусмотрены методы и средства, позволяющие осуществлять се синтаксическую адаптацию).
С учетом введенных ранее обозначений синтаксическая вариантность ИС в первом приближении есть предоставление пользователю возможности варьирования (у* у») (а значит - и правил v), и (или) (Х*ь Хд).
В контексте синтаксическом вариантности ИС следует также отметить два достаточно интересных момента:
информационные системы с возможностью синтаксической адаптации в классификации по С. Расторгуеву отсутствуют - см. рис. 1.5;
понятие синтаксической вариантности достаточно давно существует в естественных языках - и не только в русском (см., например, /196 - 198/), однако попытка его применения к построению ИС производится впервые.
Реализация синтаксической вариантности в ИС предполагает введение нового языка - языка описания функциональности (ЯОФ), предоставляемого пользователю для задания (описания) (y<j, уа) и (X* Лв) - рис. 1.7.
По своей сути это должен быть предметно-ориентированный язык декларативного типа (по /199/ - контекстно-зависимый (но не в смысле вида правил грамматики, а в смысле зависимости от применения) проблемно- ориентированный язык информационного управления), синтаксис и семантика которого определяются при создании конкретной ИС (на рис. 1.7 этот язык обозначен как Lc а его грамматика - как Gc).
! Предметгая
иС'л.им. и прикладные задачи, подлежащие
решению
Рис.
1.7. Использование языков описания и
реализации функциональное™
Предложения на ЯОФ, порождаемые (создаваемые и изменяемые) пользователем, имеют отображение на элементы ЯРФ. Вычислительная семантика ЯОФ определяет указанное выше отображение, а денотационная семантика ЯОФ подобна денотационной семантике ЯРФ и определяет соотношение предложений на ЯОФ с объектами области решения прикладных задач.
Существенно, что синтаксис ЯОФ также может как фиксированным, так и вариантным языком. Во втором случае над ЯОФ должен вводиться еще один язык и т. д., то есть данная цепочка языков потенциально не ограничена.
Основным критерием определения длины цепочки этих языков служит практическая целесообразность. Однако можно предположить, что в абсолютном большинстве случаев уровня описания на ЯОФ будет достаточно, поэтому многоуровневые цепочки языков описаний в данном случае не рассматриваются.
Таким образом, ЯОФ представляет собой лингвистическое средство реализации синтаксической вариантности ИС.
В то же время нессмантичность синтаксически вариантной ИС (СВИС) приводит к тому, что денотационная сематика ЯРФ и ЯОФ определяется пользователем, и ее формальное описание в рамках этих языков не осуществляется, а корректная реализация вычислительной семантики остается прерогативой разработчиков ИС.
Поскольку, манипулируя предложениями на ЯОФ, пользователь осуществляет управление синтаксисом ЯРФ и (или) описаниями на ЯРФ, а предложения на ЯРФ определяют структуру БД и возможные процессы содержательной обработки данных (то есть обработки данных в интересах решения прикладных задач), в синтаксически вариантной информационной системе реализуется двухуровневая схема управления. Верхний уровень управления по данной схеме является уровнем метауправления.
В то же время ЯОФ не является метаязыком для ЯРФ в смысле определения метаязыка, принятого в теории компиляции (см., например, /200/): ЯОФ
эго мегаязык для управления функциональностью СВИС, а не для описания ЯРФ. Учитывая изложенное, совокупность предложений на ЯОФ Uc (см. рис. 1.7) можно рассматривать как совокупность компонентов метаинформации, имеющейся в ИС. Каждый компонент метаипформации (КМИ) ис является одним предложением на ЯОФ Lc, то есть uc е Lc.
Метауправление (МУ) является методом, в том или ином виде достаточно широко используемым в современных ИС. В частности, манипулирование
данными в СУБД осуществляется с использованием метаданных, описывающих структуру и характеристики хранимых данных (см., например, /169, 201, 202/). Другим широко известным применением является использование метаданных в языке HTML - данные тега МЕТА выступают в качестве метаданных, используемых браузерами и поисковыми машинами в Интернет (/203/ и др.). В недавно принятом стандарте OMG "Средства метаобъекто в" (Meta Object Facilities (MOF)) определяется набор средств (интерфейсов CORBA) для создания мстаобьектов и интероперабельных метамоделей и оперирования ими /204/.
Однако МУ как метод управления функциональностью ИС с целью их адаптации является оригинальным подходом к использованию метауправления
Такое применение метауправления основывается на определении, приведенном в 19/, в соответствии с которым используемая с той или иной целью модель данных делится на два уровня. На первом уровне, который является управляющим по отношению ко второму, задаются определения, понятия и синтаксические ограничения языка представления данных, а на втором - в рамках языка, определенного на первом уровне, производится формирование некоторых описаний, представляющих собой совокупности структурированных предметных сведений. Данное определение сформулировано в /9/ применительно к проблематике создания средств автоматизации специфицирования, и для использования по отношению к ИС должно быть несколько изменено.
Наиболее целесообразным вариантом определения МУ в контексте управления функциональностью ИС представляется следующее: пусть функциональность ИС определена описаниями (Ха, Х„), a L - предметноориентированный язык пользователя, тогда данная ИС будет обладать воз-можностью
МУ своей функциональностью, если существует отображение Н вида
(1.2)
Иными словами, метауправление функциональностью ИС заключается в разнесении предметно-ориентированного описания компонентов, определяющих функциональность ИС, и программной реализации этих компонентов таким образом, что изменение описания приводит к формально вычисляемым изменениям в указанной выше реализации.
Особенностью приведенного выше определения МУ является то, что отображение вида (1.2) является обязательным атрибутом синтаксически вариантной ИС, но, если оно не затрагивает алфавит (yj, уа), то соответствую- тую ИС можно рассматривать как синтаксически неизменную информационную систему с метауправлением функциональностью. Более того, частным случаем применения МУ в ИС является вариант, когда совокупность КМИ фиксируется при разработке ИС. Особенности перечисленных возможных вариантов применения МУ также подлежат учету в ходе исследований закономерностей применения МУ в интересах построения адаптивных ИС.
Относительно целесообразности рассмотрения МУ в объеме, выходящим за рамки СЙИС, следует заметить, что, как справедливо указано в /205/, все зависит от "точки отсчета” - то есть от того, что считать алфавитом и какую форму представления данных выбрать, ибо "... различные выборы приводят к формальным системам, совершенно различным по своему виду и качествам " (/205/, с. 235).
В данном случае это означает, что "технически" несложно представить любую ИС с МУ как синтаксически вариантную. Однако такой подход неконструктивен, ибо, не внося существенных содержательных особенностей в рассмотрение МУ, приводит к неоправданному усложнению формальных описаний. Кроме того, определение СВИС, принятое в настоящей работе, по своей сути
относится не к лингвистическим аспектам какого-либо языка» а к компонентам ИС, определяющим ее функциональность, и любое отступление от этого определения будет носить искусственный характер.
Обобщая вышеизложенное, в первом приближении можно выделить
три варианта построения ИС с позиций возможности адаптации ее функциональности:
синтаксически неизменные ИС с множеством КМИ, зафиксированным при их создании - возможность адаптации как таковая отсутствует, применение МУ влияет только на конструкцию ИС;
синтаксически неизменные ИС с множеством КМИ, которое может модифицироваться пользователем во время эксплуатации системы — адаптация ограничена варьированием описаний (Xj, Ха) в рамках неизменного алфавита (У<ь У»)» зафиксированного при создании системы, и осуществляется без привлечения разработчиков, так как не требует изменения программного кода (хотя по отношению к Х^ это не столь однозначно, ибо фактически определяется реализацией);
синтаксически вариантные ИС, допускающие изменение пользователем как (Xj, X»), так и (v<j, уа) - адаптация ограничена синтаксисом ЯОФ и осуществляется либо пользователем (если его действия не изменяют синтаксиса ИС), либо пользователем и разработчиками (в противном случае).
В последнем случае разработчики привлекаются для программной реализации изменений в ул, а возможно - и в yd и (или) Xj, причем точки внесения изменении достаточно локализованы.
Ранжирование описанных выше вариантов по предпочтительности их применения на практике зависит от специфики создаваемой ИС и особенностей организации и обеспечения процесса ее создания.
В приведенном выше описании вариантов имелась некоторая неопределенность с точки зрения необходимости участия разработчиков в изменении
структуры базы данных. Современные CASE-средства позволяют существенно минимизировать участие человека в формировании системного каталога базы данных (например, в продукте ERwin после описания логической структуры данных достаточно минимальных действий по доопределению физической структуры» после чего автоматически формируется скрипт на SQL для разметки таблиц и индексов /153/). Существуют и другие примеры реализации в ИС возможности изменения состава структур хранения данных и их взаимосвязей. Однако следует учитывать, что для доступа к данным с целью их алгоритмической обработки должны применяться процедуры, которые в абсолютном большинстве случаев используют идентификаторы таблиц, полей и индексов, и в которых предусматривается использование задаваемых над данными отношений. Поэтом)- в дальнейшем при рассмотрении абстрактных ИС будем считать, что изменение как y<j, так и требует обязательного участия разработчиков - независимо от того, затрагивает ли оно у,. В то же время в конкретных реализациях ИС это положение может не выполняться, что не является каким-либо противоречием приводимым формальным описаниям абстрактных ИС и лишь означает, что для данного примера ИС оказалась возможной эффективная реализация подобных изменений.
Как следует из описания понятия синтаксической вариантности ИС и МУ функциональностью, применение МУ существенно изменяет принципы построения ИС. В частности, управляющий алгоритм функциональных приложений должен быть независим от описаний и Ла, а в состав ИС в общем случае должны входить средства, обеспечивающие формирование и выполнение этих описаний.
Использование синтаксической вариантности и (или) МУ в некоторой степени затрагивает и сам процесс создания ИС, а также в необходимых случаях позволяет вводить в эксплуатацию ИС с ^сформированными или не полностью сформированными алфавитом и (или) описаниями и ХЛ.
Это особенно важно для ИС, требования к которым характеризуются высокой динамикой или потенциально неопределимы в полном объеме (ИС первого типа по классификации, использованной в п. 1.4).
Для ИС второго типа (по той же классификации, то есть ИС однократного применения) описанный выше подход к использованию мегауправления полностью применим, но не при эксплуатации, а при создании ИС. Поскольку разработка ИС однократного применения по "классической" методологии в общем случае нерентабельна, можно действовать следующим образом: для группы (множества) ИС однократного применения (например, информационное обследование некоторой разнородной организационно-технологической системы с большой пространственной протяженностью) может быть создано или взято имеющееся (при его наличии) инвариантное ядро, которое адаптируется к конкретным задачам и области обследования путем формирования соответствующих КМИ. Достоинства такого подхода очевидны.
Более того, средства поддержки процесса создания ИУАС как уникальной системы большой сложности и размерности также зачастую имеют свой* ства ИС однократного применения (как в приведенном выше примере, если обследование проводится с целью последующей автоматизации), и применение предлагаемого подхода может существенно упростить автоматизацию решения ряда задач проектирования и разработки, а также подойти к формированию инвариантного ядра ТПППП, настраиваемого посредством МУ.
Исходя из вышеизложенного, а также учитывая определение и роль специального ПО в ИС, даже без формального анализа влияния внедрения синтаксической вариантности и МУ в методологию построения ИС на соотношения и закономерности, описанные в п. 1.3, можно утверждать, что данный подход можно рассматривать как одно из малоизученных, перспективных направлений повышения эффективности создания и функционирования ИС и их специального ПО.
1.6. Задачи исследования
Анализ общей проблемы совершенствования создания и обеспечения эффективного функционирования СПО ИС и возможного подхода к ее решению путем внесения элементов синтаксической вариантности и метауправления в конструкцию СПО и технологии его создания, рассмотренные в пп. 1.4 и 1.S соответственно, позволили определить цель исследования как разработку методологических основ построения синтаксически вариантных информационных систем с элементами метауправления их функциональностью, обеспечивающих совершенствование создания спекального программного обеспечения информационных систем и его эффективного функционирования.
Структура данного исследования, направленного на достижение указанной выше цели, схематично показана на рис. 1.8.
Новизна предлагаемого подхода и специфика перечисленных в п. 1.4 типов рассматриваемых ИС определили следующую стратегию достижения цели исследования:
разработка концептуальных основ построения информационных систем на основе формализма синтаксически вариантных лингвистических систем и метода метауправления, охвагывающих общие принципы и закономерности применения метауправления функциональностью в информационных системах;
разработка моделей и методов построения систем формирования, представления и обработки метаинформации, общие для информационных систем с метауправлением;
разработка моделей и методик построения некоторых типовых систем обработки информации как приложение метауправления функциональностью к созданию СПО ИС первого и второго типа;
выделение инвариантной составляющей создания СПО ИУАС и разработка предложений по ориентации организационно - методологического
базиса соответствующей ТПППП, поддерживаемого синтаксически вариантными средствами.
В последнем случае наиболее сложными и малоисследованными средствами поддержки создания СПО ИУАС выступают полунатурные модели, для которых целесообразно определить инварианты и императивы их построения и применения.
Выбранная стратегия позволила сформировать следующий перечень задач исследования:
исследование особенностей автоматизированных информационных систем и существующего положения в области создания их специального ПО;
анализ проблемы совершенствования создания и обеспечения и эффективного функционирования специального ПО ИС различных типов и возможности ее решения на основе применения метода метауправления;
исследование возможностей формализации структуры и процессов функционирования ИС с метауправ^ением их функциональностью с позиций формально-лингвистических систем;
анализ применимости средств представления знаний и методов теории компиляции для построения формальных моделей представления, формирования и обработки компонентов метаинформации, пригодных для практической реализации ИС с метауправлением их функциональностью;
апробация применения метауправления к построению СПО ИС на примерах ИС различного типа и назначения, разработка множества соответствующих частных моделей и методик;
поиск возможного определения содержания базиса технологий промышленного производства СПО ИС специального назначения, поддерживаемого множеством синтаксически вариантных средств;
разработка элементов методологии полунатурного моделирования среды погружения СПО, инвариантных к специфике создаваемых ИС.
Выводы по первой главее
Создание специального программного обеспечения информационных систем рассматривается как один из существенных факторов роста производительности труда, обеспечения конкурентоспособности, устойчивости государственного управления, обороноспособности и информационной безопасности, и является одной из приоритетных областей деятельности любого со* временного государства.
В мировой практике создания ПО достаточно длительное время имеет место противоречие между требуемыми объемом и функциональностью создаваемого ПО, и его качеством. В области повышения качества СПО и производительности процессов его создания преобладают две стратегии: поиск частных решений и переход к индустрии создания СПО. Поскольку СПО как продукт промышленного производства имеет ряд специфических особенностей, из-за которых процесс его создания характеризуется высокой степенью эвристики принятия проектных решений и неопределенности критериев и результатов труда, проблема создания полноценных технологий промышленного производства СПО как вида программной продукции в настоящее время далека от удовлетворительного решения, и интерес к ней в последнее время существенно снизился. Тем не менее, существует класс ИС (называемых в данной работе информационно-управляющими автоматизированными системами), создание и модернизация которых не обеспечиваются в полной мере существующими CASE-технологиями и требуют наличия технологий класса ТПППП.
Функциональность ИС находится в прямой зависимости от структуры базы данных и алгоритмов функциональных приложений. Существующие технологии создания СПО ИС предполагают статичную конструкцию ИС, в которой изменение функциональности в ходе эксплуатации ИС, вызываемое динамикой целей, задач и условий применения ИС, требует обязательного
привлечения разработчиков. Такое положение ведет к существенным расходам на ту часть сопровождения СПО, которая связана с его своевременной модернизацией для приведения функциональности ИС в соответствие с текущими требованиями.
Общая проблема необходимости совершенствования способов и средств создания и обеспечения эффективного функционирования СПО ИС имеет свою специфику для ИС различных типов, и требует поиска нетрадиционных подходов, способных обеспечить повышение адаптивности функциональности ИС, рентабельность создания ИС однократного применения и создание инвариантного базиса ТПППП для СПО ИУАС.
В качестве одного из малоизученных, перспективных подходов к совершенствованию создания и обеспечению эффективного функционирования СПО ИС является внесение в конструкцию ИС элементов синтаксической вариантности и метауправления. Синтаксис ИС составляют компоненты, композиция которых определяет се функциональность, и правила этой композиции. Метауправление функциональностью заключается в варьировании метаописаний, отображаемых на структуру базы данных и алгоритмы обработки данных. Осуществление синтаксической вариантности требует наличия метауправления, однако в необходимых случаях могут быть построены и синтаксически неизменные ИС с метауправлением.
Применение метауправления оказывает влияние на конструкцию СПО ИС и процесс его создания, и дает возможность повысить адаптивность функциональности ИС (в том числе только силами пользователей), обеспечить рентабельность создания ИС однократного применения, и подойти к формированию базиса ТПППП ИУАС с позиций возможности его адаптации на основе метауправления.