Оценка затрат на качество программного обеспечения

ОЦЕНКА ЗАТРАТ НА КАЧЕСТВО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

Аннотация. В статье представлены аргументы, обосновывающие необходимость оценки затрат на качество. Рассмотрены вопросы оценки затрат на качество программного обеспечения. Проанализированы различные методики обеспечения качества программного обеспечения. Дано описание метода Quality Function Deployment и рассмотрена возможность использования метода Software Quality Function Deployment в процессе разработки программных продуктов как метод, позволяющий сократить наибольшие затраты на качество и повысить конкурентоспособность продукта.

Ключевые слова: разработка программного обеспечения, затраты на качество, оценка затрат, PAF, quality function deployment, software quality function deployment.

EVALUATING THE SOFTWARE QUALITY COSTS

Annotation. The article gives the arguments proving necessity of evaluating the software quality costs. Questions of evaluating the software quality costs were considered. Various techniques to ensure the software quality were analyzed. A description of the method of Quality Function Deployment was given. The possibility of using the method of Software Quality Function Deployment in the process of software development as a method to reduce the highest costs of quality and improve product competitiveness was considered.

Keywords: software development, quality costs, cost estimation, PAF, quality function deployment, quality function deployment.

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

Понятия качества, контроля качества и управление качеством достаточно подробно рассмотрены [3], а именно, качество - это то, что ожидает потребитель, а также пригодность для предназначенного использования и соответствие техническим условиям с учетом своевременности поставки, организации и обеспечения послепродажной поддержки, надежности, приемлемой стоимости. Управление качеством базируется на трех основных компонентах: контроль, обеспечение и повышение качества. Инструментами управления качеством являются планирование качества, затраты на качество, статистический контроль и управление процессами; соблюдение поставок точно в срок. Контроль качества предусматривает использование таких оперативных методов и действий, как управление процессом, устранение причин появления брака. Эти положения нашли свое отражение в серии международных стандартов ISO 9000. Качеством программного обеспечения согласно ISO/IEC 25000:2014 является способность программного продукта при заданных условиях удовлетворять установленным или предполагаемым потребностям.

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

© Лобанова Н.М., Дубровин Д.А., 2016

УДК 004.415.5 Н.М. Лобанова Д.А. Дубровин

Lobanova Nadezda Dubrovin Dmitry

цикла проекта, используя прототипы и модели предметной области; анализ и сквозной контроль кода, который позволяет находить ошибки заблаговременно и повышает качество кода и дизайна ПО, уменьшает необходимость значительного рефакторинга и очистки кода в следующих версиях; сессионное тестирование, разработанное Джеймсом Бахом (James Bach), заключается в разделении тестовой нагрузки на сеансы, каждый из которых решает свою задачу; тестирование, основанное на рисках, основная идея которого состоит в упорядочении функций и видов отказов ПО в убывающем порядке, от самых важных или рискованных до проверенных функций и простых рисков (основной инструмент методология FMEA - анализ видов и последствий отказов) [2]. В настоящее время, компании вкладывают значительную часть средств на обеспечение качества разрабатываемых продуктов. Так, в исследовании Национального Института Стандартов и Технологий США подчеркивается, что до 80 % стоимости продукта составляют затраты на выявление и устранение дефектов, что отражает наличие проблем с обеспечением качества продукции у многих компаний [6].

Можно рассмотреть три различных варианта подхода к затратам, связанным с качеством [3]: модель «потери для общества», модель «стоимость процесса»; модель PAF - стоимости «предотвращения - оценки - отказа».

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

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

Согласно исследованию компании IBM [1], проведенному на основании данных отраслевых стандартов GBS Industry Standard Study, стоимость исправления дефекта на этапе определения требования - 80 долл., на этапе проектирования - 240 долл., на этапе тестирования - 960 долл., на этапе выпуска продукта 7600 долл. Из данного исследования можно видеть, что наибольшие затраты фирмы несут при нахождении дефекта на этапе выпуска продукта, что соответствует непредвиденным расходам, связанным с плохим качеством. Неконформные затраты возникают тогда, когда пользователь не удовлетворен предоставленной функциональностью (если изначально были неправильно определены потребности пользователя), а также в случае наличия дефектов, возникших при написании ПО или разработке архитектуры приложения, но которые не были выявлены в ходе внутреннего тестирования.

