Нечеткие модели и алгоритмы управления рисками разработки программных продуктов
Покупка
Тематика:
Программирование и алгоритмизация
Год издания: 2020
Кол-во страниц: 164
Дополнительно
Вид издания:
Монография
Уровень образования:
ВО - Магистратура
ISBN: 978-5-86889-908-9
Артикул: 769607.01.99
Раскрываются особенности программного проекта и программного продукта, этапов жизненного цикла разработки. Вводятся новые понятия рисков разработки программного продукта, предлагается оригинальный классификатор рискообразующих факторов, приводится семантическая модель процесса управления рисками. Описываются нечеткая модель и алгоритмы вычисления рейтинга рискообразующих факторов; нечеткая когнитивная модель и алгоритмы формирования альтернативных планов мероприятий по реагированию на проявление рнскообразующих факторов. Приводятся примеры использования моделей при решении практических задач. Предназначена для специалистов по разработке программных продуктов, студентов по направлению подготовки «Программная инженерия», «Бизнес-информатика» и аспирантов по направлению подготовки «Информатика и вычислительная техника».
Тематика:
ББК:
УДК:
- 004: Информационные технологии. Вычислительная техника...
- 005: Изучение проблем организации: методология, анализ, синтез, классификация и таксономия...
ОКСО:
- ВО - Бакалавриат
- 09.03.04: Программная инженерия
- 38.03.05: Бизнес-информатика
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Министерство науки и высшего образования Российской Федерации Томский государственный университет систем управления и радиоэлектроники Ю.П. Ехлаков, Н.В. Пермякова НЕЧЕТКИЕ МОДЕЛИ И АЛГОРИТМЫ УПРАВЛЕНИЯ РИСКАМИ РАЗРАБОТКИ ПРОГРАММНЫХ ПРОДУКТОВ Томск Издательство ТУСУРа 2020
Нечеткие модели и алгоритмы управления рисками разработки ПП 2 УДК 004.4122:005.334 ББК 32.973.43-018.2 Е934 Рецензенты: Тарасенко В. Ф., д-р техн. наук, профессор кафедры теоретической кибернетики НИ Томского государственного университета; Фофанов О.Б., канд. техн. наук, доцент отделения информационных технологий НИ Томского политехнического университета Ехлаков, Юрий Поликарпович Е934 Нечеткие модели и алгоритмы управления рисками разработки программных продуктов: моногр. / Ю.П. Ехлаков, Н.В. Пермякова. – Томск: Изд-во Томск. гос. ун-та систем управления и радиоэлектроники, 2020. – 164 с. ISBN 978-5-86889-908-9 Раскрываются особенности программного проекта и программного продукта, этапов жизненного цикла разработки. Вводятся новые понятия рисков разработки программного продукта, предлагается оригинальный классификатор рискообразующих факторов, приводится семантическая модель процесса управления рисками. Описываются нечеткая модель и алгоритмы вычисления рейтинга рискообразующих факторов; нечеткая когнитивная модель и алгоритмы формирования альтернативных планов мероприятий по реагированию на проявление рискообразующих факторов. Приводятся примеры использования моделей при решении практических задач. Предназначена для специалистов по разработке программных продук тов, студентов по направлению подготовки «Программная инженерия», «Бизнес-информатика» и аспирантов по направлению подготовки «Информатика и вычислительная техника». УДК 004.4122:005.334 ББК 32.973.43-018.2 ISBN 978-5-86889-908-9 © Ехлаков Ю.П. Пермякова Н.В., 2020 © Томск. гос. ун-т систем управления и радиоэлектроники, 2020
Введение 3 Введение Отрасль информационных технологий является наиболее динамично развивающейся отраслью как в мировой экономике, так и в экономике России. По данным аналитического агентства TAdvizer в экономике России доля ИТ-услуг на сегодняшний день составляет 44 % в общем обороте ИТ-отрасли, а темп ежегодного прироста оценивается экспертами в 9 % [1]. Следует отметить, что для данного вида бизнеса характерна высокая степень риска. Так, по результатам ежегодного опроса руководителей проектов, проведенного Project Management Institute (PMI)1, не превысили бюджета 57 % ИТ-проектов, выполнены в срок 52 %, а доля незавершенных проектов составила 15 % [2]. В условиях развивающегося рынка и повышающегося спроса на ИТ-услуги актуальным и необходимым для успешной реализации ИТпроектов становится учет и анализ всех возможных рисков, в связи с чем вопросы идентификации, оценки и анализа рисков и рискообразующих факторов, а также мониторинга их текущего состояния приобретают ключевое значение при разработке и выводе на рынок программных продуктов (ПП). В развитие методологии управления рисками разработки программных продуктов, а также с целью конкретизации отдельных ее положений, в монографии описываются методики, модели, алгоритмы и программное обеспечение (ПО) поддержки принятия решений при оценке и анализе рискообразующих факторов на этапах жизненного цикла (ЖЦ) программного продукта с использованием математического аппарата нечеткой логики и когнитивного моделирования. В частности, в монографии предлагаются: новые понятия рисков разработки программного продукта («критические отклонения по выполнению функциональных требований», «критические отклонения выполнения нефункциональных требований», «срыв плановых сроков разработки программного продукта», «превышение бюджета разработки программного 1 В опросе «PMI’s 2018 Pulse of the Profession» участвовали более 4000 респондентов, включая топ-менеджеров и риск-менеджеров ИТ-проектов.
Нечеткие модели и алгоритмы управления рисками разработки ПП 4 продукта»), сформулированные на основе правила «железного треугольника» и логической взаимосвязи формулировок, приведенных в стандартах по проектному управлению («цель проекта как результат деятельности» и «риск проекта как негативное событие, не позволяющее достичь целей»); оригинальный классификатор внутренних рискообразую щих факторов, основанный на элементах универсальной модели деятельности: «программный продукт (предмет деятельности)», «команда проекта (субъект деятельности)», «инструментальные средства разработки программного продукта (средства деятельности)», «технологии управления процессами разработки программного продукта (технология деятельности)»; методика поддержки принятия решений при управлении рисками в виде комплекса семантических моделей, показывающая место нечетких моделей определения рейтинга рискообразующих факторов программного продукта в процессе управления рисками и описывающая основные сущности процесса, используемые в дальнейшем при проектировании структурных элементов концептуальной модели программного комплекса; описания нечеткой модели расчета рейтинга рискообра зующих факторов, основанной на нечетких описаниях оценок близости наступления и степени критичности факторов, и нечеткой когнитивной модели выбора плановых мероприятий по реагированию на проявление критичных рискообразующих факторов, использующей математический аппарат нечеткой реляционной алгебры. Практическое использование менеджерами проектов малых ИТ-компаний методики поддержки принятия решений при управлении рисками и разработанного на ее основе программного комплекса «Формализованное описание рискообразующих факторов с применением алгоритмов нечеткой логики» позволяет: выбирать из базы данных множество возможных риско образующих факторов с учетом специфики ПП; получать числовое выражение рейтинга рискообразую щих факторов, основанное на качественных экспертных оценках близости наступления и критичности факторов;
Введение 5 ранжировать рискообразующие факторы по степени кри тичности их влияния на сроки оказания услуги, выделяя при этом факторы, требующие особого внимания; оценивать в динамике состояние как ранее идентифици рованных рискообразующих факторов, так и новых факторов; формировать альтернативные планы мероприятий по реа гированию на проявления рискообразующих факторов и выбирать наиболее предпочтительный план.
1. УПРАВЛЕНИЕ ПРОЦЕССАМИ РЕАЛИЗАЦИИ ПРОГРАММНОГО ПРОЕКТА 1.1. Программный продукт как объект проектной деятельности Особенности нового программного продукта Результатом успешной реализации программного проекта является новый уникальный программный продукт, представляющий собой совокупность записанных на носителях программных компонентов (продуктов промышленного производства), предназначенных для поставки, передачи или продажи пользователю, снабженных технической документацией, рекламными материалами, инструкциями по обучению пользователей, гарантийными обязательствами по сопровождению и обслуживанию. Новый программный продукт может создаваться по двум бизнес-моделям: «продуктовой» либо «заказной». Безусловно, применение каждой бизнес-модели таит в себе определенные риски. При использовании заказной модели имеется риск разработать «под заказ» прикладной ПП, работающий с ошибками, непригодный для сопровождения и модификации. Кроме того, имеется риск «затянуть» проект или попасть в опасную зависимость от постоянно меняющихся требований заказчика и т. д. Использование продуктовой модели предполагает наличие востребованного на рынке (в том числе и глобальном) продукта (или портфеля продуктов) и обеспечение его тиражирования. С точки зрения оценки бизнеса компании-разработчика продуктовая модель более перспективна, в силу того что сама компания является непосредственным производителем новых проектов и технологий. При этом малыми ресурсами могут быть созданы инновационные рыночные продукты, имеющие большой экономический и коммерческий потенциал. Это, в свою очередь, существенно улучшает условия, при которых могут быть получены инвестиции в случае капитализации компании. Использование продуктовой модели разработки ПП требует также пересмотра организационных процессов деятельности компании — от управ
Программный продукт как объект проектной деятельности 7 ления программным проектом к управлению программным продуктом как объектом экономических отношений на рынке. Программный продукт, созданный по продуктовой модели, может быть поставлен пользователям как в виде проданной лицензии, так и в виде предоставленной услуги. В первом случае речь идет о поставке, развертывании и внедрении ПП на программно-технических средствах заказчика по договору (контракту) купли-продажи, при этом имущественное право на ПП переходит к заказчику. Во втором случае программный продукт поставляется пользователям по SaaS-модели2 в виде сервиса как одной из форм облачных вычислений. При этом заказчику предоставляется доступ к готовому ПП, развернутому на программно-технических средствах разработчика. Основное преимущество SaaS-модели для потребителя услуги состоит в том, что заказчики платят не за владение программным обеспечением как таковым, а за его аренду. Таким образом, в отличие от классической схемы продажи лицензии на программное обеспечение, при получении ПП по SaaS-модели заказчик несет сравнительно небольшие периодические затраты, ему не требуется инвестирование значительных средств в приобретение прикладной программы и необходимых программно-платформенных и аппаратных средств для развертывания и поддержки работоспособности продукта. С точки зрения разработчика SaaS-модель позволяет эффективно бороться с нелегальным использованием программного обеспечения, поскольку оно как таковое не попадает к заказчику. Кроме того, модель SaaS позволяет уменьшить затраты на развертывание и внедрение систем технической поддержки продукта и пользователей. В условиях рыночной экономики программные продукты, являясь объектом авторских прав, выступают в виде принципиально новых инновационных продуктов, вовлечение которых в хозяйственный оборот происходит в процессе коммерциализации (купли-продажи, переуступки прав собственности) и 2 Software as a service (авнгл.) — программное обеспечение как услуга; также software on demand (англ.) — программное обеспечение по требованию.
Управление процессами реализации программного проекта 8 капитализации (постановки на баланс, инвестирования в уставной капитал). При этом программный продукт представляет собой интеллектуальный цифровой товар, обладающий рядом специфических особенностей, которые можно разделить на две группы [3]: 1) характеристики программного продукта как объекта интеллектуальной собственности: нематериальная природа существования ПП; возможность обмена ПП без его полного отчуждения; возможность неоднократной продажи ПП, способность од новременно выступать объектом нескольких рыночных сделок; сохранение всех потребительских свойств в процессе ис пользования; 2) характеристики программного продукта как объекта промышленного производства, предназначенного для продажи: ПП как товар представляет собой публикацию текста про граммы/программ на языке программирования или в виде исполняемого кода, зафиксированного на материальном носителе (компьютере, дисковом накопителе и др.), который может быть продан или передан, при этом обладание материальным носителем не делает его владельца уникальным собственником; неизбежность постоянных изменений функционала, сроков разработки и затрат при создании ПП, обусловленная отсутствием у потенциальных потребителей четко сформулированных требований к продукту и слабым представлением о технологии его использования в практической деятельности; необходимость адаптации стандартов на процессы жизнен ного цикла ПП к конкретным условиям, ввиду того что в существующих документах по регламентации данного вида деятельности процессы ЖЦ разработки ПП описаны в общем виде и прямо не ориентированы на специфику создаваемого продукта; невысокие затраты на изготовление (тиражирование) ПП в структуре его стоимости, обусловленные низкой стоимостью производственных операций по созданию копий и высокой стоимостью разработки ПП, в которой основную часть составляют затраты на оплату труда относительно небольшой группы специалистов;
Программный продукт как объект проектной деятельности 9 наличие повышенного риска разработки, поскольку, явля ясь результатом интеллектуальной деятельности, ПП создается в условиях, не поддающихся точному оцениванию ни по времени создания, ни по требуемому бюджету; вовлечение ПП в хозяйственный оборот происходит в про цессе его коммерциализации (купли-продажи, переуступки прав собственности) и капитализации (постановки на баланс, инвестирования в уставной капитал). Перечисленные особенности позволяют отнести деятель ность по управлению процессами разработки ПП к высокорискованному бизнесу. Поэтому для коллектива разработчиков, планирующего выйти на рынок, вопросы управления рисками на всех этапах жизненного цикла программного продукта являются ключевыми. Жизненный цикл вывода на рынок нового программного продукта Множество мероприятий (работ) по созданию программно го продукта и их взаимосвязей рассматривается как жизненный цикл разработки ПП, под которым будем понимать упорядоченную совокупность различных видов деятельности разработчиков, охватывающих весь период существования ПП с момента возникновения потребности в продукте (либо идеи его создания) до полного прекращения его использования: установление требований, разработку, эксплуатацию и сопровождение ПП. С учетом введенного определения жизненный цикл разра ботки нового программного продукта представляет собой специфический технологический процесс преобразования исходных пожеланий и требований потенциальных потребителей в готовый программный продукт. Состав и содержание технологического процесса разработки нового ПП регламентируется внешними и внутренними стандартами. Внутренние нормативные документы определяют содержа ние бизнес-процессов предметной области потенциального потребителя ПП и регламентируют содержание процессов жизненного цикла разработки и качество ПП (рис. 1.1).
Рис. 1.1. Модель жизненного цикла разработки нового программного продукта Продвижение на рынок Поставка и установка Эксплуатация/ сопровождение Вывод с рынка Формирование потребности Разработка требований Проектирование Комплексирование Рыночное тестирование Релиз (выпуск) Модели предметной области Вывод ПП с рынка Программный продукт/ Документация Фаза жизненного цикла разработки ПП Фаза жизненного цикла коммерциализации ПП Стандарты и методологии разработки