Авторефераты по всем темам  >>  Авторефераты по разное

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

Компьютерные технологии и программное обеспечение используются на современной стадии развития общества повсеместно. Практически все виды человеческой деятельности, включая потенциально опасные для жизни людей и планеты, доверены программному управлению. В разработку программных средств вовлечено множество людей и организаций, на создание программ расходуются огромные ресурсы. Учитывая эти факты, нет необходимости в доказательстве актуальности и практической значимости исследований в области качества программного обеспечения. В этой области особенно важными представляются проблема формирования общих подходов к оцениванию качества и задача определения общих принципов управления качеством программных средств.

Оценивание качества программного обеспечения является многокритериальным процессом, который объединяет такие действия, как формирование набора критериев, выбор их эталонных значений, измерение фактических значений, сравнение их с эталонными и определение состояния качества программы. В современной практике разработки программ все составляющие процесса оценивания реализуются экспертами, а сформированная в результате оценка качества не всегда является объективной.

Выбранные для оценивания критерии носят, в основном, описательный характер, процедура выбора эталонных значений - интуитивная, процессы измерения и сравнения - трудно формализуемые. Для управления процессом разработки программы необходимо осуществлять оценку ее качественного состояния постоянно, набор критериев для оценивания и их эталонные значения должны изменяться сообразно с прогрессом, достигаемым в разработке. В расчете на одну экспертную оценку трудно обеспечить адаптацию процесса оценивания в соответствии с состоянием разработки непротиворечивым, верифицируемым способом. Существующие стандарты и исследования в области оценивания качества не обеспечивают нужной степени формализации, описывают процессы, связанные с оцениванием качества или в абстрактном, непригодном для непосредственного применения, или в детальном, плохо поддающимся адаптации под конкретные реалии разработки, стиле. Неопределенности и пробелы в формализации качества программ провоцируют субъективность при оценивании их качества экспертами, позволяют вводить в эксплуатацию низкокачественные программные продукты, использование которых может быть экономически невыгодным и зачастую небезопасным. Высокая сложность и ответственность задач, решаемых программами, возможный материальный ущерб и угрозы для жизни людей как следствие их недостаточного качества, делают необходимым формализацию всех составляющих процесса оценивания.

При выявлении несоответствия значений измеренных и эталонных показателей в результате процесса оценивания, необходимо определить корректные изменения структурных и поведенческих свойств программы, которые бы позволили перевести ее из одного качественного состояния в другое. Выявленные рассогласования значений 3 измеренных и эталонных показателей являются симптомами наличия проблем в структуре и поведении программы. Для того чтобы на основе этой, симптоматической информации можно было бы принять определенные решения о доработке программы, она должна быть правильно интерпретирована. При решении этой многокритериальной задачи важно гарантировать отсутствие побочного эффекта, который состоит в ухудшении значений одних показателей качества в процессе улучшения других. Эта задача, также как и проблема оценивания качества программы, в современной практике разработки программ в основном решается экспертами. Существующие стандарты и исследования проблем качества программного обеспечения не определяют способы использования результатов оценивания. Необходима разработка формализованных моделей связывания качественного состояния программы с подходами к его изменению, строгое описание критериев оптимизации и определение общих принципов управления качеством программ.

Важность задач, решаемых программными средствами и описанные пробелы в современном состоянии программной инженерии, выявляют настоятельную потребность в проведении исследований, направленных на разработку математических моделей, методов и алгоритмов для формализации процессов оценивания и управления качеством программ.

Цель диссертационной работы состоит в разработке обобщенных моделей для оценивания качества программ и формировании общих принципов управления качеством на этапах создания программных средств.

Основные задачи

. Для достижения поставленной цели в диссертационной работе решались следующие основные задачи.

1. Систематизация и обобщение основных подходов к описанию качества программных средств.

2. Разработка структуры и методов формализованного описания качества программных средств.

3. Исследование наиболее распространенных принципов оценивания качества программных средств.

4. Разработка структуры и методов адаптации обобщенной модели программных средств к задаче управления качеством.

5. Создание обобщенных принципов оценки качественных состояний программ.

6. Анализ и систематизация существующих подходов к оптимизации структурных и поведенческих свойств программных средств.

7. Разработка общих принципов управления качеством на основных этапах жизненного цикла программных средств.

Методы исследования. При выполнении диссертационных исследований использовались: общие методы системного анализа, общие методы теории программирования, методы теории автоматического управления, методы 4 математического моделирования, методы функционального анализа, методы теории оптимизации.

Научная новизна выполненных исследований заключается в следующем:

1. Реализован системный подход к исследованию принципов оценивания и управления качеством программных средств.

2. Сформированы основные принципы описания качества программ и предложен метод формализованного описания качества.

3. Выработаны методы оценивания и предложена процедура автоматизированной оценки качества программных средств.

4. Предложены формализованные основы моделирования программ, отвечающих задачам определения и изменения качественного состояния программы.

5. Систематизированы принципы оптимизации качественных состояний программных средств.

6. Определены обобщенные принципы управления качеством, предназначенные для использования на этапах создания программных средств.

Практическая значимость. Выполненные в диссертационной работе исследования формируют теоретический базис для оценки и оптимизации существующих подходов к оцениванию и управлению качеством программных средств, дают основу для создания и развития перспективных автоматизированных систем оценивания и управления качеством программ. Предлагаемые в работе модели, методы и алгоритмы позволяют:

создавать формализованные описания качества программных средств с варьируемой степенью детализации, от концепции - к измерениям с целью итерационного нахождения компромисса между высоким качеством, полнотой реализуемых функций, необходимых временных, денежных, людских и других ресурсов и создания консолидированного взгляда на качество программ с точки зрения заказчиков, разработчиков и пользователей;

формировать каталоги шаблонов формализованных описаний качества и моделей измерений программ, для создания корпоративных, государственных и международных стандартов в области качества программных средств;

разрабатывать каталоги высококачественных и ошибочных архитектурных и проектных программных решений, осуществлять автоматизированную классификацию компонент программы по качественным состояниям;

автоматизировать подготовку и реализацию процессов перевода программного средства из одного качественное состояние в другое;

разрабатывать программные системы онлайнового контроля качественного состояния программных средств на всех этапах их создания;

создавать информационно-управляющие системы автоматизации полного цикла процессов управления качеством программ.

5 В целом, выполненные в диссертации исследования и разработанные теоретические положения могут квалифицироваться как новое крупное достижение в решении проблем оценивания и управления качеством программных средств.

Основные положения, выносимые на защиту:

1. Многоцелевая математическая модель программных средств и способы ее адаптации к задаче управления качеством.

2. Метод формализованного описания качества программных средств.

3. Математическая модель измерений качества программных средств, метод ее синтеза и алгоритм оценивания качества программных средств.

4. Метод оценки степени соответствия программного средства типовым программным решениям.

5. Математическая модель и алгоритм оптимизации качества программных средств.

6. Общие принципы и алгоритм управления качеством на этапах создания программных средств.

Внедрение результатов. Результаты диссертационной работы использовались при разработке процедур управления проектами и подходов к созданию программ, создании стандартов качества предприятия и разработке специального программного обеспечения для Министерства Обороны Российской Федерации:

в ходе опытно-конструкторской работы шифр Базикмед (Государственный контракт от 30.12.98 № НТК/2/6-1998);

в ходе опытно-конструкторской работы шифр Телемед (Государственный контракт от 27.04.02 № ВНК/1/3-2002);

в ходе опытно-конструкторской работы шифр Кладезь (Государственный контракт от 27.10.04 № ВНК/7/24-2004);

в ходе опытно-конструкторской работы шифр Автография (Государственный контракт от 30.03.06 № 5921).

Кроме того, полученные в диссертационной работе результаты внедрены в учебный процесс Санкт-Петербургского государственного университета аэрокосмического приборостроения (на кафедре компьютерной математики и программирования) по направлению Информатика и вычислительная техника при разработке курсов Объектно-ориентированное программирование, Технология разработки программного обеспечения, Стандарты и технологии распределенных объектных архитектур.

Апробация работы. Основные результаты работы докладывались и обсуждались на конференциях и семинарах: на Международной конференции Интеллектуальные многопроцессорные системы - ИМС-99 (г. Таганрог, 1999 г.); Пятой Международной конференции Распознавание образов и анализ изображений - РОАИ-5-2000 (г.

Самара, 2000 г.); Всероссийской НТК Методы и средства обработки информации (г.

Москва, 2002 г.); на XVII Всероссийском семинаре Передача, обработка, отображение информации (г. Ставрополь, 2006 г.); на XV и XVII Международном научно техническом семинаре Современные технологии в задачах управления, автоматики и обработки информации (г. Алушта, 2006 и 2008 гг.); на Международном научнотехническом семинаре Информационные, измерительные и управляющие системы (г.

Самара, 2005 г.); Международном форуме Информационно-коммуникационные технологии (г. Санкт-Петербург, 2008 г.); на ежегодных Научных сессиях Государственного университета аэрокосмического приборостроения (г. СанктПетербург, 2005 - 2009 г.г.).

Публикации. По результатам диссертационных исследований опубликована монография, 34 научные статьи, из которых 19 опубликовано в ведущих рецензируемых научных журналах, входящих в Перечень изданий, рекомендуемых ВАК, получено свидетельств на разработки, зарегистрированные в Отраслевом фонде алгоритмов и программ.

Структура диссертации. Диссертация состоит из введения, семи глав, заключения, списка использованных источников и двух приложений. Основной материал диссертации изложен на 275 страницах машинописного текста, содержит 98 рисунков и 43 таблицы. Библиографический список включает 219 наименований.

СОДЕРЖАНИЕ ДИССЕРТАЦИИ Во введении обоснована актуальность, определена цель и основные задачи диссертационного исследования, сформулированы положения, выносимые на защиту, описано содержание диссертации по главам.

Первая глава посвящена описанию подхода к моделированию программных средств, которые находятся на одном из этапов своего создания и представляют собой проектные модели или исходные коды. Специфика разрабатываемого подхода к оцениванию и оптимизации качественного состояния программ предполагает моделирование программного средства с различной степенью детализации. Состав и структура информации о программном средстве, подлежащая моделированию зависят от целей использования и принятых подходах к моделированию качества. Нет необходимости всякий раз добиваться максимально детализированного представления всех свойств программы, рациональнее сфокусироваться на тех аспектах, от которых зависит оценивание и оптимизация качества. Для обеспечения вариативности степени детализации информации о программе для моделирования программ в представленной работе используются графы. Варьируемая детальность, наглядность и простота представления программных сущностей и взаимоотношений между ними сочетается в графовых спецификациях с развитым математическим базисом. Теория графов успешно используется для формализованного описания различных программных концепций уже более 30 лет. С целью обеспечить необходимый математический аппарат для решения общей задачи оценки и управления качеством, базовое понятие графа было дополнено рядом надстроек, в результате которых полученная многоцелевая математическая модель программного средства получила ряд уникальных особенностей. Одной из главных таких особенностей следует считать возможность моделирования программного средства с той степенью детализации, которая необходима для решения задач оценивания и управления качеством, а также простоту адаптации модели к изменяющимся целям моделирования. Другой особенностью модели является ее направленность на описание типовых программных решений и программной архитектуры. Модель снабжена специальными механизмами, позволяющими наглядно и относительно просто описывать ограничения на структурные и поведенческие свойства программ. Наконец, для разработанной модели характерна общая проработка с точки зрения потребностей других компонентов системы управления качеством - моделей измерений и преобразований, служащих соответственно для оценивания и оптимизации качества программного средства.

