1.2. Стандарты в области качества
В целом система качества предприятия регламентируется целым семейством стандартов ИСО–9000 [14]. Отношения в области качества программного обеспечения вычислительных систем регламентируются стандартом ИСО–9126.
ИСО 9126 предлагает рассматривать две точки зрения:
- заказчика;
- разработчика.
Однако требования к критериям различны. В первом случае обязательно оформлять полное техническое задание, анализировать предметную область и согласовывать с конечным пользователем, рекомендуется анализировать также и точку зрения разработчика.
Во втором случае все расплывчато. Фактически декларируется только ответственность разработчиков за производимое программное обеспечение вычислительных систем, которое должно удовлетворять требованиям качества. Разработчик должен быть заинтересован в качестве промежуточных результатов разработки программного обеспечения, также как и в качестве результата. С точки зрения разработчика, наиболее широко применяются следующие критерии: техническое качество работы (быстродействие, надежность), пригодность к сопровождению и развитию, устойчивость.
Стандарт разрешает предъявлять и другие требования и критерии качества, не противоречащие главным требования стандарта. Пример таких требований и критериев:
- функциональность;
- соответствие назначению;
- точность;
- способность взаимодействовать со средой;
- соответствие нормам;
- информационная безопасность;
- надежность;
- зрелость («обкатанность»);
- отказоустойчивость;
- способность восстанавливаться после сбоев;
- пригодность к использованию;
- понимаемость;
- изучаемость;
- удобство и простота в работе;
- эффективность;
- быстродействие и время отклика;
- потребление ресурсов;
- сопровождаемость;
- анализируемость (диагностика причин ошибок и сопоставление с исходным кодом);
- пригодность к изменениям;
- стабильность;
- тестируемость;
- переносимость;
- адаптируемость;
- легкость инсталляции;
- соответствие нормам по переносимости и инсталляции;
- заменяемость (способность заменить аналоги?).
Несмотря на то, что стандарт предъявляет требования к качеству всех этапов разработки программного обеспечения, предъявляемые характеристики затрагивают лишь качество программного обеспечения как продукта.
Несколько более продвинутый подход к качеству вообще и программного обеспечения в частности применяется в системе стандартов Японии [12]. Для описания процесса создания качества японскими корпорациями используется «спираль познания» (рис. 3).
Из рисунка четко следует мысль, широко используемая в Японии: знание появляется только на основе практики, опыта в форме интуиции, ощущений и аккумулируется, накапливается только при работе коллективов:
- через обобществление, путем описания интуитивных ощущений по аналогии с другими знаниями;
- обобщением разнородного опыта и поиском закономерностей;
- выработкой языков, систем и теорий для точного и явного выражения знания.
Данная концепция конечно применяется и к системе качества и критериям, используемым в процессе создания программного обеспечения вычислительной системы. В [6] предлагается спираль развития технологий разработки и оценки качества программного обеспечения вычислительной системы в целом, показана на рис. 4.
Из спирали следует, что в процессе работы индивидуальные понятия и чувства разработчиков о критериях качества и их значениях в качестве программного обеспечения вычислительной системы должны быть доступны всем участника процесса, в том числе руководителям. Кроме того, все понятия, ощущения, чувства должны документироваться в виде стандартов, описаний, библиотек программ и компонентов, технологий. В этом случае они становятся «знаниями» и представляют новый уровень мышления и новые технологии и позволяют поднять общую культуру работы и минимизировать риски, связанные с человеческим фактором.
Далее подход запускается по спирали. Полученный уровень мышления и технологий позволяет увидеть и обобщить новые понятия и мысли в области качества на еще более высоком уровне. И так далее, круг замыкается, спираль оценки качества раскручивается.
Таким образом, основной метод оценки качества программного обеспечения вычислительных систем, который используют заказчики – конечные пользователи – это оценки зрелости фирмы–разработчика, поскольку универсальных методов оценки программного обеспечения нет и методов, которые может использовать заказчик при оценке качества заказываемого программного обеспечения еще до его заказа, практически нет.
В соответствии с требованиями стандарта ИСО 9126 [14] существует два подхода, которым можно следовать для обеспечения качества программного обеспечения:
- убедиться в качестве на каждом этапе разработки;
- оценить качество конечного продукта.
При этом выделить главный подход не представляется возможным.
Следует учитывать тот факт, что существует только один надежный способ проверить качество заказываемого программного продукта – это его использование, т.е. «попробовать». Естественно, в случае с программным обеспечением его нет, так как «попробовать» программное обеспечение можно только путем его разработки. Поэтому существует только один способ – это оценка разработчика, оценка как долго он работает и как качественно он работает.