1.2. Стандарты в области качества

В целом система качества предприятия регламентируется целым семейством стандартов ИСО–9000 [14]. Отношения в области качества программного обеспечения вычислительных систем регламентируются стандартом ИСО–9126.

ИСО 9126 предлагает рассматривать две точки зрения:

  1. заказчика;
  2. разработчика.

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

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

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

  1. функциональность;
  2. соответствие назначению;
  3. точность;
  4. способность взаимодействовать со средой;
  5. соответствие нормам;
  6. информационная безопасность;
  7. надежность;
  8. зрелость («обкатанность»);
  9. отказоустойчивость;
  10. способность восстанавливаться после сбоев;
  11. пригодность к использованию;
  12. понимаемость;
  13. изучаемость;
  14. удобство и простота в работе;
  15. эффективность;
  16. быстродействие и время отклика;
  17. потребление ресурсов;
  18. сопровождаемость;
  19. анализируемость (диагностика причин ошибок и сопоставление с исходным кодом);
  20. пригодность к изменениям;
  21. стабильность;
  22. тестируемость;
  23. переносимость;
  24. адаптируемость;
  25. легкость инсталляции;
  26. соответствие нормам по переносимости и инсталляции;
  27. заменяемость (способность заменить аналоги?).

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

Несколько более продвинутый подход к качеству вообще и программного обеспечения в частности применяется в системе стандартов Японии [12]. Для описания процесса создания качества японскими корпорациями используется «спираль познания» (рис. 3).

Из рисунка четко следует мысль, широко используемая в Японии: знание появляется только на основе практики, опыта в форме интуиции, ощущений и аккумулируется, накапливается только при работе коллективов:

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

Данная концепция конечно применяется и к системе качества и критериям, используемым в процессе создания программного обеспечения вычислительной системы. В [6] предлагается спираль развития технологий разработки и оценки качества программного обеспечения вычислительной системы в целом, показана на рис. 4.

Рис. 4. Спираль развития технологий и критериев  качества
программного обеспечения вычислительной системы Рис. 4. Спираль развития технологий и критериев качества программного обеспечения вычислительной системы

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

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

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

В соответствии с требованиями стандарта ИСО 9126 [14] существует два подхода, которым можно следовать для обеспечения качества программного обеспечения:

  1. убедиться в качестве на каждом этапе разработки;
  2. оценить качество конечного продукта.

При этом выделить главный подход не представляется возможным.

Следует учитывать тот факт, что существует только один надежный способ проверить качество заказываемого программного продукта – это его использование, т.е. «попробовать». Естественно, в случае с программным обеспечением его нет, так как «попробовать» программное обеспечение можно только путем его разработки. Поэтому существует только один способ – это оценка разработчика, оценка как долго он работает и как качественно он работает.