автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.01, диссертация на тему:Мониторинг качества объектно-ориентированного программного обеспечения на этапе проектирования

кандидата технических наук
Морозов, Александр Васильевич
город
Астрахань
год
2009
специальность ВАК РФ
05.13.01
Диссертация по информатике, вычислительной технике и управлению на тему «Мониторинг качества объектно-ориентированного программного обеспечения на этапе проектирования»

Автореферат диссертации по теме "Мониторинг качества объектно-ориентированного программного обеспечения на этапе проектирования"

На правах рукописи

МОРОЗОВ АЛЕКСАНДР ВАСИЛЬЕВИЧ

МОНИТОРИНГ КАЧЕСТВА ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ НА ЭТАПЕ ПРОЕКТИРОВАНИЯ

м

05.13.01 - Системный анализ, управление и обработка информации (промышленность, информатика)

АВТОРЕФЕРАТ

диссертации на соискание ученой степени кандидата технических наук

Астрахань - 2009

003464512

Работа выполнена в ФГОУ ВПО «Астраханский государственный технический университет»

Научный руководитель:

кандидат технических наук, доцент Лаптев Валерий Викторович

Официальные оппоненты: доктор технических наук, профессор

Заболеева-Зотова Алла Викторовна

кандидат технических наук, доцент Эрман Евгений Анатольевич

Ведущая организация:

Санкт-Петербургский государственный электротехнический университет

Защита состоится 10 апреля 2009 г. в 15 часов 00 минут на заседании диссертационного совета Д.307.001.06 при Астраханском государственном техническом университете по адресу: 414025, г. Астрахань, ул. Татищева 16, ауд. 305

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

С диссертацией можно ознакомиться в библиотеке Астраханского государственного технического университета.

Автореферат разослан « ? » марта 2009 г.

Ученый секретарь диссертационного совета

сгу-

И.Ю.Квятковская

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

Актуальность темы. В настоящее время разработка программ превратилась в индустрию производства программ, и процесс разработки в значительной степени автоматизирован. Тем не менее, исследования, регулярно проводимые компанией Standish Group, показывают, что за 10 лет с 1995 по 2004 год доля успешных проектов, уложившихся в бюджет и сроки, увеличилась всего на 4 процента -— с 27% до 31%. При этом около 50% всех разрабатываемых программных проектов не укладываются в отведенные сроки или бюджет, а более 20% и вовсе отменяются из-за нерентабельности дальнейшей разработки. Кроме того, согласно данным той же компании, чем дороже разрабатываемый проект, тем меньше вероятность его успешного завершения. Таким образом, в отрасли программной индустрии, связанной с разработкой программного обеспечения, наблюдаются серьезные проблемы: большие программные проекты повсеместно и постоянно выходят за рамки бюджета и установленные сроки. ' '

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

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

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

Вопросами анализа качественных характеристик программного проекта занимались многие ученые как у нас в стране, так и за рубежом: Боем Б., Альбрехт А., Демарко Т., Майер И., Мейерс Г., Тейер Т., Липов М. Маккейб Ф., Чидембер Ш., Лоренц М., Кидд Дж., Парнас Д., Буч Г.,

Рамбо Дж., Джейкобсон А. В.В. Липаев, Изосимов А.П., A.A. Саркисян, К. К. Рыжко, Кулаков В.В., Орлов С.А., Заболеева-Зотова A.B.

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

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

Объектом исследования является проект объектно-ориентированного программного продукта (ООПП) как сложная система.

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

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

Поставленная цель достигается решением следующих задач:

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

2. Разработать обобщенную метамодель проекта ООПП и ее качественные характеристики, определить характер их связи с основными объектно-ориентированными метриками.

3. Разработать способы автоматической генерации модели проекта ООПП на различных этапах процесса разработки.

4. Разработать метод опрделения качественных характеристик проекта ООПП.

5. Исследовать эффективность применения метода определения качественных характеристик ООПП для автоматизации рефакторинга и определения компетенций разработчиков.

6. Спроектировать и реализовать систему поддержки принятия решений процесса разработки ООПП.

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

Научная новизна состоит в следующем:

1. Разработана обобщенная метамодель проекта ООПП, построенная на принципах семантического единообразия

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

2. Предложен метод определения качественных характеристик элементов проекта ООПП на основе аппарата нечетких нейронных сетей Ванга-Менделя.

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

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

Практическая ценность работы:

1. Разработано программное обеспечение системы поддержки принятия решений (СППР) процесса разработки ООПП, реализующее мониторинг качественных характеристик проектной модели ООПП.

2. Использование разработанной СППР позволило повысить эффективность разработки программного обеспечения и снизить затраты на создание программных модулей автоматизированной системы управления вузом (АСУ ВУЗ).

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

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

Апробация научных результатов. Основные положения докладывались и обсуждались на Всероссийской научно-практической конференции «1Т-инновации в образовании», Международной научной конференции «Математические методы в технике и технологиях» -ММТТ-18 и ММТТ-20, 51-ой научно-практической конференции профессорско-преподавательского состава Астраханского

государственного технического университета», Международной научно-практической конференция «Информационные технологии в образовании, науке и производстве», Международной научно-практической конференции «Эволюция системы научных коммуникаций Ассоциации университетов Прикаспийских государств».

Публикации. Основные положения диссертационной работы отражены в 13 опубликованных научных работах, среди которых 2 статьи

в журналах, рекомендованных ВАК, 1 свидетельство о регистрации программы для ЭВМ и 10 публикаций в сборниках международных научных конференций.

Структура и объем работы. Диссертационная работа состоит из введения, пяти глав основного текста, заключения, списка литературы из 105 наименований и 2 приложений. Объем работы 131 страница машинописного текста, который включает 21 рисунок, 12 таблиц и 30 формул.

СОДЕРЖАНИЕ РАБОТЫ

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

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

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

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

Среди методов оценки сложности реализации программных проектов можно выделить следующие широко применяемые в настоящее время: методы СОСОМО и СОСОМОII, разработанные Б. Боэмом, разработанный А. Альбрехтом метод IFPUG, метод МК II FPA, разработанный Ч. Саймоном, Feature Points, разработанный К.Джонсом. Однако основное назначение этих методов состоит в предварительном определении трудоемкости разработки проекта, и судить о качестве

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

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

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

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

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

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