Многоцелевая математическая модель программного средства предназначена для описания проектных моделей и исходного кода, которые, в свою очередь, также являются моделями программы. Поэтому разработанная модель программного средства является метамоделью, но для простоты изложения называется в работе моделью.

В начале главы формулируются определения понятий, положенных в основу модели программных средств.

Ориентированный граф G = (V,E,s,t) состоит из двух множеств, конечного множества V, элементы которого называются вершинами, и конечного множества E, элементы которого называются ребрами. Каждое ребро связано с упорядоченной парой вершин. Функции s: E V и t: E V связывают с каждым ребром в точности одну начальную и одну конечную вершины.

Для двух графов, G и H графовый морфизм f:G H представляет собой пару функций (fv:VGVH, fe:EGEH) такую, что выполняется fvsG = sH fe и fv tG = tH fe. Категория графов, содержащая в качестве объектов графы, а в качестве морфизмов графовые гомоморфизмы обозначается Graph.

Далее в первой главе формулируются понятия графовых изоморфизмов, инъективных и сюръективных морфизмов, частичных и тотальных графовых морфизмов. В качестве расширений к базовой структуре графа, описанного выше, используются метки, роли, порядок и типы. Метки служат для именования элементов модели, роли - с целью спецификации контекста использования моделируемой программной сущности, порядок служит целям моделирования поведения, типизация используется для классификации вершин и ребер.

В продолжении главы приводятся определения конструкций расширения, используемых в модели программных средств. Пусть L=(VL,EL), A=(VA) - пара непересекающихся потенциально бесконечных множеств меток и ролей соответственно.

(L,A)-помеченный граф G представляет собой тройку (g,l,a) такую, что имеют место: 1) g=(V,E,s,t) - граф; 2) l=(vl:VVL, el:EEL) - пара функций пометки соответственно вершин и ребер, при этом vl является инъективной; 3) a=(va:VVA) - функция отображения вершин на множество ролей.

Упорядоченный граф G представляет собой (L,A) -помеченный граф, в котором ребра, выходящие из каждой вершины v VG, упорядочены, помечены номерами 1,Е, kv, где kv - число ребер, исходящих из вершины v, то есть kv = |{w: (v,w) EG}|.

Упорядоченные графы используются для моделирования не только структурных, но и поведенческих свойств программы, так как могут задавать порядок выполнения операторов исходного кода программы, порядок следования действий на диаграмме деятельности UML и т.п.

Также как и в случае с категорией Graph, (L,A)Цпомеченные графы образуют категорию, для описания которой понадобится определить морфизмы, безопасные по отношению к меткам и ролям. Для (L,A)Цпомеченных графов G и H, f:GH является помеченным графовым морфизмом, если (fv:VGVH, fe:EGEH) является частичным графовым морфизмом между G и H. L-сохраняющим помеченным графовым морфизмом f:GH называется такой помеченный графовый морфизм, для которого выполняется 1) vdom(fv):vlG=vlHfv; 2) edom(fe):elG=elHfe. A-сохраняющим помеченным графовым морфизмом f:GH называется такой помеченный графовый морфизм, для которого выполняется: 1) vdom(fv):vaG=vaHfv; 2) edom(fe):eaG=eaHfe. L,Aсохраняющим помеченным графовым морфизмом является морфизм одновременно Aсохраняющий и L-сохраняющий.

Добавление к формализму помеченного графа механизма, связывающего с каждым ребром и вершиной понятие типа, служит целям классификации, которая позволяет выявить сходные свойства вершин или ребер, тем самым, упрощая представление графа.

Пусть T=(VT,ET) - пара непересекающихся конечных множеств предопределенных типов вершин и ребер. (L,A)-помеченный T-типизированный граф G является двойкой (g,type), такой что g является (L,A)-помеченный графом, а type=(vt:VVT, et:EET) - пара функций, vt связывает с каждой вершиной из V ее тип из VT, а et - с каждом ребром из E его тип из ET.

Пусть G и H - (L,A)-помеченные T-типизированные графы. f:GH представляет собой помеченный типизированный графовый морфизм, если f является помеченным графовым морфизмом между (L,A)-помеченными графами G и H. T-сохраняющий помеченный графовый морфизм f:GH - это такой помеченный типизированный графовый морфизм, для которого выполняется: 1) vdom(fv):vtG=vtHfv; 2) edom(fe):etG=etHfe. В параграфе определяется ряд категорий, самой важной из которой является LTGraphLT(L,A,T), которая содержит (L,A) -помеченные Tтипизированные графы в качестве объектов и графовые морфизмы, сохраняющие метки и типы.

Для описания ограничений на допустимые виды отношений между программными сущностями вводятся два множества метаграфов: допустимые и недопустимые. Эти ограничения отражают семантику языков (моделирования или программирования), которые используются при разработке программы. Допустимые графы описывают разрешенные виды отношений между программными сущностями, недопустимые - запрещенные. Существование инъективного морфизма из графа, описывающего программные сущности в каждый из допустимых графов, при одновременном отсутствии инъективных морфизмов в каждый из недопустимых графов, обосновывает корректность графовой структуры ПС.

Пусть T=(VT,ET) - пара непересекающихся конечных множеств типов, а TT - Tпомеченный граф, называемый допустимым (недопустимым) графом. (L,A)-помеченный TT-типизированный граф является двойкой (G,tt), такой, что G - (L,A)-помеченный граф и tt:GTT - тотальный LGraph-морфизм. Помеченный TT-типизированный графовый морфизм представляет собой графовый морфизм вида f:GH между (L,A)-помеченными TT-типизированными графами. TT-сохраняющий помеченный типизированный графовый морфизм представляет собой помеченный TT-типизированный графовый морфизм вида f:GH, такой, что ttH f=ttG для xdom(f).

В продолжение первой главы формулируется понятие математической модели программного средства. По определению она представляет собой T-типизированный (L,A)-помеченный упорядоченный ориентированный граф при условии существований T-помеченных допустимых и недопустимых графов, описывающих семантические ограничения, свойственные языку программирования (проектной модели) этого программного средства.

Модель программного средства является многоцелевой в силу отсутствия требования по описанию всех аспектов программы или всех свойств языка программирования (проектной модели). Множество типов, которые объединяются во множество T, определяет степень абстракции моделирования. Множества допустимых и недопустимых графов должны описывать все ограничения, накладываемые на возможные виды отношений между программными сущностями тех или иных типов.

Адекватность модели программного средства, понимаемая как совпадение свойств модели и программного средства, достигается благодаря отсутствию принципиальных ограничений на виды программных сущностей и их свойства, которым можно было бы сопоставить вершину или ребро модели соответствующего типа. Степень непротиворечивости модели определяется качеством формирования допустимых и недопустимых графов, отражающих семантику языка программирования и служащих для задания ограничений на допустимые виды структур модели.

Продолжение первой главы посвящено раскрытию вопросов адаптации многоцелевой модели программного средства в соответствии с предметом и целями моделирования. До использования модели необходимо выполнить следующую последовательность действий по ее адаптации: 1) идентифицировать типы вершин и ребер; 2) построить множество допустимых графов; 3) построить множество недопустимых графов. Первый этап адаптации является ключевым - на этом этапе в зависимости от целей моделирования устанавливается набор типов, определяющий концептуальные аспекты, которые сможет описать синтезируемая модель. Качество реализации последующих двух шагов определяет степень согласованности модели и ее соответствия семантике языка реализации программного средства.

В заключении первой главы рассматриваются примеры выполнения шагов по адаптации для моделирования диаграмм классов UML и программного кода на языке Java.

Вторая глава посвящена проблеме описания понятия качества программ и созданного в рамках диссертационного исследования метода формализованного описания качества программных средств.

В начале главы дано определение понятия качества программных средств. Обобщая определения существующих стандартов и подходов к работе с качеством программ, можно заключить, что качество программного обеспечения - это способность программного продукта к удовлетворению установленных или предполагаемых потребностей при использовании в заданных условиях. Описаны основные существующие стандарты и модели качества, которые относятся к трем типам: факторыкритерии-метрики, цели-вопросы-метрики, процессы/продукты. Помимо моделей в первой главе приведен обзор актуальных стандартов качества программных средств - IEEE 1061-98, ГОСТ 28195-89, ГОСТ Р ИСО/МЭК 9126-93, ISO/IEC 9126:2001-4, ISO/IEC 25000.

Далее во второй главе приведен сравнительный анализ существующих подходов к описанию качества программных средств. Отмечается, что всем моделям качества характерна иерархическая, древовидная структура, состоящая из высокоуровневых показателей, которые детализируются показателями более низких уровней, пока декомпозиция не приводит к атомарным и измеримым атрибутам. В различных моделях количество уровней иерархии и число показателей и атрибутов разнятся, и могут быть как ограниченными, так и не ограниченными. Более ранние модели по своей природе были скорее качественными, нежели количественными, ввиду недостатка знаний о метриках. Более поздние предлагают более строгий, количественный подход к оценке и измерению качества. Основной вектор развития моделей качества определяется попытками сделать все атрибуты качества измеримыми, а также стремлением разнести на разные уровни качественные и количественные атрибуты.

В продолжение главы приводится сводка основных недостатков существующих подходов к описанию качества программ.

1. Трудность технологической интерпретации - Отсутствует связь между показателями качества и их значениями с типовыми проектными решениями, шаблонами, паттернами и антипаттернами и т.п. Для архитектора, проектировщика или программиста для оценивания качества информация о наличии таких типовых проектных решений является более важной, чем значения тех или иных показателей.

2. Терминологическая несогласованность - параллельно существует и используется несколько интерпретаций показателей качества и метрик в разных моделях качества.

3. Неформализованный характер - практически все модели качества математически не проработаны, поэтому отсутствует возможность доказательств корректности моделей или формализованного описания каких-либо свойств этих моделей, способов адаптации и повторного использования 4. Эвристическое построение - отсутствует математическая методика синтеза моделей качества.

5. Уровень детализации обратно влияет на уровень применимости - существующие модели являются или абстрактными, при этом широко применимыми, или детальными и узко применимыми. При этом высокий уровень абстракции нивелирует широкое применение, а узкая применимость нивелирует высокую степень детализации.

На основе классификации и анализа недостатков существующих моделей качества формулируются требования к создаваемому в рамках диссертационного исследования методу формализованного описания качества программных средств:

1) возможность описания качества в абстрактном, независимом от реализации виде.

2) необходимость формализации связей показателей разных уровней в иерархической структуре модели качества.

3) наличие механизма по добавлению или удалению показателей разного уровня и связей между ними.

4) однозначность толкования показателей качества ПС.

5) возможность существования проекций модели качества с точки зрения основных участников создания ПС.

6) возможность существования зависимостей между одноуровневыми показателями качества.

7) возможность классификации показателей качества, например, на внешние и внутренние для повышения применимости модели.