Важность удовлетворения потребностей пользователя подчеркивается в исследования компании HP. Согласно данному исследованию (HP Word Quality Report 2015-16) [8], задача обеспечения соответствия ПО пользовательским требованиям входит в число наиболее приоритетных задач по обеспечению качества программного обеспечения у 78 % руководителей, уступая лишь тестированию безопасности (80 %).

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

которые обеспечивают выполнение данных пожеланий, существует большое различие, и QFD позволяет сократить его. [4]

Основные этапы метода QFD:

1. Планирование продукта. На данном этапе строится матрица «дом качества». С помощью данной матрицы качественные требования клиента переводятся в измеримые характеристики продукта. Матрица «дом качества» заполняется на основании: исследования рынка и запросов потребителей, анализа требований потребителей к качеству, а также анализа и оценки продукции конкурентов. Сбор корректных данных от клиентов на этапе 1 имеет решающее значение для успеха всего процесса QFD.

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

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

4. Контроль процессов. На данном этапе определяются показатели качества и разрабатываются инструкции для мониторинга процесса производства. Данный этап возглавляется отделом контроля качества, который обеспечивает производство на основе инструкций для достижения показателей качества. [5]

Центральным инструментом метода QFD является матрица «дом качества». Термин «дом качества» происходит от внешнего вида матрицы. Данная матрица состоит из шести основных частей:

1) требования потребителей;

2) технические характеристики;

3) матрица отношений технических характеристик продукта с требованиями потребителей;

4) оценка выполнения требований потребителей продукцией конкурентов (конкурентный анализ);

5) корреляционная матрица технических характеристик;

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

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

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

С развитием метода QFD выделилось направление использование данного метода при разработке программного обеспечения. Новый метод получил название SQFD (Software Quality Function Deployment). SQFD, как QFD, основное внимание уделяет повышению качества процесса разработки

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

SQFD во многом соответствует QFD и имеет следующие особенности и преимущества:

- количественное выявление и определение критических требований;

- уменьшение числа вносимых изменений в процессе разработки;

- повышение производительности работы аналитиков и программистов;

- сокращение отставания при разработки программного обеспечения;

- уменьшение количества ошибок при переходе от одного этапа к другому;

- обеспечение качества ПО, удовлетворяющего требованиям заказчика.

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

Данные утверждения подтверждаются результатами исследования «The leading edge in QFD for Software and electronic business» [7]. Исследование показывает, что после начала использования метода SQFD для анализа пользовательских требований, степень удовлетворенности клиентов SAP R/3 увеличилась по таким показателям как:

- желаемая функциональность;

- реализация требований;

- удобство использования;

- раннее участи в процессе разработки;

- объективная оценка требований;

- время ожидания следующего релиза;

- новая функциональность;

- связь между заказчиком и разработчиком;

- взаимопонимание между заказчиком и исполнителем;

- технические инновации.

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

Библиографический список

1. Сокращение затрат на обеспечение качества программных продуктов [Электронный ресурс]. - Режим доступа : https://habrahabr.ru/company/ibm/blog/94686/ (дата обращения : 28.04.2016).

2. Технические материалы компании IBM. Проблемы качества программного обеспечения и практические рекомендации. [Электронный ресурс]. - Режим доступа : https://www.ibm.com/developerworks/ru/library/r-software-quality-challenges-practice-recommendations/ (дата обращения : 23.04.2016).

3. Управление качеством: Том 1. Основы обеспечения качества / Под общ. ред. В. Н. Азарова - М. : МГИЭМ, 1999 - 326 с. - ISBN 5-230-16284-8.

4. Capers, J. The Economics of Software Quality / J. Сapers. - Boston, 2011. - 624 p. - ISBN 9)78-0-13-258220-9.

5. Ficalora, J. P. Quality Function Deployment and Six Sigma / J. P. Ficalora, L. Cohen . - 2nd edit. - Prentice Hall, 2009. - 480 с. - ISBN 978-0-13-513835-9.

6. The Economic Impacts of Inadequate Infrastructure for Software Testing [Electronic resource]. - Mode of access : https://www.researchgate.net/publication/200085942_The_Economic_Impacts_of_Inadequate_Infrastructure_for_ Software_Testing (accessed date : 20.04.2016).

7. The leading edge in QFD for software and electronic business // International Journal of Quality & Reliability Management. - 2003. - № 1. - P. 36-55.

8. World Quality Report 2015-2016 [Electronic resource]. - Mode of access : https://www.capgemini.com/thought-leadership/world-quality-report-2015-16 (accessed date : 20.04.2016).