Таблица 1.

Термы переменной сложность изменения (уо!аШу)_

№ Название терма Определение терма

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

2 Проект трудно изменяем При изменении программного продукта меняется больше старого кода, чем добавляется нового

3 Проект изменяем При изменении программного продукта добавляется больше нового кода, чем изменяется старого

4 Проект легко изменяем При изменении программного продукта меняется больше старого кода, чем добавляется нового

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

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

На основе проведенного семантического анализа основных элементов проекта были выявлены сущности и связи между ними, установлены соответствия между понятиями в различных элементах и построена единая метамодель элементов проекта. Сущности метамодели и связи между ними в нотации диаграммы классов языка 11МЬ 2.0 показаны на рис. 1.

Рис. 1. Метамодель проекта ООПП Основными понятиями, отраженными в метамодели, являются: решение (solution), программный проект (project), пространство имен (namespace), тип данных (datatype), классы (class), структуры (structure), элементы данных (data member), функции-члены (function member), операторы (operator) и объявления локальных переменных (declaration).

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

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

программного продукта на основе диаграмм UML, представленных в формате XMI, на основе исходного кода на императивных объектно-ориентированных языках программирования и на основе скомпилированных исполняемых файлов с использованием механизмов рефлексии и декомпиляции.

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

Задачу определения качественных характеристик ООПП можно сформулировать как задачу нечеткой классификации системы, представленной вектором характеризующих ее метрических показателей (1).

Y — \Усри<'Утъ'Умтт1'У1гск>Укса)= - {^CFLX (X)'FriTL w ' Fimtí FWCK C^0> Frccl Í^O}

где

Х- вектор метрических показателей

Fy(X) - функция для вычисления характеристики у на основе вектора метрических показателей.

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

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

1. Правила, реализуемые сетью, выражены в виде MISO:

Я,: ЕСЛИ х, есть A¡¡ И ... И Xj есть A¡¡ И ... И хт есть A¡m ТО у есть B¡

2. Входные переменные являются четкими значениями метрических показателей.

3. Функции принадлежности всех нечетких множеств представляются функцией Гаусса (2).

I ь )

р{х) = е^ь> (2)

4. Нечеткая импликация выражается как нечеткое произведение.

5. Т-норма (пересечение) выражено нечетким произведением.

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

7. Дефаззификация осуществляется методом среднего центра.

В работах Л. Ванга показано, что вычислительная схема применяемой нечеткой нейронной сети может быть представлена выражением (3).

ы

£Пехр ы У-1 -м|

где

ау, Ьу - коэффициенты термов входных переменных с,- - позиции центров термов выходных переменных х] - значение входной переменной

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

Слой 1 Спой 2 Слой 3 Слой 4

Слой 1 выполняет фаззификацио входных переменных лг/...хт. Элементы этого слоя принимают на вход четкие значения переменных и вычисляют значения функций принадлежности. Количество нейронов этого типа в сети соответствует сумме количества термов входных параметров модели.

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

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

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

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

Параметрическими слоями сети являются первый и третий слои, а настраиваемыми параметрами служат, соответственно, параметры термов посылок и заключений аф Ьу и с,-.

База правил для предлагаемой нечеткой нейросетевой модели строится на основе эвристической информации, получаемой от экспертов. На первом этапе построения определяются входные метрические показатели, используемые для анализа качества ООПП. Затем производится разбиение пространств входных и выходных переменных. Для каждой входной и выходной переменной должны быть определены максимальные и минимальные значения, ограничивающие область допустимых значений. Для метрических показателей максимальные и минимальные значения определяются, исходя из типа метрики: значения размерно-независимых метрик обычно лежат в диапазоне [0,1], для размерно-зависимых метрик определяют максимальное значение метрики. Для выходных качественных характеристик опорным множеством значений выбирается диапазон [0,1].

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

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

характеристике в соответствие ставится значение на шкале опорного множества характеристики.

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

Далее осуществляется генерация правил на основе обучающей выборки. Для этого для каждого примера определяются степени принадлежности заданных значений переменных к соответствующим нечетким множествам. После чего каждому обучающему примеру ставятся в соответствие те нечеткие множества, степени принадлежности к которым у соответствующих значений переменных из этого примера являются максимальными. Пары (входная переменная и нечеткое множество) объединяются через операцию «И». Получившееся правило добавляется в базу правил.

На третьем этапе производится оптимизация созданной базы правил. Поскольку сформированная на предыдущем этапе база правил наверняка будет избыточной, а также может содержать противоречащие друг другу правила — с одинаковыми предпосылками и разными заключениями, набор правил необходимо оптимизировать. Для этого все примеры обучающей выборки «предъявляются» каждому правилу, определенному в базе. В результате для каждого правила рассчитывается его рейтинг (4):

п =1Х Ю ■ ^А,Мк)У ■■■■ ^ Ю- Мв, (Л (4)

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

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

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

Выбор проектов для обучения сети

3

i

Расчет метрических показателей

Ï)

Экспертная оценка^

