Содержание к диссертации
Введение
1. Принципы создания информационной технологии разработки целевых программ 21
1.1. Состояние проблемы 21
1.2.Существующие информационные технологии проектирования сложных систем 24
1.2.1. Основы общесистемной технологии 24
1.2.2. CASE-технологии разработки информационных систем 28
1.2.3. Технологии реинжиниринга бизнес-процессов 32
1.2.4. Технологии проектирования технических систем 36
1.3. Принципы создания информационной технологии разработки целе вых программ 39
1.4.Схема автоматизированной разработки целевых программ 48
Выводы к Главе 1 54
2. Объектно-ориентированная методология моделиро вания 56
2.1 .Методы моделирования сложных систем 56
2.1.1. Методы системного анализа 56
2.1.2. Методы представления знаний 63
2.1.3. CASE-методы моделирования 66
2.2.Формирование концепции моделирования проблемосодержащих проблеморазрешающих систем 61
2.2.1. Выбор методов моделирования 61
2.2.2. Выбор языка описания модели 71
2.3. Методология OMSD (Object Model for System Design) 74
2.3.1. Структура модели системы 74
2.3.2. Модель классов 77
2.3.3. Модель объектов 84
2.3.4. Модель зависимостей атрибутов 90
2.3.5. Модель компонент системы 101
2.3.6. Модель координации 108
Выводы к Главе 2 113
3. Технология разработки целевых программ на основе объектно-ориентированной методологии моделиро вания 116
3.1.Классификация методов, используемых при разработке целевых программ 116
3.2. Алгоритмизация методов 124
3.2.1. Алгоритм генерации объектов 124
3.2.2. Алгоритм выбора оптимальных решений в неопределенной ситуации 132
3.2.3. Алгоритмы прямого и обратного вывода на модели зависимостей атрибутов 137
3.2.4. Алгоритмы поиска оптимальных решений на модели зависимостей атрибутов 152
3.2.5. Алгоритм формирования оценочных зависимостей атрибутов 158
3.2.6. Алгоритм поиска оптимального сочетания вариантов дочерних подсистем 167
3.3. Регламент процесса разработки целевых программ 174
Выводы к Главе 3 187
4. Инструментальные средства поддержки информаци онной технологии разработки целевых программ 189
4.1. Виды инструментальных средств поддержки 189
4.2. Инструментальный комплекс «WinEsisp» 195
4.2.1. Анализ требований 195
4.2.2. Проектирование инструментального комплекса " 198
4.2.3. Реализация инструментального комплекса 202
4.3. Программный комплекс поддержки объектно-ориентированной методологии моделирования сложных систем 206
4.3.1. Анализ требований 206
4.3.2. Архитектура программного комплекса 210
4.4.Специализированные инструментальные системы 214
4.4.1. Инструментальное средство моделирования организационных структур 214
4.4.2. Система формирования задач управления организацией 221
4.4.3. Инструментальное средство выявления предпочтений экспертов 230
Выводы к Главе 4 233
5. Применение информационной технологии разработ ки целевых программ 235
5.1. Разработка целевых программ в сфере энергосбережения 235
5.1.1. Программа углубления энергоэффективности на территории Томской области 235
5.1.2. Программа ресурсообеспечения населения 248
5.1.3. Программа энергосбезопасности региона 257
5.2. Проектирование и совершенствование систем в инновационной сфере 266
5.2.1. Совершенствование деятельности Томского технопарка 266
5.2.2. Проектирование регионального учебно-научно-инновационного комплекса (РУНИК) 280
5.3. Анализ и планирование экономической деятельности 289
5.3.1. Оценка финансово-экономического состояния предприятия . 289
5.3.2. Формирование программы инвестирования в разработку нефтегазовых месторождений 301
Выводы к главе 5 310
Литература 317
Список сокращений 341
- CASE-технологии разработки информационных систем
- Принципы создания информационной технологии разработки целе вых программ
- Методы системного анализа
- Регламент процесса разработки целевых программ
Введение к работе
Актуальность работы. Целевые программы (ЦП) являются эффективным способом решения проблем, возникающих в различных сферах человеческой деятельности, т.к. позволяют направить усилия на реализацию заранее выбранного курса действий для достижения поставленной цели. Этот инструмент активно используется как территориальными органами управления, так и отдельными компаниями для решения социальных, экологических, экономических проблем, примерами которых являются: низкая энергетическая эффективность экономики региона, наличие угроз энергетической безопасности, недостаточная отдача от инновационной, инвестиционной деятельности и т.д.
Заметными тенденциями последнего времени являются: усложнение проблем, перерастание их в проблематику1; повышение требований к качеству программ (их обоснованности, комплексности, эффективности); стремление к сокращению трудозатрат на разработку и реализацию программ. Все это обусловливает необходимость использования технологии, регламентирующей и стандартизирующей основные этапы разработки целевой программы. В соответствии с современными требованиями технология предполагает не только наличие регламентированной процедуры разработки и совокупности методов и моделей, рекомендуемых к использованию на тех или иных этапах, но и наличие автоматизированных средств, сопровождающих процесс синтеза программы. Только благодаря инструментальным поддерживающим средствам методология может приобрести прагматическую силу и широкое распространение. Таким образом, речь должна идти о создании информационной технологии разработки целевых программ, содержащей в качестве основных компонент регламент процесса разработки, методологию моделирования и инструментальные средства поддержки технологии.
Основным методологическим инструментом разработки целевых программ является аппарат системного анализа и теории принятия решений, в развитие которого большой вклад внесли такие ученые, как Месарович М, Мако Д., Такахара И., Холл А., Янг С, Оптнер С, Акофф Р., Саймон Г., Саа-ти Т., Черняк Ю.И., Федоренко Н.П., Перегудов Ф.И., Тарасенко Ф.П., Миха-левич B.C., Волкович В.Л., Клир Дж., Волкова В.Н., Ларичев О.И. и др. Методы и модели, разрабатываемые в рамках этого направления, могут быть использованы как на этапе анализа проблемосодержащей системы для выявления проблемных ситуаций, существующих тенденций и ограничений, так и на этапе синтеза проблеморазрешающей системы для постановки целей, разработки системы мер и программных мероприятий, реализующих поставленные цели, а также проектирования обеспечивающих комплексов (нормативно-правового, организационного, информационного).
Однако на пути применения системного подхода в информационной технологии разработки ЦП существуют определенные трудности. Одна из них связана со слабой формализованностью, «рыхлостью» методов системного анализа, которые, зачастую представляют собой набор эвристических приемов и рекомендаций, требующих творческого осмысления и применения, что затрудняет их автоматизацию. Во многом эффективность использования методов зависит от опыта и квалификации разработчика. При этом ему приходится оперировать нечеткой и неполной информацией. Еще одна трудность состоит в необходимости сочетания множества различных методов, в том числе из других отраслей науки. Поэтому желательно использовать достаточно универсальный язык описания предметной области с тем, чтобы создаваемая декларативная модель могла служить интегрирующей компонентой для различных методов. Преодоление указанных трудностей видится на пути использования методов семантического моделирования, в частности объектно-ориентированных методов, развивающихся в рамках инженерии знаний и технологии экспертных систем, а также индустрии CASE-технологий и технологии реинжиниринга бизнес-процессов.
Вопросам инженерии знаний и технологии экспертных систем посвящено огромное количество трудов. Среди авторов можно выделить Минского М., Хейеса-Рота Ф., Уотермана Д., Лената Д., Уэно X., Исидзука М., Осуга С, Форсайта Р., Заде Л., Сугено М., Мамдани Е., Поспелова Г.С., Поспелова Д.А., Попова Э.В., Леоненкова А.В., Гаврилову Т.А.. В рамках данного направления разработано множество разнообразных методов представления слабо формализуемых знаний, позволяющих отражать как фактуальные знания о структуре, свойствах объектов (ситуаций, прецедентов) предметной области, так и операционные знания о логических, причинно-следственных, ассоциативных зависимостях, в том числе учитывающие неопределенности случайного или нечеткого характера. Использование экспертных знаний, таких как типовые описания различных классов сложных систем, описание зависимостей характеристик системы, стандартные основания декомпозиции, и др., могли бы значительно облегчить разработку целевых программ.
В последнее время наблюдается тенденция к интеграции различных форм представления знаний, сочетанию их с традиционными процедурами, методами обработки баз данных. Большие возможности для комплексирова-ния фактуального знания с процедурным предоставляет объектно-ориентированный подход (ООП), активно использующийся в информационных технологиях, в частности в CASE-технологиях. Важными преимуществами данного подхода являются также возможность накапливать теоретические и опытные знания в виде библиотек классов на основе механизма наследования; простота внесения изменений в проекты за счет использования свойств наследования и полиморфизма.
Современные CASE-технологии, предназначенные для создания программных продуктов с помощью автоматизированных инструментальных средств (CASE-средств), поддерживают не только функции проектирования компонент информационной системы, но и функции моделирования систем, являющихся объектом автоматизации, как составную часть процесса проектирования. Большинство из этих технологий используют методологию системного подхода как концептуальную основу построения модели предметной области. Это характерно и для более ранних технологий структурного анализа, так и для более поздних объектно-ориентированных технологий анализа/проектирования (Object-Oriented Analysis/Design - OOA/D). Последние переживают период бурного развития, что вызвано в немалой степени созданием объектного унифицированного языка моделирования UML (Unified Modeling Language) и объектно-ориентированных CASE-средств. Методы объектно-ориентированного анализа и проектирования рассматриваются в работах таких авторов, как Буч Г., Румбах Дж., Джекобсон А., Шлеер С, Меллор С, Бадд Т., Йордон Э., Вендров A.M., Новоженов Ю.В. и др.
Несмотря на успехи в развитии объектно-ориентированных методов моделирования и CASE-средств, их использование для разработки целевых программ не всегда приемлемо. Во-первых, они в основном предназначены для проектирования информационных систем, в связи с чем они оперируют собственным понятийным аппаратом, ориентированным на данную область. Для обозначения многих понятий теории систем вводятся новые термины, термины же системного анализа используются зачастую некорректно, в новых ракурсах и отношениях. Разработанные языки моделирования вполне приемлемы при построении моделей информационных систем, но не всегда удобны для описания других предметных областей. Во-вторых, OOA/D-методы и средства используются лишь для декларативного описания структуры и свойств автоматизируемой системы. Подобное описание отражает либо существующее состояние системы (модель "As is"), либо желаемое (модель "То be"). Нерешенной проблемой при этом остается переход от моделей "As is" к моделям "То be". Другими словами, существующие CASE-средства, как правило, не содержат процедур генерации и выбора вариантов реализа 10 ции системы и ее отдельных компонент, а также процедур координации решений, принимаемых на разных уровнях представления системы. Большое количество разнообразных прикладных методов системного анализа и теории принятия решений, ориентированных на поиск средств достижения целей системы, оказались невостребованными в рамках существующих CASE-технологий.
Объектно-ориентированные методологии моделирования и инструментальные средства поддержки, разработанные в рамках CASE-технологий, активно используются в технологии реинжиниринга бизнес-процессов, предназначенной для перепроектирования существующих бизнес-систем на основе новых концепций менеджмента и использования новых информационных технологий. Этому сравнительно новому направлению на стыке теории менеджмента и информатики посвящены труды Хаммера М., Чампи Дж., Робсона М., Уллаха Ф., Шеера А-В., Попова Э.В., Ойхмана Е.Г., Калянова Г.Н., Зиндера Е.З. и др. Объектно-ориентированное моделирование, признанное базовой методологией реинжиниринга, используется для наглядного отражения в виде графических диаграмм и схем существующих и новых, перепроектированных бизнес-процессов. Слабым местом, как и в технологии проектирования информационных систем, является поиск и выбор оптимальных стратегий проектирования в виду отсутствия формализованных методик выполнения этих этапов.
Таким образом, несмотря на имеющиеся предпосылки, проблема создания информационной технологии разработки целевых программ, призванной облегчить процесс разработки и повысить качество его результата, еще не решена, что определяет актуальность темы диссертационной работы.
Цель работы: создание информационной технологии разработки целевых программ с применением объектно-ориентированных методов моделирования и инструментальных средств поддержки, обеспечивающей повышение эффективности процесса разработки. Для достижения поставленной цели были поставлены и решены следующие задачи:
• выявление требований к информационной технологии разработки целевых программ;
• разработка принципов, лежащих в основе технологии;
• разработка объектно-ориентированной методологии моделирования предметной области;
• разработка алгоритмов формирования объектно-ориентированной модели и поиска решений на модели для нахождения оптимальных скоординированных решений, обеспечивающих достижение целей программы;
• разработка типового регламента процесса разработки целевой программы на основе объектно-ориентированной методологии моделирования;
• создание комплекса инструментальных средств поддержки информационной технологии;
• использование информационной технологии для разработки региональных целевых программ в сфере энергосбережения, ресурсообеспечения и энергетической безопасности, программ создания и совершенствования организационных комплексов в инновационной сфере, а также для анализа и планирования экономической деятельности хозяйствующих субъектов.
Методы исследования. Для решения поставленных задач в работе используются методы системного анализа, теории иерархических многоуровневых систем, теории принятия решений, инженерии знаний и технологии экспертных систем, объектно-ориентированного моделирования и проектирования.
Научная новизна. В диссертационной работе впервые предложен оригинальный научно обоснованный подход к созданию информационной технологии разработки целевых программ на основе объектно-ориентированной методологии моделирования. Решена крупная научная проблема, имеющая важное значение для развития теории анализа и синтеза проблеморазрешаю-щих систем.
Получены следующие основные результаты, обладающие научной новизной:
1. Впервые сформулированы принципы создания информационной технологии разработки целевых программ, удовлетворяющие требованиям, предъявляемым к технологии. Предложена схема автоматизированной разработки целевых программ, основанная на выдвинутых принципах.
2. Разработана новая методология объектно-ориентированного моделирования систем OMSD (Object Model for System Design), главной особенностью которой является представление модели проблемосодержащей (про-блеморазрешающей) системы в виде совокупности взаимосвязанных моделей пяти видов:
модели классов, отражающей структуру множества классов, используемых для описания компонент системы;
модели объектов, отражающей описание множества вариантов реализации компоненты системы;
модели зависимостей атрибутов, отражающей отношений функциональной зависимости между атрибутами компоненты системы;
модели компонент системы, отражающей структуру системы в виде дерева подсистем и элементов;
модели координации, отражающей отношения зависимости между атрибутами дочерних подсистем и материнской системы.
3. Разработаны новые алгоритмы синтеза модели объектов и поиска
решений на ней: генерации объектов и выбора оптимальных решений в условиях неопределенной информации о возможных состояниях среды, позволяющие осуществлять формирование и выбор вариантов реализации компоненты системы. Показана их эффективность по сравнению с существующими алгоритмами.
4. Разработаны новые алгоритмы формирования модели зависимостей атрибутов и ее использования для поиска решений: формирования оценочных зависимостей, прямого и обратного вывода на сети функциональных зависимостей, поиска оптимальных решений, обладающие большей вычислительной эффективностью. Показана зависимость трудоемкости алгоритмов оптимизации от параметров модели.
5. Разработан новый алгоритм координации для согласования вариантов подсистем друг с другом и с выбранным вариантом материнской подсистемы, основанный на методе распространения ограничений и методе перераспределения допустимого уровня затрат. Алгоритм позволяет сократить перебор координирующих воздействий.
6. Предложена новая технология процесса разработки целевой программы на основе объектно-ориентированной методологии моделирования, предполагающая последовательное формирование и использование для принятия решений моделей процесса разработки, проблемосодержащей и про-блеморазрешающей систем.
Теоретическая значимость работы заключается в развитии теории анализа и синтеза проблеморазрешающих систем и методов семантического моделирования.
Предложенная объектно-ориентированная методология моделирования объединяет подходы, разработанные в рамках таких научных направлений, как системный анализ, инженерия знаний, CASE-технологии проектирования информационных систем, реинжиниринг бизнес-процессов и вносит существенный вклад в развитие теории семантического моделирования систем. Она предоставляет возможность комплексировать различные методы из широкого спектра методов, используемых для анализа и синтеза систем, используя в качестве интегрирующего начала декларативную модель системы в виде совокупности взаимосвязанных моделей, описанных на едином объектно-ориентированном языке представления знаний. Разработанный типовой регламент процесса разработки целевой программы, основанный на предложенной схеме автоматизированной разработки ЦП и выдвинутых принципах декларативности, иерархичности, итеративности, типизации и комплексируемости, обобщает и развивает существующие схемы системного анализа в виде поэтапных процедур принятия решений. Предложенные автором алгоритм генерации объектов и алгоритм выбора оптимальных решений в неопределенной ситуации развивают переборные методы генерации и оценки вариантов решений, разрабатываемые в рамках теории выбора и принятия решений. Предложенные методы прямого и обратного вывода, а также методы поиска оптимальных решений на модели функциональных зависимостей, представляют интерес с точки зрения развития методов управления выводом на системах правил-продукций, разрабатываемых в теории инженерии знаний. Предложенный алгоритм формирования оценочных зависимостей интересен тем, что позволяет объединить идеи метода анализа иерархий с методами вывода на системах продукций в рамках модели функциональных зависимостей. В разработанном автором алгоритме координации вариантов подсистем нашли воплощение идеи некоторых методов теории координации, в частности метода распространения ограничений и метода распределения ресурсов.
Практическая значимость работы. Разработанная информационная технология разработки ЦП с применением объектно-ориентированных методов моделирования и созданных инструментальных средств поддержки может быть использована для создания широкого круга социально-экономических проблеморазрешающих систем, в частности для разработки целевых программ развития регионов по различным аспектам, разработки программ развития организационно-технологических комплексов, создания инвестиционных программ. Использование технологии позволяет существенно сократить трудоемкость процесса разработки и повысить качество конечного результата за счет использования типовых фрагментов знаний, структурирова 15 ния информации о системе на базе единой модели, возможности в автоматизированном режиме с использованием различных методов генерировать варианты реализации компонент системы, оценивать, согласовывать и выбирать оптимальные варианты.
Кроме того, данная технология может быть использована студентами вузов в учебном процессе для выполнения курсовых и дипломных проектов, а также в ходе изучения таких дисциплин, как теория систем и системный анализ, моделирование систем, реинжиниринг бизнес-процессов и т.д.
Связь работы с научными программами, планами, темами. Основные результаты, полученные в диссертации, нашли отражение в госбюджетных научно-исследовательских работах, проводимых Томским государственным университетом систем управления и радиоэлектроники: «Разработка научных основ проектирования интеллектуальных компьютерных технологий управления техническими объектами, технологическими процессами и процессами обучения» (номер НИР 2.1.97, номер гос. регистрации 01980002350); «Разработка принципов построения и основ теории интеллектуальных систем обучения и управления техническими объектами и технологическими процессами» (номер НИР 1.2.02); «Развитие теории и методов объектно-ориентированного моделирования и пространственно-временного анализа бизнес-процессов в территориально-распределенных системах» (номер НИР 1.2.04, номер гос. регистрации 0120.0 411196).
Реализация результатов и их внедрение. Разработанные технология, методология моделирования, алгоритмы и инструментальные средства использованы для создания:
• программы углубления энергоэффективности на территории Томской области на 2004-2008 г.г.;
• региональной программы реформирования системы ресурсообеспечения населения; • технологии формирования программы энергетической безопасности региона;
• программы совершенствования деятельности Томского технопарка;
• проекта регионального научно-инновационного комплекса;
• информационной системы оценки финансово-экономического состояния предприятия;
• информационной системы формирования программы инвестирования в разработку нефтегазовых месторождений.
Основные положения, выносимые на защиту:
1. Предложенные принципы создания информационной технологии разработки целевых программ и схема автоматизированной разработки ЦП, обеспечивают выполнение требований, предъявляемых к основным компонентам технологии.
2. Разработанная объектно-ориентированная методология моделирования позволяет отражать различные аспекты проблемосодержащей (пробле-моразрешающей) системы: структурированное множество типовых классов описания компонент системы в виде модели классов; иерархию подсистем и элементов системы в виде модели компонент; множество вариантов реализации отдельных компонент в виде модели объектов; функциональные зависимости между атрибутами компоненты системы в виде модели зависимостей атрибутов; зависимости между атрибутами различных компонент в виде модели координации.
3. Предложенные алгоритмы формирования объектно-ориентированной модели системы и поиска решений на модели, позволяющие генерировать различные варианты реализации компонент системы, пополнять описания вариантов, оценивать их и осуществлять выбор оптимальных вариантов, а также согласовывать варианты различных компонент системы, обеспечивают не только адаптацию некоторых методов теории принятия решений и дедуктивного логического вывода к объектному языку описания модели, но и большую эффективность по сравнению с известными методами.
4. Предложенный регламент разработки целевых программ позволяет разработчику гибко настраивать последовательность этапов и выбирать наиболее подходящие методы из спектра методов, рекомендуемых для различных этапов, исходя из особенностей конкретной ситуации.
5. Разработанные инструментальные средства поддержки облегчают процесс разработки целевых программ за счет автоматизации процедур создания модели и поиска решений на модели, за счет использования экспертных знаний и типовых компонент модели, за счет систематизация информации о проекте.
6. Результаты применения созданной информационной технологии для разработки целевых программ различного назначения и информационных систем показали ее эффективность, в частности сокращение трудозатрат, обеспечение комплексности и обоснованности принимаемых решений.
Публикации. По теме диссертационной работы опубликовано 62 научные работы, в том числе 1 монография, 28 статей (из них 15 статей в изданиях, рекомендованных ВАК для опубликования результатов докторских диссертаций).
Апробация работы. Основные результаты диссертационной работы докладывались и обсуждались на следующих конференциях, симпозиумах и семинарах: Всероссийской научно-технической конференции «Синтез и проектирование многоуровневых систем управления» (Барнаул 1982); Всесоюзном научно-практическом семинаре «Прикладные аспекты управления сложными системами» (Кемерово, 1983); республиканском семинаре «Опыт и проблемы разработки территориальных АСУ» (Томск, 1983); Всесоюзной конференции «Проблемы и методы принятия решений в организационных системах управления» (Москва, 1988); Всесоюзной конференции «Территориальные неоднородные информационно-вычислительные системы» (Ново 18 сибирск, 1988); Всесоюзной научно-технической конференции «Человеко-машинные системы и комплексы принятия решений» (Таганрог, 1989); Всесоюзном совещании по экспертным системам (Суздаль, 1990); международных научно-практических конференциях СИБРЕСУРС (Новосибирск - 1996, Барнаул - 1998); международной конференции «Теория и техника передачи, приема и обработки информации» (Харьков, 1998); международном симпозиуме SIBCONVERS (Томск, 1999); Всероссийских научно-технических конференциях «Энергетика: экология, надежность, безопасность» (Томск, 1999, 2002); Всероссийском совещании «Энергосбережение и энергетическая безопасность регионов России» (Томск, 2000); международной научно-практической конференции «Актуальные проблемы управления-2001» (Москва, 2001); международном симпозиуме «Информационные и системные технологии в индустрии, образовании и науке» (Караганда, 2003); пятой научно-практической конференции «Современные средства и системы автоматизации» (Томск, 2004); международных русско-корейских симпозиумах KORUS (Томск -1998, Новосибирск-1999, Томск-2001, Ульсан-2003, Томск-2004, Новосибирск-2005).
Структура и объем работы. Диссертационная работа включает: введение, пять глав, заключение, список литературы из 229 наименований, 8 приложений. Общий объем диссертации составляет 386 страниц машинописного текста. Работа содержит 78 рисунков, 11 таблиц.
CASE-технологии разработки информационных систем
CASE-технологии представляют собой совокупность методологий проектирования и сопровождения информационных систем (ИС) на всем их жизненном цикле, поддержанную комплексом взаимоувязанных CASE-средств. В основе регламента различных технологий разработки ИС лежит понятие жизненного цикла системы, отражающее укрупненные этапы ее создания и эксплуатации. Традиционно выделяются следующие основные этапы жизненного цикла: анализ требований; проектирование; реализация (про 29 граммирование); тестирование и отладка; эксплуатация и сопровождение. В разное время и в разных «школах» разрабатывались более детальные технологии. При этом разбиение работ на этапы и их названия менялись. Соответствующие технологии организации работ рекомендовались официально, фиксировались в стандартах (ГОСТы, ANSI, ISO) и во многих отраслях широко использовались. Несмотря на все различия технологий можно выделить этапы, общие для большинства методик [31, 42, 57]: формирование требований; разработка концепции; техническое задание; эскизный проект; технический проект; рабочая документация; ввод в действие; сопровождение.
Если состав этапов, их назначение в течение последних десятилетий менялись незначительно, то схема их применения, порядок следования этапов и организация работ менялись кардинально. Традиционная схема, используемая в 70-е - начале 80-х г.г., называемая каскадной или водопадной моделью, предполагает строгое детерминированное следование этапов анализа, проектирования, реализации, внедрения и эксплуатации ИС по единому заранее разработанному плану [31, 42]. Такая схема, обладая определенными преимуществами (детерминированность, логичность, простота), имеет и существенные недостатки, главный из которых заключается в том, что схемой не предусмотрена корректировка ранее принятых решений. Зачастую заказчики и будущие пользователи не могут сразу определить полный список требований к будущей системе. Отсутствие возможности уточнения требований по мере получения результатов приводит к тому, что цели автоматизации не достигаются в полной мере.
Существенно сглаживает недостатки каскадной модели спиральная схема, получившая распространение в 80-х г.г. [31, 42, 212]. Характерной особенностью данной модели является непрерывный процесс разработки и развития ИС с планируемыми точками передачи в эксплуатацию новых версий и новых функциональных блоков. Разработка проекта ведется как бы по спирали, на каждом витке которой создается очередная версия. Виток спирали представляет собой законченный проектный цикл по типу каскадной схемы, т.к. предполагает последовательное выполнение всех этапов от анализа до внедрения. Такой подход обеспечивает на каждом витке уточнение требований к системе, однако сроки разработки готового продукта по сравнению с каскадной схемой удлиняются, а затраты существенно возрастают.
В конце 80-х г.г. сложился новый подход, названный макетной схемой или схемой "быстрого прототипирования" (rapid prototyping) [31, 42]. Последовательность этапов в данной модели внешне выглядит как каскадная, однако содержание технологических этапов таково, что многие проектные решения в процессе разработки ИС подвергаются многократным уточнениям и корректировкам, как это предусмотрено спиральной моделью. Такой компромисс достигается за счет создания на различных этапах разработки системы вместо законченных прототипов макетов, представленных хотя бы и на бумаге, оперативно проверяемых и обсуждаемых со всеми заинтересованными сторонами (будущими пользователями, заказчиками и т.д.). По результатам обсуждений макетов при необходимости принимается решение о возврате на любой из предыдущих этапов с целью корректировки принятых решений. Макеты, представленные на ранних этапах в виде грубых концептуальных моделей, постепенно уточняются, детализируются.
По мере развития технологий разработки ИС изменялись не только технологические схемы выполнения процесса, но и используемые методы и процедуры. Первоначально создание программных продуктов сводилось к разработке алгоритмов и кодированию их в виде программных строк. Постепенно с усложнением задач автоматизации появился целый ряд новых принципов разработки крупномасштабных систем: нисходящее проектирование, структурное программирование, модульное конструирование, сквозной структурный контроль и др. Появилось множество методологий структурного анализа и проектирования [8, 38, 40, 53, 63, 215, 227]. Наибольшее распространение получили следующие методы: SADT (Structured Analysis and De 31 sign Technique), DFD (Data Flow Diagrams), ERD (Entity-Relationship Diagrams), STD (State Transition Diagrams). Наиболее существенным обстоятельством явилось осознание того факта, что процесс написания программы (кодирование) может быть отделен от процесса проектирования структуры программы. На первый план выходят методы моделирования, используемые на ранних этапах проектирования - от разработки концептуальных представлений и основных принципов построения будущей системы до определения способов ее программной реализации [8].
Эта тенденция еще более усилилась с появлением и широким распространением объектно-ориентированного программирования. Предварительным этапом создания объектной программы является определение состава объектов (классов объектов), их свойств и поведения, а также взаимосвязей между классами. Эта совокупность задач не столько связана с написанием программного кода, сколько с общим анализом требований к будущей программе, анализом конкретной предметной области, для которой разрабатывается программа, и построением концептуальной модели системы. Все эти обстоятельства привели к появлению специальной методологии, получившей название объектно-ориентированного анализа и проектирования (ООАП) [14-16, 56, 84, 201]. Основной тенденцией в развитии методологии ООАП является интеграция различных методов, что привело к созданию унифицированного языка моделирования UML (Unified Modeling Language) [15, 56]. Использование UML наиболее соответствует макетной схеме разработки программы, т.к. позволяет формировать совокупность связанных моделей (диаграмм), отражающих различные представления о системе, начиная от исходной диаграммы, представляющей собой наиболее общую концептуальную модель системы, заканчивая диаграммой, отражающей представление физических компонент. Регламентирующая процедура проектирования ИС на основе UML получила название Rational Unified Process - RUP. Эволюция инструментальных средств проектирования ИС явилась естественным продолжением эволюции всей отрасли средств разработки программного обеспечения. Современный рынок CASE-средств насчитывает сотни продуктов, обеспечивающих автоматизацию практически всех этапов жизненного цикла от анализа предметной области и определения требований до программирования и сопровождения [16, 61, 62]. Так, средства верхнего уровня (Upper) позволяют формировать функциональную модель предметной области и проектируемой системы. Средние (Middle) CASE поддерживают проектирование спецификаций и структуры информационной системы. Средства нижнего (Lower) уровня поддерживают разработку программного обеспечения, включая автоматическую кодогенерацию, тестирование, управление конфигурацией и т.д.
Для современных CASE-средств характерно стремление к объединению традиционных и новейших средств моделирования, используемых на разных этапах и разными специалистами, для обеспечения тесного взаимодействия всех участников проекта: менеджеров, бизнес- и системных аналитиков, администраторов баз данных, разработчиков. С этой целью создаются системы групповой разработки крупных проектов - хранилища моделей, к которым открыт доступ для участников проекта. Кроме того, подобные системы позволяют формировать библиотеки стандартных решений, включающие наиболее удачные фрагменты реализованных проектов, накапливать и использовать типовые модели, объединяя их при необходимости «сборки» больших систем.
Принципы создания информационной технологии разработки целе вых программ
Разработка целевых программ, создаваемых для разрешения сложных многофакторных проблем, имеет следующие основные особенности.
1. Комплексность (сложность) программы. В соответствии с законом необходимого разнообразия, предложенным У.Р. Эшби, система, способная справиться с решением проблемы, обладающей определенным разнообразием, должна иметь еще большее разнообразие, чем разнообразие решаемой проблемы [207]. Следовательно, система, предназначенная для решения сложной многофакторной проблемы, неизбежно должна иметь сложную структуру, характеризуемую многообразием подсистем, элементов и связей между ними. Кроме того, проблеморазрешающая система может рассматриваться в различных аспектах и на различных уровнях абстрагирования с применением множества качественно различных языков (конфигуратора - [92]).
2. Слабая формализуемость используемых методов. Как утверждает ряд авторов (в частности, [92, 99]) разработка и управление сложными системами принципиально невозможны без привлечения семантической информации, которая не может быть выражена количественно. На ранних этапах проектирования сложных систем такая информация преобладает. К тому же она, как правило, характеризуется неполнотой и неопределенностью. Оперирование подобного рода информацией вызывает ряд трудностей, связанных с необходимостью использования слабо формализуемых методов, плохо поддающихся алгоритмизации и автоматизации.
3. Уникальность программ. Многообразие и комплексность исходной проблематики, разнообразие целей заинтересованных сторон, особенности разработчика и др. определяют нетипичность создаваемых проблеморазре-шающих систем. Для разработки подобных систем невозможно заранее сформировать четкую и исчерпывающую регламентирующую процедуру. Однако вполне возможна классификация используемых методов и моделей. Кроме того, уникальность не препятствует использованию типовых описаний отдельных компонент, типовых структур отдельных подсистем и т.д.
Перечисленные особенности процесса разработки ЦП, а также цели создания информационной технологии - облегчить этот процесс, уменьшить затраты и повысить качество программ - определяют требования к основным компонентам технологии.
Требования к регламенту:
универсальность, высокая степень обобщенности, позволяющая применять его для разработки самых разнообразных программ;
гибкость, простота адаптации, настройки на конкретную предметную область. Требования к методологии моделирования:
наглядность и обозримость формируемой модели проблемосодер жащей (проблеморазрешающей) системы;
использование при построении моделей опыта экспертов. Требование к инструментальным средствам:
открытость и интегрируемость, возможность расширения, а также сопряжения с другими приложениями, реализующими различные методики.
Для удовлетворения перечисленных требований предлагаются следующие принципы создания информационной технологии разработки целевых программ [148,160]. 1. Принцип декларативности: регламент должен предписывать вид декларативной модели, формируемой на каждой стадии, и совокупность методов, используемых для ее построения и принятия решений на модели.
Выдвижение данного принципа обусловлено требованием универсальности, обобщенности регламента, вызванным сложностью и многообразием исходной проблематики и проблеморазрешающей системы. Эти особенности не позволяют представить регламент в виде подробного и исчерпывающего алгоритма, на каждом шаге которого предписывается выполнение однозначно определенной операции. Даже если удастся для некоторой узкой проблемной области создать такой алгоритм, очевидно, что он будет очень сложным, громоздким, содержащим множество проверок, условных переходов, рекурсий. Изменение, настройка такого алгоритма потребует значительных усилий.
Для описания процесса разработки предлагается вместо алгоритма использовать последовательность указаний, в каком виде должны быть представлены результаты каждого этапа и какие процедуры могут быть при этом использованы. Причем для различных классов проблеморазрешающих систем может быть рекомендован свой набор процедур. Такой подход более гибок и адаптивен. Вместо единой процедуры проектировщику предлагается широкий арсенал различных самостоятельных процедур, которые он может применять в зависимости от того, какая методика для данной конкретной системы (подсистемы) является наиболее подходящей с учетом ранее полученных результатов. Разработчик сам строит сценарий выработки решений, руководствуясь лишь достаточно общим регламентом. При этом декларативная модель, с одной стороны, представляет в наглядной обозримой форме результат применения процедур, с другой стороны, служит исходной информацией для применения процедур. Различные методики используют модель как своего рода доску объявлений, с которой они считывают необходимую информацию и добавляют новую.
Подобный подход используется в макетных технологиях проектирования информационных систем, например, в технологии Rational Unified Process (RUP). Кроме того, можно проследить аналогию с концепцией ситуационного управления, используемой в технологии экспертных систем [99, 100].
Принцип декларативности существенно облегчает автоматизацию. Представление декларативных знаний в виде модели, т.е. без преобразования в алгоритм, программу, более компактно, наглядно [99]. Модель, в отличие от программы, достаточно легко изменять, настраивать. Модельное представление позволяет использовать слабо формализуемые, «рыхлые» методики, поскольку вся «рыхлость», семантика отображается в моделях, процедуры при этом не содержат никакой семантики, они просто умеют работать с моделями, представленными на специальном языке.
2. Принцип иерархичности: разработка целевой программы должна осуществляться на разных уровнях абстрагирования с использованием иерархического подхода.
Традиционной для задач проектирования сложных систем является проблема выбора между холизмом и редукционизмом. При большом количестве подсистем и сложности взаимосвязей между ними детальная разработка всех элементов сложной системы без предварительного принятия обобщенных решений на уровне системы в целом делает процесс проектирования чрезвычайно длительным. Учитывая множественность вариантов каждой из подсистем, задача согласования вариантов и выбора оптимальной комбинации, удовлетворяющей ограничениям, становится слишком сложной.
Методы системного анализа
Методы моделирования сложных систем, разработанные в рамках системного анализа, можно разделить на две основные группы, соответствующие двум основным подходам - параметрическому и структурному. Кроме того, существуют комбинированные методы, использующие оба подхода.
Параметрические модели рассматривают систему, как «черный ящик», описываемый набором параметров, отражающих свойства, характеристики системы, и отношений между параметрами, представленными в той или иной форме. Этот вид моделей соответствует нижним эпистемологическим уровням описания системы (уровням 1 - 2), введенным Клиром [43]. Основными видами параметрических моделей являются аналитические, статистические, оценочные и сценарные.
Аналитические модели применяются в тех случаях, когда свойства системы можно отобразить с помощью детерминированных величин и зависимостей. Модель, как правило, представлена в виде совокупности входов, выходов, переменных состояний системы и глобальных уравнений в виде аналитических выражений выходных параметров как функций входов и переменных состояния. Аналитические выражения могут быть представлены в виде алгебраических, интегродифференциальных, конечноразностных и др. соотношений или логических условий. На базе аналитических представлений возникли и развиваются математические теории различной сложности - от аппарата классического математического анализа до таких разделов современной математики, как математическое программирование (линейное, нелинейное, динамическое и т.п.) и теория игр [2, 6, 13, 17, 45, 71, 79, 92, 176, 178, 184,194].
Статистические модели позволяют, не выявляя все детерминированные связи между параметрами сложной системы и характеристиками ее поведения, на основе выборочного исследования получать статистические закономерности. Статистические модели позволяют учитывать многочисленные случайные воздействия, которые часто создают трудности при аналитических исследованиях. На базе статистических отображений развились методы теории математической статистики, теории статистического имитационного моделирования (в частности, метод Монте-Карло), теория выдвижения и проверки статистических гипотез (в том числе байесовский подход) и др. [2, 17, 75,92].
Оценочные модели используются для оценки систем при решении задачи оптимизации - выбора наилучшего варианта при наличии альтернатив. Системе сопоставляется вектор критериального пространства, координаты точек которого рассматриваются как оценки альтернативных вариантов системы. Для оценивания систем разработаны разнообразные методы качественной и количественной оценки, такие, как метод Дельфи, методы экспертных оценок (ранжирования, парного сравнения, последовательного сравнения, непосредственной оценки), методы теории полезности и векторной оптимизации (методы свертывания критериев, выделения главного критерия, оценки в условиях риска, оценки в условиях неопределенности и т.д.). Для генерирования альтернативных вариантов системы используются методы: морфологического анализа, синектики, мозгового штурма, эвристических приемов изобретательской деятельности и др. [6,13,17,28,49,92,176,178,182,194].
Модели сценарного типа описывают причинно-следственные зависимости между характеристиками, описывающими систему и внешнюю среду. При этом рассматриваются, как правило, не параметры, описывающие постоянные свойства системы и среды, а характеристики текущего состояния, отражающие события и их последствия. К данному типу моделей кроме содержательных сценариев в виде текстов относятся когнитивные карты, таблицы решений, деревья решений, модели ситуационного анализа, логико-лингвистические модели [6,13,17, 92, 99, 100,176,178, 182 и др.].
Структурные модели системного анализа рассматривают систему, как совокупность взаимодействующих частей (подсистем, элементов). Этот вид моделей соответствует верхним эпистемологическим уровням описания системы (уровням 3 - 4), введенным Клиром [43]. Большинство структурных методов моделирования использует декомпозиционный подход, предполагающий формирование модели сложной системы в виде многоуровневой иерархии. Однако принципы, лежащие в основе построения иерархических моделей, могут быть различными, и, соответственно, модели, имея одинаковую древовидную форму, могут существенно отличаться по содержанию. В [72] было введено три типа иерархических систем: «страты», «слои» и «эшелоны». К ним следует добавить еще один тип иерархии - «классы», который отражает классификацию понятий, объединенных в классы понятий и связанных родо-видовыми отношениями или отношениями наследования. Классификация видов иерархий дает хорошую основу для классификации структурных методов по типу формируемых с их помощью моделей систем.
К методам, использующим декомпозиционные модели типа слоев, относится, прежде всего, метод дерева целей системы. Идея метода заключается в последовательной декомпозиции глобальной цели системы на отдельные подцели, достижение которых обеспечивает достижение глобальной цели. Основное достоинство методики дерева целей заключается в том, что она позволяет связать сложную многофакторную цель со средствами ее достижения. Основной недостаток - сложность, неоднозначность процесса построения дерева целей. Для устранения этого недостатка предлагается использовать стандартные основания декомпозиции. Различными авторами было предложено множество конкретных методик формирования дерева целей (дерева задач, дерева решений), отличающихся перечнем рекомендуемых стандартных оснований декомпозиции и последовательностью их применения. [3, 17, 89,92,98,103,120,175,176,182,197].
Ряд разновидностей метода деревьев целей использует процедуры сравнения и оценки целей (задач, решений). Наиболее известными являются метод PATTERN (Planning Assistance Through Technical Evaluation of Relevance Numbers) [59], метод МАИ (Метод Анализа Иерархий) [114, 115], метод решающих матриц Г.С. Поспелова [98], методика экспертного прогнозирования [181]. Так, метод PATTERN предусматривает введение для каждого уровня дерева целей ряда критериев и определение для каждой цели на основе экспертного оценивания, так называемого коэффициента связи, характеризующие важность вклада цели в обеспечение критериев. Метод МАИ, предложенный Т. Саати, состоит в декомпозиции проблемы на все более простые составляющие (подцели и средства) вплоть до конкретных альтернативных сценариев и дальнейшей экспертной оценке этих составляющих методом парных сравнений с целью определения их приоритетов.
Существуют методы формирования деревьев целей (задач), основанные на классификации. Данные методы предполагают разбиение множества целей (задач) на подмножества, соответствующие отдельным аспектам или подсистемам сложной системы. Как правило, при этом используются типовые основания декомпозиции. В получаемом дереве сами цели (задачи) присутствуют только на нижнем уровне иерархии, т.е. глобальная и промежуточные цели (задачи) не формулируются. При использовании такого подхода процесс построения дерева упрощается, а результирующее дерево получается более простым и наглядным, чем в классическом методе дерева целей. Однако в таком дереве абсолютно отсутствуют связи между целями, указывающие, за счет каких целей может быть достигнута та или иная цель. На одном уровне оказываются и сложные цели и «элементарные».
Регламент процесса разработки целевых программ
Регламент процесса разработки ЦП представляет собой руководящие указания по составу этапов разработки и их последовательности, а также используемым на каждом из этапов методам формирования моделей и поиска решений. В соответствии с принципом декларативности регламент представляется не в виде алгоритма, а в виде совокупности рекомендаций для каждого из основных этапов типовой последовательности разработки относительно содержания этапа, вида формируемых моделей и спектра методов, которые могут быть использованы разработчиком. Основываясь на этих рекомендациях, разработчик осуществляет адаптацию типового регламента к особенностям конкретного проекта. Таким образом, любой проект должен начинаться с подготовительного этапа, на котором осуществляется планирование проведения процесса разработки и организация работ.
Подготовительный этап. Основным содержанием этапа является выбор способа организации процесса разработки, учитывающего особенности проекта, в том числе: планирование (определение последовательности разработки, описание работ, исполнителей, используемых методов и средств), а также создание коллектива разработчиков [136, 142,143].
Поскольку процесс разработки некоторой конкретной целевой программы может рассматриваться как система, то для него тоже может быть построена иерархическая объектно-ориентированная модель в соответствии с методологией моделирования, описанной в главе 2. Основу модели составляет дерево компонент, т.е. иерархия этапов и подэтапов процесса разработки.
Для формирования иерархии могут быть использованы следующие основания декомпозиции:
выделение этапов, соответствующих системной последовательности принятия решений (подготовка, анализ, постановка целей, синтез, организация выполнения, оценивание);
выделение этапов, соответствующих отдельным подсистемам создаваемой программы (подпрограмм), и этапа интегрирования (согласования подпрограмм);
выделение подэтапов в соответствии с последовательностью выполнения любого этапа (построение декларативной модели; выполнение работ, составляющих основное содержание этапа; обсуждение и проверка результата);
выделение видов анализа (ретроспективный, сравнительный, причинный);
выделение этапов выработки решений (генерирование альтернатив, сравнение и оценка альтернатив, выработка оптимального варианта);
выделение этапов организации выполнения (составление календарного графика; разработка обеспечивающих подсистем);
выделение этапов, соответствующих разработке различных видов обеспечивающих подсистем (нормативно-правовой, организационной, информационной и т.д.);
выделение видов оценивания (оценка эффективности, оценка угроз).
Последовательность применения оснований декомпозиции может быть различной. Так, применение декомпозиции на этапы, соответствующие отдельным подпрограммам, зависит от степени их изолированности. Если создаваемая программа может быть заранее разделена на достаточно самостоятельные подпрограммы, разработка каждой из которых может вестись относительно независимо, то целесообразно сначала выделить этапы, соответствующие подпрограммам, а затем для каждого этапа выделять подэтапы анализа, целевыявления, синтеза и т.д. Если же выделение подпрограмм на предварительном этапе вызывает затруднения, а также если подпрограммы тесно взаимосвязаны, и очень важно, чтобы решения, принимаемые для различных подпрограмм, были скоординированы, то выделять подэтапы, соответствующие подпрограммам, лучше после выделения этапов принятия решений.
Каждому подуровню модели компонент может быть сопоставлена диаграмма отношений ассоциации, отражающая взаимосвязи между этапами разработки. В основном, отношения ассоциации моделируют информационные потоки, передающейся от этапа к этапу. Поскольку в соответствии с принципами создания системной технологии процесс разработки должен носить итеративный характер, например, по типу спиральной или макетной схемы, то это должно найти свое отражение в диаграмме взаимосвязей этапов. Так, на рис. 3.16 видно, что с каждого этапа информация может быть передана на предыдущий этап, т.е. может осуществляться возврат к предыдущему этапу с целью корректировки его результатов.
Для создания структурированного описания этапов разработки каждой из подсистем дерева компонент сопоставляется класс. При этом могут быть использованы классы из заранее сформированной модели классов или созданы новые, наследуемые от типовых
Затем формируются варианты реализации этапов и выбирается наиболее перспективная комбинация вариантов, согласованных по срокам, общей стоимости разработки и т.д. Для выбора комбинации вариантов может быть использована координационная модель, отражающая межуровневые и меж-подсистемные зависимости. Выбор может осуществляться как на основе универсальных методов интеграции и координации, так и на основе специализированных методов, например, методов сетевого планирования.
Этап анализа. Следующим этапом, как правило, является анализ, на котором исследуется проблемосодержащая система. В зависимости от целей анализа проводится один или несколько различных видов анализа - ретроспективный, сравнительный, причинный анализ. Предварительным этапом при использовании любого вида анализа является построение декларативной модели. Формируется модель компонент проблемосодержащей системы и составляются описания классов компонент. Для формирования иерархии подсистем могут быть использованы стандартные основания декомпозиции, а для составления описания классов - типовые описания, хранящиеся в модели классов в виде иерархии наследования. Классы, как правило, в качестве базовых атрибутов содержат первичные количественные показатели, характеризующие деятельность компоненты системы, а в качестве целевых - интегрированные показатели (оценки). На множестве атрибутов могут быть заданы зависимости, например, в виде модели функциональных отношений. Кроме того, могут быть заданы межуровневые и межподсистемные зависимости, т.е. сформированы координационные модели для отдельных подуровней [136, 137,142, 143].