8) возможность совмещения показателей, в силу того, что они могут различными способами затрагивать разные свойства ПС.

9) возможность существования связей между показателями не только смежных уровней иерархии.

10) возможность проверки независимости листовых элементов модели качества.

11) возможность проверки отсутствия в выражениях для показателей зависимых компонентов.

12) существование механизма минимизации состава компонент, включаемых в выражения для показателей.

13) существование механизма проверки наличия одинаково выраженных показателей.

14) необходимость учета типовых программных решений для возможности их дальнейшего оценивания и обеспечения причинно-следственной связи между качеством и дизайном ПС.

15) необходимость в целом соответствовать всему положительному опыту, накопленному исследователями качества программного обеспечения, стандартами и технологиями, применяемыми в этой области.

Следующие разделы второй главы посвящены описанию подхода к формализации описания качества программных средств. Математическое описание качества основывается на теории категорий. В качестве обоснования выбора именно этого формального аппарата выступают следующие свойства теории категорий: возможность использования в качестве универсального средства для описания различных концепций, применимость в качестве мощного средства абстракции и обобщения, простота использования в качестве основы методологических принципов разработки от концепции к реализации, возможность построения с помощью теории категорий универсальных конструкций.

Для математического представления качества вводится категория качества Q которая состоит из объектов Ob(Q) и морфизмов Mor(Q). Класс объектов категории качества представляет концептуальные понятия, характеризующие качество n программных средств и является конечным множеством с разбиением Ob(Q) =, где UQi i=i i Qi = {qm}k - множество объектов i-го уровня иерархии, ki - число элементов множества m=Qi. На верхнем уровне иерархии находится объект q1, отражающий само понятие качества, в максимальной его полноте и целостности, поэтому k0 =1, на следующих уровнях иерархии количества объектов удовлетворяет формуле ki+1 2ki, i{1,Еn-1}.

При этом Qi Qj = при i j, то есть каждая характеристика качества находится на одном определенном уровне иерархии. С целью обобщения существующих и будущих стандартов и моделей качества объектами категории являются все потенциально оцениваемые атрибуты, связанные с качеством программы. Для обеспечения согласованности каждый такой атрибут отражает ровно одну концепцию качества, и каждой концепции качества соответствует ровно один атрибут. Определяются процедуры добавления объектов к категории качества, учитывающие ограничение взаимнооднозначного соответствия атрибутов и концепций качества.

Класс морфизмов категории качества описывается тремя множествами Mor(Q) = Morsi(Q) Mordi(Q) Morsl(Q) - множеством строгих иерархических морфизмов Morsi(Q), множеством нестрогих иерархических морфизмов Mordi(Q) и множеством одноуровневых морфизмов Morsl(Q).

Строгие иерархические морфизмы категории качества.

i i 1) для любых двух объектов qa, qb Qi, i{1,Е,n} определяется множество i i i i морфизмов Morsi (qa, qb ) из qa в qb :

, a b, i i i Morsi (qa, qb ) = где 1q - тождественный морфизм объекта qa.

{1 }, a = b i a i qa ii 2) для любых двух объектов qa+1 Qi+1, qb Qi, при i{1,Е,n-1}, a{1,Е,ki}, i i b{1,Е,ki+1}, множество морфизмов определяется пустым Morsi (qa+1, qb ) =.

i i 3) для любого объекта qb Q, может существовать объекты вида qa-1 Qi-1, i b i i i такие, что Morsi (qa-1,qb) состоит из одного морфизма для каждого объекта qa-1. Для всех b b i остальных объектов qa-1 Qi-1 при ajab множество морфизмов является пустым:

j i-1,i { }, a = ab, a,b i i Morsi (qa-1, qb ) =.

, a ab Таким образом, кроме тождественного, не существует других видов строгих иерархических морфизмов на одном уровне иерархии категории качества. Остальные строгие морфизмы определяют связи верхнего уровня иерархии с нижним. Допустима ситуация, когда несколько объектов верхнего уровня связаны с одним объектом нижнего множеством морфизмов (по одному морфизму на каждый объект верхнего уровня).

i1 i1 i2 i2 i3 iДля трех подмножеств Qi = {qa }k, Qi = {qa }k =1 и Qi = {qa }k =1, если множества a1=1 a2 a1 1 2 2 3 i1 i2 i2 i3 i1 iMorsi (qa,qa ) и Morsi (qa,qa ) не являются пустыми, определяется множество Morsi (qa,qa ), 1 2 2 3 1 i1,iсостоящим из одного морфизма, который является произведением морфизмов a,a2 и ia,i3 :

,ai1 i2 i1,i2 i2 i3 i((Morsi (qa, qa ) = {a,a2}) (Morsi (qa, qa ) = {a,i3 })),a1 2 1 2 3 i1 i3 i1,i3 i1,i2 i Morsi (qa, qa ) = {a,a3 = a,a2 oa,i3 },a1 3 1 1 Произведения морфизмов отвечают отношениям между показателями качества все более глубоких уровней иерархии.

Нестрогие иерархические морфизмы категории качества.

i i 1) для любых двух объектов qa, qb Qi, i{1,Е,n} определяется множество i i i i морфизмов Mordi (qa, qb ) из qa в qb :

, a b..

i i Mordi (qa, qb ) = {1 }, a = b i qa i 2) для любых двух объектов qaj Qj,qb Qi, при i,j{0,Е,n-1}, i

i 3) для любого объекта qbj Q, может существовать объекты вида qa Qi, при j b i i j>i+1 такие, что Mordi (qa,qbj ) состоит из одного морфизма для каждого объекта qa. Для b b i всех остальных объектов qa Qi при ajab множество морфизмов задается пустым:

l i, j {% }, a = ab,.

i a,b Mordi (qa, qbj ) = , a ab Нестрогие иерархические морфизмы служат для описания связей различных, не соседних уровней иерархии.

Одноуровневые морфизмы категории качества.

i i 1) для любых двух объектов qa, qb Qi, i{1,Е,n} определяется множество i i i i морфизмов Morsl (qa, qb ) из qa в qb :

i, j a,b { }, a b.

i i Morsl (qa,qb ) = {1 }, a = b i qa i 2) для любых двух объектов qa Qi,qbj Qj, i,j{1,Е,n} множество i одноуровневых морфизмов является пустым Morsl (qa, qbj ) = .

Одноуровневые морфизмы служат для моделирования взаимосвязей объектов категории качества, находящихся на одном уровне иерархии.

Категория качества содержит морфизмы, отражающие все возможные связи атрибутов качества. Для иерархических морфизмов принципиальное значение имеет направленность - от объектов, находящихся на верхних уровнях иерархии, к объектам, расположенным на нижних. Иерархические морфизмы от верхних к нижним объектам образуют конусы. Эта направленность определяет назначение главное модели качества - последовательное, детализируемое на каждом следующем уровне иерархии, концептуальное описание понятия качества программных средств.

Во второй главе сформулированы и доказаны следующие леммы.

емма 1. Категория качества является малой категорией.

емма 2. Конусы категории качества, образуемые иерархическими морфизмами, являются произведениями.

В продолжение главы вводится понятие независимости объектов категории i l качества. Объекты категории качества qa,i 1,..., n -1 и qc,l 1,..., n -1 являются независимыми, если соблюдаются следующие условия:

1) отсутствуют одноуровневые морфизмы между этими объектами:

i l Morsl (qa, qc ) = при i=l;

2) отсутствуют строгие иерархические морфизмы между этими объектами:

i l Morsi (qa, qc ) = при il;

3) отсутствуют нестрогие иерархические морфизмы между этими объектами:

i l Mordi (qa, qc ) = при il;

4) подмножества морфизмов, входящих в продолжения конусов, имеющих в i качестве вершин объекты qa и qb, не пересекаются:

j i l h ( qa qkj ) ( qc qg ) = .

UU j=1,...,n;kI h=1,...,n;gI Затем во второй главе формулируется понятие обобщенной модели качества программных средств. Модель качества представляет собой подкатегорию категории качества и состоит из конечного числа объектов категории качества и конечного числа морфизмов между ними. Модель может представлять некоторый международный или государственный стандарт (например, ГОСТ Р ИСО/МЭК 9126-93, ISO/IEC 25000 и т.п.), стандарт предприятия-разработчика, и т.п. В подкатегорию категории качества выбираются объекты, представляющие концепции качества программы, исходя из назначения модели. На рисунке 1 приведена структура модели описания качества в схематическом виде.

q0, 0,1,11 1, p 0, 1,qq1 qp %1,tn-n-1,n-2, 2,n-n-1 n-qq2 qr n- n nn-1,n rn,-1,n rn,-1,n 1,21,n 2,-1,n n- 2,51,n t-3 t 1,2,41,n n n n n n q1 q2 q3 q4 q5 qtn-1 qtn Рисунок 1 - Схема модели описания качества.

После примера формализованного описания качества в соответствии со стандартом ISO/IEC 25000, во второй главе приводятся обоснования соответствия разработанной модели требованиям, которые явились результатом анализа и критики принятых подходов к представлению информации о качестве программных средств.

В заключении второй главы приводятся сведения о методе формализованного описания качества программных средств. Метод формализованного описания качества программных средств включает построение категории качества, то есть формирование множеств объектов и морфизмов категории качества, и формирование подкатегории этой категории качества, то есть выбор объектов и морфизмов категории качества исходя из целей моделирования. Оба этих шага предполагают экспертную работу, результаты которой могут быть на разных уровнях стандартизованы, объединены в репозитории, базы знаний, опубликованы в виде хорошо зарекомендовавших себя практик.

По определению категория качества объединяет в своем составе все возможные показатели качества программ и семантические связи между ними, они образуют соответственно объекты и морфизмы этой категории. Состав объектов категории качества основывается на словаре понятий, достаточном для описания всех свойств предметной области непротиворечивым образом. Объем словаря понятий потенциально не ограничен. Следует иметь в виду сложность и неоднозначность, свойственные процессу формирования этого словаря. Наличие этих свойств обосновывается двумя важными требованиями к составу объектов категории качества. Во-первых, необходимо иметь такой состав понятий, который бы покрывал все существующие и будущие запросы для описания концепций, связанных с моделированием качества. Во-вторых, состав понятий должен быть непротиворечивым, то есть одним и тем же концептуальным элементам модели качества не должно соответствовать более одного понятия из словаря. Первое требование реализуется благодаря открытости состава словаря и множества объектов категории качества. Ответственность за реализацию второго требования лежит на эксперте, формирующем понятийный словарь для категории качества. При формировании словаря эксперту необходимо осуществлять проверки свойства согласованности состава показателей качества, используя доказательство независимости элементов в модели.

Множество морфизмов категории качества объединяет все отношения, существующие между объектами категории. Соответственно видам возможных связей, это множество содержит три подмножества, которые отражают зависимости между показателями качества, существующих на соседних уровнях, на одном уровне и на разных, не смежных, уровнях иерархии в модели качества программы. Выявление и описание этих отношений, так же, как и формирование множества объектов категории качества представляет собой экспертную работу. Результаты экспертной работы необходимо подвергать согласованиям и формализованным проверкам.