(5

Генерация базы правил

(=>а<

^Расчет рейтингов правил )

^Оптимизация базы правил^

|

^Адаптация нейронов Эего слоя

5

{ошибка < epsilon}

^Адаптация нейронов 1ого слрй^

Валидация обученной сети

Рис. 3. Алгоритм построения и обучения нечеткой нейронной продукционной сети анализа качественных характеристик ООПП. В четвертой главе рассматриваются способы определения некачественных элементов проекта ООПП и определения компетенций участников команды разработчиков на основе вычисленных качественных характеристик.

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

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

Таблица 2

Локализация проблемных элементов проектной модели._

Этап Элементы модели Задача

Проектирование Пространства имен Локализация проблемных связей между классами

Проектирование, кодирование Классы Локализация проблемных связей внутри класса

Кодирование Методы Локализация проблемных элементов класса

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

(5)

м

где

- результат работы сети Ванга-Менделя для определения

признака некачественного кода

М1 ~ функция степени принадлежности терма «некачественный

элемент»

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

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

Пусть Х-, - элементы проекта с номером версии г, Ст - вектор компетенций участника команды разработки т. Для элементов проекта актуальны все выводы, полученные в главе 2.

Вектор компетенций участника команды разработки будет представлен характеристиками, отражающими возможности участника команды по разработке с указанными в первой главе качественными характеристиками. Каждая компетенция будет представлена нечеткой переменной с двумя термами {ДОСТАТОЧНО, НЕДОСТАТОЧНО}. Область определения опорного множества нечетких переменных будет представлять собой отрезок [-1...+1]. Центры термов определены как 1 и -1 для «ДОСТАТОЧНО» и «НЕДОСТАТОЧНО» соответственно (рис. 4).

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

(б)

где

Ст- вектор компетенции разработчика т

Р - функция, определяющая компетенции разработчика на основе векторов влияния произведенных им изменений. 1т(ХьХ.,) - вектор факторов влияния на проект г изменения произведенного разработчиком т

Чч

\ к

\ \

-1 0 _____ 1

Рис. 4. Термы лингвистической переменной «компетенция разработчика»

Функция может быть вычислена на основе вектора

усредненных значений факторов влияния. Поскольку значения факторов влияния должны лежать в диапазоне [-1..1], усредненные их значения тоже лежат в этом диапазоне. Таким образом, функцию ^({7}) можно вычислить, используя функции принадлежностей термов лингвистической переменной «компетенция разработчика».

Для вычисления вектора факторов влияния на проект 1т(Х,Х,_;) г-ого изменения, произведенного т участником группы, можно применять различные подходы. Важно, чтобы факторы влияния выражались числом в диапазоне [-1, 1], близость к левой границе означала отрицательное влияние на проект, близость к правой границе - положительное влияние на проект, а абсолютная величина фактора отражала трудоемкость проведенного изменения.

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

Л = У и - Уи~\ (V)

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

¿»ООН. ЛУ}'У ' (8)

