Понятие качества программных продуктов. Критерии качества.
Понятие качества программных продуктов. Критерии качества. Свойство программы, характеризующееся отсутствием в ней ошибок по отношению к целям разработки, называется правильностью программы. Даже для «малых» программ обеспечение их правильности является чрезвычайно сложной задачей, а для «больших» программ оно становится практически бессмысленным. Качество ПО – это вся совокупность его характеристик, относящихся к возможности удовлетворять высказанные или подразумеваемые потребности всех заинтересованных лиц (стандарт ISO 9126). Основными критериями качества ПО (criteria of software quality) являются: -функциональность (Способность ПО выполнять набор функций (действий), удовлетворяющих заданным или подразумеваемым потребностям пользователей. Набор указанных функций определяется во внешнем описании ПО) -надежность (это его способность с достаточно большой вероятностью безотказно выполнять определенные функции при заданных условиях и в течение заданного периода времени) -эффективность (Соотношение уровня услуг, предоставляемых ПО пользователю при заданных условиях, и объема используемых для этого ресурсов. К числу таких ресурсов могут относиться требуемые аппаратные средства, время выполнения программ, затраты на подготовку данных и интерпретацию результатов) -эргономичность (Характеристики ПО, которые позволяют минимизировать усилия пользователя по подготовке исходных данных, применению ПО и оценке полученных результатов, а также вызывать положительные эмоции определенного или подразумеваемого пользователя) -модифицируемость (Характеристики ПО, которые позволяют минимизировать усилия по внесению изменений для устранения ошибок и по его модификации в
соответствии с изменяющимися потребностями пользователей. Модифицируемость ПО существенно зависит от степени и качества его документированности) -мобильность (Способность ПО быть перенесенным из одной среды (окружения) в другую, в частности, с одной аппаратной платформы на другую) Определение качества ПО в стандарте ISO 9126. Аспекты качества, их взаимное влияние. Стандарт ISO 9126 - Международный стандарт, определяющий оценочные характеристики качества программного обеспечения. Разделяется на 4 части, описывающие следующие вопросы: -модель качества; -внешние метрики качества; -внутренние метрики качества; -метрики качества в использовании. Качество определяется в стандарте ISO 9126 как вся совокупность его характеристик, относящихся к возможности удовлетворять высказанные или подразумеваемые потребности всех заинтересованных лиц. Различаются понятия: -внутреннего качества, -внешнего качества, -качества ПО при использовании Три аспекта качества ПО -Внутреннее качество связано с характеристиками ПО самого по себе, без учета его поведения; -Внешнее качество характеризующего ПО с точки зрения его поведения; -Качества ПО при использовании – это то качество, которое ощущается пользователями при конкретных сценариях работы ПО.
Многоуровневая модель качества ПО в стандарте ISO 9126. Модель качества Качество определяется в стандарте ISO 9126 как вся совокупность его характеристик, относящихся к возможности удовлетворять высказанные или подразумеваемые потребности всех заинтересованных лиц. Стандарт ISO 9126 предлагает использовать для описания внутреннего и внешнего качества ПО многоуровневую модель. На верхнем уровне выделено 6 основных характеристик качества ПО. Каждая характеристика описывается при помощи нескольких входящих в нее атрибутов. Для каждого атрибута определяется набор метрик, позволяющих его оценить.
Вопросы для самопроверки 1. По какому принципу можно сгруппировать стандарты на разработку информационных систем. 2. Что такое стандарт ISO 9126? 3. Что такое технология программирования? 4. то называется средствами технологии программирования? 5. Что является основными критериями качества ПО? ЛЕКЦИЯ 2 Объекты уязвимости План. 1. Контрольный опрос 2. Классификация цязвимостей. 3. уязвимости, вызванные дефектами конфигурирования и управления системой. 4. уязвимости, вызванные дефектами проектирования.
Уязвимости программного обеспечения Известно, что даже небольшая, казалось бы, уязвимость ПО может привести к большому ущербу. Отсюда и пристальное внимание разработчиков и пользователей ПО к вопросам систематизации уязвимостей. Следует отметить, что проблема составления универсальной классификационной схемы уязвимостей ПО остается актуальной: в основном исследователями приводятся классификационные схемы, охватывающие лишь малую часть предметной области, на которую они ориентируются. Далее приведем классификацию уязвимостей по критерию «причина возникновения» в общем виде. Данная классификация включает два типа уязвимостей. Первый тип — уязвимости, вызванные дефектами (ошибки, проблемы) проектирования и программирования системы, такими как [2, 3, 4]: • ошибки обработки и представления данных; • неправильная обработка входных и выходных данных; • отсутствие проверки и представления ввода; • некорректное кодирование и экранирование вывода; • некорректная обработка входных данных; • ошибочная внутренняя трансформация данных; • ошибки, связанные с использованием строк; • ошибки типов данных; • ошибки представления данных; • числовые ошибки; • ошибки определения структур данных; • ошибки доступа к данным; • ошибки управления информацией; • неверный доступ к индексируемому ресурсу; • ошибки модификации постоянных данных; • нарушение внутренней структуры и зависимости; • некорректное использование API; • ошибки, связанные с инкапсуляцией;
• ошибки обработки событий и состояний; • ошибки временных меток и внутреннего состояния; • нарушение логики функционирования; • некорректно написанные обработчики; • некорректная обработка ошибок и внештатных ситуаций; • неправильное использование ресурсов и внутренних механизмов системы; • ошибки при использовании механизмов безопасности; • ошибки инициализации и очистки областей памяти; • некорректное использование ссылок и псевдонимов; • некорректное использование указателей; • ошибки, свойственные определенному типу функционала; • ошибки при реализации пользовательского интерфейса; • некорректное использование сетевых протоколов; • присутствие в коде намеренно и ненамеренно внедренных объектов (закладок); • отклонения от стандартов качества проектирования, реализации, документирования; • несоблюдение качества кода; • нарушения принципов проектирования безопасного ПО; • выпуск неполной или некорректной документации. Второй тип — уязвимости, вызванные дефектами конфигурирования и управления системой и ее окружением, а именно дефекты: • конфигурации; • настройки механизмов безопасности; • настройки структуры и функционала; • в виде закладок в настройках; • совместимости версий; • качества настроек; • окружения; • среды компиляции и выполнения программного кода; • прикладного программного обеспечения; • системного программного обеспечения (гипервизора, операционной системы, драйверов); • аппаратного обеспечения. Представленная классификация основана на дефектах кода и ошибок эксплуатации систем и пересекается с международными таксономиями CWE и Fortify. К достоинству такого подхода следует отнести учет реальных причин уязвимостей, соответствие международной практике классификации и возможность исключения многократного дублирования отдельных позиций, что свойственно академическим общетехническим классификациям.
Контрольные вопросы: 1. В чем заключается поиск уязвимостей; 2. Какие типы уязвимостей бывают; 3. Охарактеризуйте уязвимости, вызванные дефектами (ошибки, проблемы) проектирования и программирования; 4. Охарактеризуйте уязвимости, вызванные дефектами конфигурирования и управления системой.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|