Статья опубликована в рамках: LVIII Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 30 октября 2017 г.)
Наука: Информационные технологии
Скачать книгу(-и): Сборник статей конференции
дипломов
СОВРЕМЕННЫЕ ПРОБЛЕМЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ
Намеченный правительством Российской Федерации курс на реализацию цифровой экономики подразумевает всестороннюю модернизацию информационной структуры различных сфер жизни общества. В этих условиях возрастает роль применения и совершенствования инженерных методов разработки программных продуктов, которые позволяли бы обеспечивать планируемое качество проектов на основе использования самых передовых информационных технологий. Эффективное применение таких методов требует всестороннего анализа существующих наработок в этой области, изучение их слабых и сильных сторон имеющихся методик с целью выбора наиболее подходящей для решения поставленной задачи в заданной предметной области с учетом имеющихся требований и ограничений. Все это составляет предмет и цели такой междисциплинарной дисциплины, как программная инженерия. Актуальной задаче анализа современных проблем, стоящих перед разработчиками программ на основе инженерных подходов, посвящена данная статья.
Современные большие программные проекты при достижении требуемого качества программного продукта особенно сильно чувствуют ограничения так называемого железного треугольника «время-деньги-функциональность» - требование повышения качества неизбежно ведет к увеличению, по крайней мере, параметра одной из вершин. Помимо этого, стоит отметить, что разработка программного проекта и его реализация осуществляются в условиях риска: неопределенности факторов внутренней и внешней среды проекта, которые могут привести либо к ухудшению качественных показателей разрабатываемого программного продукта, либо к превышению бюджета или нарушению сроков осуществления проекта, либо просто к его провалу. В этих условиях наибольшую значимость и актуальность с экономической, финансовой и других точек зрения приобретают проблемы концептуального проектирования программного обеспечения (ПО) [1], а также проблемы анализа жизнеспособности ПО, то есть наличия необходимых условий и ресурсов для реализации программного проекта и его дальнейшей адаптации под меняющиеся внешние условия.
Процесс анализа жизнеспособности программного проекта можно отнести к этапу концептуального проектирования. То есть, на данном этапе выполняются работы по анализу идеи, выбору целей и постановке задач, а также по сбору, анализу и структурированию информации о программном проекте в форме, которая позволяет принимать решение о возможностях осуществимости проекта и способах его реализуемости (рисунок 1). Данная постановка характерна для обратных задач, когда необходимо оценить ключевые факторы, которые могут повлиять на проект при обеспечении его требуемой жизнеспособности [2].
Рисунок 1. Структура жизненного цикла разработки программного продукта
Таким образом, на этапе концептуального проектирования наибольшее значение имеют работы по определению жизнеспособности проекта, которые подставляют собой следующие процессы: анализ, прогнозирование и оценка ситуации, выбор и согласование лучшего альтернативного варианта достижения поставленной цели проекта.
Однако, следует отметить, что понятие «приемлемая альтернатива» или «лучшая альтернатива» достаточно субъективно. Субъективизм проявляется на всех этапах принятия решения. Рациональной технологией принятия решений будет призвана та, которая позволит минимизировать возможные ошибки с помощью использования специально разработанных методов для достижения лучшего результата. Исходя из чего, с информационной точки зрения, в процессе принятия решений происходит снижение неопределенности.
Успешность выполнения программного проекта по стоимости, срокам и качеству разработки можно спрогнозировать на этапе концептуального проектирования, однако такой прогноз существенно усложняется наличием ряда следующих проблем [1]:
1.Проблемы организации деятельности команды разработчиков.
Одним из главных препятствий успешной реализации больших программных проектов является нехватка или высокая занятость разработчиков (исполнителей, IT-разработчиков) проекта требуемой квалификации.
2. Проблема выбора программных средств для разработки программного продукта. Современные тенденции автоматизации процесса разработки больших программных проектов связаны с широким применением CASE-средств, например, таких, как Primavera Project Planner, Microsoft Project и др. В общем случае, выбор CASE-средства с целью реализации программного проекта зависит от задач, потребностей, а также ограничений программного проекта [3]. Значит, определяющим фактором данного выбора будет выступать используемый метод проектирования, причем выбор и оценку следует начинать только после проведения тщательного анализа качественных и количественных требований к программному проекту.
3. Проблема проведения анализа жизнеспособности программного проекта. Приступая к реализации крупных программных проектов, необходимо прежде всего понимать целесообразность проекта и оценивать оправданность вложений в него материальных и трудовых ресурсов. Оценка жизнеспособности программного продукта на концептуальном уровне проектирования значительно усложняется следующими факторами:
– неполнота исходных данных для проектирования, которая не позволяет произвести точную оценку жизнеспособности программного проекта, а также сроков его реализации;
– изменение требований, сроков и объема выделяемых ресурсов на проектирование, которые прямо связаны с увеличением риска осуществления программного проекта с установленным качеством.
Следовательно, исходя из вышеуказанных проблем, можно сделать вывод о цикличности проблем: решение одной проблемы приводит к появлению другой и наоборот (рисунок 2).
Рисунок 2. Цикл проблем успешного выполнения программного проекта
Разработка любого программного продукта сопровождается формированием (генерацией) альтернатив его реализации, сравнение которых осуществляется с целью выбора наилучшего. Чем больше будет сгенерировано альтернатив, тем более обоснованно будет принимаемое решение по жизнеспособности программного проекта. Однако, рассмотрение большого числа альтернатив может привести к большим затратам времени и усилиям. По данной причине руководители часто ограничиваются рассмотрением только нескольких, самых жизнеспособных альтернатив.
Для обеспечения необходимой реалистичной оценки жизнеспособности реализуемого программного продукта, оценку имеющихся альтернатив следует проводить многокритериально. Из-за чего встает проблема выбора полного списка критериев. Определение критериев для отбора альтернатив, который основан на детальной проработке вариантов реализации программного проекта, возлагается на руководителя программного проекта.
Эффективное управление проектом и повышение качества разрабатываемого программного продукта на этапе анализа его жизнеспособности достигается благодаря применению математических или эвристических методов принятия решений, которые выбираются в зависимости от типа решаемых проблем и задач.
Для оценки жизнеспособности программного продукта можно классифицировать виды, критерии и показатели жизнеспособности программного проекта (таблица 1).
Виды критериев и соответствующие группы показателей следует выбирать по соответствию приоритетным целям и задачам программного продукта. Также, выбор критериев направлен на выявление общего представления о проекте, определение его достоинств и недостатков. Критерии оценки жизнеспособности проекта оцениваются прямыми и косвенными показателями. Прямые показатели необходимы с целью определения характеризующих критериев жизнеспособности проекта (количество исполнителей, время разработки и потребители и т.д.). Косвенные показатели используются тогда, когда невозможно определить прямые показатели проекта (стоимость работ, емкость рынка, вероятность успеха проекта и др.).
Таблица 1.
Критерии оценки жизнеспособности программных проектов
Виды |
Технический |
Финансовый |
Экономический |
Коммерческий |
|
Критерии |
Научно-технические |
Производственные |
Финансово-экономические |
Маркетинговые |
|
Показатели |
Стоимость разработки |
Количество исполнителей |
Объем и время работ |
Количество потребителей |
|
Время разработки |
Стоимость материалов |
Стоимость работ |
Объем продаж |
||
Количество исполнителей |
Производственные мощности |
Вероятность банкротства |
Стоимость рекламы |
||
Вероятность успеха проекта |
Производственные издержки |
Рентабельность и прибыль |
Емкость рынка |
Следует особое внимание уделить многокритериальности понятия жизнеспособности программного продукта. Действительно, квалифицированная оценка жизнеспособности программного проекта является векторной и предполагает широкий охват учитываемых показателей жизнеспособности. Обозначим данные показатели через:
(1)
а их заданные значения – через :
(2)
Тогда требования к жизнеспособности программного проекта определяются его функциональным назначением и могут быть сформулированы следующими способами:
– как допустимый уровень жизнеспособности программного проекта, то есть показатели жизнеспособности не должны превышать допустимые значения:
(3)
– как заданный уровень жизнеспособности, при котором показатели жизнеспособности программного проекта фиксируются на допустимых значениях:
(4)
– как оптимальный уровень жизнеспособности программного проекта, при котором показатели жизнеспособности устремляют к экстремальным значениям:
(5)
Резюмируя сказанное, можно сделать вывод, что в современных условиях обеспечение жизнеспособности программного продукта стало важнейшим этапом его жизненного цикла. Однако попытки применения какого-либо одного конкретного подхода для принятия решений для обеспечения жизнеспособности позволяют отразить в модели лишь некоторые программные аспекты его жизненного цикла. Поэтому только интегральные подходы позволяют по-настоящему полно и обоснованно сделать прогнозные заключения от жизнеспособности программного продукта.
Список литературы:
- Колоденкова А.Е. Проблемы концептуального проектирования программного обеспечения мехатронных систем // Мехатpоника, автоматизация, управление: Матеp. 7-й науч.-техн. конф. С.-Петербуpг: ГНЦ PФ ЦНИИ «Электроприбор», 2015. – С. 228–231
- Пучков А.Ю., Павлов Д.А. Метод решения обратных задач для экономических объектов / Научное обозрение. 2013. – № 9. – С. 372-375.
- Гвоздев В.Е., Колоденкова А.Е. Системные вопросы проектирования программных продуктов: учеб. пособие. Уфа: Уфимск. гос. авиац. техн. ун-т, АН РБ, Гилем, 2010. – 188 с.
дипломов
Оставить комментарий