\} + И1{у\У>с1

где

i - номер терма лингвистической переменной качественной характеристики

Ci - центр соответствующего терма

Hi(y) - функция принадлежности терма качественной характеристики Предлагается вычислять значение фактора влияния на проект как отношение интеграла функции сложности изменений с пределами равными значениям дефаззифицированной качественной характеристики у цо и после изменений к общей площади под графиком(9):

Уч

fHD(y)dy

----(9)

\HD(y)dy

о

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

ЕСЛИ Сj есть Достаточно И ... И Q есть Недостаточно И ... И Ст есть Недостаточно ТО у есть 5,

Возможные термы заключений выражают возможные действия по управлению персоналом: «Нет действий», «Обучение без отрыва от производства», «Обучение с отрывом от производства», «Увольнение».

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

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

Настройка базы знаний системы производилась с использованием обучающей выборки с метриками, автоматически рассчитанными по 200 реальным проектам, среди которых были: ряд разработок отдела автоматизированных систем управления (АСУ) АГТУ, работы созданные студентами АГТУ в процессе курсового и дипломного проектирования, свободные программные продукты с открытым исходным кодом. Каждый проект был оценен экспертами (сотрудниками отдела АСУ и

преподавателями кафедры «Автоматизированные системы обработки информации и управления») по пяти предложенным параметрам качества. Итоговая ошибка обучения составила 5%.

Проверка достижения цели диссертационной работы была выполнена путем сопоставления результатов оценки качественных характеристик системой и экспертами на контрольной выборке, а также опытной эксплуатацией системы в отделе АСУ АГТУ. Контрольная выборка составлялась по тем же принципам, что и обучающая, на основе 50 проектов. Проверка однородности выборок производилась с использованием критерия Бартлетта. Максимальная ошибка обобщения построенной нечеткой нейронной сети составила 23,5 %. Результаты, полученные системой для некоторых проектов го контрольной выборки приведены в таблице 3.

Таблица 3.

Экспериментальные результаты по показателю сложность изменения

№ Название проекта Эксперт Система Ошибка ,%

1 МйЬепиНе 2.0 0,5 0,53 6,98

2 Log4Net 0,57 0,45 21,22

3 АСУ «Приемная комиссия» 0,7 0,76 8,37

4 АСУ «Рейтинг-контроль» 0,56 0,53 4,54

5 СИМ-система «Отдел ОДУ» 0,32 0,36 14,03

7 АСУ «Канцелярия» 0,55 0,59 7,45

Использование разработанной автоматизированной СППР позволило повысить эффективность разработки программного обеспечения и снизить затраты на создание программных модулей АСУ ВУЗ АГТУ в среднем на 30%. Предложенная СППР также используется в учебном процессе вуза при преподавании дисциплин «Технология программирования», «.NET программирование».

В приложениях приведены каталог объектно-ориентированных метрик использовавшихся для проектирования СППР; свидетельства о государственной регистрации программ для ЭВМ; акты о внедрении результатов научной работы.

ОСНОВНЫЕ РЕЗУЛЬТАТЫ И ВЫВОДЫ

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

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

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

процесс рефакторинга программного кода и проектных моделей ООПП.

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

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

6. Использование разработанной автоматизированной СППР позволило повысить эффективность разработки программного обеспечения и снизить затраты на создание программных модулей АСУ ВУЗ АГТУ в среднем на 30%.

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

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

1. Лаптев, В. В. Метод определения качественных характеристик объектно-ориентированного программного продукта / В. В. Лаптев, А. В. Морозов -«Научно-технические ведомости СПбГПУ» №6(69)/2008, с.147-153

2. Лаптев, В. В. Система поддержки принятия решений для эффективного управления командой разработчиков программного обеспечения / В. В. Лаптев, А. В. Морозов - Журнал научных публикаций аспирантов и докторантов, №8/2008 г.- с. 226 - 229

3. Морозов А. В. Формирование базы правил для системы автоматизированной оценки качественных характеристик объектно-ориентированных программных продуктов // Эволюция системы научных коммуникаций Ассоциации университетов Прикаспийских государств: Труды Международной научно-практической конференции. Астрахань: ООО «Типография «Нова», 2008г. - 316-318

4. Лаптев, В. В. Метамодель проекта объектно-ориентированного программного продукта / В. В. Лаптев, А. В. Морозов, Д. Л. Никоноров - Эволюция системы научных коммуникаций Ассоциации университетов Прикаспийских государств: Труды Международной научно-практической конференции. Астрахань: ООО «Типография «Нова», 2008г. — 295-298

5. Лаптев, В. В. Задача анализа качественных характеристик программного обеспечения / В. В. Лаптев, А. В. Морозов - Эволюция системы научных коммуникаций Ассоциации университетов Прикаспийских государств: Труды Международной научно-практической конференции. Астрахань: ООО «Типография «Нова»,. 2008г. —313-316

6. Лаптев, В. В. Методика оценки качественных характеристик

20 У>

проектной модели программного обеспечения / В. В. Лаптев, А. В. Морозов - Международная научно-практическая конференция "Информационные технологии в образовании, науке и производстве" 30 июня - 4 июля 2008г. Сборник трудов конференции, Серпухов, 2008. — с. 549-552.

7. Лаптев, В. В. Распределенная автоматизированная система оценки и анализа программного продукта / В. В. Лаптев, А. В. Морозов, К. Н. Туркина - Международная научно-практическая конференция "Информационные технологии в образовании, науке и производстве" 30 июня - 4 июля 2008г. Сборник трудов конференции, Серпухов, 2008. — с. 572-574.

8. Морозов, A.B. Оценка проектной модели ПС с использованием метрик. // 51-я научно-практическая конференция профессорско-преподавательского состава Астраханского государственного технического университета» В 2 т. /Астраханский государственный технический университет. - Астрахань: Изд-во АГТУ, 2007. - с. 52.

9. Морозов, A.B. Модели представления заданий в интеллектуальной обучающей системе // Математические методы в технике и технологиях — ММТТ-20. [Текст]: сб. трудов XX Междунар. науч. конф. В 10 т. Т.2. / под общ. ред. B.C. Балакирева. — Ярославль: Изд-во Яросл. гос. техн. ун-та, 2007. — с.248-250

Ю.Морозов, А. В. Автоматизированная система тестирования учебных npoipaMM студентов по методу черного ящика / А. В. Морозов, P.P. Ахмедишев, Г.А. Ильин - IT-инновации в образовании: Материалы Всероссийской научно-практической конференции, ПетрГУ.-Петрозаводск 2005

П.Морозов, А. В. Применение системы поддержки принятия решений при разработке программного обеспечения // Математические методы в технике и технологиях - ММТТ-18 Сб.трудов XVIII Международная научная конференция BIO т. Т.8./Изд-во Казанского государственного технического университета, Казань, 2005.-255 е., с.150-152

12. Морозов, A.B. Автоматизация оценки качества учебных проектов программных систем на основе метрик // Информационные технологии в образовании, технике, медицине 2004: Сборник статей. с.230-232

13. Автоматизированная система оценки характеристик проектов объектно-ориентированного программного обеспечения: Св. о per. прог. для ЭВМ № 2008611980, Россия, ООО «Ай Лабе / A.B. Морозов, К.Н. Туркина, В.В. Лаптев - Заявл. 8.04.2008, зарег. 21.04.2008

Подписано в печать Q6.D3 09*. . Формат 60x90/1 б. Гарнитура Times New Roman.

Усл. печ. л. 1,0. Тираж 100 экз. Заказ №_ ¿¡£¡¡2_

Отпечатано в типографии издательства ФГОУ ВПО «АГТУ».

414025, Астрахань, Татищева, 16.

Оглавление автор диссертации — кандидата технических наук Морозов, Александр Васильевич

Введение.

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

1.1 Процесс разработки программного обеспечения.

1.2 Задача мониторинга качества проекта на различных этапах разработки.

1.3. Виды качественных характеристик.

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

1.4.1 Методы оценки трудоемкости реализации проекта.

1.4.2 Методы определения внутренних качественных характеристик проекта.

1.4.3 Инструменты обеспечения внутреннего качества.

1.5 Постановка задачи автоматизированного мониторинга качественных характеристик ООПП.

Результаты и выводы к первой главе.

Глава 2. Метамодель объектно-ориентированного программного продукта.

2.1 Элементы проекта ООПП.

2.1.1 Язык UML.

2.1.2 Программный код на императивных языках программирования.

2.1.3 Исполняемые файлы.

2.2 Проектная метамодель ООПП.

2.3 Построение конкретной модели ООПП.

2.3.1 Построение модели ООПП на основе диаграмм UML.

2.3.2 Построение модели ООПП на основе программного кода.

2.3.3 Построение модели ООПП на основе исполняемых файлов.

2.3.4 Совместное использование элементов проекта для построения модели ООПП.

2.4 Расчет метрических показателей проекта на основе построенной модели.

Результаты и выводы ко второй главе.

Глава 3. Метод определения качественных характеристик ООПП на основе метрических показателей.

3.1 Определение качественных характеристик ООПП как задача нечеткой классификации.

3.2. Метод определения качественных характеристик объектно-ориентированной проектной модели на основе метрических показателей.

3.2.1 Основные положения метода определения качественных характеристик объектно-ориентированной проектной модели.

3.2.2 Модель нечеткой нейронной продукционной сети.

3.2.3 Структура нечеткой нейронной продукционной сети.

3.2.4 Формирование базы правил.

3.2.5 Обучение нечеткой продукционной нейронной сети.

3.2.6 Паралич нечеткой продукционной нейронной сети.

3.2.7 Общий алгоритм создания и обучения нечеткой нейросетевой модели.

3.3 Алгоритм определения качественных характеристик ООПП.

Результаты и выводы к третьей главе.

Глава 4. Определение некачественных элементов проекта ООПП и компетенций участников команды разработчиков на основе качественных характеристик.

4.1 Автоматизация рефакторинга.

4.2. Локализация некачественных элементов модели.

4.3. Семейство нечетких нейронных сетей для решения задач локализации проблемных элементов проектной модели.

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

4.5. Локализация проблем внутри команды.

4.6 Способ определения компетенций персонала.

4.7 Простой фактор влияния.

4.8 Интегральный фактор влияния.

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

Результаты и выводы к четвертой главе.

Глава 5 СИСТЕМА ПОДДЕРЖКИ ПРИНЯТИЯ РЕШЕНИЙ ПРИ РАЗРАБОТКЕ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММНОГО

ОБЕСПЕЧЕНИЯ.

5.1 Функциональные требования к СППР при разработке ООПП.

5.2. Физическая архитектура СППР.^.

5.3. Программное обеспечение СППР при разработке ООПП.

5.4. Настройка, обучение и верификация СППР.

Результаты и выводы к пятой главе.

Основные Результаты выводы по работе.

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

Отрасль программной индустрии, связанная с разработкой программного обеспечения, на сегодняшний момент испытывает проблемы. Большие программные проекты повсеместно и постоянно выходят за рамки бюджета и установленные сроки. Основная причина этого явления — сложность, присущая программному обеспечению (ПО). Сложность ПО обуславливается четырьмя основными причинами: сложностью предметной области, трудностью управления разработкой ПО, необходимостью обеспечить гибкость программ и отсутствием удовлетворительных средств описания функционирования дискретных систем. Борьба со сложностью определяет все развитие информационных технологий (ИТ), которые сами являются чрезвычайно сложной предметной областью[48,49].

Основу программной инженерии (software engineering) составляет одна фундаментальная идея: разработка ПО является формальным процессом, который можно изучать и улучшать[9]. Базовым понятием программной инженерии является понятие жизненного цикла ПО (ЖЦ ПО). Согласно стандарту ISO/IEC 12207 структура ЖЦ ПО базируется на трех группах процессов: основных, вспомогательных и организационных^]. Из основных процессов важнейшими являются два: разработка и сопровождение. Процесс разработки обычно состоит из нескольких этапов: анализ, формулирование требований, проектирование, программирование и тестирование. Сопровождение представляет собой процесс модификации системы, целью которого является исправление выявленных при эксплуатации ошибок, улучшение эксплуатационных характеристик и развитие системы. Из вспомогательных процессов к числу важнейших относятся процесс документирования и процесс обеспечения качества ПО. Самым важным организационным процессом является процесс управления разработкой.