Выбор объектов и морфизмов для включения в состав подкатегории качества зависит от целей моделирования. Выбранные объекты приобретают контекстную зависимость и интерпретируются в соответствии с предметной областью, основными элементами которой являются парадигма программирования (объектноориентированная, функциональная, структурная и т.п.), язык программирования (java, c, lisp и т.п.), тип проекта (веб-приложение, клиент-серверное приложение с толстым клиентом, приложение для карманного компьютера и т.п.). Поэтому при формировании подкатегории качества необходим контекстный анализ предметной области моделирования.

Процессы формирования множества объектов и морфизмов для категории качества, выбор объектов и морфизмов для синтеза модели качества программы - работа экспертов. Эксперты помимо профессиональной интуиции, при выполнении этих видов работ должны использовать математический аппарат, благодаря которому можно добиться определенных свойств синтезируемой модели качества:

строгость слоев модели - на каждом уровне иерархии модели располагаются объекты определенной степени абстракции, отсутствуют связи, пересекающие уровни, то есть, определены отношения между показателями качества для смежных уровней или внутри каждого уровня: Mordl=;

базисные слои модели - объекты, относящиеся к одному уровню иерархии, не зависят друг от друга, формируют базис показателей качества на этом уровне иерархии: Morsl=;

древовидная структура - в модели качества существуют связи только между показателями качества, принадлежащие к смежным уровням иерархии: Morsl= Mordl=;

согласованность зависимостей - строгий контроль существующих отношений между элементами модели, проверка отсутствия нежелательных зависимостей.

Третья глава посвящена описанию процесса оценивания качества программных средств. В начале главы приводятся основы квалиметрии программных средств, основные понятия теории измерений, за основу которых взяты адаптированные определения наиболее современного стандарта по качеству и измерениям программ - ISO/IEC 25000. Рассматриваются виды измерительных шкал и процесс комплексирования. Представлен обзор наиболее актуальных стандартов этой области - ISO/IEC 14598-1-6:1998-2001, ISO/IEC 15939, ISO/IEC 25020, ISO/IEC 25021, ISO/IEC 25022, ISO/IEC 25023, ISO/IEC 25024.

В третьей главе рассматриваются метрики, формальное определение которых базируется на многоцелевой математической модели программных средств. Базовая метрика представляет собой метрику, определенную в терминах атрибута и метода его обсчета, является функционально независимой от других метрик. Производная метрика является метрикой, которая определяется посредством функции от двух или более значений базовых или других производных метрик, преобразование метрики с использованием математических функций также является производной метрикой.

Определения базовых метрик основано на многоцелевой модели программного средства, введенной в первой главе. Базовые метрики обсчитывают количество вершин, ребер определенного типа и длину пути графа из ребер определенного типа, используя свойство конечности множеств вершин V и ребер E модели программы. На основе этих метрик путем комплексирования создаются производные метрики. В третьей главе показан процесс комплексирования и определены основные типы производных метрик.

В продолжение третьей главы вводится понятие функциональной эквивалентности программ. Это понятие достаточно широко представлено в литературе и в описываемом подходе не осуществляется развитие теории эквивалентности программ, происходит лишь использование понятия функциональной эквивалентности в самом общем виде - эквивалентности выходных данных, формируемых программным средством в ответ на тестовый набор, достаточный для проверки реализации всех функциональных требований. Такой тип эквивалентности назван в работе слабой функциональной эквивалентностью. Вводится множество Prog, содержащее все математические модели конкретного программного средства. Каждое из программных средств этого множества, будет состоять в отношении слабой функциональной эквивалентности с другими программными средствами, чьи модели принадлежат Prog. Между собой эти модели будут отличаться внутренней структурой.

Для описания формализованной модели измерений приводится традиционное математическое определение этого понятия метрика: отображение m: ProgProg R называют метрикой на Prog, если m(x,y)=0x=y, m(x,y)= m(y,x), m(x,y)m(x,z)+m(z,y), при x, y, zProg.

Далее приводится определение метрического пространства: пара (Prog, m) будет называться метрическим пространством программных средств, вещественное число m(x, y) - расстоянием между программным средством x и программным средством y. В однозначном контексте допустимо само множество Prog называть метрическим пространством.

Значения базовых метрик являются оценками количества вершин (ребер) определенного типа. Они представляют собой дискретные метрики, метрические пространства, которые они образуют, являются дискретными. Производные метрики образуют метрические пространства различной природы. Базовыми называются счетные дискретные метрические пространства Mb. Образующие множества представляют собой модели программных средств. Метриками являются свойства моделей, оценивающие количества элементов модели определенного типа. Производными называются метрические пространства Md, элементами которых являются модели программных средств, а метрики представляют собой свойства моделей программных средств, полученные на основе вычислений n-местных функций (n>0), аргументами которых являются как базовые, так и производные метрики.

Далее в третьей главе приводятся необходимые для дальнейшего изложения сведения из функционального анализа, описывающие свойства метрических пространств: определения подпространства, произведения пространств, прямой суммы пространств, координатной проекции, линейной независимости и алгебраического базиса применительно к введенным метрикам и метрическим пространствам.

На базовых (Mb) и производных (Md) метрических пространствах вводится множество операторов для формального описания процесса комплексирования производных метрик из других производных и базовых, эти операторы носят название операторов комплексирования. Операторы комплексирования Ac:MbMd, Ac:MdMd отражают зависимости одних производных метрик от других производных или базовых.

В зависимости от способов комплексирования, операторы Ac могут иметь различную природу, быть линейными, нелинейными, ограниченными, непрерывными и т.п. Далее в параграфе приводятся основные свойства операторов, определяемых на метрических пространствах.

Продолжение третьей главы посвящено описанию категории измерений. Категория MS, объектами которой являются метрические пространства Mb и Md, а морфизмами - операторы комплексирования Ac называется категорией измерений. Далее в этом параграфе описываются свойства морфизмов этой категории. Затем описываются понятия произведений и прямых сумм в категории метрик.

В продолжение третьей главы формулируется понятие модели метрик программных средств. Модель измерений качества программных средств представляет собой подкатегорию категории измерений MS, в которую в соответствии с целями моделирования включаются определенные метрические пространства Mb, Md и операторы комплексирования Ac, входящие в классы объектов и морфизмов категории MS. На рисунке 2 представлена структурная схема модели измерений.

d M Ac1,0 Ac1,1,1 p,Ac1,2,dd1 dM M M 1 p,Acn-1,n-Acn-1,1,dn-1 dn-t dn-M M M 1 r,, Acn,n-1 Acn,n-Acn,n-1 3,2 5,Acn1n-1 2,1 Acn-n-1 Acn,,n-1, t 1,r t r Acn,n-4,dn dn dn dn dn dn dn M M M M M M M 1 t 2 3 4 5 t-Рисунок 2 - Схема модели измерений.

В модели измерений, в отличие от модели качества, морфизмы имеют противоположное направление, образуя коконусы. Таким образом, выявляется назначение этой модели - фиксировать метрические пространства для оценки концептуальных понятий качества и определять функциональные зависимости для порождения значений производных метрик, соответствующих верхним уровням иерархии за счет комплексирования метрик, соответствующих нижним.

Дальнейшие разделы третьей главы посвящены описанию метода синтеза модели измерений качества программных средств. Категория измерений изоморфна категории качества программных средств, служит для количественного оценивания концептуальных понятий о качестве, определяемых моделью качества. Метод синтеза модели измерений служит для генерации модели измерений на основе модели качества с целью реализации этого оценивания. Для синтеза категории измерений на основе категории качества ПС определяется функтор. Целью введения функтора является обеспечение формальной связи между моделями качества и метрик. Функтор QM:QMS является контравариантным одноместным функтором, отображающим объекты категории качества (характеристики, подхарактеристики, принципы проектирования) на метрические пространства категории метрик (базовые и производные) QM(Ob(Q))=Ob(MS), а морфизмы категории качества - на морфизмы категории измерений, являющимися операторами над метрическими пространствами QM(Mor(Q))=Mor(MS).

Функтор QM:QMS на объектах категории Q задается следующим образом:

1) на объектах:

di QM ({qi}) = {M } - отображение элементов категории качества, UU i{0,n-1} i{0,n-1} отвечающих за представление производных метрик, подхарактеристик и характеристик на производных метрических пространствах.

2) на морфизмах - на морфизмах, принадлежащих парам соседних уровней:

-1,i di QM (si,m ) = Aci,i,-1, i{1,Е,n}, где Aci,i,-1 - оператор, определенный на X M, m s ms m di-1 i i имеющий в качестве области значений Y M, соответствующих элементам qm и qs-1;

s - на морфизмах, принадлежащих уровням i, j при j>i+1:

j j j,i QM (%si,,m) = Acm,is, i{0,Е,n-2}, j{2,Е,n}, где Acms - оператор, определенный на,, d j di X M, имеющий в качестве области значений Y M, соответствующих элементам m s j i qm и qs ;

- на морфизмах, принадлежащих одному уровню:

di QM (si,,i ) = Aci,i,s, i{1,Е,n}, где Aci,i, - оператор, определенный на X M, m m ms m di i i имеющий в качестве области значений Y M, соответствующих элементам qm и qs.

s На рисунке 3 схематично показано действе функтора QM.

qdM 0, 0, 1,11 1,p0, 1,Ac1,0 Ac1,1,1 p,Ac1,2,q1 q1 q1p di d2 d1 dM QM( {qi}) = {M } M M UU 1 p i{0,n-1} i{0,n-1} -1,i QM(si,m ) = Aci,i,-m s %1,tn-n 2, 2,1-1,n-1 n j j Acn-1,n-1 dn-1 Acn-,1 dn-QM(%si,,m) = Acm,is M 1,dn-1 t 1,q1n-q2-1 qrn-1, M M 1 r n- n- nQM(si,,i ) = Aci,i,s, n t-t 3,2 5,1,1-1,n 1,21,n 2,31,n n 2,51,n rn,-1,n rn,-1,n m m 1, Acn,n-1 Acn,n-1 Acn,n-1 Acn-,n-r1 Acn,,rn-Acn1n-1 2,t 1, t 2,-1,n Acn,n-4 4,n n n n q1n q2 q3 q4 q5 qtn-1 qtn Mdn 2 Mdn Mdn Mdn Mdn Mdn Mdn-1 t 3 4 5 t Рисунок 3 - Функтор оценки качества.

С помощью функтора QM, на основе модели измерений MS можно количественно оценить элементы модели качества Q, сделать это как для конкретной характеристики, подхарактеристики, принципа проектирования, так и для качества программного средства в целом.

Метод синтеза модели измерений качества программных средств объединяет следующие действия:

применение функтора синтеза модели измерений к заранее разработанной модели качества;

подбор базовых и производных метрик для измерения листовых элементов синтезированной модели измерений;

построение модели программного средства;

математическое описание метрик на основе модели программного средства;

уточнение вида операторов комплексирования;

При описании алгоритма оценивания качества программных средств, который представлен в следующем параграфе, приведен пример реализации метода синтеза модели измерений.

Вторая часть третьей главы посвящена описанию алгоритма оценивания качества программных средств. В начале главы приведены краткие описания существующих в этой области стандартов, таких как ISO/IEC 14598, ISO/IEC 15939, ISO/IEC 25000.

