РАЗДЕЛ 2
МОДЕЛИ И ТЕХНОЛОГИИ РАЗРАБОТКИ МЕХАНИЗМОВ АДАПТИВНОГО УПРАВЛЕНИЯ КПК В СОСТАВЕ ИУС
В данном разделе рассмотрены основные методологические вопросы и предложены модели, представляющие собой концептуальный базис данного исследования, на основе которого в дальнейшем становится возможным разрабатывать алгоритмические и программные решения для реализации основных задач диссертационной работы, сформулированных в п. 1.3 предыдущего ее раздела.
В первом параграфе, на основе ранее проделанного анализа, предложена обобщенная классификация адаптивных моделей и технологий, которые применяются в современной программной инженерии, что позволяет мотивировано выбрать подход к реализации адаптивного механизма управления, адекватного рассматриваемому классу объектов управления: КПК в составе ИУС реального времени.
Во втором параграфе раздела анализируются критерии качества функционирования компонентного программного обеспечения и классифицируются метрики их оценки, что также позволяет затем выбрать конкретные показатели качества функционирования КПК, соответствующие значения которых должны быть обеспечены путем использования программного механизма адаптивного управления в КПК.
В третьем параграфе представлены структурные схемы и аналитические модели оценки параметров функционирования КПК типа "клиент-сервер", разработанные на основе метрического подхода. И, наконец, в четвертом параграфе показано обоснование возможности и целесообразности построения адаптивного механизма управления КПК с использованием методов логического вывода на основе анализа прецедентов.
2.1. Обобщенная классификация адаптивных технологий в современной программной инженерии
Для того, чтобы мотивировано и эффективно определить тип адаптивных моделей и технологий, необходимых для решения задач данного диссертационного исследования, сформулированных в п. 1.3 предыдущей главы, представляется целесообразным предложить их некоторую классификацию.
Как показал анализ результатов обзора основных направлений по проблемам разработки программного обеспечения на основе адаптивных подходов (см. п. 1.2 предыдущей главы), все они тем или иным образом направлены на достижение одной главной цели: получить такие проектные решения, а затем - и программные компоненты, которые в максимальной степени были бы настраиваемыми на те постоянные изменения, которые происходят как в предметной области разработки данной системы так и в операционной среде ее функционирования. При этом существует огромный диапазон модельно-инструментальных средств, которые применяются в тех или иных концептуальных подходах и соответствующих технологиях реализации, и проблема их классификации представляется весьма сложной и неоднозначной. Вместе с тем, если рассмотреть ее с позиций соотнесения задач адаптации разрабатываемой программной системы и основных фаз ее жизненного цикла (напр., в соответствии со стандартом ISO / IEC90003 который опубликован на официальном ресурсе международного консорциума по программной инженерии SWEBOK [82]), то можно достаточно мотивированно утверждать, что существуют следующие типы задач адаптации ПО, а именно:
1) адаптивность организации процессов разработки новой (или модификации уже существующей) программной системы;
2) адаптивность архитектуры разрабатываемой программной системы;
3) адаптивность механизмов управления функционированием уже существующей программной системы.
Каждый из этих типов задач разработки адаптивных решений в программной инженерии, в свою очередь, может быть разделен на подтипы в соответствии с одним из трех возможных подходов к их решению, которые являются хорошо известными из общей теории построения адаптивных систем (см., например, в [29]), а именно:
а) параметрическая адаптация
б) алгоритмическая адаптация
в) структурная адаптация.
Помимо этого, следует учитывать и определенные технологические особенности реализации адаптивных свойств современных программных систем. Анализ некоторых источников (см., напр. [32-33]) показывает, что основу для всех подходов к их адаптации составляет некоторый промежуточный слой (middleware) ПО, используемый для организации гибкого взаимодействий между отдельными компонентами системы, или реализацию так называемой композиционной адаптации (compositional adaptation) [32]
На рис. 2.1 схематично представлены три основные технологии, которые используются при этом [32]:
- функциональная декомпозиция (выделение задач),
- вычислительная рефлексия
- компонентная разработка.
Функциональная декомпозиция означает, что при разработке ПО целесообразно отделение ортогональных концепций от общего функционального поведения программной системы, что упрощает разработку и сопровождение и способствует повторному использованию программ [32]. В инженерии программного обеспечения этот подход часто называют аспектно - ориентированным программированием (aspect-oriented programming) [10,83,84].
Рис. 2.1. Технологии, поддерживающие композиционную адаптацию ПО
Технология аспектно - ориентированной разработки ПО (АОР ПО) позволяет осуществлять реализацию сквозных интересов как отдельных модулей и определять способ связи этих модулей с классами, в которых они будут использоваться [83]. Основной целью АОР ПО является реализация средств систематической идентификации, разделения, представления и компоновки сквозных интересов на различных этапах разработки ПО. Важнейшим принципом АОР ПО является принцип отсутствия информации (obliviousness principle). Он заключается в том, что реализация определенного интереса не должна обладать информацией об интересах, которые являются сквозными по отношению к нему [84].
Под вычислительной рефлексией понимается возможность программы принимать во внимание особенности собственного поведения. Рефлексия включает два вида действий - самонаблюдение (introspection), позволяющее приложению наблюдать за своим