Долгое время основные усилия исследователей были направлены на совершенствование процесса разработки ПО и его отдельных этапов. Первоначально внимание было направлено на совершенствование методов и средств программирования. В 60-е и 70-е годы было разработано множество разнообразнейших языков программирования — они воплощали различные парадигмы программирования: структурное, модульное, функциональное, объектно-ориентированное, компонентное, декларативное, аспектно-ориентированное программирование и другие. В настоящее время превалирующей парадигмой является объектно-ориентированное программирование[2,9,24].

Развивались и инструментальные средства разработки. Для облегчения труда программиста были созданы полезнейшие инструменты: мейкеры (maker), отладчики (debugger), профайлеры (profiler). Появление персональных компьютеров привело к революционным изменениям инструментальных средств: отдельные программы объединились в единую инструментальную среду разработки.

В 70-е и особенно в 80-е годы прошлого столетия основные усилия были направлены на разработку формализованных методов и средств проектирования ПО. Были разработаны и стандартизированы несколько графических языков, позволяющих представлять модели программ в виде различного рода схем или диаграмм. Самый известный из них — универсальный язык моделирования (Unified Modeling Language) — UML[48,49,50,51]. Этот язык ориентирован на разработку объектно-ориентированных моделей и к настоящему времени занимает доминирующее положение среди языков проектирования.

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

Успехи в формализации и автоматизации процесса проектирования ПО в сочетании с развитием СУБД более всего способствовали превращению процесса разработки ПО в программную инженерию.

Другие исследования касались качества процесса управления разработкой ПО. Так, была предложена пятиуровневая «модель зрелости процесса разработки» (Capability Maturity Model — СММ)[20]. Были предложены и опробованы несколько моделей ЖЦ ПО. В 90-е годы прошлого века началась активная разработка стандартов в области производства программного ПО.

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

Однако исследования, регулярно проводимые компанией Standish Group International, показывают, что прогресс не столь велик[1]. Около 47% всех разрабатываемых программных проектов не укладываются в отведенные сроки или бюджет, а 22% вовсе отменяются из-за не рентабельности дальнейшей разработки. Кроме того, согласно данным той же компании, чем дороже разрабатываемый проект, тем меньше вероятность его успешного завершения (рис. 1.).

0% 20% 40% 60% 80% 100%

0,44

HZZT-^ ZJ Ш m Ш I I И

- ^-1-1-1-1-r $10млн. $6-10млн. 53-бмлн. $750000- <$750000

Змлн.

Рис. I. Данные компании Standish Group International по индустрии разработки программного обеспечения на 2004 год.

Серьезные исследования зарубежных авторов, проводимые с начала 70х годов, свидетельствуют о том, что большинство проблем программного проекта - суммарно до 80% всех временных и финансовых потерь — возникает из-за ошибок в менеджменте и лишь 20% — по причинам технического характера. Ошибки менеджмента в свою очередь вытекают в основном из-за не правильной оценки трудозатрат во время планирования проекта и трудностей с отслеживанием качественных характеристик при его реализации[7].

Стандартным выходом при решении подобного рода проблем является привлечение внешних консультантов для анализа качества и трудозатрат по выполнению проектов [7,12]. Обычно независимые консультанты или консалтинговые компании проводят комплексное исследование одного из модулей системы и на основе полученных данных дают рекомендации по дальнейшему ведению проекта. Главным недостатком такого подхода является его дороговизна - консалтинговые услуги могут стоить до 30-40% от стоимости разработки. Кроме того, к услугам такого рода прибегают обычно уже при наличии определенных проблем в проекте.

Вопросами анализа качественных характеристик программного проекта занимались многие ученые как у нас в стране, так и за рубежом: Боем Б., Альбрехт А., Демарко Т., Майер И., Мейерс Г., Тейер Т., Липов М. Маккейб Ф., Чидембер Ш., Лоренц М., Кидд Дж., Парнас Д., Буч Г., Рамбо Дж., Джейкобсон

50% 40% 30% 20% 10% 0%

А. В.В. Липаев, Изосимов А.П., А.А. Саркисян, К. К. Рыжко, Кулаков В.В., Орлов С.А., Заболеева-Зотова А.В.

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

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

Объектом исследования является проект объектно-ориентированного программного продукта (ООПП) как сложная система.

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

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

2. Разработать обобщенную метамодель проекта ООПП и ее качественные характеристики, определить характер их связи с основными объектно-ориентированными метриками.