Описаны модели оценки качества, регламентируемые этими стандартами. В этой части третьей главы представляется алгоритм оценивания, который является обобщением описанных подходов к оценке качества (рисунок 4).

[нет] Цели оценивания достигнуты? Определение целей оценивания Разработка модели качества Анализ качества ПС Генерация модели измерений Определение фактических значений метрик Определение пороговых значений метрик Поиск базовых метрик Определение производных метрик Формализация метрик Моделирование ПС Рисунок 4 - Обобщенная модель оценивания качества программ.

В заключении третьей главы каждый из этапов алгоритма оценивания качества рассматривается подробно, приводятся примеры реализации этих этапов. С помощью предлагаемого алгоритма существует возможность оценить качество программного средства в целом, а также любого отдельного компонента модели качества. Если качество программы не было признано удовлетворительным, на основе метрик выявляются отдельные дефектные программные сущности, которые являются кандидатами для проведения рефакторинга, инспекций и других мероприятий по улучшению качества кода. После проведения этих мероприятий происходит повторная оценка качества с целью проверки принятых решений по преобразованию программы.

При интерпретации результатов оценки качества может быть принято решение о необходимости внесения изменений в процесс оценивания. Предприятия по изменению процесса оценки могут быть следующих типов: изменение модели качества, корректировка состава и пороговых значений производных и базовых метрик, изменение функциональных зависимостей, порождающих производные метрики качества.

Четвертая глава посвящена описанию метода оценки степени соответствия программного средства типовым программным решениям. В диссертационной работе понятие типовое программное решение используется для обозначения шаблонов проектирования, паттернов, известных практик программирования, ключевых принципов, использующихся при разработке программ. Типовые программные решения определяют походы к конструированию программ и основываются на опыте, накопленном при разработке успешных программных проектов. Значение, которое оказывает на качество программ систематизированное применение определенных типовых программных решений, стало предметом многих исследований. Авторы этих исследований формулируют типовые программные решения на разных уровнях - от точного, например, класс не должен содержать более 6-ти объектов, до неопределенного необходимо избегать централизации управления. Подобная разобщенность затрудняет применение этих принципов согласованным и систематизированным образом. Зачастую, те типовые программные решения, которые удается сформулировать только на абстрактном уровне, оказывают большее влияние на качество, чем точно формулируемые.

Задачей метода оценки степени соответствия программного средства типовым программным решениям является получение ответа на вопрос, нарушены ли при проектировании типовые решения, и если да, то какие именно это решения и какие именно программные структуры их нарушают. Благодаря такой оценке появляется возможность судить о качестве программного средства в терминах проектирования, то есть более конструктивно, а также упрощать процесс оптимизации качества. На рисунке 5 в виде диаграммы бизнес-процессов UML представлены основные этапы реализации метода оценки степени соответствия программного средства типовым программным решениям.

[нет] Цели оценивания достигнуты? Определение целей оценивания Выбор типовых программных решений Анализ нарушений типовых программых решений Задание допуска нарушений типовых программных решений Идентификация нарушений с помощью допустимых графов Описание типовых программных решений с помощью допустимых графов Идентификация нарушений с помощью ролей Описание типовых программных решений с помощью ролей Идентификация нарушений с помощью метрик Описание типовых программных решений с помощью метрик Построение модели ПС Рисунок 5 - Этапы метода оценки степени соответствия программного средства типовым программным решениям.

В последующих разделах четвертой главы этапы метода оценки рассматриваются подробно. В заключение главы приводится сравнительный анализ трех основных способов описания и идентификации типовых программных решений: с помощью допустимых графов, с помощью ролей и с помощью метрик. Описание типовых программных решений с помощью допустимых графов используется, если нужно максимально детально задать структуру типового решения. Это наиболее трудный в использовании и мощный по выразительности способ описания типовых программных решений. Способ описания типовых программных решений с помощью ролей используется, если необходимо контролировать правильность реализации типовых программных решений, которая выражается в определенных запретах на виды отношений между программными сущностями. Этот способ значительно проще использовать по сравнению с допустимыми графами. Способ описания типовых программных решений с помощью метрик целесообразно использовать при условии, что критерии реализации типовых программных решений носят количественный характер. Этот способ несколько проще, чем способ описания типовых программных решений с помощью допустимых графов. С помощью этого способа можно получить количественную оценку степени соответствия фрагмента кода программному решению, в отличие от двух альтернативных способов, где оценка носит бинарный характер.

Пятая глава посвящена описанию принципов оптимизации качества программных средств. Если результаты процесса оценивания не удовлетворяют принятым критериями качества, формируются действия по преобразованию программы с целью оптимизации ее качественного состояния. Основой для модели преобразования программных средств служит теория перезаписи (переписывания) графов. Идея перезаписи графа состоит в описании в левой части продукции тех вершин и ребер, которые должны иметься в исходном графе, а в правой - как эта часть графа будет выглядеть после применения продукции. Частичный морфизм описывает отношения объектов левой части к правой, детализируя процесс применения правила. Объекты, не описываемые морфизмом, удаляются, объекты, не изменяемые морфизмом, формируют контекст продукции, объекты правой части продукции, не имеющие прообраза в левой части создаются r заново. Продукция p : (L R) состоит из имени продукции p и инъективного частичного графового морфизма r, называемого морфизмом продукции. Графы L и R носят названия соответственно левой и правой частей продукции.

Система перезаписи графов =({G0},P), содержит {G0} - множество начальных графов и P - множество продукций. Далее в этом параграфе следуют определения элементов теории перезаписи, положенные в основу модели преобразования программных средств: графовая грамматика, соответствие, вывод, графовый язык и другие. Используется понятие составных продукций, которые представляют собой упорядоченные последовательности продукций. Элементарные продукции объединяются в составные, рассматриваемые как атомарное действие, по аналогии с программной концепцией транзакции. В итоге, или вся упорядоченная последовательность элементарных продукций выполняется, или невозможность выполнения одной из продукций влечет отмену выполнения всех остальных продукций, входящих в последовательность. Для двух продукций p1:L1R1 и p2:L2R2 при R1=Lp продукция последовательной композиции p1; p2 : L1 R2 состоит из имени продукции p1;p2 и соответствующего частичного морфизма p=p2p1. Выводы вида p1 pG H1 m H2, в которых соответствие второго прямого вывода m2 является mкосоответсвием первого, могут быть реализованы за один шаг с помощью составной p1; pпродукции p1; p2. Обратно, каждый прямой вывод вида G H2 может быть с mp1 pпомощью p1; p2 декомпозирован в вывод G H1 m H2, при условии, что m косоответствие m1 первого вывода является тотальным.

Далее в пятой главе рассмотрены различные варианты последовательного применения продукций, с возможной синхронизацией общедоступных для продукций элементов графа. Благодаря введению условий преобразования появляется возможность описать, в каких именно случаях исходные графы можно преобразовать к целевым.

Условная перезапись графа является такой перезаписью графа, в которой каждая продукция p:LR содержит множество условий. Последние разделяются на подмножества предусловий и постусловий. Предусловия описывают ограничения, несоблюдения которых ведет к невозможности выполнения продукции, постусловия - ограничения, которым должен удовлетворять результирующий граф после выполнения продукции. Подмножества пред- и постусловий состоят из подмножеств позитивных и негативных условий. Позитивные условия описывают положительные ограничения для L или R и обычно состоят в требовании существования некоторых вершине или ребер для того, чтобы можно было выполнить продукцию. Обратно, негативные условия вносят требования об отсутствии некоторых вершин или ребер в L или R.

p Продукция с условием применения, или условная продукция p : (L R, ac( p)) состоит из имени продукции pТ и двойки - частичного графового морфизма p и условия применения ac(p) над графом L. Продукция является применимой к графу G при m p L если m удовлетворяет ac(p). В этом случае, прямой вывод G H носит G, m p название прямого условного вывода G H. Условие ac(p) в условной продукции m разделяется на два подмножества - ac(p)L - предусловий (условий применения над исходным графом) и ac(p)R - постусловий (условий применения над результирующим графом).

В продолжение пятой главы на основе описанных ранее структур перезаписи графов представлен подход к описанию преобразований программных средств. Для формального описания преобразований программ используются только инъективные тотальные соответствия m:LG, инъективные продукции p:LR и преобразования, сохраняющие метки и типы, то есть морфизмы введенной в первой главе категории LTGraphLT. Все возможные пути преобразований описываются с помощью конечного множества элементарных продукций. Набор элементарных преобразований определяется структурой графа, моделирующего программное средство. Над этим графом можно осуществлять следующие виды преобразований: добавлять или удалять вершины и ребра, изменять метки или типы вершин и ребер. Эти преобразования формируют множество из восьми элементарных преобразований: 1) добавление вершины - InsertV; 2) добавление ребра - InsertE; 3) удаление вершины - DropV; 4) удаление ребра - DropE; 5) изменение типа вершины - RetypeV; 6) изменение типа ребра - RetypeE; 7) изменение метки вершины - RelabelV; 8) изменение метки ребра - RelabelE.

Первые четыре преобразования формируют базис преобразований, так как остальные четыре могут быть выражены с помощью них. Более того, только преобразования с 1 по 4 относятся к категории LTGraphLT, то есть в рамках только этих преобразований сохраняются и типы и метки. Преобразования 5 и 6 относятся к категории LTGraphL, а последние два - к категории LTGraphT. Таким образом, первые четыре преобразования не нарушают типы и метки графа и являются достаточными для описания любого типа преобразования. Остальные типы введены для упрощения описания процесса преобразования.

Из элементарных преобразований может быть образована последовательность, за несколько шагов приводящая граф из начального в конечное состояние.

Последовательность из n элементарных преобразований требует для своего выполнения формирования n-1 промежуточных графов. Альтернативным вариантом является объединение нескольких элементарных преобразований в составные, которые консолидируют все преобразования графа в одной продукции и рассматриваются в этом смысле как атомарные. Составное преобразование pC представляет собой композицию условных продукций pC=p1p2Еpn: G0Gn.

В продолжение пятой главы на метрических пространствах Mb вводятся операторы преобразований. Назначение операторов состоит в изменении значений базовых метрик, путем преобразования модели программного средства. Множеству таких операторов принадлежат операторы добавления и удаления вершины (ребра) для всех типов вершин и ребер.

Базовые операторы преобразований Atb:MbMb соответствуют элементарным преобразованиям графовых моделей программных средств, определяемым базисом Pb={InsertV,InsertE,DropV,DropE}. Производные операторы преобразований Atd:MdMd соответствуют составным преобразованиям графовых моделей ПС, определяемых композициями условных продукций вида pC=p1p2Еpn:G0Gn.

На основе техники перезаписи графов и приведенных определений элементарных, составных преобразований в пятой главе формулируется определение модели оптимизации качества программных средств. Эта модель основана на многоцелевой модели программных средств и включает элементарные преобразования, представляющие собой условные продукции, и их композиции, представляющие собой составные преобразования. При этом все допустимые виды преобразований удовлетворяют следующим условиям:

могут быть выражены базисом, который включает морфизмы удаления и добавления ребра и вершины каждого типа;

существуют инъективные морфизмы из графов левых и правых частей продукций преобразований в каждый из допустимых графов модели программы;

