10-software_engineering_quality (1133550)
Текст из файла
Основы программной инженерии (по SWEBOK)Программная инженерия. Качество программного обеспечения.Программная инженерияКачество программного обеспечения(Software Quality)®Глава базируется на IEEE Guide to the Software Engineering Body of Knowledge - SWEBOK , 2004.Содержит перевод описания области знаний SWEBOK® “Software Quality”, с комментариями изамечаниями."Основы программной инженерии" разработаны на базе IEEE Guide to SWEBOK® 2004 в соответствии с IEEESWEBOK 2004 Сopyright and Reprint Permissions: "This document may be copied, in whole or in part, in any formor by any means, as is, or with alterations provided that (1) alterations are clearly marked as alterations and (2) thiscopyright notice is included unmodified in any copy."Русский перевод SWEBOK 2004 с замечаниями и комментариями подготовлены Сергеем Орликомпри участии Юрия Булуя. Дополнительные главы написаны Сергеем Орликом.
Текст расширений SWEBOKотмечен ццветом, отличным от перевода оригинального текста."Основы программной инженерии" Сopyright © 2004-2010 Сергей Орлик. Все права защищены.SWEBOK Сopyright © 2004 by The Institute of Electrical and Electronics Engineers, Inc. All rights reserved.Официальный сайт “Основ программной инженерии” (по SWEBOK) - http://swebok.sorlik.ruCopyright © Сергей Орлик, 2004-2010.http://swebok.sorlik.ru1Основы программной инженерии (по SWEBOK)Программная инженерия. Качество программного обеспечения.Программная инженерияКачество программного обеспечения (Software Quality)Программная инженерия ......................................................................................................................
2Качество программного обеспечения (Software Quality)................................................................... 21. Основы качества программного обеспечения (Software Quality Fundamentals) ....................... 31.1 Культура и этика программной инженерии (Software Engineering Culture and Ethics).........
31.2 Значение и стоимость качества (Value and Costs of Quality) ............................................... 41.3 Модели и характеристики качества (Models and Quality Characteristics) ............................. 41.4 Повышение качества (Quality Improvement) ......................................................................... 62. Процессы управления качеством программного обеспечения (Software Quality Processes) ...
62.1 Подтверждение качества программного обеспечения (Software Quality Assurance, SQA) . 72.2 Проверка (верификация) и аттестация (Verification and Validation, V&V) ............................ 82.3 Оценка (обзор) и аудит (Review and Audits) ......................................................................... 93. Практические соображения (Practical Considerations) ............................................................. 113.1 Требования к качеству программного обеспечения (Software Quality Requirements) ....... 113.2 Характеристика дефектов (Defect Characterization) ...........................................................
133.3 Техники управления качеством программного обеспечения (Software Quality ManagementTechniques)................................................................................................................................ 143.4 Количественная оценка качества программного обеспечения (Software QualityMeasurement) ............................................................................................................................ 17Что такое качество и почему оно должно быть столь глубоко представлено (в видесамостоятельной области знаний) в SWEBOK? На протяжении многих лет отдельные авторы ицелые организации определяли термин “качество” по-разному. Фил Кросби (Phil Crosby) в 1979году дал определение качеству как “соответствие пользовательским требованиям”.
Уотс Хемпфри(Watts Hamphrey, оригинальный автор концепции модели оценки зрелости CMM, а также PSP иTSP – People Software Process и Team Software Process) описывает качество как “достижениеотличного уровня пригодности к использованию”. Компания IBM, в свою очередь, ввела в оборотфразу “качество, управляемое рыночными потребностями” (“market-driven quality”). КритерийБэлдриджа (Baldrige) для организационного качества (см.
NIST - National Institute of Standards andTechnology, “Baldrige National Quality Program”, http://www.quality.nist.gov) использует похожую фразу “качество, задаваемое потребителем” (“customer-driven quality”), рассматривая удовлетворениепотребителя в качестве главного соображения в отношении качества. Чаще, понятие качестваиспользуется в соответствии с определением системы менеджмента качества ISO 9001 как“степень соответствия присущих характеристик требованиям” (именно так это сформулировано вофициальном переводе ИСО 9000-2000 "Системы менеджмента качества.
Основные положения исловарь).Эти взгляды перекликаются и с предлагаемым в этом переводе термином “приемлемое качество”,определяемым не только уровнем запросов конечных потребителей в отношении параметровсоздаваемого продукта, но и заданным контекстом/ограничениями проекта.
Это не значит, что“приемлемое качество” противопоставляется “качеству, диктуемому заказчиком”. Конечно, не стоити проводить параллель “приемлемого качества” с “продуктом второй свежести”. Введениекатегории “приемлемости” в отношении качества является лишь прагматичным взглядом нажелаемую степень совершенства создаваемого продукта (услуги), способную удовлетворитьпользователей и достижимую в рамках заданных проектных ограничений. Интересно, что и сама“степень приемлемости” также выступает в роли ограничения проекта, а в приложении к индустриипрограммного обеспечения представлена практически во всех областях проектной деятельности –от управления требованиями (“атрибуты качества” как категория нефункциональных требований),до тестирования (т.н. наработка на отказ, такие метрики как MTTF - Mean Time To Failure, то естьсреднее время между обнаруженными сбоями системы, и т.п.
). В какой-то степени, “приемлемоекачество” можно сравнивать с уровнем обслуживания в рамках заданного SLA – Service LevelAgreement, давно уже принятого на вооружение в телекоммуникационной индустрии. Такимобразом, приемлемое качество может рассматриваться как <количественно выраженный>компромисс между заказчиком и исполнителем в отношении характеристик продукта,создаваемого исполнителем в интересах <решения задач> заказчика с учетом другихограничений проекта (в частности, стоимостью, что часто именуется как “cost of quality” –Copyright © Сергей Орлик, 2004-2010.http://swebok.sorlik.ru2Основы программной инженерии (по SWEBOK)Программная инженерия. Качество программного обеспечения.“стоимость качества”). Можно сказать, что такой взгляд может в какой-то степени рассматриватьсякак расширение определения ISO 9001 с учетом достигнутого компромисса между заказчиком иисполнителем (поставщиком) в отношении характеристик качества.Данная глава (область знаний) рассматривает вопросы качества программного обеспечения,выходя за рамки <отдельных> процессов жизненного цикла.
Качество программного обеспеченияявляется постоянным объектом заботы программной инженерии и обсуждается во многихобластях знаний (что вполне обосновано, если учесть поистине катастрофический уровеньпроваленных проектов и неудовлетворенность пользователей программных продуктов, ставшаяпритчей во языцех для программной индустрии). В общем случае, SWEBOK описывает ряд путейдостижения качества программного обеспечения. В частности, эта область знаний касаетсястатических техник, не требующих выполнения оцениваемых программных систем, в отличие отдинамических техник, рассмотренных в области знаний SWEBOK “Тестирование”.Рисунок 1.
Область знаний “Качество программного обеспечения” [SWEBOK, 2004, с.10-2, рис. 1]1. Основы качества программного обеспечения (Software Quality Fundamentals)Согласие, достигнутое по требованиями к качеству (в оригинале - quality requirements), наравне счетким доведением до инженеров того, что составляет качество <получаемого продукта>, требуютобсуждения и формального определения многих аспектов качества.Инженеры должны понимать смысл, вкладываемый в концепцию качества, характеристики изначение качества в отношении разрабатываемого или сопровождаемого программногообеспечения.Важной идеей является то, что программные требования определяют требуемые характеристикикачества программного обеспечения, а также влияют на методы количественной оценки исформулированные для оценки этих характеристик <соответствующие> критерии приемки.1.1 Культура и этика программной инженерии (Software Engineering Culture and Ethics)Ожидается, что инженеры по программному обеспечению воспринимают вопросы качествапрограммного обеспечения как часть своей <профессиональной> культуры.
SWEBOK дает ссылкина источники, описывающие здоровую культуру программной инженерии.Этические аспекты могут играть значительную роль в обеспечении качества программногообеспечения, культуре и отношении инженеров <к своей работе>. IEEE Computer Society и ACMCopyright © Сергей Орлик, 2004-2010.http://swebok.sorlik.ru3Основы программной инженерии (по SWEBOK)Программная инженерия.
Качество программного обеспечения.разработали кодекс этики (“моральный кодекс” – code of ethics) и профессиональной практики,основанный на восьми принципах, помогающих инженерам укрепить их отношение к качеству инезависимость <в решении вопросов обеспечения достойного качества создаваемых программныхпродуктов> в их повседневной работе.1.2 Значение и стоимость качества (Value and Costs of Quality)Понятие “качество”, на самом деле, не столь очевидно и просто, как это может показаться напервый взгляд. Для любого инженерного продукта существует множество <интерпретаций>качества, в зависимости от конкретной “системы координат” (в оригинале – “перспективы”).Множество этих точек зрения необходимо обсудить и определить на этапе выработки требованийк программному продукту. Характеристики качества могут требоваться в той или иной степени,могут отсутствовать или могут задавать определенные требования, все это может бытьрезультатом определенного компромисса (что вполне перекликается с пониманием “приемлемогокачества”, как менее жесткой точки зрения на обеспечение качества, как достижениесовершенства).Стоимость качества (cost of quality) может быть дифференцирована на стоимость предупреждения<дефектов> (prevention cost), стоимость оценки (appraisal cost), стоимость внутренних (internalfailure cost), а также внешних сбоев (external failure cost).Движущей силой программных проектов является желание создать программное обеспечение,обладающее определенной ценностью (значимое для решения определенных задач илидостижения целей).
Ценность программного обеспечения в может выражаться в форме стоимости,а может и нет. Заказчик, обычно, имеет свое представление о максимальных стоимостныхвложениях, возврат которых ожидается в случае достижения основных целей созданияпрограммного обеспечения. Заказчик может, также, иметь определенные ожидания в отношениикачества ПО. Иногда, заказчики не задумываются о вопросах качества и связанной с нимистоимостью. Является ли характеристики качества чисто декоративными (умозрительными) или,все же, это неотъемлемая часть программного обеспечения? Ответ, вероятно, находится где-топосередине, как почти всегда бывает в таких случаях, и является предметом обсуждения степенивовлечения заказчика в процесс принятия решений и полного понимания заказчиком стоимости ивыгоды, связанной с достижением того или иного уровня качества.
В идеальном случае,большинство такого рода решений должно приниматься процессе работы с требованиями (см.область знаний SWEBOK “Программные требования”), однако эти вопросы могут (и должны)подниматься на протяжении всего жизненного цикла программного обеспечения. Не существуеткаких-то <“стандартных”> правил того, как именно необходимо принимать такие решения. Однако,инженеры должны быть способны представить различные альтернативы (в достиженииразличного уровня качества) и их стоимость.
Здесь SWEBOK приводит некоторые источники, вкоторых более подробно обсуждаются вопросы значимости качества и соответствующиххарактеристик стоимости.1.3 Модели и характеристики качества (Models and Quality Characteristics)В различных источниках (таксономиях и моделях) терминология характеристик качествапрограммного обеспечения отличается. Каждая модель включает различное число уровнейиерархии и общее число <”распознанных”> характеристик качества. Различные авторы создалиразные модели качества со своим набором характеристик и атрибутов (в частности, Барри Боэм,автор спиральной модели жизненного цикла разработки программного обеспечения, котораярассматривается в отдельной дополнительной главе). Эти модели могут быть полезны дляобсуждения, планирования, (адаптации) и оценки качества программных продуктов.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.