автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Модели оценивания и алгоритмы управления качеством программных средств
Автореферат диссертации по теме "Модели оценивания и алгоритмы управления качеством программных средств"
На правах рукописи
Бураков Вадим Витальевич
МОДЕЛИ ОЦЕНИВАНИЯ И АЛГОРИТМЫ УПРАВЛЕНИЯ КАЧЕСТВОМ ПРОГРАММНЫХ СРЕДСТВ
Специальность 05.13.11 - «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей»
АВТОРЕФЕРАТ
диссертации на соискание ученой степени доктора технических наук
- 3 ИЮН 2010
Санкт-Петербург 2010
004603219
Работа выполнена на кафедре компьютерной математики и программирования Государственного образовательного учреждения высшего профессионального образования «Санкт-Петербургский государственный университет аэрокосмического приборостроения»
Научный консультант:
Заслуженный деятель науки РФ, доктор технических наук, профессор
Официальные оппоненты:
Заслуженный деятель науки РФ, доктор технических наук, профессор
доктор технических наук, профессор
доктор технических наук, профессор
Хименко Виталий Иванович
Рыжиков Юрий Иванович Хомоненко Анатолий Дмитриевич Шейнин Юрий Евгеньевич
Ведущая организация:
Санкт-Петербургский институт информатики и автоматизации Российской академии наук
Защита состоится Р-ЛоКлА 2010 г. в Дч ;Оо часов на заседании
диссертационного совета Д 212.233.02 при Государственном образовательном учреждении высшего профессионального образования «Санкт-Петербургский государственный университет аэрокосмического приборостроения» по адресу 190000, Санкт-Петербург, ул. Большая Морская, д. 67.
С диссертацией можно ознакомиться в библиотеке Санкт-Петербургского государственного университета аэрокосмического приборостроения.
Автореферат разослан «б_» у>>А*Л 2010 г.
Ученый секретарь диссертационного совета доктор технических наук, профессор
Осипов Л.А.
ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ
Компьютерные технологии и программное обеспечение используются на современной стадии развития общества повсеместно. Практически все виды человеческой деятельности, включая потенциально опасные для жизни людей и планеты, доверены компьютерному управлению. В разработку программных средств вовлечено множество людей и организаций, на создание программ расходуются огромные ресурсы. Учитывая эти факты, нет необходимости в доказательстве актуальности и практической значимости исследований в области качества программного обеспечения. В этой области особенно важными представляются проблема формирования общих подходов к оцениванию качества и задача определения общих принципов управления качеством программных средств.
Оценивание качества программного обеспечения является многокритериальным процессом, который объединяет такие действия, как формирование набора критериев, выбор их эталонных значений, измерение фактических значений, сравнение их с эталонными и определение состояния качества программы. В современной практике разработки программ все составляющие процесса оценивания реализуются экспертами, а сформированная в результате оценка качества не всегда является объективной. Выбранные для оценивания критерии носят, в основном, описательный характер, процедура выбора эталонных значений - интуитивная, процессы измерения и сравнения -трудно формализуемые. Для управления процессом разработки программы необходимо осуществлять оценку ее качественного состояния постоянно, набор критериев для оценивания и их эталонные значения должны изменяться сообразно с прогрессом, достигаемым в разработке. В расчете на одну экспертную оценку трудно обеспечить адаптацию процесса оценивания в соответствии с состоянием разработки непротиворечивым, верифицируемым способом. Существующие стандарты и исследования в области оценивания качества не обеспечивают нужной степени формализации, описывают процессы, связанные с оцениванием качества или в абстрактном, непригодном для непосредственного применения, или в детальном, плохо поддающимся адаптации под конкретные реалии разработки, стиле. Неопределенности и пробелы в формализации качества программ провоцируют субъективность при оценивании их качества экспертами, позволяют вводить в эксплуатацию низкокачественные программные продукты, использование которых может быть экономически невыгодным и зачастую небезопасным. Высокая сложность и ответственность задач, решаемых программами, возможный материальный ущерб и угрозы для жизни людей как следствие их недостаточного качества, делают необходимым формализацию всех составляющих процесса оценивания.
При выявлении несоответствия значений измеренных и эталонных показателей в результате процесса оценивания, необходимо определить корректные изменения структурных и поведенческих свойств программы, которые бы позволили перевести ее из одного качественного состояния в другое. Выявленные рассогласования значений измеренных и эталонных показателей являются симптомами наличия проблем в структуре и поведении программы. Для
того чтобы на основе этой, симптоматической информации можно было бы принять определенные решения о доработке программы, она должна быть правильно интерпретирована. При решении этой многокритериальной задачи важно гарантировать отсутствие побочного эффекта, который состоит в ухудшении значений одних показателей качества в процессе улучшения других. Эта задача, также как и проблема оценивания качества программы, в современной практике разработки программ в основном решается экспертами. Существующие стандарты и исследования проблем качества программного обеспечения не определяют способы использования результатов оценивания. Необходима разработка формализованных моделей связывания качественного состояния программы с подходами к его изменению, строгое описание критериев оптимизации и определение общих принципов управления качеством программ.
Важность задач, решаемых программными средствами и описанные пробелы в современном состоянии программной инженерии, выявляют настоятельную потребность в проведении исследований, направленных на разработку математических моделей, методов и алгоритмов для формализации процессов оценивания и управления качеством программ. Решение проблемы обеспечения процессов оценивания и управления качеством строгим математическим аппаратом позволит повысить эффективность процессов обработки данных и знаний в вычислительных машинах, комплексах и компьютерных сетях и сократить сроки их создания.
Цель диссертационной работы состоит в разработке обобщенных моделей для оценивания качества программ и формировании общих принципов управления качеством на этапах создания программных средств.
Основные задачи. Для достижения поставленной цели в диссертационной работе решались следующие основные задачи.
1. Разработка структуры и методов адаптации обобщенной модели программных средств к задаче управления качеством.
2. Систематизация и обобщение основных подходов к описанию качества программных средств.
3. Разработка структуры и методов формализованного описания качества программных средств.
4. Исследование наиболее распространенных принципов оценивания качества программных средств.
5. Создание обобщенных принципов оценки качественных состояний программ.
6. Анализ и систематизация существующих подходов к оптимизации структурных и поведенческих свойств программных средств.
7. Разработка общих принципов управления качеством на основных этапах жизненного цикла программных средств.
Методы исследования. При выполнении диссертационных исследований использовались: общие методы системного анализа, общие методы теории программирования, методы теории автоматического управления, методы математического моделирования, методы функционального анализа, методы теории оптимизации.
Научная новизна выполненных исследований заключается в следующем:
1. Реализован системный подход к исследованию принципов оценивания и управления качеством программных средств.
2. Предложены формализованные основы моделирования программ, отвечающие задачам определения и изменения их качества.
3. Сформированы основные принципы описания качества программ и предложен метод формализованного описания качества.
4. Выработаны методы оценивания и предложена процедура автоматизированной оценки качества программных средств.
5. Систематизированы принципы оптимизации качественных состояний программных средств.
6. Определены обобщенные принципы управления качеством, предназначенные для использования на этапах создания программных средств.
Практическая значимость. Выполненные в диссертационной работе исследования обеспечивают основу для создания и развития перспективных автоматизированных систем оценивания и управления качеством программ. Предлагаемые в работе модели, методы и алгоритмы позволяют:
— создавать формализованные описания качества программных средств с варьируемой степенью детализации, от концепции - к измерениям с целью итерационного нахождения компромисса между высоким качеством, полнотой реализуемых функций, необходимых временных, денежных, людских и других ресурсов и создания консолидированного взгляда на качество программ с точки зрения заказчиков, разработчиков и пользователей;
— формировать каталоги шаблонов формализованных описаний качества и моделей измерений программ, для создания корпоративных, государственных и международных стандартов в области качества программных средств;
— разрабатывать каталоги высоко- и низкокачественных архитектурных и проектных программных решений, осуществлять автоматизированную классификацию компонент программы по качественным состояниям;
— автоматизировать подготовку и реализацию процессов перевода программного средства из одного качественное состояние в другое;
— разрабатывать программные системы онлайнового контроля качественного состояния программных средств на всех этапах их создания;
— создавать информационно-управляющие системы автоматизации полного цикла процессов управления качеством программ.
В целом, выполненные в диссертации исследования и разработанные теоретические положения могут квалифицироваться как новое крупное достижение в решении проблем оценивания и управления качеством программных средств.
Основные положения, выносимые на защиту:
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 опубликовано в ведущих
рецензируемых научных журналах, входящих в Перечень изданий, рекомендуемых ВАК, получено 6 свидетельств на разработки, зарегистрированные в Отраслевом фонде алгоритмов и программ.
Структура диссертации. Диссертация состоит из введения, семи глав, заключения, списка использованных источников и двух приложений. Основной материал диссертации изложен на 279 страницах машинописного текста, содержит 98 рисунков и 44 таблицы. Библиографический список включает 220 наименований.
СОДЕРЖАНИЕ ДИССЕРТАЦИИ
Во введении обоснована актуальность, определена цель и основные задачи диссертационного исследования, сформулированы положения, выносимые на защиту, описано содержание диссертации по главам.
Первая глава посвящена описанию подхода к моделированию программных средств, которые находятся на одном из этапов своего создания и представляют собой проектные модели или исходные коды. Модель программы является основой для реализации формализованных подходов к оцениванию и управлению качеством. К модели были предъявлены следующие требования: обобщенный характер - технологии программирования постоянно развиваются, разрабатываемые подходы не должны зависеть от конкретных языков программирования и способов их использования, варьируемая степень детализации - при оценке и управлении качеством не всегда необходимо моделировать все структурные и поведенческие свойства программы, необходима модель, обладающая возможностью выбора степени детальности отображения реального объекта. Наконец, модель программы является основой для измерения качества и поэтому должна обеспечивать адекватную возможность обсчета своих составляющих. Для обеспечения выполнения этих требований для моделирования программ используются графы. Варьируемая детальность, наглядность и простота представления программных сущностей и взаимоотношений между ними сочетается в графовых спецификациях с развитым математическим базисом. С целью обеспечить необходимый математический аппарат для решения общей задачи оценки и управления качеством, базовое понятие графа было дополнено рядом надстроек, в результате которых полученная многоцелевая математическая модель программного средства получила ряд уникальных особенностей. Одной из главных таких особенностей следует считать возможность моделирования программного средства с той степенью детализации, которая необходима для решения задач оценивания и управления качеством, а также простоту адаптации модели к изменяющимся целям моделирования. Другой особенностью модели является ее направленность на описание типовых программных решений и программной архитектуры. Модель снабжена специальными механизмами, позволяющими наглядно и относительно просто описывать ограничения на структурные и поведенческие свойства программ. Наконец, для разработанной модели характерна общая проработка с точки зрения потребностей других компонентов системы управления качеством - моделей измерений и
преобразований, служащих соответственно для оценивания и оптимизации качества программного средства.
Многоцелевая математическая модель программного средства предназначена для описания проектных моделей и исходного кода, которые, в свою очередь, также являются моделями программы. Поэтому разработанная модель программного средства является метамоделью, но для простоты изложения называется в работе моделью.
В начале главы формулируются определения понятий, положенных в основу модели программных средств.
Ориентированный граф G = (V,E,s,t) состоит из двух множеств, конечного множества V, элементы которого называются вершинами, и конечного множества Е, элементы которого называются ребрами. Каждое ребро связано с упорядоченной парой вершин. Функции s: £-» Vn f. Е-> V связывают с каждым ребром в точности одну начальную и одну конечную вершины.
Для двух графов, G и Я графовый морфизм /:G-> Я представляет собой пару функций (fv:F//,fe:EG~*EH) такую, что выполняется fv°sg - sj-j°fe nfv°tQ = tH°fe■ Категория графов, содержащая в качестве объектов графы, а в качестве морфизмов графовые гомоморфизмы обозначается Graph.
Далее в первой главе формулируются понятия графовых изоморфизмов, инъекгивных и сюръективных морфизмов, частичных и тотальных графовых морфизмов. В качестве расширений к базовой структуре графа, описанного выше, используются метки, роли, порядок и типы. Метки служат для именования элементов модели, роли - с целью спецификации контекста использования моделируемой программной сущности, порядок служит целям моделирования поведения, типизация используется для классификации вершин и ребер.
В продолжении главы приводятся определения конструкций расширения, используемых в модели программных средств. Пусть L=(VL,EL), A={VA) - пара непересекающихся потенциально бесконечных множеств меток и ролей соответственно. (£,Л)-помеченный граф G представляет собой тройку (g,l,a) такую, что имеют место: 1) g=(V,E,s,t) - граф; 2) i=(v/:F->KL, el:E—>EL) - пара функций пометки соответственно вершин и ребер, при этом vl является инъективной; 3) a={va:V^VA) - функция отображения вершин на множество ролей.
Упорядоченный граф G представляет собой [Ь,А) -помеченный граф, в котором ребра, выходящие из каждой вершины v е Vq, упорядочены, помечены номерами 1,..., kv, где kv - число ребер, исходящих из вершины v, то есть kv = |{н>: (v,w) е Eq}\. Упорядоченные графы используются для моделирования не только структурных, но и поведенческих свойств программы, так как Moiyr задавать порядок выполнения операторов исходного кода программы, порядок следования действий на диаграмме деятельности UML и т.н.
Добавление к формализму помеченного графа механизма, связывающего с каждым ребром и вершиной понятие типа, служит целям классификации, которая позволяет выявить сходные свойства вершин или ребер, тем самым, упрощая
представление графа. Пусть T~{VT,ET) - пара непересекающихся конечных множеств предопределенных типов вершин и ребер. (1,Л)-помеченный Т-типизированный граф G является двойкой (g,type), такой что g является (L,A)-помеченный графом, a type=(vt:V->VT, et:E->ET) - пара функций, vt связывает с каждой вершиной из V ее тип из VT, a et - с каждом ребром из Е его тип из ЕТ.
Пусть G и Н - (1,Л)-помеченные Г-типизированные графы. f.G->H представляет собой помеченный типизированный графовый морфизм, если / является помеченным графовым морфизмом между (1,Л)-помеченными графами G и Н. Г-сохраняющий помеченный графовый морфизм f:G—>H - это такой помеченный типизированный графовый морфизм, для которого выполняется: 1) Vvedom(/w):v/G=v//f/v; 2) Veedom(fe):etc=et[{'fe. В параграфе определяется ряд категорий, самой важной из которой является LTGraphLT(L,A,Т), которая содержит (L,A) -помеченные Г-типизированные графы в качестве объектов и графовые морфизмы, сохраняющие метки и типы.
Для описания ограничений на допустимые виды отношений между программными сущностями вводятся два множества метаграфов: допустимые и недопустимые. Эти ограничения отражают семантику языков (моделирования или программирования), которые используются при разработке программы. Допустимые графы описывают разрешенные виды отношений между программными сущностями, недопустимые - запрещенные. Существование иньективного морфизма из 1рафа, описывающего программные сущности в каждый из допустимых графов, при одновременном отсутствии инъективных морфизмов в каждый из недопустимых графов, обосновывает корректность графовой структуры ПС.
Пусть T=(VT,ET) - пара непересекающихся конечных множеств типов, а ТТ -Г-помеченный граф, называемый допустимым (недопустимым) графом. (Ь,Л)-помеченный 7Т-типизированный граф является двойкой (G.tt), такой, что G -(L.A)-помеченный граф и tt:G->TT- тотальный XGrap/г-морфизм. Помеченный ТТ-типизированный графовый морфизм представляет собой графовый морфизм вида f.G-^H между (ДЛ)-помеченными 7Т-типизированными графами. ТТ-сохраняющий помеченный типизированный графовый морфизм представляет собой помеченный 7Т-типизированный графовый морфизм вида f.G-+H, такой, что «// °.f=ttQ для V.redom(/).
В продолжение первой главы формулируется понятие математической модели программного средства. По определению она представляет собой Т-типизированный (ДЛ)-помеченный упорядоченный ориентированный граф при условии существований Г-помеченных допустимых и недопустимых графов, описывающих семантические ограничения, свойственные языку программирования (проектной модели) этого программного средства.
Модель программного средства является многоцелевой в силу отсутствия требования по описанию всех аспектов программы или всех свойств языка программирования (проектной модели). Множество типов, которые объединяются во множество Т, определяет степень абстракции моделирования. Множества допустимых и недопустимых графов должны описывать все ограничения,
накладываемые на возможные виды отношений между программными сущностями тех или иных типов. Адекватность модели программного средства, понимаемая как совпадение свойств модели и программного средства, достигается благодаря отсутствию принципиальных ограничений на виды программных сущностей и их свойства, которым можно было бы сопоставить вершину или ребро модели соответствующего типа. Степень непротиворечивости модели определяется качеством формирования допустимых и недопустимых графов, отражающих семантику языка программирования и служащих для задания ограничений на допустимые виды структур модели.
Продолжение первой главы посвящено раскрытию вопросов адаптации многоцелевой модели программного средства в соответствии с предметом и целями моделирования. До использования модели необходимо выполнить следующую последовательность действий по ее адаптации: 1) идентифицировать типы вершин и ребер; 2) построить множество допустимых графов; 3) построить множество недопустимых графов. Первый этап адаптации является ключевым -на этом этапе в зависимости от целей моделирования устанавливается набор типов, определяющий концептуальные аспекты, которые сможет описать синтезируемая модель. Качество реализации последующих двух шагов определяет степень согласованности модели и ее соответствия семантике языка реализации программного средства.
В заключение первой главы рассматриваются примеры выполнения шагов по адаптации для моделирования диаграмм классов UML и программного кода на языке Java.
Вторая глава посвящена проблеме описания понятия качества программ и созданного в рамках диссертационного исследования метода формализованного описания качества программных средств.
В начале главы дано определение понятия качества программных средств. Обобщая определения существующих, стандартов и подходов к работе с качеством программ, можно заключить, что качество программного обеспечения - это способность программного продукта к удовлетворению установленных или предполагаемых потребностей при использовании в заданных условиях. Описаны основные существующие стандарты и модели качества, которые относятся к трем типам: факторы-критерии-метрики, цели-вопросы-метрики,
«процессы/продукты». Помимо моделей в первой главе приведен обзор актуальных стандартов качества программных средств - ШЕЕ 1061-98, ГОСТ 28195-89, ГОСТ Р ИСО/МЭК 9126-93, ISO/IEC 9126:2001-4, ISO/IEC 25000.
Далее во второй главе приведен сравнительный анализ существующих подходов к описанию качества программных средств. Отмечается, что всем моделям качества характерна иерархическая, древовидная структура, состоящая из высокоуровневых показателей, которые детализируются показателями более низких уровней, пока декомпозиция не приводит к атомарным и измеримым атрибутам. В различных моделях количество уровней иерархии и число показателей и атрибутов разнятся, и могут быть как ограниченными, так и не ограниченными. Более ранние модели по своей природе были скорее качественными, нежели количественными, ввиду недостатка знаний о метриках.
Более поздние предлагают более строгий, количественный подход к оценке и измерению качества. Основной вектор развития моделей качества определяется попытками сделать все атрибуты качества измеримыми, а также стремлением разнести на разные уровни качественные и количественные атрибуты.
В продолжение главы приводится сводка основных недостатков существующих подходов к описанию качества программ.
1. Трудность технологической интерпретации - Отсутствует связь между показателями качества и их значениями с типовыми проектными решениями, шаблонами, паттернами и антипаттернами и т.п. Для архитектора, проектировщика или программиста для оценивания качества информация о наличии таких типовых проектных решений является более важной, чем значения тех или иных показателей.
2. Терминологическая несогласованность - параллельно существует и используется несколько интерпретаций показателей качества и метрик в разных моделях качества.
3. Неформализованный характер - практически все модели качества математически не проработаны, поэтому отсутствует возможность доказательств корректности моделей или формализованного описания каких-либо свойств этих моделей, способов адаптации и повторного использования
На основе классификации и анализа недостатков существующих моделей качества формулируются требования к создаваемому в рамках диссертационного исследования методу формализованного описания качества программных средств, основными из которых являются: независимость от реализации и типов программ, возможность анализа свойств составляющих элементов, связь с дизайном и количественными свойствами программ. В качестве математической основы формализованного описания качества программ была выбрана теория категорий как универсальное средство для описания различных концепций, имеющая мощные средства для абстракции, обобщения и создания универсальных конструкций.
Для математического представления качества вводится категория качества Q которая состоит из объектов ОЬ(0) и морфизмов Мог{0). Класс объектов категории качества представляет концептуальные понятия, характеризующие качество программных средств и является конечным множеством с разбиением п .
оьш)=и а, где — {¿7т}(и=1 ■ множество объектов /-го уровня иерархии, к, -1=0
число элементов множества На верхнем уровне иерархии находится объект ¿/¡°, отражающий само понятие качества, в максимальной его полноте и целостности, поэтому к0 =1, на следующих уровнях иерархии количества объектов удовлетворяет формуле к^!> 2к„ ¿е {1,...п-1}. При этом 0/~ 0 при / * }, то есть каждая характеристика качества находится на одном определенном уровне иерархии. С целью обобщения существующих и будущих стандартов и моделей качества объектами категории являются все потенциально оцениваемые атрибуты, связанные с качеством программы. Для обеспечения согласованности
каждый такой атрибут отражает ровно одну концепцию качества, и каждой концепции качества соответствует ровно один атрибут. Определяются процедуры добавления объектов к категории качества, учитывающие ограничение взаимнооднозначного соответствия атрибутов и концепций качества.
Класс морфизмов категории качества описывается тремя множествами MoriQ) = Morsi(Q) u Mordi{Q) и Mors/(Q) - множеством строгих иерархических морфизмов MorSi{Q), множеством нестрогих иерархических морфизмов Mordt(Q) и множеством одноуровневых морфизмов Mors{Q).
Строгие иерархические морфизмы категории качества.
1) для любых двух объектов Ц1а,4ьеQi' .«} определяется множество морфизмов Morsi(q'a,qb) из q'a в q'b:
. . (0, аФЪ
Morsi{q'a,q>b) = \ {, г _ г, где 1 , - тождественный морфизм объекта q'a.
IV/' Ча
2) для любых двух объектов q1*1 eQM,q'b eQh при ig (1.....и-1},
ае{ 1,...,&/}, ¿>е{1,...,£,+1}, множество морфизмов определяется пустым Morsi(qi+l,ql) = 0.
3) для любого объекта q'b е Qt, могут существовать объекты вида q'a^eQj-1, такие, что Morsi(ql~^,qlh) состоит из одного морфизма для каждого объекта Для всех остальных объектов q^ ^Qi-i ПРИ аг^аь множество морфизмов является пустым:
м i a = ab>
[0, а±аь
Таким образом, кроме тождественного, не существует других видов строгих иерархических морфизмов на одном уровне иерархии категории качества. Остальные строгие морфизмы определяют связи верхнего уровня иерархии с нижним. Допустима ситуация, когда несколько объектов верхнего уровня связаны с одним объектом нижнего множеством морфизмов (по одному морфизму на каждый объект верхнего уровня).
Нестрогие иерархические морфизмы категории качества.
1) для любых двух объектов q'a,qlb б б,, /е {1,...,«} определяется множество морфизмов Mordi{q'a,q'b) из q'a в q'b:
[0, аФЪ
I Яа
2) для любых двух объектов qJa s Qj,q'b^Qi, при i,je{0,...,n-l}, i<j, ae{l,...,ki}, be{l.....кщ}, множество морфизмов определяется пустым
3) для любого объекта qJьeQj, могут существовать объекты вида Чаь 6б> ПРИ 7>'+1 такие, что Мог^д'^д^) состоит из одного морфизма для каадого объекта д'аь. Для всех остальных объектов д'0/ е при а^ь множество морфизмов задается пустым:
[0, а±аь
Нестрогие иерархические морфизмы служат для описания связей различных, не соседних уровней иерархии.
Одноуровневые морфизмы категории качества.
1) для любых двух объектов ге {1, ...,п\ определяется
множество морфизмов Мог^(д'а,д'ь) из д'а в д\:
О.
Могх1(д'а,д'ь) =
{1,}, а = Ь
Ча
2) для любых двух объектов q'asQ¡,qJb eQj, (',_/'е{1,...,я} множество одноуровневых морфизмов является пустым Мог$[ , ^) = 0.
Одноуровневые морфизмы служат для моделирования взаимосвязей объектов категории качества, находящихся на одном уровне иерархии.
Категория качества содержит морфизмы, отражающие все возможные связи атрибутов качества. Для иерархических морфизмов принципиальное значение имеет направленность - от объектов, находящихся на верхних уровнях иерархии, к объектам, расположенным на нижних. Иерархические морфизмы от верхних к нижним объектам образуют конусы. Эта направленность определяет назначение главное модели качества - последовательное, детализируемое на каждом следующем уровне иерархии, концептуальное описание понятия качества программных средств.
Во второй главе сформулированы и доказаны следующие леммы. Лемма 1. Категория качества является малой категорией.
Лемма 2. Конусы категории качества, образуемые иерархическими морфизмами, являются произведениями.
В продолжение главы вводится понятие независимости объектов категории качества. Объекты категории качества д'а,1е1,...,п-1 и д1с,1 е1,...,п-\ являются независимыми, если соблюдаются следующие условия:
1) отсутствуют одноуровневые морфизмы между этими объектами:
МогМа^с) = 0 ПРИ м>
2) отсутствуют строгие иерархические морфизмы между этими объектами:
Мог5;(д'а,д1с) = 0 при Ы;
3) отсутствуют нестрогие иерархические морфизмы между этими объектами:
Мог(ц(у'а,д1с) = 0 при /V/;
4) подмножества морфизмов, входящих в продолжения конусов, имеющих в качестве вершин объекты д'а и , не пересекаются:
Щ^лЛ Ж п (иА=1.....-ф'- 0-
Затем во второй главе формулируется понятие обобщенной модели качества программных средств. Модель качества представляет собой подкатегорию категории качества и состоит из конечного числа объектов категории качества и конечного числа морфизмов между ними. Модель может представлять некоторый международный или государственный стандарт (например, ГОСТ Р ИСО/МЭК 9126-93, КОЛЕС 25000 и т.п.), стандарт предприятия-разработчика, и т.п. В подкатегорию категории качества выбираются объекты, представляющие концепции качества программы, исходя из назначения модели. На рисунке 1 приведена структура модели описания качества в схематическом виде.
Рисунок 1 - Схема модели описания качества.
После примера формализованного описания качества в соответствии со стандартом КОЛЕС 25000, во второй главе приводятся обоснования соответствия разработанной модели требованиям, которые явились результатом анализа и критики принятых подходов к представлению информации о качестве программных средств.
В заключение второй главы приводятся сведения о методе формализованного описания качества программных средств. Метод формализованного описания качества программных средств включает построение категории качества, то есть формирование множеств объектов и морфизмов категории качества, и
формирование подкатегории этой категории качества, то есть выбор объектов и морфизмов категории качества исходя из целей моделирования. Оба этих шага предполагают экспертную работу, результаты которой могуг быть на разных уровнях стандартизованы, объединены в репозитории, базы знаний, опубликованы в виде хорошо зарекомендовавших себя практик.
По определению категория качества объединяет в своем составе все возможные показатели качества программ и семантические связи между ними, они образуют соответственно объекты и морфизмы этой категории. Состав объектов категории качества основывается на словаре понятий, достаточном для описания всех свойств предметной области непротиворечивым образом. Объем словаря понятий потенциально не ограничен. Следует иметь в виду сложность и неоднозначность, свойственные процессу формирования этого словаря. Наличие этих свойств обосновывается двумя важными требованиями к составу объектов категории качества. Во-первых, необходимо иметь такой состав понятий, который бы покрывал все существующие и будущие запросы для описания концепций, связанных с моделированием качества. Во-вторых, состав понятий должен быть непротиворечивым, то есть одним и тем же концептуальным элементам модели качества не должно соответствовать более одного понятия из словаря. Первое требование реализуется благодаря открытости состава словаря и множества объектов категории качества. Ответственность за реализацию второго требования лежит на эксперте, формирующем понятийный словарь для категории качества. При формировании словаря эксперту необходимо осуществлять проверки свойства согласованности состава показателей качества, используя доказательство независимости элементов в модели.
Множество морфизмов категории качества объединяет все отношения, существующие между объектами категории. Соответственно видам Возможных связей, это множество содержит три подмножества, которые отражают зависимости между показателями качества, существующих на соседних уровнях, на одном уровне и на разных, не смежных, уровнях иерархии в модели качества программы. Выявление и описание этих отношений, так же, как и формирование множества объектов категории качества представляет собой экспертную работу. Результаты экспертной работы необходимо подвергать согласованиям и формализованным проверкам.
Выбор объектов и морфизмов для включения в состав подкатегории качества зависит от целей моделирования. Выбранные объекты приобретают контекстную зависимость и интерпретируются в соответствии с предметной областью, основными элементами которой являются парадигма программирования (объектно-ориентированная, функциональная, структурная и т.п.), язык программирования (java, с, lisp и т.п.), тип проекта (веб-приложение, клиент-серверное приложение с «толстым» клиентом, приложение для карманного компьютера и т.п.). Поэтому при формировании подкатегории качества необходим контекстный анализ предметной области моделирования.
Процессы формирования множества объектов и морфизмов для категории качества, выбор объектов и морфизмов для синтеза модели качества программы -работа экспертов. Эксперты помимо профессиональной интуиции, при
выполнении этик видов работ должны использовать математический аппарат, благодаря которому можно добиться определенных свойств синтезируемой модели качества:
— строгость слоев модели - на каждом уровне иерархии модели располагаются объекты определенной степени абстракции, отсутствуют связи, пересекающие уровни, то есть, определены отношения между показателями качества для смежных уровней или внутри каждого уровня:
— базисные слои модели - объекты, относящиеся к одному уровню иерархии, не зависят друг от друга, формируют «базис» показателей качества на этом уровне иерархии: Мог^0;
— древовидная структура - в модели качества существуют связи только между показателями качества, принадлежащие к смежным уровням иерархии: Мог$[=0 л Л/о/у/=0;
— согласованность зависимостей - строгий контроль существующих отношений между элементами модели, проверка отсутствия нежелательных зависимостей.
Третья глава посвящена описанию процесса оценивания качества программных средств. В начале главы приводятся основы квалиметрии программных средств, основные понятия теории измерений, за основу которых взяты адаптированные определения наиболее современного стандарта по качеству и измерениям программ - КОЛЕС 25000. Рассматриваются виды измерительных шкал и процесс комплексирования. Представлен обзор наиболее актуальных стандартов этой области - КОЛЕС 14598-1-6:1998-2001, КОЛЕС 15939, КОЛЕС 25020, КОЛЕС 25021, КОЛЕС 25022, КОЛЕС 25023, КОЛЕС 25024.
Модели измерений, служащей для оценки качества предъявляются следующие требования: независимость от реализации, возможность анализа функциональных зависимостей метрик, связи с описанием качества, дизайном и оптимизацией программ. В качестве математической основы модели была выбрана теория категорий как универсальное средство для описания различных концепций, а также функциональный анализ, для с целью использования таких понятий, как расстояние, метрика, метрическое пространство, линейный оператор.
В третьей главе рассматриваются метрики, формальное определение которых базируется на многоцелевой математической модели программных средств. Базовая метрика представляет собой метрику, определенную в терминах атрибута и метода его обсчета, является функционально независимой от других метрик. Производная метрика является метрикой, которая определяется посредством функции от двух или более значений базовых или других производных метрик, преобразование метрики с использованием математических функций также является производной метрикой. Определения базовых метрик основано на многоцелевой модели программного средства, введенной в первой главе. Базовые метрики обсчитывают количество вершин, ребер определенного типа и длину пути графа из ребер определенного типа, используя свойство конечности множеств вершин V и ребер Е модели программы. На основе этих метрик путем
комплексирования создаются производные метрики. В третьей главе показан процесс комплексирования и определены основные типы производных метрик.
В продолжение третьей главы вводится понятие функциональной эквивалентности программ. Это понятие достаточно широко представлено в литературе и в описываемом подходе не осуществляется развитие теории эквивалентности программ, происходит лишь использование понятия функциональной эквивалентности в самом общем виде - эквивалентности выходных данных, формируемых программным средством в ответ на тестовый набор, достаточный для проверки реализации всех функциональных требований. Такой тип эквивалентности назван в работе слабой функциональной эквивалентностью. Вводится множество Prog, содержащее все математические модели конкретного программного средства. Каждое из программных средств этого множества, будет состоять в отношении слабой функциональной эквивалентности с другими программными средствами, чьи модели принадлежат Prog. Между собой эти модели будут отличаться внутренней структурой.
Для описания формализованной модели измерений приводится традиционное математическое определение этого понятия «метрика»: отображение т\ ProgxProg —» R называют метрикой на Prog, если т(х,у)-0ох=у, т(х,у)= m(yj), m(xy)<m(x,z)+m(z,y), при Jс, у, zeProg.
Далее приводится определение метрического пространства: пара (Prog, т) будет называться метрическим пространством программных средств, вещественное число т(х, у) - расстоянием между программным средством х и программным средством у. В однозначном контексте допустимо само множество Prog называть метрическим пространством.
На базовых (Л/) и производных (М1) метрических пространствах вводится множество операторов для формального описания процесса комплексирования производных метрик из других производных и базовых, эти операторы носят название операторов комплексирования. Операторы комплексирования отражают зависимости одних производных метрик от других производных или базовых. В зависимости от способов комплексирования, операторы Ас могут иметь различную природу, быть линейными, нелинейными, ограниченными, непрерывными и т.п. Далее в параграфе приводятся основные свойства операторов, определяемых на метрических пространствах.
Продолжение третьей главы посвящено описанию категории измерений. Категория MS, объектами которой являются метрические пространства Л/ и М1, а морфизмами - операторы комплексирования А€ называется категорией измерений. Далее в этом параграфе описываются свойства морфизмов этой категории. Затем описываются понятия произведений и прямых сумм в категории метрик.
В продолжение третьей главы формулируется понятие модели метрик программных средств. Модель измерений качества программных средств представляет собой подкатегорию категории измерений MS, в которую в соответствии с целями моделирования включаются определенные метрические пространства Л/*, М1 и операторы комплексирования А°, входящие в классы объектов и морфизмов категории MS. На рисунке 2 представлена структурная схема модели измерений.
Рисунок 2 - Схема модели измерений.
В модели измерений, в отличие от модели качества, морфизмы имеют противоположное направление, образуя коконусы. Таким образом, выявляется назначение этой модели - фиксировать метрические пространства для оценки концептуальных понятий качества и определять функциональные зависимости для порождения значений производных метрик, соответствующих верхним уровням иерархии за счет комплексирования метрик, соответствующих нижним.
Дальнейшие разделы третьей главы посвящены описанию метода синтеза модели измерений качества программных средств. Категория измерений изоморфна категории качества программных средств, служит для количественного оценивания концептуальных понятий о качестве, определяемых моделью качества. Метод синтеза модели измерений служит для генерации модели измерений на основе модели качества с целью реализации этого оценивания. Для синтеза категории измерений на основе категории качества ПС определяется функтор. Целью введения функтора является обеспечение формальной связи между моделями качества и метрик. Функтор является контравариантным одноместным функтором, отображающим объекты категории качества (характеристики, подхарактеристики, принципы проектирования) на метрические пространства категории метрик (базовые и производные) ()М(ОЬ(0))=ОЬ(М8), а морфизмы категории качества - на морфизмы категории измерений, являющимися операторами над метрическими пространствами QM{Mor{Q))=Mor{MS).
Функтор <2М:()-~>М5 т объектах категории () задается следующим образом:
1) на объектах:
еМ(Цс{0 {ц*}) = Ц6{0 „-1} " отображение элементов категории
качества, отвечающих за представление производных метрик, подхарактеристик и характеристик на производных метрических пространствах.
2) на морфизмах
- на морфизмах, принадлежащих парам соседних уровней:
= А^'1, /е{1,...,«}, где Ас%~1 - оператор, определенный на
X сМ ' , имеющий в качестве области значений соответствующих
элементам q'm и ;
- на морфизмах, принадлежащих уровням i,j при j>i+1:
QM(H%) = A%, ie {0,...,и-2}, je{2,...,n\, где А% - оператор, определенный на ZgM^, имеющий в качестве области значений КсМ^, соответствующих элементам qJm и q's;
- на морфизмах, принадлежащих одному уровню:
= /е{1,...,и}, где Ac'^s - оператор, определенный на
Xc,Mdlm, имеющий в качестве области значений YcMd's, соответствующих элементам q'm и q's.
На рисунке 3 схематично показано действе функтора QM.
С помощью функтора (¿М, на основе модели измерений МБ можно количественно оценить элементы модели качества {3, сделать это как для конкретной характеристики, подхарактеристики, принципа проектирования, так и для качества программного средства в целом.
Метод синтеза модели измерений качества программных средств объединяет следующие действия:
— применение функтора синтеза модели измерений к заранее разработанной модели качества;
- подбор базовых и производных метрик для измерения листовых элементов синтезированной модели измерений;
- построение модели программного средства;
- математическое описание метрик на основе модели программного средства;
- уточнение вида операторов комплексирования;
При описании алгоритма оценивания качества программных средств, который представлен в следующем параграфе, приведен пример реализации метода синтеза модели измерений.
Вторая часть третьей главы посвящена описанию алгоритма оценивания качества программных средств. В начале главы приведены краткие описания существующих в этой области стандартов, таких как КОЛЕС 14598, КОЛЕС 15939, 1БОЛЕС 25000. Описаны модели оценки качества, регламентируемые этими стандартами. В этой части третьей главы представляется алгоритм оценивания, который является обобщением описанных подходов к оценке качества (рисунок 4).
Рисунок 4 - Обобщенная модель оценивания качества программ.
В заключение третьей главы каждый из этапов алгоритма оценивания качества рассматривается подробно, приводятся примеры реализации этих этапов. С помощью предлагаемого алгоритма существует возможность оценить качество программного средства в целом, а также любого отдельного компонента модели качества. Если качество программы не было признано удовлетворительным, на основе метрик выявляются отдельные дефектные программные сущности, которые являются кандидатами для проведения рефакторинга, инспекций и других мероприятий по улучшению качества кода. После проведения этих мероприятий происходит повторная оценка качества с целью проверки принятых
решений по преобразованию программы. При интерпретации результатов оценки качества может быть принято решение о необходимости внесения изменений в процесс оценивания. Предприятия по изменению процесса оценки могут быть следующих типов: изменение модели качества, корректировка состава и пороговых значений производных и базовых метрик, изменение функциональных зависимостей, порождающих производные метрики качества.
Четвертая глава посвящена описанию метода оценки степени соответствия программного средства типовым программным решениям. В диссертационной работе понятие «типовое программное решение» используется для обозначения шаблонов проектирования, паттернов, известных практик программирования, ключевых принципов, использующихся при разработке программ. Типовые программные решения определяют походы к конструированию программ и основываются на опыте, накопленном при разработке успешных программных проектов. Задачей метода оценки степени соответствия программного средства типовым программным решениям является получение ответа на вопрос, нарушены ли при проектировании типовые решения, и если да, то какие именно это решения и какие именно программные структуры их нарушают. Благодаря такой оценке появляется возможность судить о качестве программного средства в терминах проектирования, то есть более конструктивно, а также упрощать процесс оптимизации качества. На рисунке 5 в виде диаграммы бизнес-процессов иМЬ представлены основные этапы реализации метода оценки степени соответствия программного средства типовым программным решениям.
1
Определение цепей оценивания
типовых программных решении
X
Задание допуска нарушений типовых программных решений
X
Описание типовых программных решений с помочью допустимых графов
I V I -
Описание типовых программных решений с поморю ролей
X
Идентификация нарушений с помощью ролей
1 Л
Цдента фикациянарушен ий с гомоиью метрик
Описание типовых программных решений с помоги метрик
V
1
Построение модели ПС
Рисунок 5 - Этапы метода оценки степени соответствия программного средства типовым программным решениям.
В последующих разделах четвертой главы этапы метода оценки рассматриваются подробно. В заключение главы приводится сравнительный анализ трех основных способов описания и идентификации типовых программных решений: с помощью допустимых графов, с помощью ролей и с помощью метрик. Описание типовых программных решений с помощью допустимых графов используется, если нужно максимально детально задать структуру типового решения. Это наиболее трудный в использовании и мощный по выразительности способ описания типовых программных решений. Способ описания типовых программных решений с помощью ролей используется, если необходимо контролировать правильность реализации типовых программных решений, которая выражается в определенных запретах на виды отношений между программными сущностями. Этот способ значительно проще использовать по сравнению с допустимыми графами. Способ описания типовых программных решений с помощью метрик целесообразно использовать при условии, что критерии реализации типовых программных решений носят количественный характер. Этот способ несколько проще, чем способ описания типовых программных решений с помощью допустимых графов. С помощью этого способа можно получить количественную оценку степени соответствия фрагмента кода программному решению, в отличие от двух альтернативных способов, где оценка носит бинарный характер.
Пятая глава посвящена описанию принципов оптимизации программных средств, используемых, если результаты процесса оценивания не удовлетворяют принятым критериями качества. При разработки модели учитывались следующие такие требования как независимость от реализации, связь с моделью программ -объектом оптимизации, связь с моделью измерений программ - критерием оптимизации. В качестве математического базиса используется теория перезаписи (или переписывания) графов, так как она базируется на теории графов, которая лежит в основе модели программы, а также позволяет просто и наглядно описывать преобразования графов. Идея перезаписи графа состоит в описании в левой части продукции тех вершин и ребер, которые должны иметься в исходном графе, а в правой - как эта часть графа будет выглядеть после применения продукции. Частичный морфизм описывает отношения объектов левой части к правой, детализируя процесс применения правила. Объекты, не описываемые морфизмом, удаляются, объекты, не изменяемые морфизмом, формируют контекст продукции, объекты правой части продукции, не имеющие прообраза в
левой части создаются заново. Продукция р:(Ь—состоит из имени продукции р и инъективного частичного графового морфизма г, называемого морфизмом продукции. Графы Ь и Я носят названия соответственно левой и правой частей продукции.
Система перезаписи графов &=({Со},Р), содержит - множество
начальных графов и Р - множество продукций. Далее в этом параграфе следуют определения элементов теории перезаписи, положенные в основу модели преобразования программных средств: графовая грамматика, соответствие, вывод, графовый язык и другие. Используется понятие составных продукций,
которые представляют собой упорядоченные последовательности продукций. Элементарные продукции объединяются в составные, рассматриваемые как атомарное действие, по аналогии с программной концепцией транзакции. В итоге, или вся упорядоченная последовательность элементарных продукций выполняется, или невозможность выполнения одной из продукций влечет отмену выполнения всех остальных продукций, входящих в последовательность. Для двух продукций р^и-ъЯх и p2.L1.-yR2 при продукция последовательной
композиции р\,р2'-Ьх——>/?2 состоит из имени продукции РйРг и соответствующего частичного морфизма р=ртр\- Выводы вида <3——^—>#2, в которых соответствие второго прямого вывода тг
является косоответсвием первого, могут быть реализованы за один шаг с помощью составной продукции Р\,Р2■ Обратно, каждый прямой вывод вида
(?—>Н2 может быть с помощью Р\\Рг декомпозирован в вывод б—-—>Я[—~—при условии, что косоответствие гщ первого вывода
т{ т\
является тотальным.
Далее в пятой главе рассмотрены различные варианты последовательного применения продукций, с возможной синхронизацией общедоступных для продукций элементов графа. Благодаря введению условий преобразования появляется возможность описать, в каких именно случаях исходные графы можно преобразовать к целевым. Условная перезапись графа является такой перезаписью графа, в которой каждая продукция р\Ь-*Я содержит множество условий. Последние разделяются на подмножества предусловий и постусловий. Предусловия описывают ограничения, несоблюдения которых ведет к невозможности выполнения продукции, постусловия - ограничения, которым должен удовлетворять результирующий граф после выполнения продукции. Подмножества пред- и постусловий состоят из подмножеств позитивных и негативных условий. Позитивные условия описывают «положительные» ограничения для £ или Я и обычно состоят в требовании существования некоторых вершине или ребер для того, чтобы можно было выполнить продукцию. Обратно, негативные условия вносят требования об отсутствии некоторых вершин или ребер в I или В..
Продукция с условием применения, или условная продукция
р':{Ь—Я,ас(р)) состоит из имени продукции р' и двойки - частичного графового морфизма р и условия применения ас(р) над графом Ь. Продукция является применимой к графу <3 при Ь——если т удовлетворяет ас(р). В этом случае, прямой вывод (7—носит название прямого условного вывода
С?—-—> Н. Условие ас{р) в условной продукции разделяется на два
подмножества - ac(p)L - предусловий (условий применения над исходным графом) и ac(p)R - постусловий (условий применения над результирующим графом).
В продолжение пятой главы на основе описанных ранее структур перезаписи графов представлен подход к описанию преобразований программных средств. Для формального описания преобразований программ используются только инъективные тотальные соответствия m:L-+G, инъективные продукции p:L-±R и преобразования, сохраняющие метки и типы, то есть морфизмы введенной в первой главе категории LTGraphLT. Все возможные пути преобразований описываются с помощью конечного множества элементарных продукций. Набор элементарных преобразований определяется структурой графа, моделирующего программное средство. Над этим графом можно осуществлять следующие виды преобразований: добавлять или удалять вершины и ребра, изменять метки или типы вершин и ребер. Эти преобразования формируют множество из восьми элементарных преобразований: I) добавление вершины - Insert у, 2) добавление ребра - Inserts 3) удаление вершины - Dropv, 4) удаление ребра - Dropе, 5) изменение типа вершины - Retypes, 6) изменение типа ребра - Retype?, 7) изменение метки вершины - Relabels, 8) изменение метки ребра - Relabels. Первые четыре преобразования формируют базис преобразований, так как остальные четыре могут быть выражены с помощью них. Более того, только преобразования с 1 по 4 относятся к категории LTGraphLT, то есть в рамках только этих преобразований сохраняются и типы и метки. Преобразования 5 и 6 относятся к категории LTGraphL, а последние два - к категории LTGraphT. Таким образом, первые четыре преобразования не нарушают типы и метки графа и являются достаточными для описания любого типа преобразования. Остальные типы введены для упрощения описания процесса преобразования.
Из элементарных преобразований может быть образована последовательность, за несколько шагов приводящая граф из начального в конечное состояние. Последовательность из п элементарных преобразований требует для своего выполнения формирования п-1 промежуточных графов. Альтернативным вариантом является объединение нескольких элементарных преобразований в составные, которые консолидируют все преобразования графа в одной продукции и рассматриваются в этом смысле как атомарные. Составное преобразование рс представляет собой композицию условных продукций
PcrPi°P2°-°Pn'■ G(r+G„.
В продолжение пятой главы на метрических пространствах Л/6 вводятся операторы преобразований. Назначение операторов состоит в изменении значений базовых метрик, путем преобразования модели программного средства. Множеству таких операторов принадлежат операторы добавления и удаления вершины (ребра) для всех типов вершин и ребер.
Базовые операторы преобразований соответствуют элементарным
преобразованиям графовых моделей программных средств, определяемым базисом Ръ= {Insert у,InsertE,Dropy,DropE}. Производные операторы преобразований
соответствуют составным преобразованиям графовых
моделей ПС, определяемых композициями условных продукций вида Pc=Pi'Pr...°Pa-G(r*G„.
На основе техники перезаписи графов и приведенных определений элементарных, составных преобразований в пятой главе формулируется определение модели оптимизации качества программных средств. Эта модель основана на многоцелевой модели программных средств и модели измерений, включает базовые и производные операторы преобразований, удовлетворяющие следующим условиям:
— могут быть выражены базисом, который включает морфизмы удаления и добавления ребра и вершины каждого типа;
— существуют инъективные морфизмы из графов левых и правых частей продукций преобразований в каждый из допустимых графов модели ПС;
— не существуют инъективные морфизмы из графов левых и правых частей продукций преобразований в каждый из недопустимых графов модели ПС.
Модели оптимизации программных средств свойственен обобщенный характер, перед ее использованием для формализации описания преобразований конкретного программного средства, эта модель должна пройти стадию адаптации, которая включает следующую последовательности действий:
— определение базиса преобразований, состоящего из множества элементарных преобразований удаления и добавления вершины и ребра каждого из допустимых типов, вместе с их пред- и постусловиями;
— синтез составных преобразований - представляет собой экспертную работу, цель которой состоит в упрощении процесса описания преобразований за счет объединения элементарных преобразований в наиболее употребительные составные;
— анализ составных преобразований - проверка согласованности левых и правых частей составных преобразований с допустимыми и несогласованности с недопустимыми графами.
Далее в пятой главе рассматриваются примеры реализации этих действий применительно к программным средствам, выраженных с помощью диаграмм классов UML и объектно-ориентированного кода на Java.
Следующие разделы главы посвящены описанию алгоритма оптимизации качества программных средств. Основной задачей этого алгоритма является выбор последовательности преобразований на основе анализа соотношений эталонного (дефектного) подпространств и расположения точки в метрическом пространстве, характеризующей оценку качества программы (или ее сущностей). В качестве основы алгоритма оптимизации выступают алгоритмы поиска оптимальной композиции операторов и А^'.М*модели метрик и
алгоритма нормализации составных преобразований. На основе первого алгоритма сформирована последовательность преобразований, на основе второго эта последовательность нормализована. На рисунке 6, с использованием диаграммы действий UML, представлена схема алгоритма оптимизации качества программных средств.
Рисунок 6 - Этапы алгоритма оптимизации качества программных средств.
Поиск сущностей дефектных подпространств осуществляется на основе заданных пороговых значений метрик. Те сущности программы (например, классы, методы и т.п.), для которых значение определенной метрики не принадлежит пороговому интервалу, классифицируются как дефектные и являются кандидатами на применение преобразований. На каждом метрическом пространстве, соответствующем базовой метрике задан базовый оператор преобразований А : соответствующий элементарным преобразованиям
графовых моделей ПС, которые определяются базисом Рь= {¡паеМуМьеПв Огор у,Югор Е}. На каждом метрическом пространстве, соответствующем производной метрике, может быть определено т (от>1) производных операторов преобразований
которые соответствуют
составным преобразованиям графовых моделей программ, определяемых композициями условных продукций вида рс=Р\°Р2°...сРп'-Ов-±Оп. Таким образом, в случае необходимости изменить модель программы относительно базовой метрики выбор оператора оказывается однозначным, при необходимости изменения модели программы относительно производной метрики определяется способ многокритериального выбора нужного производного оператора из т-существующих. Каждый из производных операторов может характеризоваться побочным эффектом, состоящем в том, что помимо изменения значения целевой метрики, оператор может изменить значения других метрик, ухудшив при этом качество программного средства. Алгоритм поиска оптимальной последовательности преобразований позволяет учесть влияние побочных эффектов на качество программы, и до выполнения преобразований выбрать наиболее оптимальную в смысле улучшения качества последовательность преобразований. Идея алгоритма состоит в генерации всех возможных последовательностей преобразований, согласованных в смысле соблюдения пост-
и предусловий (рисунок 7), оценка результата их применений и выбор последовательности, применение которой влечет наибольшее изменение качества программы. Под оптимальным изменением качества понимается максимальная близость точки в многомерном метрическом пространстве, характеризующей текущее состояние программного средства к точке, соответствующей эталонному состоянию. Проблема точной достижимости эталонной точки является трудно разрешимой. В «идеальном» смысле за счет применения базовых и производных операторов, можно достичь любой точки многомерного метрического пространства. Проблема «реальной» достижимости возникаег благодаря ограничениям на области действия базовых и производных операторов метрических пространств, которые являются следствием необходимости учета следующих факторов:
— семантики языка - например, нельзя создать класс одновременно не имеющий функции-члены и данные-члены и наследования (С++), нельзя создать класс без наследования (Java) и т.п.;
— семантики программы - операторы преобразований в метрических пространствах должны быть безопасны по отношению к функциональным свойствам программы.
Исходя из трудности формализации семантик языка и реальной программы, в основу алгоритма генерации последовательности преобразований положен прямой перебор всех возможных вариантов преобразований, с последующим оцениванием каждого варианта и выбором наилучшего из них.
Рисунок 7 - Схема образования последовательностей операторов преобразований.
Алгоритм поиска оптимальной последовательности преобразований Данные алгоритма
уД/еИ - индексы, заданные на множествах метрических пространств и операторов.
п - количество измерений в пространстве метрик;
¿¡оло - ЮМ-тът производный оператор, определенный на конкретном метрическом пространстве;
Л - множество кандидатов - потенциально оптимальных операторов преобразований;
и - вспомогательное множество кандидатов - потенциально оптимальных операторов преобразований.
Функция ргоЛкеА СИат(Я, I) - рекурсивная функция, порождающая производные операторы Шаг 1. /=1
Шаг 2. Для \fj\AjeR выполнить
Шаг 2.2. Для \/И:ас(А^к = выполнить
Шаг 2.2.1. А! = А;°4а+1
Шаг 2.2.2. и=ША1 Шаг 2.2.3./=/+1 Шаг 3. /=/+1
Шаг 4. Если /<л то выполнить ргос/исеА СИат(И, Основной алгоритм
т
Шаг 1. Положить / = 1, Л = |^¡А^', где т - количество операторов на /-
/=1
том метрическом пространстве Шаг 2. Выполнить ргос1исеАСНат(К,1)
Шаг 3. Оценить значения производной метрики, соответствующей понятию качества программы для каждого производного
оператора А,еЯ и выбрать тот оператор А,-, для которого значение метрики качества является наиболее близким к установленному эталонному интервалу. Далее в главе вводится алгоритм нормализации, служащий для оптимизации составных преобразований, соответствующих найденному оптимальному производному оператору. Каждая из полученных с помощью представленного алгоритма нормальных форм содержит одно и тоже множество элементарных преобразований, при этом последние могут быть по-разному упорядочены. В пятой главе формируется и доказывается следующая лемма.
Лемма 3. Уникальность нормальной формы. Каждая нормальная форма составного преобразования уникальна с точностью до переупорядочения элементарных преобразований, входящих в ее состав.
Необходимо заметить, что в минимальном составном преобразовании порядок следования однотипных преобразований не является произвольным в
силу того; что они в общем случае последовательно зависимы. Основные преимущества нормализованного составного преобразования состоят в минимальности числа элементарных преобразований и в упорядоченности однотипных преобразований.
Шестая глава посвящена описанию общих принципов управления качеством программных средств. В начале главы в качестве итога по предыдущим главам, приведен анализ разработанных моделей, в частности исследованы наиболее важные их свойства - адекватность и эффективность. Адекватность моделей - это идентичность, схожесть модели по определенным показателям с объектом моделирования, согласие между поведением модели и реального объекта. Не менее важным критерием оценки модели является эффективность - практическая полезность модели, например, время и трудоемкость ее анализа. Процесс моделирования неизбежно протекает в условиях диалектического взаимодействия двух противостоящих друг другу тенденций - возможно более полного и точного воспроизведения в модели свойств и характеристик реального объекта и упрощения методов работы с моделью. Стремление к полноте описания свойств моделируемого объекта влечет рост сложности - количества типов элементов модели и связей между ними. Наилучшее в практическом отношении качество модели достигается как компромисс между адекватностью и эффективностью. В таблице 1 приведены принципы обеспечения адекватности и эффективности в разработанных моделях.
Таблица 1 - Адекватность и эффективность разработанных моделей.
Модель Обеспечение адекватности Обеспечение эффективности
Многоцелевая математическая модель программных средств обеспечивается соответствием типов вершин и ребер типам программных сущностей и связей между ними; корректность проверяется допустимыми и недопустимыми графами в состав типов вершин и ребер могут включаться только те, которые используются для оценки или оптимизации качества
Обобщенная математическая модель качества программных средств возможность отражать любое понятие о качестве; возможность проверки независимости показателей вариативный состав показателей и связей между ними, вариативное количество уровней иерархии
Математическая модель измерений качества программных средств соответствие модели измерений модели качества; вариативный набор базовых метрик; возможность выбора различных видов функциональных зависимостей показателей
Математическая базис видов преобразований с помощью составных
Модель Обеспечение адекватности Обеспечение эффективности
модель оптимизации качества программных средств соответствует многоцелевой математической моделью программных средств преобразований может быть сформирован каталог наиболее значимых преобразований
Далее в главе рассмотрены принципы использования разработанных моделей. Обобщая основные подходы к управлению качеством проектов, можно выявить
три основных процесса, лежащие в основе системы управления качеством:
— процесс планирования качества - отвечает за определение того, какие из стандартов качества относятся к данному проекту и как их удовлетворить;
— процесс обеспечения качества - обеспечивает выполнение плановых систематических операций по качеству, выполнение всех предусмотренных процессов, необходимых для того, чтобы проект соответствовал оговоренным требованиям;
— процесс контроля качества - осуществляет мониторинг контрольных точек процессов разработки с целью определения их соответствия принятым стандартам качества и определяет пути устранения причин, вызывающих проблемы реализации этих процессов.
В настоящий момент основными слабыми сторонами реализации этих процессов являются:
— ориентация на качественные, а не количественные показатели, характеризующие состояние разрабатываемого программного средства;
— низкая степень формализации действий внутри процессов, не возможность формализованных моделирования и верификации процессов и состояний программного средства;
— отсутствие учета хорошо зарекомендовавших себя практик и типовых программных решений на системном формализованном уровне;
— низкая степень автоматизации;
— отсутствие формализованных, верифицируемых данных о связывании качественных состояний программного средства и подходами к его оптимизации.
Использование на каждом из этих процессов разработанных моделей и методов по работе с качеством позволит обеспечить необходимый уровень формализации и системности работ по улучшению качества программных средств. На рисунке 8 показано распределение разработанных моделей и методов по процессам планирования, обеспечения и контроля качества программных средств.
С Процесс планирования качества
Метод формализованного описания качества программных средств
<--'
Управление проектом
Алгоритм управления качеством программных средств
I
Модель качества
Ф_
Процесс обеспечения качества
¡Гу
Многоцелевая математическая модель программных средств
Математическая модель измерений качества программных средств
Метод синтеза модели измерений_
Управление процессами
Выполненные _ преобразования
I \
-----ч
Процесс управления изменениями
Алгоритм оптимизации программных средств
Модель измерений-^
Процесс контроля качества
Математическая модель оптимизации программных средств
Метод оценки степени соответствия программного средства типовым программным решениям
Рекомендуемые преобразования
Рисунок 8 - Использование разработанных моделей и методов при реализации проектных процессов.
Следующее изложение главы посвящено описанию структуры системы управления качеством программных средств. Объектом управления системы является модель программного средства, модель качества формирует внешнюю среду. В общем виде компоненты системы управления качеством и их взаимодействие показаны на рисунке 9. Номера обозначают последовательность при взаимодействии подсистем.
Рисунок 9 - Общая структура системы управления качеством программных
средств.
Идентификация состояния программного средства представляет собой принятие решения о принадлежности этого состояния к определенной классификационной категории. Формирование преобразований представляет собой принятие решения, состоящее в выборе набора преобразований программного средства, оптимального по определенному критерию. В подсистемах идентификации и формирования преобразований классы используются как для идентификации текущего состояния, так и для формирования преобразований с учетом состояния программного средства после реализации этих преобразований.
В следующих разделах шестой главы формулируются требования к методам классификации и приводится их сравнительный анализ. На основе достоинств и недостатков существующих в этой области методов, учитывая специфику задачи классификации состояний программного средства, состоящую в нечетком разделении классов и плохой формализации задачи, делается вывод о целесообразности использования средств искусственного интеллекта в качестве методов классификации системы управления качеством программных средств.
В продолжение шестой главы обоснована целесообразность и показано место методов кластерного анализа в системе управления качеством программных средств. В рамках кластерного анализа целесообразно использовать репозитории программных средств, качественное состояние которых заранее известно. Это могут быть как состояния «эталонное программное средство» или «дефектное программное средство», с известными соответствующими положительными или отрицательными свойствами, так и состояния программных средств, отвечающие определенным моделям качества в той или иной мере. Приведен пример кластерного анализа программных сущностей. Результирующие состояния программы, объединенные в кластер, мало различаются по факторам, детерминирующим перевод программы в эти состояния. Это означает, что одно и то же преобразование при одних и тех же предпосылках (исходном состоянии и предыстории объекта управления и среды) могут привести к переводу программы в одно из результирующих состояний, относящихся к одному кластеру. Поэтому кластерный анализ результирующих состояний является инструментом, позволяющим изучать вопросы устойчивости управления качеством программных средств. При формировании преобразований как суперпозиции факторов часто возникает вопрос о замене одних преобразований другими, имеющими сходное влияние на перевод программы из данного текущего состояния в заданное целевое состояние. Кластерный анализ преобразований позволяет решить эту задачу - при невозможности применить некоторое преобразование его можно заменить другим из того же кластера. В соответствии с предлагаемым подходом кластеры формируются для заданного диапазона классов с различными критериями включения качественного состояния программы в кластер. Эти критерии могут быть сформированы автоматически, на основе репозитория
программных средств, качество которых изначально известно, либо заданы экспертами.
Далее в главе описывается алгоритм функционирования системы управления качеством программных средств (рисунок 10). Приводятся описания шагов алгоритма.
Шаг 1. Определение общих требований к качеству программного средства: построение модели качества, модели измерений. Происходит детализация понятия качества программы. Выбираются показатели качества, типовые программные решения, которые являются важными с точки зрения качества и которые в дальнейшем необходимо будет оценить. Строится модель качества, включающая показатели как объекты. С помощью морфизмов модели качества отражаются иерархические и одноуровневые отношения между показателями и типовыми программными решениями. С помощью контравариантного функтора из модели качества формируется модель измерений, в которой каждому показателю или типовому программному решению модели качества соответствует производная метрика. Все эти работы реализуются обобщенно, без учета конкретной специфики проекта. Формируемые требования к модели качества по своей природе являются противоречивыми, здесь на основе работы экспертов находится компромисс, учитывающий взаимовлияния показателей качества.
Шаг 2. Определение требований к качеству с учетом языка разработки: детализация модели измерений (подбор базовых метрик и определение функциональных зависимостей между метриками). На основе анализа конструкций языка программирования или моделирования, экспертами определяются базовые метрики, подходящие для оценивания производных метрик. В дальнейшем использованные для определения базовых метрик языковые конструкции ложатся в основу типов вершин и ребер обобщенной математической модели программного средства. Объекты модели измерений дополняется этими базовыми метриками. Экспертами детализируются функциональный вид операторов комплексирования модели измерений для задания зависимостей между объектами модели измерений.
Шаг 3. Разработка (мета-) модели программного средства -объединение типов вершин н ребер достаточных для описания метрик.
На основе анализа модели качества выбираются значимые сущности и отношения программного средства, которые становятся типами вершин и ребер. Модель программы должна описывать только те из них, которые отвечают задаче оценки качества в соответствии с определенной моделью качества. Решение о составе множества языковых конструкций, подлежащих моделированию, принимается на основе модели измерений при определении набора базовых метрик.
Шаг 4. Определение типов элементарных преобразований.
Формируется перечень элементарных преобразований, базис которых представляет собой удаление и добавление вершины или ребра каждого типа.
Дополнительно могут определяться такие операции как переименование, изменение типа и другие преобразования программного средства.
Шаг 5. Определение составных преобразований программного средства. На данном шаге элементарные преобразования комбинируются в составные. Каждое составное преобразование соответствует перевод программной сущности программного средства из одного класса состояния в Другое.
Шаг 6. Формирование классов качественного состояния программного средства (определение экспертами граничных значений метрик для разных классов, создание базы данных программных средств и классификация их экспертами или системой на основе репозитория программных средств). Информация о модели измерений, программного средства и элементарных преобразованиях поступает на вход подсистемы обучения с учителем. Экспертами сообщается системе диапазоны значений метрик для всех типов программных сущностей. Выбираются шкалы оценки состояний (например, «эталонное», «дефектное»). На вход системы также могут быть поданы программные средства, состояние качества которых заранее известно для формирования репозитория программных средств. Система фиксирует значения метрик программных сущностей этих программных средств. Эксперты анализируют и корректируют результаты анализа программного средства системой. Таким образом формируется обучающая выборка. Эта обучающая выборка обрабатывается обучающим алгоритмом, на основе чего формируются решающие правила (классы состояний программного средства, отражающие весь спектр будущих возможных состояний), а также определяется ценность метрик для возможного снижения размерности метрического пространства. Метрики, не имеющие особой ценности, могут быть удалены из системы.
Шаг 7. Создание модели конкретного программного средства. На
основании определенных типов вершин и ребер строится модель программного средства, качество которой подлежит оценке.
Шаг 8. Оценивание качественного состояния конкретного программного средства (распределение сущностей программного средства по классам состояний). Осуществляется применение решающих правил, выработанных на шаге 6. В подсистеме идентификации предусмотрен режим добавления классифицируемой выборки к обучающей, чтобы в последующем, когда будет известна степень соответствия прогноза результатам преобразований программного средства, этой верифицированной оценочной информацией дополнить обучающую выборку и переформировать решающие правила для реализации обратной связи.
Шаг 9. Выбор составного преобразования, переводящего сущности программного средства из дефектного в эталонный классы состояний. Из
сформированных на шаге 5 преобразований выбирается составное преобразование, которое сможет перевести сущности программного средства,
находящиеся в классе состояний, который был оценен как дефектный, в класс эталонного состояния. Составное преобразование ищется на основе операторов того метрического пространства, метрика которого ниже эталонной. Это составное преобразование проходит процедуру оптимизации, состоящую в выборе за счет операторов комгшексирования и процедуры нормализации минимально трудоемкой, потенциально менее опасной композиции элементарных преобразований.
Шаг 10. Реализация выбранного составного преобразования. На
данном шаге происходит реализация выбранного на шаге 9 составного преобразования.
Шаг 11. Генерация исходного кода на основе преобразованной модели. Происходит генерация исходного кода на целевом языке системы.
Шаг 12. Проверка сохранения функциональных свойств.
Осуществляется путем компиляции исходного кода, сгенерированного на шаге 11, получении исполняемых модулей ПС и запуска пакета функциональных тестов, состав которого позволяет сделать вывод о том, что осуществленные преобразования не повлияли на функциональные свойства программного средства. Альтернативным вариантом является верификация корректности преобразования.
Шаг 13. Повтор шагов 8-12 до тех пор, пока качественное состояние программного средства не будет соответствовать эталонному.
Шаг N. Верификация решающих правил. Если решающие правила построены и оптимизированы, но качество их работы неизвестно, то пользоваться ими для принятия решений опрометчиво. Верификация решающих правил основана на использовании внутреннего критерия качества алгоритма классификации и может быть выполнена в любой момент, например по требованию экспертов, в обязательном порядке - после каждой адаптации к изменению модели качества. Для выполнения данной функции обучающая выборка копируется в классифицируемую, осуществляется ее автоматическая классификация, ее результаты сравниваются с независимой экспертной классификацией. На основе этого рассчитываются показатели качества решающих правил (все эти работы полностью автоматизированы).
( Определение общих требований к качеству ПС: построение модели качества, модели ^ V_измерений___/
Определение требований к качеству с учетом языка разработки: детализация модели измерений (подбор базовых метрик и определение функциональных зависимостей между 2 _метриками)_
С
Разработка (мета-) модели ПС - определение типов вершин и ребер достаточных для _описания метрик_
Определение типов элементарных преобразований ПС
Формирование составных преобразований ПС_§)
Формирование классов качественного состояния ПС (определение экспертами граничныхЛ значений метрик для разных классов, создание базы данных ПС и классификация их 6 _экспертами)_у
Г~ Создание модели конкретного ПС ^
Оценка качественного состояния конкретного ПС (распределение сущностей ПС по ^ ' _классам состояний)_у
• X-
©
Выбор составного преобразования, переводящего сущности ПС из дефектного в
эталонный классы состояний *
Реализация выбранного составного преобразования
X ■
Генерация исходного кода на основе преобразованной модели 11)
* '
Проверка сохранения функциональных свойств 12
--I
Рисунок 10 - Алгоритм управления качеством программного средства.
В заключительной, седьмой главе описаны результаты практического апробирования моделей, методов и алгоритмов управления качеством программных средств. Приведены результаты шести проектов, в результате которых были созданы программы для оценивания и управления качеством.
Каждое из программных средств обладает функциональной целостностью и реализует подмножество описанных в предыдущих главах диссертации моделей и методов по работе над качеством программ. Одно из средств в качестве входа использует объектно-ориентированную модель в нотации диаграмм классов UML, два средства работают с кодом на С++, два - с кодом на Java, один с кодом на С#. Для апробирования разработанных средств были выбраны два программные средства, созданные в результате опытно-конструкторских работ (ОКР) Базикмед,
Телемед, Кладезь и Автография. ОКР Базикмед разрабатывался в период с 1998 по 2006 годы, цель разработки - создание системы автоматизации технологических процессов лечебных учреждений Министерства Обороны РФ. Специальное программное обеспечение было построено с использованием трехуровневой архитектуры, компоненты бизнес-логики были написаны на Java, представлены порядка восемьюстами классов. Специальное программное обеспечение Базикмед содержит отдельный модуль построения отчетов, написанный на С#. ОКР Телемед был посвящен созданию программной системы для телемедицинских консультаций, создавался с 2000 по 2006 годы. Специальное программное обеспечение Телемед содержит около пятисот классов на языке С++. Специальные программные средства ОКР Кладезь и Автография реализованы на С# и содержат соответственно 600 и 700 классов. Все работы по улучшению качества программного обеспечения были произведены в период доработки опытных образцов по результатам Государственных испытаний. Работы по качеству касались структуры опытных образцов изделий, и не затронули функциональных свойств.
В количественном отношении использование программных средств, основанных на моделях и методах оценивания и управления качеством программ, помогло сократить около 1 чел/мес. трудозатрат на каждую новую версию программного продукта, а также обеспечить выявление около 20% новых программных дефектов.
ЗАКЛЮЧЕНИЕ
В описываемой диссертационной работе выполнены анализ и разработка моделей, методов и алгоритмов, предназначенных для формализации процессов оценивания и управления качеством программных средств. Важность задач, решаемых программными средствами в настоящее время, существенные пробелы в современном состоянии программной инженерии и, в частности, в обеспечении качества программ, обосновывают высокую актуальность осуществленных исследований. Использование созданных моделей, методов и алгоритмов сделало возможным:
— описание понятия качества программных средств с варьируемой степенью детализации, от концепции - к измерениям с целью нахождения компромисса между высоким качеством, полнотой реализуемых функций, необходимых временных, денежных, людских и других ресурсов и создания консолидированного взгляда на качество программ с точки зрения заказчиков, разработчиков и пользователей;
— разработку шаблонов описаний качества и моделей измерений программ, для создания корпоративных, государственных и мировых стандартов в области качества программ;
— разработку каталога качественных архитектурных решений, автоматизированный поиск компонентов программы, которые нарушают правила использования шаблонов программирования, автоматизированную подготовку действий по исправлению ошибок в использовании шаблонов проектирования;
— формализацию процесса оценивания качества для создания внутрикорпоративных, аудиторских и прочих стандартов определения качества программ;
— онлайновый мониторинг показателей качества для точного управления процессом разработки программных средств;
— создание интеллектуальных систем, моделирующих действия эксперта путем классификации качественных состояний программ в зависимости от значений метрик;
— математическое описание процесса рефакторинга и иных видов преобразований для автоматизации процесса оптимизации качества программных средств;
— разработку интеллектуальных систем, моделирующих действия эксперта по выбору видов преобразований программы для оптимизации ее качественного состояния;
— создание систем, автоматизирующих полный цикл процессов управления качеством программ: разработку формализованного описания качества и его измерений, нахождение низкокачественных программных компонентов, выработку действий по оптимизации качества программы, отслеживание и оперативное реагирование на выходы показателей качества за допустимые пределы на всех этапах разработки программных средств.
Основными разработанными в процессе работы над диссертацией компонентами для оценивания и управления качеством явились:
— многоцелевая математическая модель программных средств и принципы ее адаптации к задаче управления качеством;
— метод формализованного описания качества программных средств;
— математическая модель измерений качества программных средств;
— метод синтеза модели измерений качества и алгоритм оценивания качества программных средств;
— метод оценки степени соответствия программного средства типовым программным решениям;
— математическая модель оптимизации качества программных средств;
— общие принципы и алгоритм управления качеством на этапах создания программных средств.
Результаты диссертационного исследования составили теоретическую основу для создания ряда прикладных программ оценивания и управления качеством, была подтверждена значимость и практическая ценность разработанных моделей, методов и алгоритмов в процессе использования этих программ при реализации ряда Государственных опытно-конструкторских работ.
СПИСОК ПУБЛИКАЦИЙ ПО ТЕМЕ ДИССЕРТАЦИИ Моиографии.
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.
Ю.Бураков В.В. Способы формальной спецификации принципов проектирования ПС. // Информационно-управляющие системы. 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. с. 28-34.
17.Бураков В.В. Формализация процесса преобразований программного обеспечения // Мехатроника, автоматизация, управление. Управление и информатика в авиакосмических системах. 2006. № 11. с. 19 - 24.
18.Бураков B.B. Моделирование и синтез программной документации // Вестник молодых ученых. 2002. № 9. с. 68 - 74.
19.Бураков В.В. Прототип системы автоматизации процессов документирования // Вестник молодых ученых. 2003. № 3. с. 73 - 79.
20.Бураков В.В., Фильчаков В.В. Методика автоматизации процессов разработки проектной документации в приборостроении // Известия вузов. Приборостроение. 2002. № 1. с. 7-14.
Публикации в других печатных изданиях.
21.Бураков В.В., Жаков В.И., Фильчаков В.В., Метод генерации проектной документации на основе диаграмм потоков данных // Информационные технологии поддержки принятия решений. Апатиты: КНЦ РАН. 1998. с. 6879.
22.Бураков В.В. Метод автоматизации документирования функциональных свойств программных систем // 6-ая Международная научно-техническая конференция студентов и аспирантов. Тезисы докладов том 1., М.: МЭИ, 2000. с. 255-256.
23.Бураков В.В., В. В. Фильчаков, В. И. Путилов. Программирование. // Апатиты, Кольский Государственный Университет. 2000. 98 с.
24.Бржезовский A.B., Бураков В.В. Автоматизация документирования программного обеспечения на базе 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.Бураков В. В. Программное средство детектирования дефектов кода // Федеральное агентство по образованию. ФГНУ «Государственный координационный совет информационных технологий». Отраслевой фонд алгоритмов и программ. Свидетельство об отраслевой регистрации разработки № Ю145, номер государственной регистрации 50200800554. Москва. 2008.
33.Бураков В. В. Программное средство метрического анализа кода // Федеральное агентство по образованию. ФГНУ «Государственный координационный совет информационных технологий». Отраслевой фонд алгоритмов и программ. Свидетельство об отраслевой регистрации разработки № 10146, номер государственной регистрации 50200800555. Москва. 2008.
34.Бураков В. В. Программное средство оценки качества программ // Федеральное агентство по образованию. ФГНУ «Государственный координационный совет информационных технологий». Отраслевой фонд алгоритмов и программ. Свидетельство об отраслевой регистрации разработки № 10147, номер государственной регистрации 50200800556. Москва. 2008.
35.Бураков В. В. Программное средство рефакторинга моделей программ // Федеральное агентство по образованию. ФГНУ «Государственный координационный совет информационных технологий». Отраслевой фонд алгоритмов и программ. Свидетельство об отраслевой регистрации разработки № 10148, номер государственной регистрации 50200800557. Москва. 2008.
Формат 60x84 1416 .Бумага офсетная.
_Тираж 100 экз. Заказ № 195.
Редакционно-издательский центр ГУАП 190000, Санкт-Петербург, Б. Морская ул., 67
Оглавление автор диссертации — доктора технических наук Бураков, Вадим Витальевич
Введение
Глава 1. Моделирование программных средств
Элементы теории графов и теории категорий для моделирования 11 программных средств
Многоцелевая математическая модель программного средства 20 Адаптация многоцелевой математической модели программного средства
Выводы
Глава 2. Описание качества программных средств
Существующие модели и стандарты качества программных средств
Варианты описаний качества программ
Взаимосвязи между показателями качества
Адаптация описания качества
Области применения стандартизованных описаний качества
Классификация подходов к описанию качества
Основные недостатки существующих подходов к описанию качества
Требования к описанию качества программных средств
Формализованное описание качества программных средств
Выводы
Глава 3. Оценивание качества программных средств
Основы квалиметрии программных средств
Стандарты оценивания качества программных средств
Метрики качества программных средств
Метрические пространства
Операторы комплексирования
Математическая модель измерений качества программных средств
Метод синтеза модели измерений качества программных средств
Алгоритм оценивания качества программных средств
Выводы
Глава 4. Оценивание степени соответствия программного средства 134 типовым программным решениям
Метод оценки степени соответствия программного средства типовым 134 программным решениям
Определение целей оценивания
Выбор типовых программных решений
Задание допуска нарушений типовых программных решений
Способы описания типовых программных решений
Построение модели программного средства
Способы идентификации нарушений типовых программных решений
Анализ нарушений типовых программных решений
Сравнительный анализ способов описания типовых программных 154 решений
Выводы
Глава 5. Оптимизация качества программных средств
Преобразования графов
Описание преобразований программных средств
Математическая модель оптимизации качества программных средств
Адаптация модели преобразований программных средств
Алгоритм оптимизации качества программных средств
Выводы
Глава 6. Управление качеством программных средств
Адекватность и эффективность разработанных моделей и принципы их 208 практического использования
Процессы планирования, обеспечения и контроля 211 качества программных средств
Структура системы управления качеством программных средств
Применение методов классификации и кластерного анализа
Алгоритм управления качеством программных средств
Выводы
Глава 7. Апробация моделей, методов и алгоритмов 235 управления качеством программных средств
Программное средство анализа кода для рефакторинга
Программное средство автоматизации пользовательского рефакторинга
Программное средство детектирования дефектов кода
Программное средство метрического анализа кода
Программное средство оценки качества программ
Программное средство рефакторинга моделей программ
Результаты практического использования разработанных программных 259 средств
Выводы
Введение 2010 год, диссертация по информатике, вычислительной технике и управлению, Бураков, Вадим Витальевич
Компьютерные технологии и программное обеспечение используются на современной стадии развития общества повсеместно. Практически все виды человеческой деятельности, включая потенциально опасные для жизни людей и планеты, доверены программному управлению. В разработку программных средств вовлечено множество людей и организаций, на создание программ расходуются огромные ресурсы. Учитывая эти факты, нет необходимости в доказательстве актуальности и практической значимости исследований в области качества программного обеспечения. В этой области особенно важными представляются проблема формирования общих подходов к оцениванию качества и задача определения общих принципов управления качеством программных средств [1-10].
Оценивание качества программного обеспечения является многокритериальным процессом, который объединяет такие действия, как формирование набора критериев, выбор их эталонных значений, измерение фактических значений, сравнение их с эталонными и определение состояния качества программы. В современной практике разработки программ все составляющие процесса оценивания реализуются экспертами, а сформированная в результате оценка качества не всегда является объективной. Выбранные для оценивания критерии носят, в основном, описательный характер, процедура выбора эталонных значений - интуитивная, процессы измерения и сравнения -трудно формализуемые. Для управления процессом разработки программы необходимо осуществлять оценку ее качественного состояния постоянно, набор критериев для оценивания и их эталонные значения должны изменяться сообразно с прогрессом, достигаемым в разработке. В расчете на одну экспертную оценку трудно обеспечить адаптацию процесса оценивания в соответствии с состоянием разработки непротиворечивым, верифицируемым способом. Существующие стандарты и исследования в области оценивания качества не обеспечивают нужной степени формализации, описывают процессы, связанные с оцениванием качества или в абстрактном, непригодном для непосредственного применения, или в детальном, плохо поддающимся адаптации под конкретные реалии разработки, стиле. Неопределенности и пробелы в формализации характеристик программ оставляют экспертам широкое поле для субъективности при оценивании их качества, позволяют вводить в эксплуатацию низкокачественные программные продукты, использование которых может быть экономически невыгодным и даже небезопасным. Высокая сложность и ответственность задач, решаемых программами, возможный материальный ущерб и угрозы для жизни людей как следствие их недостаточного качества, делают необходимым формализацию всех составляющих процесса оценивания.
При выявлении несоответствия значений измеренных и эталонных показателей в результате процесса оценивания, необходимо определить корректные изменения структурных и поведенческих свойств программы, которые бы позволили перевести ее из одного качественного состояния в другое. Выявленные рассогласования значений измеренных и эталонных показателей являются симптомами наличия проблем в структуре и поведении программы. Для того, чтобы на основе этой, симптоматической информации можно было бы принять определенные решения о доработке программы, она должна быть правильно интерпретирована. При решении этой многокритериальной задачи важно гарантировать отсутствие побочного эффекта, который состоит в ухудшении значений одних показателей качества в процессе улучшения других. Эта задача, также как и проблема оценивания качества программы, в современной практике разработки программ в основном решается экспертами. Существующие стандарты и исследования проблем качества программного обеспечения не задают способы использования результатов оценивания. Необходима разработка формализованных моделей связывания качественного состояния программы с подходами к его изменению, строгое описание критериев оптимизации и определение общих принципов управления качеством программ.
Важность задач, решаемых программными средствами и описанные пробелы в современном состоянии программной инженерии, выявляют настоятельную потребность в проведении исследований, направленных на разработку математических моделей, методов и алгоритмов для формализации процессов оценивания и управления качеством программ.
Цель диссертационной работы состоит в разработке обобщенных моделей для оценивания качества программ и формировании общих принципов управления качеством на этапах создания программных средств.
Основные задачи. Для достижения поставленной цели в диссертационной работе решались следующие основные задачи.
1. Разработка структуры и методов адаптации обобщенной модели программных средств к задаче управления качеством.
2. Систематизация и обобщение основных подходов к описанию качества программных средств.
3. Разработка структуры и методов формализованного описания качества программных средств.
4. Исследование наиболее распространенных принципов оценивания качества программных средств.
5. Создание обобщенных принципов оценки качественных состояний программ.
6. Анализ и систематизация существующих подходов к оптимизации структурных и поведенческих свойств программных средств.
7. Разработка общих принципов управления качеством на основных этапах жизненного цикла программных средств.
Методы исследования. При выполнении диссертационных исследований использовались: общие методы системного анализа, общие методы теории программирования, методы теории автоматического управления, методы математического моделирования, методы функционального анализа, методы теории оптимизации.
Научная новизна выполненных исследований заключается в следующем:
1. Реализован системный подход к исследованию принципов оценивания и управления качеством программных средств.
2. Предложены формализованные основы моделирования программ, отвечающие задачам определения и изменения их качества.
3. Сформированы основные принципы описания качества программ и предложен метод формализованного описания качества.
4. Выработаны методы оценивания и предложена процедура автоматизированной оценки качества программных средств.
5. Систематизированы принципы оптимизации качественных состояний программных средств.
6. Определены обобщенные принципы управления качеством, предназначенные для использования на этапах создания программных средств.
Практическая значимость. Выполненные в диссертационной работе исследования обеспечивают основу для создания и развития перспективных автоматизированных систем оценивания и управления качеством программ. Предлагаемые в работе модели, методы и алгоритмы позволяют: создавать формализованные описания качества программных средств с варьируемой степенью детализации, от концепции - к измерениям с целью итерационного нахождения компромисса между высоким качеством, полнотой реализуемых функций, необходимых временных, денежных, людских и других ресурсов и создания консолидированного взгляда на качество программ с точки зрения заказчиков, разработчиков и пользователей; формировать каталоги шаблонов формализованных описаний качества и моделей измерений программ, для создания корпоративных, государственных и международных стандартов в области качества программных средств; разрабатывать каталоги высококачественных и ошибочных архитектурных и проектных программных решений, осуществлять автоматизированную классификацию компонент программы по качественным состояниям; автоматизировать подготовку и реализацию процессов перевода программного средства из одного качественное состояние в другое; разрабатывать программные системы онлайнового контроля качественного состояния программных средств на всех этапах их создания; создавать информационно-управляющие системы автоматизации полного цикла процессов управления качеством программ.
В целом, выполненные в диссертации исследования и разработанные теоретические положения могут квалифицироваться как новое крупное достижение в решении проблем оценивания и управления качеством программных средств. Основные положения, выносимые на защиту:
1. Многоцелевая математическая модель программных средств и способы ее адаптации к задаче управления качеством.
2. Метод формализованного описания качества программных средств.
3. Математическая модель измерений качества программных средств, метод ее синтеза и алгоритм оценивания качества программных средств.
4. Метод оценки степени соответствия программного средства типовым программным решениям.
5. Математическая модель и алгоритм оптимизации качества программных средств.
6. Общие принципы и алгоритм управления качеством на этапах создания программных средств.
Внедрение результатов. Результаты диссертационной работы использовались при разработке процедур управления проектами и подходов к созданию программ, создании стандартов качества предприятия и разработке специального программного обеспечения для Министерства Обороны Российской Федерации: : * в ходе опытно-конструкторской работы шифр «Базикмед» (Государственный контракт от 30.12.98 № НТК/2/6-1998); в ходе опытно-конструкторской работы шифр «Телемед» (Государственный 1 контракт от 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 г.г.).
Публикации. По результатам диссертационных исследований опубликована монография, 33 научные статьи, из которых 18 опубликовано в ведущих рецензируемых научных журналах, входящих в Перечень изданий, рекомендуемых ВАК, получено 6 свидетельств на разработки, зарегистрированные в Отраслевом фонде алгоритмов и программ.
Структура диссертации. Диссертация состоит из введения, семи глав, заключения, списка использованных источников и двух приложений. Основной ' материал диссертации изложен на 279 страницах машинописного текста, содержит 98 рисунков и 44 таблицы. Библиографический список включает 220 наименований.
Заключение диссертация на тему "Модели оценивания и алгоритмы управления качеством программных средств"
6.6 Выводы
1. Адекватность многоцелевой математической модели программных средств обеспечивается множествами допустимых и недопустимых графов, которые описывают как формальную так и семантическую корректность модели. Эффективность этой модели обеспечивается вариативными множествами типов вершин и ребер, состав которых не включаются те типы, которые не используются для оценки или оптимизации качества программного средства.
2. Адекватность и эффективность обобщенной математической модели качества программных средств обеспечивается благодаря вариативному составу показателей и связей между ними, также возможности проверки независимости показателей и контроля связей между ними.
3. Адекватность математической модели измерений качества программных средств обеспечивается благодаря тому, что метод синтеза модели измерений качества обеспечивает изоморфность модели измерений модели качества, а также благодаря вариативности множества базовых метрик и виды функциональных зависимостей показателей. Эффективность этой модели определяют вариативные подбор базовых метрик и формулировка функциональных зависимостей показателей.
4. Адекватность математической модели оптимизации качества программных средств обеспечивается наличием допустимых и недопустимых графов и проверкой наличия морфизмов в эти графы из левых и правых частей преобразований. Эффективность этой модели определяется базисом видов преобразований, который задается многоцелевой математической моделью программных средств. С помощью составных преобразований может быть сформирован каталог наиболее значимых преобразований.
5. Основными процессами, в рамках которых происходит работа с качеством при разработки программных средств являются процессы планирования, обеспечения и контроля качества. Использование на каждом из этих процессов разработанных моделей и методов по работе с качеством позволит обеспечить необходимый уровень систематизации работ по улучшению качества программных средств.
6. Объектом управления системы является модель ПС, модель качества формирует аналог внешней среды. Компонентами системы выступают подсистема формирования модели измерений, подсистема идентификации состояний ПС, подсистема формирования преобразований ПС, подсистема реализации преобразований.
7. В подсистемах идентификации состояния ПС и формирования преобразований целесообразно применить алгоритмы классификации и принятия решений. Идентификация состояния ПС представляет собой принятие решения о принадлежности этого состояния к определенной классификационной категории. Формирование преобразований представляет собой принятие решения, состоящее в выборе набора преобразований ПС, оптимального по определенному критерию.
8. Основными требованиями к методам классификации, используемыми в системе управления качеством являются: устойчивость, то есть состоятельность результатов работы алгоритма, слабая зависимость времени решения задач от размерности метрического пространства, возможность решения обратных задач классификации, что необходимо для подсистемы формирования последовательности преобразований, адаптивность, под которой понимается подстройка алгоритмов управления в соответствии с изменением модели качества.
9. Разработанный алгоритм управления качеством ПС позволяет строго описать процесс управления качеством, определяет этапы этого процесса, задает входные и выходные данные этапов и последовательность передачи управления.
10. Помимо методов классификации, в системе управления качеством ПС целесообразно использовать методы кластерного анализа. Задача методов кластерного анализа в составе системы управления качеством состоит в выявлении общности сущностей ПС, объединении сущностей со сходными характеристиками в одно подпространство. В результате появляется возможность сравнивать распределения эталонных и анализируемых ПС или упрощать процедуру экспертной оценки.
Глава 7. Апробация моделей, методов и алгоритмов управления качеством программных средств
Для практического апробирования моделей и методов управления качеством программных средств был инициировано шесть проектов, в результате которых были созданы следующие программы:
1) программное средство анализа кода для рефакторинга (ПСАКР);
2) программное средство автоматизации пользовательского рефакторинга (ПСАПР);
3) программное средство детектирования дефектов кода (ПСДДК);
4) программное средство метрического анализа кода (ПСМАК);
5) программное средство оценки качества программ (ПСОКП);
6) программное средство рефакторинга моделей программ (ПСРМП). Каждое из программных средств обладает функциональной целостностью и реализует определенное подмножество предлагаемых моделей и методов работы над качеством программ.
В таблице ниже представлены сведения о теоретическом базисе, послужившим основой для разработанных ПС управления качеством.
ЗАКЛЮЧЕНИЕ
В процессе выполнения диссертационного исследования осуществлены анализ и разработка моделей, методов и алгоритмов, предназначенных для формализации процессов оценивания и управления качеством программных средств. Важность задач, решаемых программными средствами в настоящее время, существенные пробелы в современном состоянии программной инженерии и, в частности, в обеспечении качества программ, обосновывают высокую актуальность осуществленных исследований. Использование созданных моделей, методов и алгоритмов сделало возможным: описание понятия качества программных средств с варьируемой степенью детализации, от концепции - к измерениям с целью нахождения компромисса между высоким качеством, полнотой реализуемых функций, необходимых временных, денежных, людских и других ресурсов и создания консолидированного взгляда на качество программ с точки зрения заказчиков, разработчиков и пользователей; разработку шаблонов описаний качества и моделей измерений программ, для создания корпоративных, государственных и мировых стандартов в области качества программ; разработку каталога качественных архитектурных решений, автоматизированный поиск компонентов программы, которые нарушают правила использования шаблонов программирования, автоматизированную подготовку действий по исправлению ошибок в использовании шаблонов проектирования; формализацию процесса оценивания качества для создания внутрикорпоративных, аудиторских и прочих стандартов определения качества программ; онлайновый мониторинг показателей качества для точного управления процессом разработки программных средств; создание интеллектуальных систем, моделирующих действия эксперта путем классификации качественных состояний программ в зависимости от значений метрик; математическое описание процесса рефакторинга и иных видов преобразований для автоматизации процесса оптимизации качества программных средств; разработку интеллектуальных систем, моделирующих действия эксперта по выбору видов преобразований программы для оптимизации ее качественного состояния; создание систем, автоматизирующих полный цикл процессов управления качеством программ: разработку формализованного описания качества и его измерений, нахождение низкокачественных программных компонентов, выработку действий по оптимизации качества программы, отслеживание и оперативное реагирование на выходы показателей качества за допустимые пределы на всех этапах разработки программных средств.
Основными разработанными в процессе работы над диссертацией компонентами для оценивания и управления качеством явились: многоцелевая математическая модель программных средств и принципы ее адаптации к задаче управления качеством; метод формализованного описания качества программных средств; математическая модель измерений качества программных средств; метод синтеза модели измерений качества и алгоритм оценивания качества программных средств; метод оценки степени соответствия программного средства типовым программным решениям; математическая модель оптимизации качества программных средств; общие принципы и алгоритм управления качеством на этапах создания программных средств.
Результаты диссертационного исследования составили теоретическую основу для создания ряда прикладных программ оценивания и управления качеством, была подтверждена значимость и практическая ценность разработанных моделей, методов и алгоритмов в процессе использования этих программ при реализации ряда Государственных опытно-конструкторских работ.
Библиография Бураков, Вадим Витальевич, диссертация по теме Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
1. Липаев В.В. Выбор и оценивание характеристик качества программных средств, М.: Синтег, 2001 г., 228 стр.
2. Bell D., Morrey I., Pugh J. Software Engineering A Programming Approach, NJ, Prentice-Hall, 1987, 250 pp.
3. Galin D. Software Quality Assurance: From Theory to Implementation, Harlow, Addison-Wesley, 2003, 616 pp.
4. The Economic Impacts of Inadequate Infrastructure for Software Testing. NIST Planning Report 02-3, Research Triangle Institute, 2002, 309 pp.
5. Йордон Э. Объектно-ориентированный анализ и проектирование систем, М.: Лори, 2007, 264 стр.
6. Pfleeger S.L. Software Engineering Theory and Practice. NJ, Prentice-Hall, 2005, 736 pp.
7. Goodman PP. Software Metrics: Best Practices for Successful IT Management Rothstein Associates, 2004, 264 pp.
8. Fenton N.E., Neil M. Software metrics: A Roadmap//ICSE Future of SE Track, 2000, pp. 357-370.
9. Cunningham W., Beck K. A Diagram for Object-Oriented Programs.//OOPSLA '86, ACM SIGPLAN Notices, 21(11), ACM Press, 1986, pp. 361-367.
10. Kleyn M.F., Gingrich PP.C. GraphTrace Understanding Object-Oriented Systems Using Concurrently Animated Views.//OOPSLA '88, ACM SIGPLAN Notices, 23(11), ACM Press, 1988, pp. 191-205.
11. Ellis G. Object-Oriented Conceptual Graphs./ZProceedings of the 3rd International Conference on Conceptual Structures, Spinger-Verlag, 1995, pp. 144-157.
12. Chidamber S.R., Kemerer C.F. Towards a Metrics Suite for Object-Oriented Design.//OOPSLA '91, ACM SIGPLAN Notices, 26(11), ACM Press, 1991, pp. 197211.
13. Meseguer J., Montanari U. Petri Nets are Monoids.//Information and Computation # 88, 1990, pp. 105-155.
14. Bohner S.A., Arnold R.S. Software Change Impact Analysis. IEEE Press, 1996,262 pp.
15. Mens Т. A Formal Foundation for Object-Oriented Software Evolution. Ph. D. Dissertation. Vrije Universiteit Brussel. Faculty of Sciences. Department of Computer Science. Programming Technology Lab. 1999, 225 p.
16. Gruij D. A Framework of Concepts for Representing Object-Oriented Design and Design Patterns, Department of Computer Science, Utrecht University INF/SCR-97-28, 1998, 120 pp.
17. Мак J. К. H., Choy C. S. Т., Lun D. PP. K. Precise Modeling of Design Patterns in UML.//Proceedings of the 26th International Conference on Software Engineering, 2004, IEEE, ppp. 45-52.
18. Corradini A., Montanari U., Rossi F. Graph Processes//Fundamenta Informaticae, Special Issue on Graph Transformations, 26(3,4), IOS Press, 1996, ppp. 241-265.
19. Heckel R., Corradini A., Ehrig H., Lowe M. Horizontal and Vertical Structuring of Typed Graph Transformation Systems.//Mathematical Structures in Computer Science, Cambridge University Press, 1996, ppp. 211-219.
20. Corradini, A., Ehrig, H., Lswe, M., Montanari, U. and Padberg, J., The Category of Typed Graph Grammars and its Adjunction with Categories of Derivations.//Graph Grammars and Their Application to Computer Science, Springer LNCS, 1996, ppp.56-74.
21. Engels G., Schuerr A. Encapsulated hierarchical graphs, graph types and meta types.//Electronic Notes in Theoretical Computer Science, Vol. 2., 1995, pp. 132-147.
22. Гамма Э., Хелм P., Джонсон P., Влиссидес Д. Приемы объектно-ориентированного программирования. Паттерны проектирования. — СПб.: Питер, 2009,368 стр.
23. ISO/IEC 9126-1:2001. Software engineering — Software product quality — Part 1: Quality model, 2001.
24. ISO/IEC 9126-2:2003 Software engineering — Product quality — Part 2: External metrics, 2003.
25. ISO/IEC 9126-3:2003 Software engineering — Product quality — Part 3: Internal metrics, 2003.
26. ISO/IEC 9126-4:2004 Software engineering — Product quality — Part 4: Quality in use metrics, 2004.
27. Липаев B.B. Качество программных средств Методические рекомендации. Под общей ред. проф., д.т.н. А.А.Полякова. М: Янус-К, 2002, 400 стр.
28. McCall J., Richards PP., Walters G. Factors in Software Quality. US Rome Air Development Center Reports NTIS AD-A049-014, AD-A049-015, AD-A049-055, 1977.
29. Боэм Б., Браун Дж., Каспар X., Липов М., Мак-Леод Г., Мерит М. Характеристики качества программного обеспечения. М.: Мир, 1981. 208 стр.
30. Boehm B.W. Software risk management. NJ: IEEE Press, 1989, 495 p.
31. Grady R., Caswell D. Software metrics: establishing a company-wide program, NJ, Prentice-Hall, 1987, 288 pp.
32. Gilb Т., Principles of software engineering management, Addison-Wesley, 1988, 464 pp.
33. Keller S., Kahn L., Panara R. Specifying Software Quality Requirements with Metrics.//Systems and Software Requirements Engineering, IEEE Computer Society Press, 1990, pp. 145-163.
34. Wieringa R. Requirements Engineering: Problem Analysis and Solution Specification, Berlin, Springer, 2004, 769 pp.
35. Hyatt L.E., Rosenberg L.H. A Software Quality Model and Metrics for Identifying Project Risks and Assessing Software Quality.//Product Assurance Symposium and Software Product Assurance Workshop, Noordwijk, 1996, 209 pp.
36. Bianchi A., Caivano D., Visaggio G. Quality Models Reuse: Experimentation on Field.//Proceedings of the 26th IEEE Computer Software and Applications Conference, Oxford, 2002, pp. 535- 540.
37. Dromey R.G. Cornering the Chimera.//IEEE Software, vol. 20, 1996. pp. 33-43.
38. ГОСТ 28195-89. Оценка качества программных средств. Общие положения. ИПК Издательство стандартов, 2001.
39. Azuma М. SQuaRE: The next Generation of ISO/IEC 9126 and 14598 International Standards Series on Software Product Quality.//Proceedings of the European Software Control and Metrics Conference, London, 2001. pp. 337-346.
40. ISO/IEC 15939: Software Engineering Software Measurement Process, Geneva, International Organization for Standardization, 2002.
41. ISO/IEC, International Vocabulary of Basic and General Terms in Metrology (VIM), Geneva, International Organization for Standardization, 1993.
42. Olsina L. Web-site Quality Evaluation Method: a Case Study on Museums.//ICSE 99 -2 Workshop on Software Engineering over the Internet, Los Angeles, 1999, pp. 32-43.
43. Olsina L., Godoy D., Lafuente G., Rossi G. Quality Characteristics and Attributes for Academic Web Sites.//Web Engineering Workshop at WWW8, Toronto, 1999, pp. 6773.
44. Bansiya J., Davis C.G. A Hierarchical Model for Object-Oriented Design Quality Assessment./ЯЕЕЕ Trans. Software Eng. 28(1), 2002, pp. 4-17.
45. Losavio F., Chirinos L., Levy N., Ramdane-Cherif A. Quality Characteristics for Software Architecture. // Journal of Object Technology 2(2), 2003, pp. 133-150.
46. Fenton N.E., Pfleeger S.L. Software Metrics: A Rigorous and Practical Approach. Boston: PWS Publishing, 1998, pp. 638.
47. Zuse H., A Framework of Software Measurement, Walter de Gruyter & Co., 1997, 755 pp.
48. Horgan G., Khaddaj S., Forte PP. An essential views model for software quality assurance.//Project Control for Software Quality, Editors, Kusters R., Cowderoy A., HeemstraF., Veenendaal E., Shaker Publishing, 1999. pp. 387-396.
49. Dromey R.G. A Model for Software Product Quality. // IEEE Transactions on Software Engineering, 1995, pp. 146-162.
50. Ghezzi C., Jazayeri M., Mandrioli D. Fundamentals of software engineering, Prentice-Hall, New Jersey, 2003, pp. 563.
51. Wallmueller E. Software quality assurance: A quality approach, Prentice-Hall International, Hertfordshire, 1994, pp. 362.
52. Fitzpatrick R., Higgins C. Usable software and its attributes: A synthesis of software quality.//Proceedings of HCI'98 Conference, London, Springer, 1998, pp. 137-141.
53. Perry W. Effective methods for EDI quality assurance. New Jersey, Prentice-Hall, 1987, pp. 279.
54. Chung L., Nixon B. A., Yu E., Mylopoulos J. Non-Functional Requirements in Software Engineering, Kluwer Aceademic Publishers, 1999. pp. 472.
55. Tahvildari L. Quality-Driven Object-Oriented Re-engineering Framework. PHD thesis., Ontario, Electrical and Computer Engineering Waterloo, 2003, 276 pp.
56. Khaddaj S., Horgan G., Factors in Software Quality for Advanced Computer Architectures.// Proceedings of the ESCOM, 2001, pp. 437-442.
57. Меликян K.A., Хачатрян C.T., Тер-Акопов A.K. О корректности алгоритмических процедур обработки экспертных оценок качества программных средств.//ШРО-89, том 1, часть 1, стр. 622-624.
58. Дубенецкий В.А., Кузнецов А.Г., Рябов Ф.В. Проектирование функциональных спецификаций программ с использованием инструментального комплекса, построенного на основе ЭВМ. // INFO-89, том 1, часть 1, стр. 397-401.
59. Firesmith D.G. Engineering Security Requirements. // Journal of Object Technology № 2,2003, pp. 53-68.
60. Klein M., Kazman R. Attribute-based architectural styles. Pittsburgh, Technical Report, CMU/SEI-99-TR-022, Pittsburgh, SEI, 1999, 127 pp.
61. Lundberg L., Bosch J., Haeggander D., Bengtsson P. Quality Attributes In Software Architecture Design. // Proceedings IASTED Third Int'l Conf. Software Eng. and Applications, 1999, pp. 353-362.
62. Kazman R., Klein M. AT AM: Method for Architecture Evaluation. Technical Report, CMU/SEI-2000-TR-004, ESC-TR-2000-004, Pittsburgh, SEI, 2000, 112 pp.
63. Trendowicz A., Punter T. Quality Modeling for Software Product Lines. // Proceedings of 7th ECOOP Workshop on Quantitative Approaches in Object-Oriented Software Engineering, Darmstadt, 2003, pp. 173-179.
64. Kontio J. A case study in applying a systematic method for COTS selection. // Proceedings of the 18th international conference on Software engineering, IEEE Computer Society, 1996, pp. 201-209.
65. Buglione L., Abran V. A Quality Factor for Software.//Proceedings of the QUALITA99: Third International Multidisciplinary Congress in Quality and Reliability, 1999, pp. 335-344.
66. Basili V.R. Software modeling and measurement. The Goal-Question-Metric paradigm, Computer Science Technical Report, UMIACS-TR-92-96, 1992, 131 pp.
67. Briand L., Wuest J. Empirical Studies of Quality Models in Object-Oriented Systems, Advances in Computers № 56, 2002, pp. 12-33.
68. Khoshgoftaar T.M., Allen E.B. Predicting fault-prone software modules in embedded systems with classification trees. // Proceedings of the 4th IEEE International Symposium on High-Assurance Systems Engineering. 1999, pp. 173-179.
69. Tian J. Quality-evaluation models and measurements. // IEEE Software № 21, Los Alamitos, IEEE Computer Society Press, 2004, pp. 84- 91
70. Maiden N., Ncube C. Acquiring COTS Software Selection Requirements. // IEEE Software #15(2), Los Alamitos, IEEE Computer Society Press, 1998, pp. 46-56 .
71. Цаленко М.Ш., Шульгейфер Е.Г. Основы теории категорий М.: Наука, 1974, 256 стр.
72. ГолдблаттР. Топосы: Категорный анализ логики. М.: Мир, 1983, 487 стр.
73. Карпенко А.С. Логика на рубеже тысячелетий. // Логические исследования № 7, 2000, стр. 7-60.
74. Григорьянц А.А. Тензорное и дифференциальное исчисление в категориях и их применение в теории дифференциальных уравнений в частных производных.
75. Диссертация на соискание ученой степени кандидата физ.-мат наук, Ереванский Государственный Университет, 1999, 64 стр.
76. Гличев A.B. Прикладные вопросы квалиметрии, М.: Издательство стандартов, 1983, 84 стр.
77. Abran A., Seilami A. Initial Modeling of the Measurement Concepts in the ISO Vocabulary of Terms in Metrology. // Proceedings of the 10th International Workshop on Software Technology and Engineering Practice, 2002, 185-192 pp.
78. Abran A., Al-Qutaish R.E., Desharnais J. M., Habra N. An Information Model for Software Quality Measurement with ISO Standards. // Proceedings of the International Conference on Software Development (SWDC-REK), 2005, pp. 104-116.
79. Райхман Э.П. О квалиметрии. M.: Издательство стандартов, 1973, 172 стр.
80. ISO/IEC 14598-1:1999 Information Technology—Software Product Evaluation—Part 1: General Overview. Geneva, International Organization for Standardization, 1999.
81. ISO/IEC 14598-2:2000 Software Engineering—Product Evaluation—Part 2: Planning and Management, Geneva, International Organization for Standardization, 2000.
82. ISO/IEC 14598-3:2000 Software Engineering—Product Evaluation—Part 3: Process for Developers, Geneva, International Organization for Standardization, 2000.
83. ISO/IEC 14598-4:1999 Software Engineering—Product Evaluation—Part 4: Process for Acquirers, Geneva, International Organization for Standardization, 1999.
84. ISO/IEC 14598-5:1998 Information Technology—Software Product Evaluation—Part 5: Process for Evaluators, Geneva, International Organization for Standardization, 1998.
85. ISO/IEC 14598-6:2001 Software Engineering Product Evaluation - Part 6: Documentation of Evaluation Modules, Geneva, International Organization for Standardization, 2001.
86. Котов B.E., Сабельфельд B.K. Теория схем программ. М.: Наука, 1991 248 стр.
87. Яковлев Г.Н. Функциональные пространства Московский физико-технический институт (государственный университет) 2000, 128 стр.
88. Бураков В.В., Устюхин Н.В., Ковригин Д.А. Применение телемедицинских технологий в медицинской службе Вооруженных Сил Российской Федерации// Медицина и высокие технологии № 1, 2006, стр. 73-79.
89. Briand L.C., Bunse С., Daly J.W. A Controlled Experiment for Evaluating Quality Guidelines on the Maintainability of Object-Oriented Designs.//IEEE Transactions on Software Engineering, 27(6), 2001, pp. 513-530.
90. Briand L.C., Bunse C., Daly J.W., Differding C. An Experimental Comparison of the Maintainability of Object-Oriented and Structured Design Documents.//Empirical Software Engineering. An International Journal, 2(3), 1997, pp. 291-312.
91. Abreu F.B., Melo W. Evaluating the Impact of Object-Oriented Design on Software quality. // Proceedings of Symposium on Software Metrics METRICS, 1996, pp. 90-99.
92. Johnson R.E., Foote В. Designing reuseable classes.//Journal of Object-Oriented Programming, 1(2), 1988, pp. 22-35.
93. Riel A.J. Object-Oriented Design Heuristics. Addison-Wesley Professional, 1996, 400 pp.
94. Мейер Б. Объектно-ориентированное конструирование программных систем М.: Интернет-университет информационных технологий ИНТУИТ.ру, 2005, 1232 стр.
95. Martin R.C. Design Principles and Patterns. Object Mentor, 2000, 34 pp.
96. Liskov B. Data Abstraction and Hierarchy. ACM SIGPLAN Notices, 23(5), 1988, pp. 300-312.
97. Meyer B. Tools for a new culture Lessons from the design of the Eiffel libraries. // Communications of the ACM, Том 33, № 9, 1990, pp. 40-60.
98. Lieberherr K.J., Holland I.M. Assuring good style for object-oriented programming. // IEEE Software, 1989, pp. 38-48.
99. Фаулер M. Рефакторинг: улучшение существующего кода, М.: Символ-Плюс, 2008,432 стр.
100. Brown W.J., Malveau R.C., Brown W.H., McCormick H.W., Mowbray T.J. AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis. John Wiley and Sons, 1998, 156 pp.
101. Фаулер M. Архитектура корпоративных программных приложений. Пер. с англ. М.: Издательский дом Вильяме, 2006, 544 стр.
102. Ehrig Н., Pfender М., Schneider H.J. Graph grammars: an algebraic approach. // Proceedings of the 14th Annual IEEE Symposium on Switching and Automata Theory, 1973, pp. 167-180.
103. Kreowski H.J., Kuske S. On the interleaving semantics of transformation units a step into GRACE. // Proceedings of the 5th Int. Workshop on Graph Grammars and their Application to Computer Science, 1994, pp. 89-106.
104. Ehrig H., Engels G. Pragmatic and semantic aspects of a module concept for graph transformation systems. // Proceedings of the 5th Int. Workshop on Graph Grammars and their Application to Computer Science, 1994, pp. 137-154.
105. Taentzer G., Schuerr A. DIEGO, another step towards a module concept for graph transformation systems. // Proceedings of SEGRAGRA Graph Rewriting and Computation, Electronic Notes of TCS, № 2, 1995, pp. 121-128.
106. Parisi-Presicce F. Transformation of graph grammars. // Lect.Notes in Comp. Sei. 1073, Springer-Verlag, 1996, pp.428-442.
107. Heckel R., Corradini A., Ehrig H., Loewe M. Horizontal and vertical structuring of typed graph transformation systems. // Mathematical Structures in Computer Science, № 6, 1996, pp. 613-648.
108. Pfaltz J.L., Rozenfeld A. Web Grammars. // Proceedings of International Joint Conference on Artificial Intelligence, Washington, 1969, pp. 609-619.
109. Montanari U.G. Separable Graphs, Planar Graphs and Web Grammars. // Proceedings of the Inf. Contr. 16, 1970, pp. 243-267.
110. Ehrig H., Habel A. Graph grammars with application conditions. G. Rozenberg and A. Salomaa, editors, The Book of L, Springer-Verlag, 1986, pp. 87-100.
111. Habel A., Heckel R., Taentzer G. Graph grammars with negative application conditions. // Fundamenta Informaticae № 26, 1996, pp.287-313.
112. Heckel R., Wagner A. Ensuring Consistency of Conditional Graph Grammars A Constructive Approach. Lecture Notes in Theoretical Computer Science 1, Elsevier Science, 1995, pp. 314-342.
113. Heckel R. Algebraic Graph Transformations with Application Conditions. Dissertation, Technische Universität Berlin, 1995, 178 pp.
114. Ehrig H. Introduction to the algebraic theory of graph grammars. // Graph-Grammars and Their Application to Computer Science and Biology, volume 73 of Lecture Notes in Computer Science, Springer-Verlag, 1979, pp. 1-69.
115. Lowe M. Algebraic Approach to Single-Pushout Graph Transformation. // Theoretical Computer Science 109, 1993, pp. 181-224.
116. Schurr A. PROGRES for Beginners. Department of Computer Science, Aachen University of Technology, 1997,215 pp.
117. Loewe M. Extended Algebraic Graph Transformations. PhD thesis, // TCS (109), Technical University of Berlin, 1990, pp. 181-224.
118. Schurr A. Logic Based Programmed Structure Rewriting Systems. // Fundamenta Informaticae, Special Issue on Graph Transformations, 26 (3, 4), IOS Press, 1996, pp. 363-385.
119. Korff M. Minimality of derived rules in single pushout graph rewriting. Technical Report 94/10, Technical University of Berlin, 1994, 132 pp.
120. Ehrig H., Rosen B.K. Parallelism and concurrency of graph manipulations. // Theoretical Computer Science № 11, 1980, pp. 247-275.
121. Taentzer G. Towards synchronous and asynchronous graph transformations. // Special issue of Fundamenta Informaticae, vol.26, 1996, pp. 145-167.
122. Lucas C. Documenting Reuse and Evolution with Reuse Contracts. Ph. D. Dissertation, Department of Computer Science, Vrije Universiteit Brüssel, 1997, 216 pp.
123. Steyaert PP., Lucas C., Mens K., D'Hondt T. Reuse Contracts:Managing the Evolution of Reusable Assets. // Proceedings of OOPSLA, ACM SIGPLAN Notices, 31(10), ACM Press, 1996, pp. 268-286.
124. Hondt K.D. A Novel Approach to Architectural Recovery in Evolving Object-Oriented Systems. Ph. D. Dissertation, Department of Computer Science, Vrije Universiteit Brüssel, 1998, 187 pp.
125. Janssens D., Mens T. Abstract semantics for ESM systems. // Fundamenta Informaticae, 1996, pp. 315-339.
126. Ehrig H., Loewe M. Parallel and distributed derivations in the single-pushout approach. // Theoretical Computer Science., 1993. pp. 123-143.
127. Loewe M. Algebraic approach to single-pushout graph transformation. // Theoretical Computer Science. 1993, pp. 181-224.
128. Opdyke W.F., Johnson R.E. Creating abstract superclasses by refactoring. // Proceedings of 1993 ACM Computer Science Conference, ACM Press, 1993, pp. 6673.
129. Opdyke W.F. Refactoring object-oriented frameworks. Ph. D. Dissertation, University of Illinois at Urbana-Champaign, Technical Report UIUC-DCS-R-92-1759, 1992, 142 pp.
130. Tokuda L., Batory D. Evolving Object-Oriented Architectures with Refactorings. Technical Report, 1999, 123 pp.
131. Werner M.M. Facilitating Schema Evolution With Automatic Program Transformations. Ph. D. Dissertation, College of Computer Science of Northeastern University, 1999, 156 pp.
132. Мельников Ю.Б. Математическое моделирование: структура, алгебра моделей, обучение построению математических моделей: Монография. Екатеринбург: Уральское издательство, 2004, 384 с.
133. Руководство к своду знаний по управлению проектами. Третье издание. Американский национальный стандарт. ANSI/PMI 99-001-2004. Project Management Institute, Inc., 2004, 401 стр.
134. Stamatis D.H. Failure Mode and Effect Analysis: FMEA from Theory to Execution, ASQ Quality Press, 300 pp.
135. International Organization for Standardization. ISO 8402. Quality Management and Quality Assurance. Geneva: ISO Press, 1994.
136. ГОСТ Р ИСО 9004-2001. Системы менеджмента качества. Рекомендации по улучшению деятельности. М.: Издательство стандартов, 2001.
137. ГОСТ Р ИСО 9001-2001. Системы менеджмента качества. Требования. М.: Издательство стандартов, 2001.
138. Исикава К. Японские методы управления качеством: Сокр. пер. с англ. / Под. ред. А.В. Гличева. М.: Экономика, 1988. 215 стр.
139. ДемингУ.Э. Выход из кризиса. Тверь: Альба, 1994. 498 стр.
140. Лапидус В.А. Всеобщее качество (TQM) в российских компаниях / Гос. Ун-т управления, Нац. фонд подготовки кадров. М.: ОАО Типография «Новости», 2000, 432 стр.
141. Хэрри М., Шрёдер Р. 6 Sigma. Концепция идеального менеджмента. М.: ЭКСМО, 2003, 464 стр.
142. Пэнди П., Ньюмен Р., Кэвенег Р. Курс на Шесть Сигм. Пер. с англ., М.: Лори, 2002, 375 стр.
143. Chrissis М.В., Konrad М, Shrum S. CMMI: Guidelines for Process Integration and Product Improvement, Addison Wesley, 2003, 668 pp.
144. Bush M., Dunaway D. CMMI Assessments: Motivating Positive Change, Addison Wesley Professional, 432 pp.
145. Ahern D.M., Armstrong J., Clouse A., Ferguson J.R., Hayes W., Nidiffer K.E. CMMI SCAMPI Distilled Appraisals for Process Improvement, Addison Wesley Professional, 2005, 240 pp.
146. West M. Real Process Improvement Using the CMMI, Auerbach Publications, 2004, 275 pp.
147. Juran J. M. Juran on Leadership For Quality. Free Press, 1989. 384 pp.
148. Кросби Ф.Б. Качество и я. Жизнь бизнеса в Америке Рекламно-информационное агентство «Стандарты и качество», 2003, 264 стр.
149. Principles of Quality Costs: Principles, Implementation, and Use, Third Edition, ed. Jack Campanella, ASQ Quality Press, 1999, 219 pp.
150. Барабаш Ю.Л., и др. Вопросы статистической теории распознавания, Под ред. Б.В.Варского, М.: Советское радио, 1967, 400 стр.
151. Васильев В.И. Распознающие системы: Справочник. К.: Наукова думка, 1983, 230 стр.
152. Горелик А.Л., Скрипкин В.А., Методы распознавания, Изд. 2, М.: Высшая школа, 1984, 219 стр.
153. Дуда Р., Харт П. Распознавание образов и анализ сцен. / Пер.с англ., М.: Мир, 1978,510 стр.
154. Кузин Л.Т. Основы кибернетики. (Основы кибернетических моделей). Т.2. М.: Энергия, 1979, 584 стр.
155. Перегудов Ф.И., Тарасенко Ф.П., Введение в системный анализ, М.: Высшая школа, 1989, 367 стр.
156. Темников Ф.Е. и др., Теоретические основы информационной техники, М.: Энергия, 1979, 511 стр.
157. Ту Дж., Гонсалес Р., Принципы распознавания образов, /Пер.с англ., М.: Мир, 1978. 410 стр.
158. Уинстон П., Искусственный интеллект / Пер.с англ., М.: Мир, 1980. 520с.
159. Фу К. Структурные методы в распознавании образов. / Пер.с англ., М.: Мир, 1977. 320 стр.
160. ЦыпкинЯ.З. Основы информационной теории идентификации. М.: Наука, 1984. 520 стр.
161. Стрижов В.В. Согласование экспертных оценок при построении интегральных индикаторов. Диссертация на соискание ученой степени кандидата физико-математических наук. Москва, Вычислительный центр им. A.A. Дородницына РАН, 2002.
162. Чугунов Н.В. Методы учета неопределенности экспертных знаний. Диссертация на соискание ученой степени кандидата технических наук. Москва, Институт системного анализа РАН, 2006.
163. Кочин Д.Ю. Построение баз экспертных знаний для интеллектуальных обучающих систем. Диссертация на соискание ученой степени кандидата технических наук. Москва, Институт системного анализа РАН, 2006.
164. Бураков В.В. Управление качеством программных средств. // Информационно-управляющие системы № 5, 2009, стр. 43-47.
165. Бураков В.В. Оценка качества программных средств. // Авиакосмическое приборостроение №4, 2009, стр. 28-33.
166. Бураков В.В. Система управления качеством программных средств. // Авиакосмическое приборостроение №5, 2009, стр. 27-31.
167. Рыжиков Ю.И. Эффективность и эксплуатация программного обеспечения ЭЦВМ. Министерство обороны СССР, 1985, 264 стр.
168. Бураков В. В. Концептуальное моделирование качества программных средств // Авиакосмическое приборостроение № 7, 2008, стр. 54—60.
169. Бураков В.В. Модель качества программных средств. // Информационно-управляющие системы №2, 2009, стр. 75-78.
170. Бураков В. В. Формализация принципов проектирования программных средств //Авиакосмическое приборостроение № 8, 2008, стр. 13-18.
171. Бураков В.В. Способы формальной спецификации принципов проектирования ПС. // Информационно-управляющие системы №5, 2008 стр. 22-25.
172. Бураков B.B. Формальный базис оценки качества программных средств. // Известия вузов. Приборостроение №1, 2009, стр. 15-19.
173. Бураков В.В. Оценка качества программных средств. // Авиакосмическое приборостроение №4, 2009, стр. 28-33.
174. Бураков В. В. Методика оценки качества программных средств // Изв. вузов. Приборостроение Т. 51, № 1. 2009, стр. 35-41.
175. Бураков В. В. Формальный базис преобразований программных средств // Известия вузов России. Радиоэлектроника № 2. 2008 стр. 22-30.
176. Бураков В.В. Формализация процесса преобразований программного обеспечения // Управление и информатика в авиакосмических системах. Приложение к журналу Мехатроника, автоматизация, управление № 11, 2006, стр. 19-24.
177. Бураков В. В. Методика преобразования программных средств // Известия вузов России. Радиоэлектроника № 3, 2008, стр. 20-31.
178. Бураков В.В., Кузин В.А. Способ автоматизации процесса рефакторинга. // Информационно-управляющие системы, № 3, 2009, стр. 40-44.
179. Вилок Н.Г., Николаев А.Ю. Комплексная автоматизация военной медицины // Компьютер-Информ № 16, 2001, стр. 4-5.
180. БАЗИКМЕД прошел Госиспытания. // Компьютер-Информ № 9, 2005, 2 стр.
181. Бураков В.В. Управление качеством программных средств. Монография. Санкт-Петербургский государственный университет аэрокосмического приборостроения, 2009, 287 стр.
182. Sheetz S.D., Tegarden D.P., Monarchi D.E. Measuring object-oriented system complexity. // First Workshop on Information Technologies and Systems, 1991, pp. 285-307.
183. Kolewe R., Metrics in Object-Oriented Design and Programming. // Software Development, 1993, pp. 53-62.
184. Bansiya J., Davis C. Using QMOOD++ for object-oriented metrics. // Dr. Dobb's Journal, 1997.
185. Morris K.L. Metrics for Object-Oriented Software Development Environments, Master thesis, M.I.T., 1988, 89 pp.
186. Abreu F., Carapuca R. Candidate Metrics for Object Oriented Software within a Taxonomy Framework. // Journal of Systems and Software, Том 26, № 1, 1994, pp. 8796.
187. Harrison R. An Evaluation of the MOOD Set of Object-Oriented Software Metrics. // IEEE Transactions on Software Engineering, SE-24, Том 6, 1998, pp. 22-28.
188. Basili V.R., Briand L.C., Melo W.L. A Validation of Object-Oriented Design Metrics as Quality Indicators. // IEEE Transactions on Software Engineering, SE-22, Том 10, 1996, pp. 751-761.
189. Bellin D., Tyagi M., Tyler M. Object Oriented Metrics: An Overview. // CASCON, 1994, pp. 4-9.
190. Rosenberg L.H., Hyatt L.E. Software Quality Metrics for Object-Oriented Environments. // Unisys Government Systems, 1996, 20 pp.
191. Yap L.M., Henderson-Sellers B. Consistency considerations of object-oriented class libraries. Research report no 93/3 // Technical report, University of New South Wales, 1993.
192. McCabe T.J., Dreyer L.A. Testing an object-oriented application. // Journal of the Quality Assurance Institute, 1994, pp. 21-27.
193. Lorenz M., Kidd J. Object-Oriented Software Metrics. Prentice Hall, Englewood Cliffs, N.J., 1994. 146 pp.
194. Li W., Henry S. Object-oriented metrics that predict maintainability. // Journal of systems and software, 23(2), 1993, 111-122 pp.
195. Hitz M., Montazeri B. Measuring coupling in object-oriented systems. // Object Currents, 1(4), 1996. pp. 267-271.
196. Abounader J.R., Lamb D.A. A Data Model for Object-Oriented Design Metrics, External Technical Report ISSN-0836-0227-1997-409. Department of Computing and Information Science Queen's University Kingston, Ontario, Canada, 1997, 112 pp.
197. Basili V.R., Briand L.C., Melo W.L. A validation of object-oriented design metrics as quality indicators // IEEE Trans, on Software Eng., Tom 22, № 10, 1996. pp.751-761.
198. Briand, L., Devanbu, P., Melo, W. An Investigation into Coupling Measures for C++. // Proceedings of the 19th International Conference on Software Engineering, 1997, pp. 412-421.
199. Henderson-Sellers B. Object-oriented metrics: measures of complexity. Prentice Hall PTR, Upper Saddle River, New Jersey, 1996. 234 pp.
200. Abbott D.H., Korson T.D., McGregor J.D. A proposed design complexity for object-oriented development. Technical report, Clemson University, 1994. TR 94-105, 89 pp.
201. Neal R.D., Weistroffer H.R., Coppins R.J. An Improved Suite of Object Oriented Software Measures. // Journal of Computer Information Systems, XLVI(l), 2005, pp. 71-78.
202. Chidamber S.R., Kemerer C.F. A metrics suite for object-oriented design. // IEEE Transactions on Software Engineering, 20(6), 1994, pp. 476-493.
-
Похожие работы
- Принятие решений при оценивании знаний и управлении в интерактивной обучающей системе
- Математические модели и программный комплекс для оптимального оценивания потокораспределения в инженерных сетях
- Модель и алгоритм оценивания загруженности элементов корпоративной информационно-вычислительной системы в управлении промышленным предприятием
- Автоматизация многокритериального оценивания в слабоструктурированных предметных областях на основе е-портфолио
- Автоматизация многокритериального оценивания уровня сформированности профессиональных компетенций будущих специалистов
-
- Системный анализ, управление и обработка информации (по отраслям)
- Теория систем, теория автоматического регулирования и управления, системный анализ
- Элементы и устройства вычислительной техники и систем управления
- Автоматизация и управление технологическими процессами и производствами (по отраслям)
- Автоматизация технологических процессов и производств (в том числе по отраслям)
- Управление в биологических и медицинских системах (включая применения вычислительной техники)
- Управление в социальных и экономических системах
- Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
- Системы автоматизации проектирования (по отраслям)
- Телекоммуникационные системы и компьютерные сети
- Системы обработки информации и управления
- Вычислительные машины и системы
- Применение вычислительной техники, математического моделирования и математических методов в научных исследованиях (по отраслям наук)
- Теоретические основы информатики
- Математическое моделирование, численные методы и комплексы программ
- Методы и системы защиты информации, информационная безопасность