3. Разработать способы автоматической генерации модели проекта ООПП на различных этапах процесса разработки.

4. Разработать метод опрделения качественных характеристик проекта ООПП.

5. Исследовать эффективность применения метода определения качественных характеристик ООПП для автоматизации рефакторинга и определения компетенций разработчиков.

6. Спроектировать и реализовать систему поддержки принятия решений процесса разработки ООПП.

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

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

2. Предложен метод определения качественных характеристик элементов проекта ООПП на основе аппарата нечетких нейронных сетей Ванга-Менделя.

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

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

1. Разработано программное обеспечение системы поддержки принятия решений (СППР) процесса разработки ООПП, реализующее мониторинг качественных характеристик проектной модели ООПП.

2. Использование разработанной СППР позволило повысить эффективность разработки программного обеспечения и снизить затраты на создание программных модулей автоматизированной системы управления вузом (АСУ ВУЗ).

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

Личный вклад автора.

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

Апробация научных результатов. Основные положения докладывались и обсуждались на всероссийской научно-практической конференции IT-инновации в образовании, международной научной конференции Математические методы в технике и технологиях - ММТТ-18 и ММТТ-20, 51-ой научно-практической конференции профессорско-преподавательского состава Астраханского государственного технического университета», международной научно-практической конференция «Информационные технологии в образовании, науке и производстве», международной научнопрактической конференции «Эволюция системы научных коммуникаций Ассоциации университетов Прикаспийских государств».

Публикации. Основные положения диссертационной работы отражены в 13 опубликованных научных работах, среди которых 2 статьи в журналах рекомендованных ВАК, 1 свидетельство о регистрации программы для ЭВМ и 10 публикаций в сборниках международных научных конференций.

Структура и объем работы. Диссертационная работа состоит из введения, пяти глав основного текста, заключения, списка литературы из 105 наименований и 2 приложений. Общий объем работы 131 страниц машинописного текста, который включает 21 рисунков, 12 таблиц и 30 формул.

Заключение диссертация на тему "Мониторинг качества объектно-ориентированного программного обеспечения на этапе проектирования"

ОСНОВНЫЕ РЕЗУЛЬТАТЫ ВЫВОДЫ ПО РАБОТЕ

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

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

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

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

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

6. Использование разработанной автоматизированной СППР позволило повысить эффективность разработки программного обеспечения и снизить затраты на создание программных модулей АСУ ВУЗ АГТУ в среднем на 30%.

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

Библиография Морозов, Александр Васильевич, диссертация по теме Системный анализ, управление и обработка информации (по отраслям)

1. Standish Group 1.t. CHAOS Report 2007 My Life is Failure: The Laws of CHAOS / Standish Group Int. : https://secure.standishgroup.com/reports

2. Амблер, С. Гибкие технологии: экстремальное программирование и унифицированный процесс разработки / С. Амблер Спб: Питер, 2005 -412 с.

3. Ауэр, К. Экстремальное программирование: постановка процесса. / К. Ауэр, Р. Миллер Спб: Питер, 2004 - 368 с.

4. Бек, К. Экстремальное программирование: планирование / К. Бек, М. Фаулер Спб: Питер, 2003 - 144 с.

5. Гецци, К. Основы инженерии программного обеспечения. 2-е изд. / К. Гецци, М. Джазайери, Д. Мандриоли — СПб.: БХВ-Петербург, 2005. -832 с.

6. Брукс, Ф. Мифический человеко-месяц, или Как создаются программные системы / Ф. Брукс М: Символ-Плюс, 2007 - 304 с.

7. Фатрелл, Р.Т. Управление программными проектами / Р.Т. Фатрелл, Д.Ф. Шафер, Л.И. Шафер М: Вильяме, 2004 - 1134 с.

8. Гласс, Р. Факты и заблуждения профессионального программирования. / Р. Гласс СПб.: Символ-Плюс, 2007. - 240 с.

9. Орлов, С.А. Технологии разработки программного обеспечения / С. Орлов Спб: Питер, 2004 - 464 с.

10. Ю.Изосимов, А.В. Метрическая оценка качества программ / А.В. Изосимов,

11. А.Л. Рыжко М: МАИ, 1989 - 96 с. П.Саркисян, А. А. Повышение качества программ на основеавтоматизированных методов. / А.А. Саркисян М: Радио и связь, 1991. 12.Маейрс Г. Надежность программного обеспечения / Г. Майерс - М.: Мир, 1980-575 с.

12. Боэм, Б. Характеристики качества программного обеспечения / Б.Боэм, Дж. Браун, X. Каспар и др. М.: Мир, 1981 - 206 с.

13. Липаев, В.В. Качество программного обеспечения / В.В. Липаев — М.: Финансы и статистика, 1983 264 с.

14. Липаев, В.В. Выбор и оценивание характеристик качества программных средств. Методы и стандарты. /В.В. Липаев М.: Синтерг, 2001 - 228 с.

15. Холстед, М.Х. Начало науки о программах. / М.Х. Холстед М.: Финансы и статистика, 1981 - 128 с.

16. Кулаков А.Ф. Оценка качества программ ЭВМ. / А.Ф. Кулаков Киев: Техника, 1984-167 с.

17. Тейер, Т. Надежность программного обеспечения. / Т.Тейер, М. Липов, Э. Нельсон М.: Мир, 1981 - 323с.

18. М. Зелковиц Принципы разработки программного обеспечения. / М. Зелковиц, А. Шоу, Дж. Гэннон М.: Мир, 1982 - 368 с.

19. The Capability Maturity Model: Guidelines for Improving the Software Process / Carnegie Mellon University/Software Engineering Institute, Reading, MA: Addison-Wesley, 1995.

20. Lanza, M., Object-Oriented Metrics in Practice / M. Lanza, R. Marinescu -Springer-Verlag Berlin Heidelberg, 2006 204 c.

21. Rosenberg, L.H. Applying and Interpreting Object Oriented Metrics / L. Rosenberg:http://satc.gsfc.nasa.gov/support/STCAPR98/applyoo/applyoo.h tml

22. Albreht, A.J. Software function, source lines of code and development effort production: A Software Science Validation / A. Albreht IEEE Transactions on Software Engineering №9, 1983 - c. 639-647