не существуют инъективные морфизмы из графов левых и правых частей продукций преобразований в каждый из недопустимых графов модели программы.

Модели оптимизации качества программных средств свойственен обобщенный характер, перед ее использованием для формализации описания преобразований конкретного программного средства, эта модель должна пройти стадию адаптации.

В следующей части пятой главы формулируются принципы адаптации математической модели оптимизации качества программ в зависимости от предметной области. Для возможности адаптации модели оптимизации качества программного средства необходимым условием является наличие математической модели этого программного средства, в которой определены возможные типы вершин и ребер, а также допустимые и недопустимые графы. Адаптация модели включает следующую последовательности действий:

определение базиса преобразований, состоящего из множества элементарных преобразований удаления и добавления вершины и ребра каждого из допустимых типов, вместе с их пред- и постусловиями;

синтез составных преобразований - представляет собой экспертную работу, цель которой состоит в упрощении процесса описания преобразований за счет объединения элементарных преобразований в наиболее употребительные составные;

анализ составных преобразований - проверка согласованности левых и правых частей составных преобразований с допустимыми и несогласованности с недопустимыми графами.

Далее в пятой главе рассматриваются примеры реализации этих действий применительно к программным средствам, выраженных с помощью диаграмм классов UML и объектно-ориентированного кода на Java.

Следующие разделы главы посвящены описанию алгоритма оптимизации качества программных средств. Основной задачей этого алгоритма является выбор последовательности преобразований на основе анализа соотношений эталонного (дефектного) подпространств и расположения точки в метрическом пространстве, характеризующей оценку качества программы (или ее сущностей). В качестве основы алгоритма оптимизации выступают алгоритмы поиска оптимальной композиции операторов Atb:MbMb и Atd:MdMd модели метрик и алгоритма нормализации составных преобразований. На основе первого алгоритма сформирована последовательность преобразований, на основе второго эта последовательность нормализована. На рисунке 6, с использованием диаграммы действий UML, представлена схема алгоритма оптимизации качества программных средств.

Применение последовательности преобразований Оценка качества [да] Качество ПС удовлетворительное [нет] Поиск сущностей дефектных подпространств Нормализация последовательности преобразований Поиск оптимальной последовательности операторов преобразований Рисунок 6 - Этапы алгоритма оптимизации качества программных средств.

Поиск сущностей дефектных подпространств осуществляется на основе заданных пороговых значений метрик. Те сущности программы (например, классы, методы и т.п.), для которых значение определенной метрики не принадлежит пороговому интервалу, классифицируются как дефектные и являются кандидатами на применение преобразований. На каждом метрическом пространстве, соответствующем базовой метрике задан базовый оператор преобразований Atb:MbMb, соответствующий элементарным преобразованиям графовых моделей ПС, которые определяются базисом Pb={InsertV,InsertE,DropV,DropE}.

На каждом метрическом пространстве, соответствующем производной метрике, может быть определено m (m1) производных операторов преобразований Atd:MdMd, которые соответствуют составным преобразованиям графовых моделей программ, определяемых композициями условных продукций вида pC=p1p2Еpn:G0Gn.

Таким образом, в случае необходимости изменить модель программы относительно базовой метрики выбор оператора оказывается однозначным, при необходимости изменения модели программы относительно производной метрики определяется способ многокритериального выбора нужного производного оператора из m-существующих.

Каждый из производных операторов может характеризоваться побочным эффектом, состоящем в том, что помимо изменения значения целевой метрики, оператор может изменить значения других метрик, ухудшив при этом качество программного средства. Алгоритм поиска оптимальной последовательности преобразований позволяет учесть влияние побочных эффектов на качество программы, и до выполнения преобразований выбрать наиболее оптимальную в смысле улучшения качества последовательность преобразований. Идея алгоритма состоит в генерации всех возможных последовательностей преобразований, согласованных в смысле соблюдения пост- и предусловий (рисунок 7), оценка результата их применений и выбор последовательности, применение которой влечет наибольшее изменение качества программы. Под оптимальным изменением качества понимается максимальная близость точки в многомерном метрическом пространстве, характеризующей текущее состояние программного средства к точке, соответствующей эталонному состоянию. Проблема точной достижимости эталонной точки является трудно разрешимой. В лидеальном смысле за счет применения базовых и производных операторов, можно достичь любой точки многомерного метрического пространства. Проблема реальной достижимости возникает благодаря ограничениям на области действия базовых и производных операторов метрических пространств, которые являются следствием необходимости учета следующих факторов:

семантики языка - например, нельзя создать класс одновременно не имеющий функции-члены и данные-члены и наследования (С++), нельзя создать класс без наследования (Java) и т.п.;

семантики программы - операторы преобразований в метрических пространствах должны быть безопасны по отношению к функциональным свойствам программы.

Исходя из трудности формализации семантик языка и реальной программы, в основу алгоритма генерации последовательности преобразований положен прямой перебор всех возможных вариантов преобразований, с последующим оцениванием каждого варианта и выбором наилучшего из них.

Рисунок 7 - Схема образования последовательностей операторов преобразований.

Алгоритм поиска оптимальной последовательности преобразований Данные алгоритма i,j,h,lN - индексы, заданные на множествах метрических пространств и операторов.

n - количество измерений в пространстве метрик;

Ai(j,h,l) - i(j,h,l)-тый производный оператор, определенный на конкретном метрическом пространстве;

R - множество кандидатов - потенциально оптимальных операторов преобразований;

U - вспомогательное множество кандидатов - потенциально оптимальных операторов преобразований.

Функция produceAChain(R,i) - рекурсивная функция, порождающая производные операторы Шаг 1. l=Шаг 2. Для j:AjR выполнить tdi+Шаг 2.2. Для h : ac(Aj )R = ac(Ah )L выполнить tdi+Шаг 2.2.1. Al = Aj o Ah Шаг 2.2.2. U=UAi Шаг 2.2.3. l=l+Шаг 3. i=i+Шаг 4. Если i

Далее в главе вводится алгоритм нормализации, служащий для оптимизации составных преобразований, соответствующих найденному оптимальному производному оператору. Алгоритм нормализации всегда ведет к получению минимального составного преобразования, однако полученная нормальная форма не является уникальной. Каждая из нормальных форм содержит одно и тоже множество элементарных преобразований, но последние могут быть по-разному упорядочены. В пятой главе формируется и доказывается следующая лемма.

емма 3. Уникальность нормальной формы. Каждая нормальная форма составного преобразования уникальна с точностью до переупорядочения элементарных преобразований, входящих в ее состав.

Необходимо заметить, что в минимальном составном преобразовании порядок следования однотипных преобразований не является произвольным в силу того, что они в общем случае последовательно зависимы. Основные преимущества нормализованного составного преобразования состоят в минимальности числа элементарных преобразований и в упорядоченности однотипных преобразований.

Шестая глава посвящена описанию общих принципов управления качеством программных средств. В первых разделах представлены результаты анализа процессов планирования, обеспечения и контроля качества программных средств. Важной тенденцией современного подхода к управлению процессами проектов является интенсификация математической и технологической проработки аспекта реализации работ над качеством, которое не просто проверяется, оно планируется, разрабатывается и внедряется. Этот раздел главы содержит сведения о основных исследователях, чей вклад в развитие идей работы над качеством продукции и процессов разработки явился наиболее значимым, а также краткие характеристики предложенных ими идей.

Процессы управления качеством проектов по разработке программного обеспечения объединяют все осуществляющиеся в организации-разработчике операции, определяющие политику, цели и распределение ответственности в области качества с тем, чтобы и проект, и программные продукты удовлетворяли всем требованиям, для осуществления которых были предприняты. Управление качеством осуществляется посредством соответствующей системы, предусматривающей определенные правила, процедуры и процессы по планированию, обеспечению и контролю качества, а также операции по их совершенствованию. Цель этой системы управления качеством - создание таких условий в организации, при которых происходит постоянное улучшение каждого из ее производственных процессов, которые, взаимно усиливая друг друга, ведут к более совершенной системе и появлению более качественных программных изделий. Управление качеством проекта направлено как на управление качественными состояниями самого проекта, так и на качество результата проекта - программного продукта. Обобщая основные подходы к управлению качеством проектов, можно выявить три основных процесса, лежащие в основе системы управления качеством:

процесс планирования качества - отвечает за определение того, какие из стандартов качества относятся к данному проекту и как их удовлетворить;

процесс обеспечения качества - обеспечивает выполнение плановых систематических операций по качеству, выполнение всех предусмотренных процессов, необходимых для того, чтобы проект соответствовал оговоренным требованиям;

процесс контроля качества - осуществляет мониторинг контрольных точек процессов разработки с целью определения их соответствия принятым стандартам качества и определяет пути устранения причин, вызывающих проблемы реализации этих процессов.

В настоящий момент основными слабыми сторонами реализации этих процессов являются:

ориентация на качественные в отличие от количественных показателей, характеризующих состояние разрабатываемого программного средства;

низкая степень формализации действий внутри процессов, не возможность формализованных моделирования и верификации процессов и состояний программного средства;

отсутствие учета хорошо зарекомендовавших себя практик и типовых программных решений на системном формализованном уровне;

отсутствие формализованных, верифицируемых данных о связывании качественных состояний программного средства и подходами к его оптимизации.

Использование на каждом из этих процессов разработанных моделей и методов по работе с качеством позволит обеспечить необходимый уровень формализации и системности работ по улучшению качества программных средств. На рисунке показано распределение разработанных моделей и методов по процессам планирования, обеспечения и контроля качества программных средств.

Рисунок 8 - Использование разработанных моделей и методов при реализации проектных процессов.

Далее в шестой главе рассмотрены такие важные свойства разработанных моделей как адекватность и эффективность. Адекватность моделей - это идентичность, неразличимость модели по определенным показателям от объектов моделирования, согласие между поведением модели и реального объекта. Адекватность модели характеризует степень похожести модели на моделируемый объект. Вопрос о необходимой и достаточной степени соответствия объекту-оригиналу или адекватности модели относится к числу важнейших в сфере модельной методологии. Адекватность включает как формальную, грамматическую составляющую, связанную с уровнем логической непротиворечивости системы определений, точностью и полнотой формулировок, так и семантическую, отражающую уровень похожести статических и динамических свойств моделируемого объекта и его модели. Не менее важным критерием оценки модели является эффективность. Под эффективностью понимают практическую полезность модели, например, время и трудоемкость ее анализа. Процесс моделирования неизбежно протекает в условиях диалектического взаимодействия двух противостоящих друг другу тенденций - возможно более полного и точного воспроизведения в модели свойств и характеристик реального объекта и упрощения методов работы с моделью. Стремление к полноте описания свойств моделируемого объекта влечет рост сложности - количества типов элементов модели и связей между ними. Эффективность модели находится в обратной зависимости от ее сложности, быстро убывая с ростом последней. Наилучшее в практическом отношении качество модели достигается как компромисс между адекватностью и эффективностью. В таблице 1 приведены принципы обеспечения адекватности и эффективности в разработанных моделях.

Таблица 1 - Показатели качества разработанных моделей.

