Методы оценки качества программного средства.
Технологический цикл синтеза (разработки) ПО | Особенности этапа проектирования. | Архитектура Структуры данных | Макетирование (прототипирование)- это процесс создания модели требуемого программного продукта. | Тестирование ПО | Особенности тестирования «черного ящика». | Оценка качества программных средств | Количественная оценка качества ПО | Три составные части процесса создания качественного ПО | В основе всех этих концепций лежит общее понимание жизненного цикла ПО как совокупности фаз, которые проходит программный продукт в процессе своего развития |
Оценка качества ПС по каждому из критериев сводится к оценке каждого из примитивов, связанных с этим критерием качества ПС, в соответствии с их конкретизацией, произведенной в спецификации качества этого ПС.
Методы оценки примитивов качества ПС можно разделить на четыре группы:
· непосредственное измерение показателей примитива качества;
· обработка программ и документации ПС специальными программными инструментами (процессорами);
· тестирование программ ПС;
· экспертная оценка на основании изучения программ и документации ПС.
Непосредственное измерение показателей примитива качества производится путем подсчета числа вхождений в тот или иной программный документ характерных единиц, объектов, конструкций и т.п., а также путем измерения времени работы различных устройств и объема занятой памяти ЭВМ при выполнении контрольных примеров. Например, некоторым показателем эффективности по памяти может быть число строк программы на языке программирования, а некоторым показателем эффективности по времени может быть время ответа на запрос. Использование каких-либо показателей для примитивов качества может определяться в спецификации качества ПС. Метод непосредственного измерения показателей примитива качества может сочетаться с использованием тестирования программ.
Для установления наличия у ПС некоторых примитивов качества могут использоваться определенные программные инструментальные средства. Такие программные инструменты обрабатывают тексты программ или программной документации с целью контроля каких-либо примитивов качества или получения некоторых показателей этих примитивов качества.
Для оценки структурированности программ ПС, если они программировались на подходящем структурном диалекте базового языка программирования, достаточно было бы их пропустить через конвертер структурированных программ, осуществляющий синтаксический и некоторый семантический контроль этого диалекта и переводящий тексты этих программ на входной язык базового транслятора. Однако таким путем в настоящее время удается контролировать лишь небольшое число примитивов качества, да и то в редких случаях. В ряде случаев вместо программных инструментов, контролирующих качество ПС, полезнее применять инструменты, осуществляющие преобразование представления программ или программной документации. Таким, например, является форматер программ, приводящий тексты программ к удобочитаемому виду, - обработка текстов программ ПС таким инструментом может автоматически обеспечить наличие соответствующего примитива качества у ПС.
Для оценки некоторых примитивов качества ПС используется тестирование
Тестирование рассматривается как интегрированный процесс, действующий на всех стадиях ЖЦ ПС. В нем собраны воедино все действия группы тестирования, “размытые” по другим процессам ЖЦ, начиная с процесса выявления требований и кончая процессом инсталляции ПС. Такой подход не только позволяет четко определить задачи группы тестирования, но и служит залогом правильного определения трудоемкости тестирования..
|
К примитивам качества ПС относится прежде всего:
- завершенность,
- точность,
- устойчивость,
- защищенность
В ряде случаев для оценки отдельных примитивов качества ПС тестирование применяется в сочетании с другими методами.
Так для оценки качества документации по применению ПС тестирование применяется в сочетании с экспертной оценкой этой документации.
Если при комплексной отладке ПС было проведено достаточно полное тестирование, то эти же тесты могут быть использованы и при аттестации ПС. В этом случае аттестационная комиссия может воспользоваться протоколами тестирования, проведенного при комплексной отладки.
Однако и в этом случае необходимо выполнить какие-либо новые тесты или хотя бы повторно некоторые старые. Если же тестирование при комплексной отладке будет признано недостаточно полным, то необходимо провести более полное тестирование. В этом случае может быть принято решение о проведении испытаний компонент или системных испытаний ПС, а также о возврате ПС разработчикам на доработку.
Весьма важно, чтобы для оценки ПС по критерию легкости применения было проведено (во время отладки и аттестации ПС) полное тестирование по тестам, подготовленным на основании документации по применению, а по критерию сопровождаемости - по тестам, подготовленным по каждому из документов, предлагаемых для сопровождения ПС.
Для оценки большинства примитивов качества ПС в настоящее время можно применять только метод экспертных оценок. Этот метод заключается в следующем: назначается группа экспертов, каждый из этих экспертов в результате изучения представленной документации составляет свое мнение об обладании ПС требуемым примитивом качества, а затем голосованием членов этой группы устанавливается оценка требуемого примитива качества ПС
Критерии качества программного обеспечения
Добротность - внутренняя характеристика программ и систем, соответствующая различным аспектам качества программного обеспечения.
Качество произведенного программного продукта, является важным технологическим понятием: достижение приемлемого качества должно планироваться, а в процессе технологического цикла разработки качество должно быть предметом инспекций и контроля.
Классически исходное представление о качестве связано с тем, что разработанный продукт подтверждает свою спецификацию, при этом спецификация должна быть ориентирована на характеристики, которые желает получить клиент.
Понятие качества программного обеспечения – это прежде всего внешняя оценка. Степень качества связана с удовлетворением потребностей пользователя.
Современные технологические стандарты уточняют понятие качества, вводя совокупность аспектов, в свете которых и должно рассматриваться качество.
Например, в роли таких аспектов выступают:
- безопасность,
- защищенность,
- надежность,
- устойчивость
-, понимаемость,
- тестируемость,
- адаптируемость,
- модульность,
- сложность,
- переносимость,
- доступность пользователю,
- повторная используемость,
- эффективность,
- изучаемость и сопровождаемость и др.
Большинство из перечисленных аспектов качества определенным образом связано с некоторыми свойствами компонентов программной системы, а также со свойствами структуры программного обеспечения как системы компонентов.
Разумная организация потока управления и информационных потоков в реализованной программе заведомо улучшает такие аспекты, как
- устойчивость,
- понимаемость,
- тестируемость,
- адаптируемость,
- переносимость,
- повторная используемость,
- сопровождаемость и другие.
Для оценки внутренних достоинств реализации программы с технической стороны предложено понятие добротности программы. В термин "добротность" вкладывается такой аспект хорошей программы, который заключается в том, что программа разумно, рационально реализована, с достаточно продуманной организацией потоков управления и информационных потоков, не слишком переусложнена.
Выбором этого термина подчеркивается чисто техническая сторона оценки – важна отнюдь не красота или изящество программы, которые, как правило, являются следствием оригинальной и интеллектуально сильной идеи, реализованной в программе, а именно качество собственно реализации, ее профессионализм, продуманность.
При такой оценке "за бортом" остаются многие аспекты качества ПО, прежде всего касающиеся функционального соответствия программного продукта запросам клиента. Однако вместе с тем, как уже и отмечалось, хорошая оценка этой внутренней характеристики программ, составляющих программный продукт, дает определенную уверенность, что другие важные характеристики качества программного обеспечения тоже будут выглядеть неплохо.
Достоинством такого технического подхода к оценке качества программ является возможность предложить достаточно точные методы или дисциплины оценки добротности программ при инспекции и контроле качества ПО на этапе кодирования, иначе говоря – на этапе создания собственно программного текста.
Недостаток этого подхода в том, что чаще всего можно говорить о добротности компонентов, но не о добротности всей программной системы в целом. Само понятие добротности нуждается в уточнении, что и будет сделано при описании критериев добротности.
Критерии добротности программ
Для оценки различных критериев добротности программ, можно свести их к следующим классам.
Количественные критерии
Количественные критерии связаны с той или иной метрикой сложности программ. В соответствии с мерой сложности по программному тексту может быть вычислена некоторая количественная характеристика или их набор, что и рекомендуется в технологиях программирования при контроле и инспекции качества. Поскольку заранее трудно говорить о том, какая сложность программы адекватна реализуемой задаче, полученную оценку можно сравнить с аналогичными продуктами, и из такого сравнения сделать вывод, переусложнена реализованная программа или нет. Следовательно, количественные критерии добротности программ, как правило, в отличие от всех последующих классов критериев, относительны – они не отвечают на вопрос о том, добротна ли данная программа, а позволяют сравнивать близкие программы и на основании сравнения определять, какая программа добротнее.
Достоинство количественных критериев в том, что с их помощью можно оценивать добротность как компонентов, так и самих систем. При модификации программы или системы можно оценивать, не изменилась ли заметно их сложность, не нарушена ли добротность.
Итак, с точки зрения количественных критериев добротная программа – это не переусложненная программа, а программа приемлемой степени сложности.
Генетические критерии
Известен следующий практический подход к оценке качества программ: программа признается хорошей, если она произведена по технологии, вызывающей доверие. Класс критериев, основанный на таком подходе – оценке добротности программ, можно назвать генетическим.
Структурные критерии
Разумная организация потока управления предполагает его ясное синтаксическое отображение в программном тексте. Подход к такому отображению сформулирован давно и выражается понятием структурированной программы. В такой программе управление представлено в виде иерархии регулярных управляющих структур, каждая из которых имеет один вход и один выход.
Прагматические критерии
Специальный класс критериев добротности программ, названный прагматическими критериями. Прагматические критерии добротности связаны с тем, что формально можно выявить некоторые свойства программы, которые содержательно трактуются как цели, достижению которых и служит программа. Такой целью может быть конечное состояние переменных, порождаемое программой, множество ее истинных (подтверждаемых программным текстом) результатов, подтверждаемые таким текстом потоки управления и информационные потоки.
Прагматические критерии группируются по нескольким видам требований к добротным программам.
§ Целевая направленность. В этом случае под целью понимается множество допустимых конечных состояний памяти переменных. Вычислительный процесс за счет применения операторов программы получает последовательность состояний – от начального до конечного, а программа, описывающая множество таких процессов, не может содержать операторы, всегда сохраняющие исходное (для оператора) состояние, в противном случае мы не движемся к цели, а топчемся на месте.
§ Структурная целесообразность. Цель – поддержка видимой структуры управления, а нецелесообразностью считается наличие циклов, заведомо не выполняемых более одного раза, или таких, эффект которых не требует повторения, а также операторов ветвления с заведомо не выполняемыми ветвями. Иначе говоря, структурный оператор управления, если уж он употреблен, должен действительно задавать все возможные по общей семантике оператора потоки управления.
§ Оправданная выстроенность вычислений. Целью здесь является некоторое разумное размещение вычислительного оператора в вычислительном процессе – там, где его присутствие необходимо, а не там, где он, хотя и корректно влияя, выполняется чаще, чем надо. Иначе говоря, выбор размещения оператора в некотором участке повторения должен быть оправдан. Нарушение этого вида требований возникает, например, когда оператор помещен в цикл, хотя без ущерба для корректности может быть оттуда вынесен.
§ Вычислительная неизбыточность. Цель – выработка значений тех переменных, которые формально могут быть определены как результаты программы, а излишеством считается присутствие вычислений и объектов, никак не влияющих на эти результаты.
§ Разумная организация информационных потоков. Здесь целью является поддержание обнаруженных информационных потоков.
Все эти классы критериев добротности могут использоваться при инспекции и контроле качества программного обеспечения.
|
|
Надежность, безопасность и устойчивость являются важнейшими характеристиками качества программного обеспечения (ПО) автоматизированных систем, существенным образом влияющими на эффективность их функционирования.
Теория устойчивости ПО, исследующая методы парирования негативных воздействий на ПО с использованием различного вида искусственной и естественной избыточности, имеет для ПО АС важное значение в силу их автономности. Методология этой теории полностью базируется на дефектологии ПО, в частности, на метрологии его дефектоустойчивости.
Основными дефектологическими свойствами ПО являются следующие:
- дефектогенность,
- дефектабельность,
- дефектоскопия,
- дефектоустойчивость,
- дефектодиагностика,
- дефектомобильность,
- дефектокорректируемость,
- дефектоника
- дефектометрия.
Эти свойства являются базовыми для разработки теорий надежности, безопасности и устойчивости ПО, особенно в метрологическом аспекте. Только умея измерять степень надежности, можно проводить эффективные мероприятия по разработке и испытаниям ПО до требуемого уровня надежности.
Для отработки ПО особое значение имеет качество инструментальных программных средств, используемых при испытаниях ПО, оценка которых невозможна без применения метрологической теории надежности ПО.
Дата добавления: 2015-07-25; просмотров: 94 | Нарушение авторских прав
mybiblioteka.su - 2015-2024 год. (0.009 сек.)