23. Грэхем, И. Объектно-ориентированные методы. Теория и практика. 3-е издание/ И. Грэхем М: Издательский дом: «Вильяме», 2004 - 880с.

24. Alshayeb, М. An Empirical Validation of Object-Oriented Metrics in Two Different Iterative Software Processes. / M. Alshayeb, W. Li / IEEE Transactions on Software Engineering, 29(2003)11, c. 1043-1049

25. Beyer, D. Impact of Inheritance on Metrics for Size, Coupling, and Cohesion in Object-Oriented Systems. / D. Beyer, C. Lewerentz, F. Simon Dumke/Abran: New Approaches in Software Measurement, LNCS 2006, Springer Publ., 2001, c. 1-17

26. Chidamber, S.R. A Metrics Suite for Object Oriented Design. / S.R. Chidamber, C.F. Kemerer CISR Working Paper No. 249, M.I.T., Cambridge, February 1993

27. Doake, J. Amber Metrics for the Testing and Maintenance of Object-Oriented Designs. / J. Doake, I. Duncan Proc. of the CSMR'98, March 8-11, Florence, Italy, c. 205-208

28. Emam, К. E. A Primer on Object-Oriented Measurement. / К. E. Emam, Pro. of the Seventh International Software Metrics Symposium METRICS 2001, April 2001, London, c. 185-188

29. Gillibrand, D. Quality Metrics for Object-Oriented Design. / D. Gillibrand, K. Liu JOOP, January 1998, c. 56-59

30. Hitz, M. Measuring Product Attributes of Object-Oriented Systems. / M. Hitz, B. Montazeri Proc. of the ESEC'95, September 1995, Barcelona, c. 124-136

31. Li, W. Measuring Object-Oriented Design. / W. Li, S. Henry, D. Kafura, R.Schulman JOOP, July/August 1995, c. 48-55

32. Schmietendorf, A. Metrics of Object-Oriented Software Development Technologies MOSET. / A. Schmietendorf, Metrics News, 2(1997) 2, c. 2332

33. Simon, F. Distance Based Cohesion Measuring. / F. Simon, S. Loffler, C. Lewerentz Proc. of the FESMA'99, Amsterdam, Netherlands, October 1999, c. 69-83

34. Whitmire, S.A. Object-Oriented Design Measurement. / S.A. Whitmire John Wiley & Sons Inc., 1997 452 c.

35. Лаптев, В. В. Метод определения качественных характеристик объектно-ориентированного программного продукта / В. В. Лаптев, А. В. Морозов -«Научно-технические ведомости СПбГПУ» №6(69)72008, с. 147-153

36. Лаптев В. В., Морозов А. В. Система поддержки принятия решений для эффективного управления командой разработчиков программного обеспечения / В. В. Лаптев, А. В. Морозов Журнал научных публикаций аспирантов и докторантов, №8/2008 г.- с. 226 - 229

37. Морозов А.В. Автоматизация оценки качества учебных проектов программных систем на основе метрик // Информационные технологии в образовании, технике, медицине 2004: Сборник статей, с.230-232

38. Буч, Г. Объектно-ориентированный анализ и проектирование с примерами приложений / Г. Буч, Р. Максимчук, М. Энгл, Б. Янг и др. -М: Издательский дом: «Вильяме», 2008 720 с.

39. Буч, Г. Язык UML. Руководство пользователя / Г. Буч, Дж. Рамбо, И. Якобсон М: «ДМК пресс», 2007 - 496 с.

40. Фаулер, М. UML. Основы, 3-е издание. / М. Фаулер СПб.: Символ

41. Плюс, 2007.- 192 с 51-Богтс М. UML и Rational Rose. / М. Богтс, У. Богтс — М.: ЛОРИ, 2000. -582 с.

42. Боуэм, Б. Инженерное проектирование программного обеспечения / Б. Боуэм М: Радио и связь, 1985 - 512 с.

43. Фаулер, М. UML. Основы / М. Фаулер М: «Символ-Плюс», 2006 - 192 с. 5 4. Фаулер, М. Архитектура корпоративных программных приложений / М.

44. Фаулер М: Издательский дом: «Вильяме», 2007 - 544 с.

45. Фаулер, М. Рефакторинг. Улучшение существующего кода / М. Фаулер -М: «Символ-Плюс», 2008 432 с.

46. Кериевски, Дж. Рефакторинг с использованием шаблонов / Дж. Кериевски М: Издательский дом: «Вильяме», 2006 - 400 с.

47. Гамма, Э. Приемы объектно-ориентированного проектирования. Паттерны проектирования. / Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес Спб: Питер, 2007 - 366 с.

48. Влиссидес, Дж. Применение шаблонов проектирования: дополнительные штрихи / Дж. Влиссидес М: Издательский дом: «Вильяме», 2003 - 144с.

49. Кориевски, Д. Рефакторинг с использованием шаблонов./ Д. Кориевски

50. М.: ООО «И.Д. Вильяме», 2006. — 400 с.

51. Мессарош, Д. Шаблоны тестирования xUnit: рефакторинг кода тестов./ Д. Мессарош — М.: ООО «И.Д. Вильяме», 2009. — 832 с.

52. Амблер, С. Рефакторинг баз данных. Эволюционное проектирование. / С. Амблер, П. Садаладж — М.: «И.Д. Вильяме», 2007. — 368 с.

53. Мейер, Б. Объектно-ориентированное конструирование программных систем / Б. Мейер М: «Русская редакция», 2005 - 1204 с.

54. Макконнелл, С. Совершенный код / С. Макконнелл Спб: Питер, 2007 -896 с.

55. Ларман, К. Применение UML 2.0 и шаблонов проектирования / К. Ларман- М: Издательский дом: «Вильяме», 2008 736 с.

56. Гринфилд, Дж. Фабрики разработки программ. Потоковая сборка типовых приложений, моделирование, структуры и инструменты / Дж. Гринфилд, К. Шорт М: Издательский дом: «Вильяме», 2008 - 592 с.

57. Нильссон, Дж. Применение DDD и шаблонов проектирования. Проблемно-ориентированное проектирование приложений с примерами на С# и .NET / Дж. Нильссон М: Издательский дом: «Вильяме», 2008 — 560 с.