Модель Адекватность Эффективность Многоцелевая обеспечивается множествами обеспечивается вариативными математическая допустимых и недопустимых множествами типов вершин и ребер, модель графов, которые описывают как состав которых не включаются те программных формальную так и типы, которые не используются для средств семантическую корректность оценки или оптимизации качества модели программного средства Обобщенная вариативные состав показателей вариативные состав показателей, математическая и связей между ними, связей между ними и количество модель качества возможность проверки уровней иерархии, возможность программных независимости показателей контроля видов связей между средств показателями качества Математическая метод синтеза модели измерений структура модели измерений модель качества обеспечивает соответствует структуре модели измерений изоморфность модели качества;

качества измерений модели качества; вариативные подбор базовых метрик и программных вариативные множество базовых формулировка функциональных средств метрик и виды функциональных зависимостей показателей зависимостей показателей Математическая базис видов преобразований базис видов преобразований задается модель задается многоцелевой многоцелевой математической оптимизации математической моделью моделью программных средств;

качества программных средств; с помощью составных преобразований программных обеспечивается наличием может быть сформирован каталог средств допустимых и недопустимых наиболее значимых преобразований графов и проверкой наличия морфизмов в эти графы из левых и правых частей преобразований Далее в главе рассмотрены принципы использования разработанных моделей с точки зрения их адекватности и эффективности. Следующее изложение главы посвящено описанию структуры системы управления качеством программных средств.

Объектом управления системы является модель программного средства, модель качества формирует внешнюю среду. В общем виде компоненты системы управления качеством и их взаимодействие показаны на рисунке 9. Номера обозначают последовательность при взаимодействии подсистем.

Рисунок 9 - Общая структура системы управления качеством программных средств.

Идентификация состояния программного средства представляет собой принятие решения о принадлежности этого состояния к определенной классификационной категории. Формирование преобразований представляет собой принятие решения, состоящее в выборе набора преобразований программного средства, оптимального по определенному критерию. В подсистемах идентификации и формирования преобразований классы используются как для идентификации текущего состояния, так и для формирования преобразований с учетом состояния программного средства после реализации этих преобразований.

В следующих разделах шестой главы формулируются требования к методам классификации и приводится их сравнительный анализ. На основе достоинств и недостатков существующих в этой области методов, учитывая специфику задачи классификации состояний программного средства, состоящую в нечетком разделении классов и плохой формализации задачи, делается вывод о целесообразности использования средств искусственного интеллекта в качестве методов классификации системы управления качеством программных средств.

В продолжение шестой главы обоснована целесообразность и показано место методов кластерного анализа в системе управления качеством программных средств. В рамках кластерного анализа целесообразно использовать репозитории программных средств, качественное состояние которых заранее известно. Это могут быть как состояния лэталонное программное средство или дефектное программное средство, с известными соответствующими положительными или отрицательными свойствами, так и состояния программных средств, отвечающие определенным моделям качества в той или иной мере. Приведен пример кластерного анализа программных сущностей.

Результирующие состояния программы, объединенные в кластер, мало различаются по факторам, детерминирующим перевод программы в эти состояния. Это означает, что одно и то же преобразование при одних и тех же предпосылках (исходном состоянии и предыстории объекта управления и среды) могут привести к переводу программы в одно из результирующих состояний, относящихся к одному кластеру. Поэтому кластерный анализ результирующих состояний является инструментом, позволяющим изучать вопросы устойчивости управления качеством программных средств. При формировании преобразований как суперпозиции факторов часто возникает вопрос о замене одних преобразований другими, имеющими сходное влияние на перевод программы из данного текущего состояния в заданное целевое состояние. Кластерный анализ преобразований позволяет решить эту задачу - при невозможности применить некоторое преобразование его можно заменить другим из того же кластера. В соответствии с предлагаемым подходом кластеры формируются для заданного диапазона классов с различными критериями включения качественного состояния программы в кластер. Эти критерии могут быть сформированы автоматически, на основе репозитория программных средств, качество которых изначально известно, либо заданы экспертами.

Далее в главе описывается алгоритм функционирования системы управления качеством программных средств (рисунок 10). Приводятся описания шагов алгоритма.

Шаг 1. Определение общих требований к качеству программного средства:

построение модели качества, модели измерений. Происходит детализация понятия качества программы. Выбираются показатели качества, типовые программные решения, которые являются важными с точки зрения качества и которые в дальнейшем необходимо будет оценить. Строится модель качества, включающая показатели как объекты. С помощью морфизмов модели качества отражаются иерархические и одноуровневые отношения между показателями и типовыми программными решениями.

С помощью контравариантного функтора из модели качества формируется модель измерений, в которой каждому показателю или типовому программному решению модели качества соответствует производная метрика. Все эти работы реализуются обобщенно, без учета конкретной специфики проекта. Формируемые требования к модели качества по своей природе являются противоречивыми, здесь на основе работы экспертов находится компромисс, учитывающий взаимовлияния показателей качества.

Шаг 2. Определение требований к качеству с учетом языка разработки:

детализация модели измерений (подбор базовых метрик и определение функциональных зависимостей между метриками). На основе анализа конструкций языка программирования или моделирования, экспертами определяются базовые метрики, подходящие для оценивания производных метрик. В дальнейшем использованные для определения базовых метрик языковые конструкции ложатся в основу типов вершин и ребер обобщенной математической модели программного средства. Объекты модели измерений дополняется этими базовыми метриками. Экспертами детализируются функциональный вид операторов комплексирования модели измерений для задания зависимостей между объектами модели измерений.

Шаг 3. Разработка (мета-) модели программного средства - объединение типов вершин и ребер достаточных для описания метрик. На основе анализа модели качества выбираются значимые сущности и отношения программного средства, которые становятся типами вершин и ребер. Отсутствует необходимость моделирования всех конструкций языка, модель программы должна описывать только те из них, которые отвечают задаче оценки качества в соответствии с определенной моделью качества.

Решение о составе множества языковых конструкций, подлежащих моделированию, принимается на основе модели измерений при определении набора базовых метрик.

Шаг 4. Определение типов элементарных преобразований. Формируется перечень элементарных преобразований, базис которых представляет собой удаление и добавление вершины или ребра каждого типа. Дополнительно могут определяться такие операции как переименование, изменение типа и другие преобразования программного средства.

Шаг 5. Формирование классов качественного состояния программного средства (определение экспертами граничных значений метрик для разных классов, создание базы данных программных средств и классификация их экспертами или системой на основе репозитория программных средств). Информация о модели измерений, программного средства и элементарных преобразованиях поступает на вход подсистемы обучения с учителем. Экспертами сообщается системе диапазоны значений метрик для всех типов программных сущностей. Выбираются шкалы оценки состояний (например, лэталонное, дефектное). На вход системы также могут быть поданы программные средства, состояние качества которых заранее известно для формирования репозитория программных средств. Система фиксирует значения метрик программных сущностей этих программных средств. Эксперты анализируют и корректируют результаты анализа программного средства системой. Таким образом формируется обучающая выборка. Эта обучающая выборка обрабатывается обучающим алгоритмом, на основе чего формируются решающие правила (классы состояний программного средства, отражающие весь спектр будущих возможных состояний), а также определяется ценность метрик для возможного снижения размерности метрического пространства.

Метрики, не имеющие особой ценности, могут быть удалены из системы.

Шаг 6. Определение составных преобразований ПС. На основе метамодели на шаге 4 формируются элементарные преобразования. На данном шаге эти элементарные преобразования комбинируются в составные. Каждое составное преобразование соответствует перевод программной сущности программного средства из одного класса состояния в другое.

Шаг 7. Создание модели конкретного программного средства. На основании определенных типов вершин и ребер строится модель программного средства, качество которой подлежит оценке.

Шаг 8. Оценивание качественного состояния конкретного программного средства (распределение сущностей программного средства по классам состояний).

Осуществляется применение решающих правил, выработанных на шаге 5. В подсистеме идентификации предусмотрен режим добавления классифицируемой выборки к обучающей, чтобы в последующем, когда будет известна степень соответствия прогноза результатам преобразований программного средства, этой верифицированной оценочной информацией дополнить обучающую выборку и переформировать решающие правила для реализации обратной связи.

Шаг 9. Выбор составного преобразования, переводящего сущности программного средства из дефектного в эталонный классы состояний. Из сформированных на шаге 6 типов преобразований выбирается составное преобразование, которое сможет перевести сущности программного средства, находящиеся в классе состояний, который был оценен как дефектный, в класс эталонного состояния. Составное преобразование ищется на основе операторов того метрического пространства, метрика которого ниже эталонной. Это составное преобразование проходит процедуру оптимизации, состоящую в выборе за счет операторов комплексирования и процедуры нормализации минимально трудоемкой, потенциально менее опасной композиции элементарных преобразований.

Шаг 10. Реализация выбранного составного преобразования. На данном шаге происходит реализация выбранного на шаге 9 составного преобразования.

Шаг 11. Генерация исходного кода на основе преобразованной модели.

Происходит генерация исходного кода на целевом языке системы.

Шаг 12. Проверка сохранения функциональных свойств. Осуществляется путем компиляции исходного кода, сгенерированного на шаге 11, получении исполняемых модулей ПС и запуска пакета функциональных тестов, состав которого позволяет сделать вывод о том, что осуществленные преобразования не повлияли на функциональные свойства программного средства. Альтернативным вариантом является верификация корректности преобразования.

Шаг 13. Повтор шагов 7-12 до тех пор, пока качественное состояние программного средства не будет соответствовать эталонному.

Шаг N. Верификация решающих правил. Если решающие правила построены и оптимизированы, но качество их работы неизвестно, то пользоваться ими для принятия решений опрометчиво. Верификация решающих правил основана на использовании внутреннего критерия качества алгоритма классификации и может быть выполнена в любой момент, например по требованию экспертов, в обязательном порядке - после каждой адаптации к изменению модели качества. Для выполнения данной функции обучающая выборка копируется в классифицируемую, осуществляется ее автоматическая классификация, ее результаты сравниваются с независимой экспертной классификацией. На основе этого рассчитываются показатели качества решающих правил (все эти работы полностью автоматизированы).

Рисунок 10 - Алгоритм управления качеством программного средства.

В заключительной, седьмой главе описаны результаты практического апробирования моделей, методов и алгоритмов управления качеством программных средств. Приведены результаты шести проектов, в результате которых были созданы следующие программы:

программное средство анализа кода для рефакторинга (ПСАКР);

программное средство автоматизации пользовательского рефакторинга (ПСАПР);

программное средство детектирования дефектов кода (ПСДДК);

программное средство метрического анализа кода (ПСМАК);

программное средство оценки качества программ (ПСОКП);

программное средство рефакторинга моделей программ (ПСРМП).

