Оценка сложности разработки программных средств на основе использования нейро-нечетких методов
Разработка нейро-нечеткого метода обработки информации для создания моделей оценки сложности разрабатываемых программных средств. Результаты применения предлагаемого подхода к оценке сложности программных средств. Автоматизированное построение моделей.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 19.01.2018 |
Размер файла | 27,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Тверской государственный технический университет, Тверь
ОЦЕНКА СЛОЖНОСТИ РАЗРАБОТКИ ПРОГРАММНЫХ СРЕДСТВ НА ОСНОВЕ ИСПОЛЬЗОВАНИЯ НЕЙРО-НЕЧЕТКИХ МЕТОДОВ
А.Н. Бородулин
А.А. Демирский
Л.А. Карузин
Аннотация
Статья посвящена разработке нейро-нечеткого метода обработки информации для создания моделей оценки сложности разрабатываемых программных средств. Метод основывается на использовании набора нечетких продукционных правил где в качестве заключений используются линейные функциональные зависимости, коэффициенты которых определяются с помощью искусственной нейронной сети.
Введение
Возрастающая сложность объектов автоматизации и увеличение их количества, а также переход к комплексным интегрированным решениям, приводят к увеличению сложности и количества проектов по созданию программных средств (ПС). Массовое создание сложных ПС промышленными методами и большими коллективами специалистов требует четкой организации процесса разработки ПС на основе планирования работ по проекту с оценкой необходимых ресурсов и времени для их реализации. Точность и оперативность подобных оценок напрямую влияет на качество разрабатываемых ПС и риск неуспешного завершения проекта.
Согласно стандарту ГОСТ Р ИСО/МЭК 12207-99 «Информационные технологии - Процессы жизненного цикла программ» начальным этапом процесса «Разработка» является этап анализа, цель которого - выявление, классификация и формализация информации обо всех аспектах предметной области, влияющих на свойства конечного продукта, и именно этот этап оказывает определяющее влияние на качество результатов всего проекта. На данном этапе разработчику создаваемого ПС необходимо провести оценку реализуемости проекта в условиях и ресурсах, предлагаемых заказчиком. Именно на этом этапе сторонами, участвующими в разработке ПС, принимаются договорные обязательства. Следствием недостатков или отсутствия технико-экономического обоснования проектов разработки ПС является неверная оценка преимуществ новой программной разработки, недооценка роли других конкурирующих предложений, неизбежный перерасход средств и снижение качества ПС.
На сегодняшний момент времени решение задач оценки технико-экономических параметров проектов разработки ПС производится, в основном, с помощью экспертных методов. Такие оценки имеют сильную зависимость от компетенции и объективности эксперта. Подобные оценки могут быть легко и быстро получены, но, одновременно, и трудно проверяемы, и слабо обоснованы.
Как показывают исследования Б. Боэма и Л. Путнэма [Boehm, 2000] [Putnam et al., 2003], характер проектируемой системы и сложность ее программного обеспечения, являются самыми значительными факторами, от которых зависят затраты ресурсов на разработку ПС. Сложность ПС в рамках данной работы понимается как характеристика (или их набор) ПС определяющая, прежде всего, трудоемкость его разработки. В современных методах практически не представлены формализованные процедуры для прогнозирования сложности разрабатываемого ПС, адаптируемые к условиям конкретного проекта. Применение существующих методов оценки ПС на практике оказывается весьма трудоемким и доступно только сертифицированным специалистам, кроме того, они не учитывают использование современных технологий разработки ПС.
Таким образом, разработка научно обоснованных методов оценки сложности ПС является актуальной научно-технической проблемой.
1. Метод моделирования программных систем для оценки их сложности разработки
Для оценки сложности существует достаточное количество метрик: Холстеда, Маккейба, Майерса, Джилба, Хансена, Вудворда. Однако все они подразумевают обязательное наличие для анализа либо текста самой программы, либо подробного алгоритма ее работы. Этот факт делает неприемлемым использование данных подходов на ранних этапах жизненного цикла ПС, когда у разработчика имеются только концептуальные модели архитектуры будущего ПС и отдельные эскизные проектные решения.
На ранних этапах процесса разработки ПС в качестве характеристики определяющей сложность создаваемого программного продукта обычно используется его размер. Использование размера ПС как единственной характеристики сложности, в рамках одного класса программ, является приемлемым допущением для решения задач оценки технико-экономических параметров проекта разработки ПС на ранних этапах жизненного цикла [Липаев, 2004]. Размер ПС в современной практике, среди всех факторов, влияющих на параметры проекта, изменяется в самом широком диапазоне на три - четыре порядка от 104 до 107 строк текста программ. Поэтому методам его оценивания уделяется большое внимание.
Таким образом, на начальных этапах жизненного цикла для обеспечения качественного планирования необходимо быстро получить достаточно точную оценку сложности разрабатываемого ПС для принятия решений по проекту. Для формирования такой оценки предлагается использовать метод определения размера ПС на основе оценок размера отдельных его программных объектов. Под программными объектами будем понимать структурные элементы ПС, для создания которых требуются большие трудозатраты. Все программные объекты в рамках одного типа ПС можно объединить в классы. Для каждого класса разрабатывается отдельная модель для оценки его сложности в зависимости от значений характеристик (свойств) программных объектов. Построение таких моделей подразумевает наличие базы данных статистики по уже реализованным проектам. Это позволит исключить или уменьшить влияние экспертных оценок и учесть массу факторов связанных с производительностью труда разработчиков.
Можно выделить следующие основные этапы процедуры оценки размера ПС:
Шаг 1. Выбор класса ПС. Выбор класса определяет набор программных объектов ПС и используемых прогнозных моделей для оценки их сложности, которые должны быть предварительно созданы и настроены по историческим данным.
Шаг 2. Подсчет экземпляров программных объектов, которые должны быть реализованы при создании ПС.
Шаг 3. Определение значений характеристик программных объектов, используемых в выбранной модели оценки их размера.
Шаг 4. Получение частных оценок размеров программных объектов разрабатываемого ПС с использованием настроенных моделей.
Шаг 5. Получение итоговой оценки размера ПС, путем аккумулирования значений частных оценок.
Ключевым этапом процедуры является построение моделей оценки размера объектов ПС на основе значений их характеристик. Сложность экземпляров класса объектов ПС определяется с помощью базы знаний (БЗ), построенной на правилах нечеткого вывода. Роль БЗ - идентификация нелинейной зависимости y = f(X), где X - вектор значений количественных свойств класса объектов ПС; y - значение размера объекта ПС в условных единицах измерения.
Для построения частных моделей оценки сложности объектов ПС предлагается использовать метод двухэтапной идентификации нелинейных зависимостей с помощью нечетких баз знаний. Первый этап ? структурная идентификация ? представляет собой формирование нечеткой базы знаний, которая грубо отражает взаимосвязь между входами и выходом с помощью лингвистических правил «ЕСЛИ - ТО». Лингвистические правила генерируются в результате экстракции нечетких знаний из имеющейся статистики. На втором этапе проводится параметрическая идентификация исследуемой зависимости путем нахождения таких параметров нечеткой базы знаний, которые минимизируют отклонение модельных результатов и имеющейся статистики. Данный подход реализуется путем использования нечетких нейронных сетей, способных одновременно формировать нечеткие правила и адаптировать функции принадлежности путем модификации весов связей в процессе обучения.
Основная особенность рассматриваемых моделей заключается в том, что заключения правил представляются не в виде принадлежности выходной переменной к нечетким множествам, а в форме функциональных зависимостей (нейронная продукционная сеть Такаги-Сугено-Канга) [Борисов и др., 2007]:
Пi: ЕСЛИ х1 есть Аi1 И … И хj есть Аij И... И хm есть Аim,
ТО ,
где Aij - нечеткое множество, отражающее значение характеристики программного объекта xj, с функцией принадлежности (xj); xj - количественная характеристика объекта ПС, определяющая его сложность; y - четкая выходная переменная равная искомому размеру объекта ПС, определяемая четкой функцией от значений характеристик объекта ПС; n - количество правил; m - количество входных переменных.
При ограниченном наборе обучающих данных возможно использование упрощенной модели, когда заключения правил заданы синглетонами (выходная переменная представляется константой: у = ci).
Использование разработанного метода позволит добиться следующих преимуществ:
· метод позволяет использовать имеющуюся статистическую информацию по завершенным проектам разработки ПС как количественной, так и качественной природы, отображая ее в терминах естественного языка - в форме нечетких продукционных правил ЕСЛИ - ТО. Это позволяет учесть массу факторов связанных с технологическим процессом разработки ПС в конкретной проектной организации;
· предлагаемый метод не предполагает наличия каких-либо сведений о виде функциональных зависимостей входов и выходов модели;
· получаемые с помощью разработанного метода модели допускают достаточно понятную интерпретацию.
2. Результаты применения предлагаемого подхода к оценке сложности ПС
С использованием предложенного метода были разработаны модели оценки размера объектов ПС этапа проектирования интерфейса пользователя для класса систем обработки данных. На данном этапе количество типов объектов, которые можно использовать при подсчете размера ПС, увеличивается, что позволяет построить более точные модели для оценки сложности разрабатываемого ПС. В качестве элементов ПС на данном этапе выделялись следующие классы объектов: экранные формы, диалоги, отчеты, файлы данных (таблицы РСУБД), функции импорта/экспорта данных. Для измерения размера в моделях использовались метрики LOC (line of code) - строки кода и функциональные баллы (functional point). Данные для построения моделей были получены исходя из анализа ПС, поступивших на сертификационные испытания в ОАО «ГИЦ ПС ВТ» (Государственный испытательный центр программных средств и вычислительной техники).
Полученные математические модели встраиваются в стандартизированную процедуру оценки, которая описывает порядок их применения для получения адекватных прогнозов. В правильно оцениваемом проекте входные данные включают техническую спецификацию, приоритеты и ограничения. Эти входные данные регулируются до тех пор, пока процесс оценки не даст приемлемый результат. Исторические данные также относятся к входным данным оценки и используются для калибровки предположений о сложности и производительности.
Были проведены оценки ряда реальных проектов среднего и крупного масштаба с размером ПС от 104 до 106 в строках исходного кода. Все оценки проводились на этапе проектирования интерфейса пользователя ПС. В результате оценки было получено, что оценочные данные о размере проекта, рассчитанные с использованием созданных моделей отличаются от фактических на 3-5% для крупных проектов и 5-10% для средних. Данные цифры говорят о достаточно высокой степени точности оценок, полученных на начальных этапах разработки [McConnell, 2004]. Рост точности оценки для крупных проектов объясняется увеличением количества программных объектов, из которых оно состоит. Это приводит к уменьшению влияния отдельных больших смещений в оценке на общий результат. Следовательно, нецелесообразно применять предложенный метод оценки размера ПС для очень малых проектов (менее 5000 строк кода).
Результаты работы были использованы в НИОКР «Разработка методического и инструментального обеспечения поддержки планирования материальных и временных затрат на разработку программного обеспечения АИС органов государственной власти, создаваемого в рамках работ по реализации мероприятий федеральной целевой программы «Электронная Россия (2002-2010 годы)». Указанная НИОКР зарегистрирована в едином реестре результатов научно-технической деятельности Роснауки номер 13293.6904003214.07.1.001.2.
На данный момент, предложенный метод оценки сложности разработки ПС был адаптирован для автоматизированных банковских систем. Результаты работы внедрены в Банке России.
Таким образом, разработанный метод позволяет оперативно получить обоснованные данные для расчета ресурсов необходимых при реализации проекта разработки. Автоматизированное построение моделей не требует задания вида функциональных зависимостей между входами и выходами модели и основано на анализе постоянно расширяемых статистических данных по реализованным проектам. Это позволяет добиться приемлемой точности оценок и учесть специфику разработки программных средств в конкретной проектной организации. Структура моделей обеспечивает их понятную интерпретацию для руководителей проектов разработки программных средств. программный нечеткий обработка информация
Список литературы
1. Борисов В. В. Нечеткие модели и сети. М.: Горячая линия. Телеком, 2007.
2. Липаев В.В. Технико-экономическое обоснование проектов сложных программных средств. М.:СИНТЕГ, 2004.
3. Boehm B.W. Software cost estimation with COCOMO II. Prentice Hall PTR. New Jersey. 2000.
4. McConnell S. Professional Software Development. Boston, MA: Addison-Wesley. 2004.
5. Putnam L. H. Five Core Metrics. New York, NY: Dorset House. 2003.
Размещено на Allbest.ru
...Подобные документы
Критерии оценки эффективности и качества создания программных средств. Роль трудоемкости и длительности создания программных средств в определении эффективности их создания. Требования к качеству, суммарные затраты на разработку программного средства.
реферат [26,7 K], добавлен 10.10.2014Анализ методов оценки надежности программных средств на всех этапах жизненного цикла, их классификация и типы, предъявляемые требования. Мультиверсионное программное обеспечение. Современные модели и алгоритмы анализа надежности программных средств.
дипломная работа [280,5 K], добавлен 03.11.2013Анализ методологии и стандартизации оценки характеристик качества готовых программных средств: по функциональной пригодности, по корректности, по способности к взаимодействию, по защищенности. Процессы и продукты жизненного цикла программных средств.
контрольная работа [26,6 K], добавлен 23.01.2011Анализ рынка программных средств. Построение инфологической модели и разработка таблиц базы данных "Отделение связи". Разработка бизнес-правил на стороне сервера Firebird с использованием утилиты IBExpert. Основные цели патентования программных средств.
курсовая работа [1,5 M], добавлен 15.01.2013Определение задач и классов программных средств для организации научных конференций. Особенности использования программных средств поддержки организации и проведения конференций. Сравнение программных средств для организации и проведения конференций.
реферат [1,8 M], добавлен 05.12.2017Нормативные и правовые акты, регламентирующие применение современных программных средств в документационном обеспечении управления в Российской Федерации. Анализ программных средств для внедрения системы электронного документооборота в ООО "СЛМ-Монтаж".
дипломная работа [163,2 K], добавлен 10.05.2015Понятие CASE-средств как программных средств, которые поддерживают процессы создания и сопровождения информационных систем (ИС). Особенности IDEF-технологии разработки ИС. Описание нотации IDEF0. Разработка функциональных моделей бизнес-процесса.
презентация [399,8 K], добавлен 07.04.2013Информатизация России. Рынок программных средств. Основные задачи стандартизации, сертификации и лицензирования в сфере информатизации. Совокупность инженерных методов и средств создания программного обеспечения. Жизненный цикл программного обеспечения.
лекция [352,8 K], добавлен 09.03.2009Методы, системы, типы и способы проводимых измерений в автоматизированных системах медицинского обеспечения безопасности на транспорте. Проектирования нечеткого алгоритма предрейсовых медицинских осмотров на основе адаптивной сети нейро-нечеткого вывода.
дипломная работа [6,5 M], добавлен 06.05.2011Программное обеспечение как продукт. Основные характеристик качества программного средства. Основные понятия и показатели надежности программных средств. Дестабилизирующие факторы и методы обеспечения надежности функционирования программных средств.
лекция [370,1 K], добавлен 22.03.2014Анализ существующих программных средств для автоматического отображения онтологий, их практического применения в зависимости от поставленной задачи и сложности входных онтологий. Отображение сложных онтологий с помощью алгоритма повышенной точности.
дипломная работа [1,5 M], добавлен 14.06.2012Временная и ёмкостная сложность программы. Размер входных данных. Связь сложности в худшем случае и в среднем. Понятие оптимальной программы. Классы вычислительной сложности программ. Эквивалентность по сложности. Примеры классов вычислительной сложности.
презентация [77,3 K], добавлен 19.10.2014Особенности документирования программных средств, стадии разработки продуктов. Классификация обеспечивающего пакета документов. Сущность и основные недостатки Единой системы программной документации. Классификация стандартов, Гост 19.102-77 ЕСПД.
презентация [64,8 K], добавлен 22.03.2014Теоретический анализ современных методик создания программных средств по распознаванию образов, их преимущества и недостатки. Описание предметной области, обоснование выбора технологии и разработка проекта программного средства по распознаванию образов.
дипломная работа [2,3 M], добавлен 20.05.2013Характеристика этапов разработки программных средств. Спецификация, алгоритм, кодирование, отладка и тестирование. Создание справочной системы и установочного диска. Назначение программы, язык программирования. Технические требования к программе.
курсовая работа [1006,4 K], добавлен 19.12.2013Общее понятие алгоритма и меры его сложности. Временная и емкостная сложность алгоритмов. Основные методы и приемы анализа сложности. Оптимизация, связанная с выбором метода построения алгоритма и с выбором методов представления данных в программе.
реферат [90,6 K], добавлен 27.11.2012- Разработка алгоритмов и программ для определения сходства семантических сетей на основе их сложности
Семантические сети как модели представления знаний. Основные методы определения сходства графовых моделей систем. Метод решения задач определения сходства семантических сетей на основе их сложности. Разработка алгоритмов и их программная реализация.
дипломная работа [1,3 M], добавлен 17.12.2011 Определение качества программных средств. Эволюция методов контроля и управления качеством продукции. Восемь принципов менеджмента качества, их содержание. Внешние и внутренние метрики продукта, организационная основа управления качеством программ.
презентация [301,0 K], добавлен 26.10.2016Разработка методов дихотомической оценки нечетких моделей знаний операторов информационной системы о государственных и муниципальных платежах. Механизмы и принципы управления базами нечетких моделей знаний операторов, методика и этапы их идентификации.
диссертация [2,0 M], добавлен 30.01.2014Обзор существующих аналогов программных средств, предназначенных для построения генеалогических деревьев, их достоинства и недостатки. Выбор программных средств, разработка и реализация архитектуры системы хранения данных, отладка и тестирование сервиса.
дипломная работа [177,1 K], добавлен 24.06.2012