58. Бек, К. Шаблоны реализации корпоративных приложений / К. Бек М: Издательский дом: «Вильяме», 2008 - 176 с.

59. Дюваль, П. Непрерывная интеграция. Улучшение качества программного обеспечения и снижение риска / П. Дюваль, С. Матиас и Э. Гловер М: Издательский дом: «Вильяме», 2008 - 240 с.

60. Хоп, Г. Шаблоны интеграции корпоративных приложений / Г. Хоп, Б. Вульф М: Издательский дом: «Вильяме», 2007 - 240 с.

61. Брауде, Э. Технология разработки программного обеспечения / Э. Брауде Спб: Питер, 2004 - 655 с.

62. Вигерс, К. Разработка требований к программному обеспечению / К. Вигерс М: Издательский дом: «Русская редакция», 2004 - 576 с.

63. Макконнелл, С. Остаться в живых. Руководства для менеджера программных проектов / С. Макконнелл Спб: Питер, 2006 - 240 с.

64. Макконнелл, С. Профессиональная разработка программного обеспечения / С. Макконнелл Спб: Питер, 2006 - 240 с.

65. Макконнелл, С. Сколько стоит программный проект / С. Макконнелл -М: Русская Редакция, 2007 297 с.

66. Рейнволтер, Дж. Как пасти котов: наставление программисту руководящему другими программистами/ Дж. Рейнволтер Спб: Питер, 2006 - 256 с.

67. Крылов Е.В. Техника разработки программ: в 2 кн. Кн. 2. Технология, надежность и качество программного обеспечения: Учебник / Е.В.

68. Крылов, В.А. Острейковский, Н.Г. Типикин. М.: Высшая школа, 2008. -469 с.

69. Борисов, В.В. Нечеткие модели и сети. / В.В. Борисов, В.В. Круглов, А.С.Федулов. М.: Горячая линия Телеком, 2007. - 284 с.

70. Уотермен, Д. Руководство по экспертным системам / Д. Уотермен. М.: Мир, 1989.-390 с.

71. Кренке Д. Теория и практика построения баз данных. 8-е изд. / Д. Кренке — СПб.: Питер, 2003. 800с.

72. Гаврилова, Т.А. Базы знаний интеллектуальных систем / Т.А. Гаврилова, В.Ф. Хорошевский. СПб.: Питер, 2001. - 384 с.

73. Троелсен, Э. С# и платформа .NET 3.0, специальное издание. / Э. Троелсен — СПб.: Питер, 2008. 1456 с.

74. Нейгел, К. С# 2005 для профессионалов / К. Нейгел, Б. Ивьен, Дж. Глинн и др. М: Издательский дом: «Вильяме», 2006 -1376 с.

75. Арнольд, К. Язык программирования Java. 3-е изд. / К. Арнольд, Дж. Гослинг, Д. Холмс — М.: Издательский дом «Вильяме», 2001. 624 с.

76. Страуструп, Б. Язык программирования С++, спец. изд. / Б. Страуструп М.; СПб.: «Издательство БИНОМ «Невский диалект», 2001. - 1099 с.

77. Ахо, А. Компиляторы: принципы, технологии, инструментарий, 2-е изд. / А. Ахо, М. Лам, Р. Сети, Дж. Ульман — М.: ООО «И.Д. Вильяме», 2008. -1184 с.

78. Мозговой, М.В. Классика программирования: алгоритмы, языки, автоматы, компиляторы. Практический подход. / М.В. Мозговой — СПб.: Наука и техника, 2006. 320 с.

79. Хайкин, С. Неронные сети. Полный курс / С. Хайкин. М: Издательский дом «Вильяме», 2008. —1104 с.

80. Кобзарь А. И. Прикладная математическая статистика. / А.И. Кобзарь — М.: Физматлит, 2006. — 816 с.

81. Лемешко, Б.Ю. Критерии Бартлетта и Кокрена в измерительных задачах при вероятностных законах, отличающихся от нормального / Б.Ю. Лемешко, Е.П. Миркин Измерительная техника. — 2004Т. №10. — стр. 10-16

82. Wang, L. X Adaptive fuzzy systems and control . / L. X. Wang New Jersey: PTR Prentice Hall, Eaglewood Cliffs, 1994. - 352 c.

83. Рутковская, Д. Нейронные сети, генетические алгоритмы и нечеткие системы / Д. Рутковская, М. Пилипиньский, Л. Рутковский- М: Горячая Линия — Телеком, 2007 452 с.

84. Лю Б. Теория и практика неопределенного программирования / Б. Лю -М: БИНОМ, 2005-416 с.

85. Мак-Дональд, М. Microsoft ASP.NET 2.0 с примерами на С# 2005 для профессионалов Pro ASP.NET 2.0 in С# 2005 / М. Мак-Дональд, М. Шпушта М: Издательский дом: «Вильяме», 2007 -1408 с.

86. ГОСТ 28195-89. Оценка качества программных средств. Общие положения. — М.: Издательство стандартов, 1989

87. Oracle AIM / Oracle corp: http://www.oracle.com/partners/develop/ implementation/ global/aimfoundation.html

88. Information technology Software product evaluation - Quality characteristics and guidelines for their use - ISO/IEC 9126, 1991.

89. Information Technology Software measurement - Functional Size Measurement-Parti: Definition of Concepts-ISO/IEC 14143-1, 1998.

90. Information Technology Software measurement - Functional Size Measurement-Part 2: Conformity evaluation of software size measurement methods to ISO/IEC - ISO/IEC 14143-2, 1998.

91. Information Technology Software measurement - Functional Size Measurement-Part 3: verification of functional size measurement methods. -ISO/IEC 14143-3, 2003.

92. Information Technology Software measurement - Functional Size Measurement-Part 4: Reference model. - ISO/IEC 14143-4, 2003.

93. Information Technology Software measurement - Functional Size Measurement-Part 5: Determination of functional domains for use with functional size measurement. - ISO/IEC 14143-5, 2002

94. Дейт, К. Введение в системы баз данных / К. Дейт — М.: «Вильяме», 2006. — С. 1328.

95. Элкин С., Resharper, CodeRush, Visual Assist Comparison / С. Элкин -http://scottelkin.com/programming/resharper-coderush-visual-assist-comparison/