Каждое из программных средств обладает функциональной целостностью и реализует подмножество описанных в предыдущих главах диссертации моделей и методов по работе над качеством программ. Одно из средств в качестве входа использует объектно-ориентированную модель в нотации диаграмм классов UML, два средства работают с кодом на С++, два - с кодом на Java, один с кодом на C#. Для апробирования разработанных средств были выбраны два программные средства, созданные в результате опытно-конструкторских работ (ОКР) Базикмед и Телемед. ОКР Базикмед разрабатывался в период с 1998 по 2006 годы, цель разработки - создание системы автоматизации технологических процессов военных лечебных учреждений Министерства Обороны РФ. Специальное программное обеспечение было построено с использованием трехуровневой архитектуры, компоненты бизнес-логики были написаны на Java, представлены порядка восемьюстами классов. Специальное программное обеспечение Базикмед содержит отдельный модуль построения отчетов, написанный на С#. ОКР Телемед был посвящен созданию программной системы для телемедицинских консультаций, создавался с 2000 по 2006 годы. Специальное программное обеспечение Телемед содержит около пятисот классов на языке C++. Все работы по улучшению качества программного обеспечения Базикмед и Телемед были произведены в период доработки опытных образцов по результатам Государственных испытаний. Работы по качеству касались структуры опытных образцов изделий, и не затронули функциональных свойств.

Разработанные средства управления качеством применялись к специальному программному обеспечению ОКР Телемед и Базикмед при выполнении рекомендаций комиссии по Государственным испытаниям. В результате анализа работы средств управления качеством коллективом экспертов было отмечено общее повышение качества специальному программному обеспечению ОКР Телемед и Базикмед, в частности:

увеличение полноты реализации типовых программных решений, за счет инструментов разработки производных метрик, соответствующих тому или иному решению, с последующим мониторингом значений этих метрик;

повышение оперативности работ по управлению качеством программных средств за счет автоматизации процессов поиска дефектов и выполнения преобразований программ;

уменьшение совокупных затрат на разработку за счет контроля определенной группы метрик.

ЗАКЛЮЧЕНИЕ В описываемой диссертационной работе выполнены анализ и разработка моделей, методов и алгоритмов, предназначенных для формализации процессов оценивания и управления качеством программных средств. Важность задач, решаемых программными средствами в настоящее время, существенные пробелы в современном состоянии программной инженерии и, в частности, в обеспечении качества программ, обосновывают высокую актуальность осуществленных исследований.

Основными разработанными компонентами для оценивания и управления качеством явились: многоцелевая математическая модель программных средств и принципы ее адаптации к задаче управления качеством, метод формализованного описания качества программных средств, математическая модель измерений качества программных средств, метод синтеза модели измерений качества и алгоритм оценивания качества программных средств, метод оценки степени соответствия программного средства типовым программным решениям, математическая модель и алгоритм оптимизации качества программных средств, а также общие принципы и алгоритм управления качеством на этапах создания программных средств.

Использование описанных моделей, методов и алгоритмов сделало возможным:

описание понятия качества программных средств с варьируемой степенью детализации, от концепции - к измерениям с целью нахождения компромисса между высоким качеством, полнотой реализуемых функций, необходимых временных, денежных, людских и других ресурсов и создания консолидированного взгляда на качество программ с точки зрения заказчиков, разработчиков и пользователей;

разработку шаблонов описаний качества и моделей измерений программ, для создания корпоративных, государственных и мировых стандартов в области качества программ;

разработку каталога качественных архитектурных решений, автоматизированный поиск компонентов программы, которые нарушают правила использования шаблонов программирования, автоматизированную подготовку набора мероприятий по исправлению ошибок в использовании шаблонов проектирования;

формализацию процесса оценивания качества для создания внутрикорпоративных, аудиторских и прочих стандартов определения качества программ;

онлайновый мониторинг показателей качества для точного управления процессом разработки программных средств;

создание интеллектуальных систем, моделирующих действия эксперта путем классификации качественных состояний программ в зависимости от значений метрик;

математическое описание процесса рефакторинга и иных видов преобразований для автоматизации процесса оптимизации качества программных средств;

разработку интеллектуальных систем, моделирующих действия эксперта по выбору видов преобразований программы для оптимизации ее качественного состояния;

создание систем, автоматизирующих полный цикл процессов управления качеством программ: разработку формализованного описания качества и его измерений, нахождение низкокачественных программных компонентов, выработку действий по оптимизации качества программы, отслеживание и оперативное реагирование на выходы показателей качества за допустимые пределы на всех этапах разработки программных средств.

Результаты диссертационного исследования составили теоретическую основу для создания ряда прикладных программ оценивания и управления качеством, была подтверждена значимость и практическая ценность разработанных моделей, методов и алгоритмов в процессе использования этих программ при реализации ряда Государственных опытно-конструкторских работ.

СПИСОК ПУБЛИКАЦИЙ ПО ТЕМЕ ДИССЕРТАЦИИ

Монографии.

1. Бураков В.В. Управление качеством программных средств. Монография. СанктПетербургский государственный университет аэрокосмического приборостроения. 2009. 287 с.

Публикации в ведущих рецензируемых научных журналах, входящих в Перечень изданий, рекомендуемых ВАК.

2. Бураков В.В. Управление качеством программных средств. // Информационноуправляющие системы. 2009. №5 с. 43-47.

3. Бураков В.В. Оценка качества программных средств. // Авиакосмическое приборостроение. 2009. №4. с. 28 - 33.

4. Бураков В.В. Система управления качеством программных средств. // Авиакосмическое приборостроение. 2009. №6. с. 27-31.

5. Бураков В.В. Модели и алгоритмы в задачах управления качеством программных средств на примере приложения для военной телемедицины. // Мехатроника, автоматизация, управление. Управление и информатика в авиакосмических системах. 2009. №6. с. 33-36.

6. Бураков В.В. Модель качества программных средств. // Информационноуправляющие системы. 2009. №4. с. 23-26.

7. Бураков В.В., Кузин В.А. Спецификация программ с помощью равенств. // Информационно-управляющие системы. 2009. №5. с. 27-33.

8. Бураков В.В. Технология управления качеством программных средств. // Информационно-управляющие системы. 2009. №4. с. 12-17.

9. Бураков В.В. Формальный базис оценки качества программных средств. // Известия вузов. Приборостроение. 2009. №1. с. 15-19.

10. Бураков В.В. Способы формальной спецификации принципов проектирования ПС. // Информационно-управляющие системы. 2008. №12. с. 11-14.

11. Бураков В. В. Концептуальное моделирование качества программных средств // Авиакосмическое приборостроение. 2008. № 7. с. 54Ц60.

12. Бураков В. В. Формализация принципов проектирования программных средств // Авиакосмическое приборостроение, 2008, № 8. с. 13Ц18.

13. Бураков В. В. Методика оценки качества программных средств // Известия вузов.

Приборостроение. 2008. Т. 51, № 1. с. 35Ц41.

14. Бураков В. В. Формальный базис преобразований программных средств // Известия вузов. Радиоэлектроника. 2008. Вып. 2. с. 22-30.

15. Бураков В. В. Методика преобразования программных средств // Известия вузов.

Радиоэлектроника. 2008. Вып. 3. с. 20-31.

16. Бураков В.В. Методика управления качеством документации авиационного программного обеспечения // Авиакосмическое приборостроение. 2005. №1. с. - 34.

17. Бураков В.В. Формализация процесса преобразований программного обеспечения // Мехатроника, автоматизация, управление. Управление и информатика в авиакосмических системах. 2006. № 11. с. 19 - 24.

18. Бураков В.В. Моделирование и синтез программной документации // Вестник молодых ученых. 2002. № 9. с. 68 - 74.

19. Бураков В.В. Прототип системы автоматизации процессов документирования // Вестник молодых ученых. 2003. № 3. с. 73 - 79.

20. Бураков В.В., Фильчаков В.В. Методика автоматизации процессов разработки проектной документации в приборостроении // Известия вузов. Приборостроение.

2002. № 1. с. 7-14.

Публикации в других печатных изданиях.

21. Бураков В.В., Жаков В.И., Фильчаков В.В., Метод генерации проектной документации на основе диаграмм потоков данных // Информационные технологии поддержки принятия решений. Апатиты: КНЦ РАН. 1998. с. 68-79.

22. Бураков В.В. Метод автоматизации документирования функциональных свойств программных систем // 6-ая Международная научно-техническая конференция студентов и аспирантов. Тезисы докладов том 1., М.: МЭИ, 2000. с. 255-256.

23. Бураков В.В., В. В. Фильчаков, В. И. Путилов. Программирование. // Апатиты, Кольский Государственный Университет. 2000. 98 с.

24. Бржезовский А.В., Бураков В.В. Автоматизация документирования программного обеспечения на базе XML-технологий // Модели социальных, технологических и образовательных процессов. Апатиты: КНЦ РАН. 2001. с. 39-50.

25. Бураков В.В. Математические основы программных систем. Санкт-Петербург:

Изд-во ГУАП. 2003. 28 с.

26. Бураков В.В. Объектно-ориентированное программирование. Санкт-Петербург:

Изд-во ГУАП. 2004. 62 с.

27. Бураков В.В. Шаблоны объектно-ориентированного проектирования программ.

Санкт-Петербург: Изд-во ГУАП. 2004. 87 с.

28. Бураков В.В. Подход к оценке качества проектной документации программного обеспечения. Санкт-Петербургский государственный университет аэрокосмического приборостроения. Санкт-Петербург. Рукопись депонирована в ВИНИТИ. 2004. № 1182-В2004.

29. Бураков В.В., Устюхин Н.В., Ковригин Д.А. Применение телемедицинских технологий в медицинской службе Вооруженных Сил Российской Федерации // Медицина и высокие технологии 2006 г. № 1. 11 стр.

30. Бураков В. В. Программное средство анализа кода для рефакторинга // Федеральное агентство по образованию. ФГНУ Государственный координационный совет информационных технологий. Отраслевой фонд алгоритмов и программ. Свидетельство об отраслевой регистрации разработки № 10143, номер государственной регистрации 50200800552, Москва. 2008.

31. Бураков В. В. Программное средство автоматизации пользовательского рефакторинга // Федеральное агентство по образованию. ФГНУ Государственный координационный совет информационных технологий.

Отраслевой фонд алгоритмов и программ. Свидетельство об отраслевой регистрации разработки № 10144, номер государственной регистрации 50200800553. Москва. 2008.

32. Бураков В. В. Программное средство детектирования дефектов кода // Федеральное агентство по образованию. ФГНУ Государственный координационный совет информационных технологий. Отраслевой фонд алгоритмов и программ. Свидетельство об отраслевой регистрации разработки № 10145, номер государственной регистрации 50200800554. Москва. 2008.

33. Бураков В. В. Программное средство метрического анализа кода // Федеральное агентство по образованию. ФГНУ Государственный координационный совет информационных технологий. Отраслевой фонд алгоритмов и программ.

Свидетельство об отраслевой регистрации разработки № 10146, номер государственной регистрации 50200800555. Москва. 2008.

34. Бураков В. В. Программное средство оценки качества программ // Федеральное агентство по образованию. ФГНУ Государственный координационный совет информационных технологий. Отраслевой фонд алгоритмов и программ.

Свидетельство об отраслевой регистрации разработки № 10147, номер государственной регистрации 50200800556. Москва. 2008.

35. Бураков В. В. Программное средство рефакторинга моделей программ // Федеральное агентство по образованию. ФГНУ Государственный координационный совет информационных технологий. Отраслевой фонд алгоритмов и программ. Свидетельство об отраслевой регистрации разработки № 10148, номер государственной регистрации 50200800557. Москва. 2008.

Авторефераты по всем темам  >>  Авторефераты по разное