32542

КАЧЕСТВО ПРОГРАММНОГО СРЕДСТВА

Лекция

Информатика, кибернетика и программирование

Понятие качества программного средства. Этому препятствует тот факт что повышение качества ЭС по одному из таких свойств часто может быть достигнуто лишь ценой изменения стоимости сроков завершения разработки и снижения качества этого ЭС по другим его свойствам. Поэтому при описании качества ЭС прежде всего должны быть фиксированы критерии отбора требуемых свойств ЭС. В настоящее время критериями качества программных средств criteri of softwre qulity принято считать: Функциональность  это способность ЭС выполнять набор...

Русский

2013-09-04

68.5 KB

27 чел.

екция №13. Разработка и использование ЭС образовательного назначения

КАЧЕСТВО ПРОГРАММНОГО СРЕДСТВА.

Понятие качества программного средства.

Каждое ЭС должно выполнять определенные функции, т.е. делать то, что задумано. Хорошее ЭС должно обладать еще целым рядом свойств, позволяющим успешно его использовать в течении длительного периода, т.е. обладать определенным качеством.

Качество (quality) ЭС это совокупность его черт и характеристик, которые влияют на его способность удовлетворять заданные потребности  пользователей.

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

Совокупность свойств ЭС, которая образует удовлетворительное для пользователя качество ЭС, зависит от условий и характера эксплуатации этого ЭС,  т.е. от позиции, с которой должно рассматриваться качество этого ЭС. Поэтому при описании качества ЭС, прежде всего, должны  быть фиксированы критерии отбора требуемых свойств ЭС. В настоящее время критериями качества программных средств (criteria of software quality) принято считать:

  •  Функциональность  это способность ЭС выполнять набор функций, удовлетворяющих заданным или подразумеваемым потребностям пользователей. Набор указанных функций определяется во внешнем описании ЭС.
  •  Надежность - это его способность безотказно выполнять определенные функции при заданных условиях в течение заданного периода времени с достаточно большой вероятностью.
  •  Легкость применения  это характеристики ЭС, которые позволяют минимизировать усилия пользователя по подготовке исходных данных, применению ЭС и оценке полученных результатов, а также  вызывать положительные эмоции определенного или подразумеваемого пользователя.
  •  Эффективность  это отношение уровня услуг, предоставляемых ЭС пользователю при заданных условиях, к объему используемых ресурсов.
  •  Сопровождаемость  это характеристики ЭС, которые позволяют минимизировать усилия по внесению изменений для устранения в нем ошибок и по его модификации в соответствии с изменяющимися потребностями пользователей.
  •  Мобильность  это способность ЭС быть перенесенным из одной среды (окружения) в другую, в частности, с одного компьютера на другой.

Функциональность и надежность являются обязательными критериями качества ЭС. Остальные критерии используются в зависимости от потребностей пользователей.

Обеспечение надежности    основной  мотив  разработки программных  средств.

Рассмотрим теперь общие принципы обеспечения надежности, что является основным мотивом разработки ЭС. В технике известны четыре подхода обеспечению надежности:

  1.  Предупреждение ошибок. Целью подхода предупреждения ошибок не допустить ошибок в готовых продуктах, в нашем случае в ЭС. Проведенное рассмотрение  природы  ошибок  при разработке ЭС позволяет для достижения этой цели сконцентрировать внимание на следующих вопросах:
  •  борьба со сложностью,
  •  обеспечение точности перевода,
  •  преодоление барьера между пользователем и разработчиком,
  •  обеспечение контроля принимаемых решений.

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

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

  1.  Самообнаружение ошибки в программе означает, что  программа содержит средства обнаружения отказа в процессе ее выполнения.
  2.  Самоисправление ошибки в программе означает не только обнаружение отказа в процессе ее выполнения, но и исправление последствий этого отказа, для чего в программе должны иметься соответствующие средства.
  3.  Обеспечение устойчивости программы к ошибкам означает,  что в программе содержатся средства, позволяющие локализовать область влияния отказа программы, либо уменьшить его неприятные последствия, а иногда предотвратить катастрофические последствия отказа.

Однако эти подходы используются весьма редко (может быть, относительно чаще используется обеспечение устойчивости к ошибкам). Связано это, во-первых,  с тем, что многие простые методы, используемые в технике в рамках этих подходов, неприменимы в программировании, например, дублирование отдельных блоков и устройств (выполнение двух копий одной  и той же программы всегда будет приводить к одинаковому эффекту правильному или неправильному). А, во-вторых, добавление в программу дополнительных фрагментов приводит к ее усложнению (иногда значительному),  что в какой-то  мере  мешает  методам предупреждения ошибок.

Методы борьбы со сложностью.

Известны два общих метода борьбы со сложностью систем:

  1.  обеспечения независимости компонент системы;
  2.  использование в системах иерархических структур.

Обеспечение независимости компонент означает разбиение системы на такие части, между которыми должны остаться по возможности меньше связей. Одним из воплощений этого метода является модульное программирование. Использование в системах иерархических структур позволяет локализовать связи между компонентами, допуская их лишь между компонентами, принадлежащими смежным уровням иерархии. Этот метод, по существу, означает разбиение большой системы на подсистемы, образующих малую систему. Здесь существенно используется способность человека к абстрагированию.

Спецификация качества электронного программного средства.

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

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

  •  Функциональность: завершенность.
  •  Надежность: завершенность, точность, автономность, устойчивость, защищенность.
  •  Легкость применения: П-документированность, информативность (только применительно к документации по применению), коммуникабельность, устойчивость, защищенность.
  •  Эффективность: временная эффективность, эффективность по ресурсам (по памяти), эффективность по устройствам.
  •  Сопровождаемость. С данным критерием связано много различных примитивов качества. Однако их можно распределить по двум группам, выделив два подкритерия качества: изучаемость и модифицируемость. Изучаемость  это характеристики ПС, которые позволяют минимизировать усилия по изучению и пониманию программ и документации ПС.  Модифицируемость это характеристики ПС, которые позволяют автоматически настраивать на условия применения ПС или  упрощают внесение в него вручную необходимых изменений и доработок.
  •  Изучаемость: С-документированность, , понятность, структурированность, удобочитаемость.
  •  Модифицируемость: расширяемость,  структурированность, модульность.
  •  Мобильность: независимость от устройств, автономность, структурированность, модульность.

Определения используемых примитивов качества ПС

  •  Завершенность (completeness)  свойство, характеризующее степень обладания ПС всеми необходимыми частями и чертами, требующимися для выполнения своих явных и неявных функций.
    •  Точность (accuracy)  мера, характеризующая приемлемость величины погрешности в выдаваемых программами ПС результатах с точки зрения предполагаемого их использования.
    •  Автономность (self-containedness)  свойство, характеризующее способность ПС выполнять предписанные функции без помощи или поддержки  других компонент программного обеспечения.
    •  Устойчивость (robustness)  свойство, характеризующее способность ПС продолжать корректное функционирование, несмотря на задание неправильных (ошибочных) входных данных.
    •  Защищенность (defensiveness)  свойство, характеризующее способность ПС противостоять преднамеренным или нечаянным деструктивным (разрушающим) действиям пользователя.
    •  П-документированность (u. documentation)  свойство, характеризующее наличие, полноту, понятность, доступность и наглядность учебной, инструктивной и справочной документации, необходимой для применения ПС.
    •  Информативность (accountability)  свойство, характеризующее наличие в составе ПС информации, необходимой и достаточной для понимания назначения ПС, принятых предположений, существующих ограничений, входных данных и результатов работы отдельных компонент, а также текущего состояния программ в процессе их функционирования.
    •  Коммуникабельность (communicativeness)  свойство, характеризующее степень, в которой ПС облегчает задание или описание входных данных, и способность выдавать полезные сведения в достаточно простой форме и с простым для понимания содержанием.
    •  Временная эффективность (time efficiency)  мера, характеризующая способность ПС выполнять возложенные на него функции в течение определенного отрезка времени.
    •  Эффективность по ресурсам (resource efficiency)  мера, характеризующая способность ПС выполнять возложенные на него функции при определенных ограничениях на используемые ресурсы (используемую память).
    •  Эффективность по устройствам (device efficiency)  мера, характеризующая экономичность использования устройств машины для решения поставленной задачи.
    •  С-документировапнность (documentation)  свойство, характеризующее с точки зрения наличия документации, отражающей требования к ПС и результаты различных этапов разработки данного ПС, включающие возможности, ограничения и другие черты ПС, а также их обоснование.
    •  Понятность (understandability)  свойство, характеризующее степень, в которой ПС позволяет изучающему его лицу понять его назначение, сделанные допущения и ограничения, входные данные и результаты работы его программ, тексты этих программ и состояние их реализации.  Этот примитив качества синтезирован из таких примитивов, как согласованность, самодокументированность, четкость и понятность (текстов программ).
    •  Структурированность (structuredness)  свойство, характеризующее программы ПС с точки зрения организации взаимосвязанных их частей в единое целое определенным образом (например, в соответствии с принципами структурного программирования).
    •  Удобочитаемость (readability)  свойство, характеризующее легкость восприятия текста  программ ПС (отступы, фрагментация, форматированность).
    •  Расширяемость (augmentability)  свойство, характеризующее способность ПС к использованию большего объема памяти  для хранения данных или расширению функциональных возможностей отдельных компонент.
    •  Модифицируемость (modifiability)  мера, характеризующая ПС с точки зрения простоты внесения необходимых изменений и доработок на всех этапах и стадиях жизненного цикла ПС.
    •  Модульность (modularity)  свойство, характеризующее ПС с точки зрения организации его программ из таких дискретных компонент,  что изменение одной из них оказывает минимальное воздействие на другие компоненты.
    •  Независимость от устройств (device independence)  свойство, характеризующее способность ПС работать на разнообразном аппаратном обеспечении (различных типах, марках, моделях компьютеров).

Функциональная спецификация программного средства.

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

Функциональная спецификация состоит из трех частей:

описания внешней информационной среды, к которой должны применяться программы разрабатываемой ПС;

 В этой части должны быть определены на концептуальном уровне все используемые каналы ввода и вывода и все информационные объекты,  к которым будет применяться разрабатываемое ПС,  а также существенные связи между этими информационными объектами. Примером описания информационной среды может быть концептуальная схема базы данных или описание сети датчиков и приборов, которой должна управлять разрабатываемая ПС.

определение функций ПС, определенных на множестве состояний этой информационной среды (такие функции будем называть внешними функциями ПС);

Вводятся обозначения всех определяемых функций, специфицируются все входные данные и результаты выполнения  каждой определяемой функции, включая указание их типов и заданий всех соотношений (или ограничений), которым должны удовлетворять эти данные и результаты. И, наконец, определяется семантика каждой из этих функций, что является наиболее трудной задачей функциональной спецификации ПС. Обычно эта семантика описывается неформально на естественном языке примерно  так, как это делается при описании семантики многих языков программирования. Эта задача может быть в ряде случаев существенно облегчена при достаточно четком описании внешней информационной среды, если внешние функции задают какие-либо манипуляции с ее объектами.

описание нежелательных (исключительных) ситуаций, которые могут возникнуть при выполнении программ ПС, и реакций на  эти ситуации, которые должны обеспечить соответствующие программы.

В третьей части должны быть перечислены все существенные случаи, когда ПС не сможет нормально выполнить ту или иную свою функцию (с точки  зрения внешнего наблюдателя).  Примером такого случая может служить обнаружение ошибки во время взаимодействия с пользователем,  или попытка применить какую-либо функцию к данным, не удовлетворяющим соотношениям, указанным в ее спецификации, или получение результата, нарушающего заданное ограничение. Для каждого такого случая должна быть определена (описана) реакция ПС.

PAGE  1


 

А также другие работы, которые могут Вас заинтересовать

16508. Ошибки медицины, опыт целителей 11.47 MB
  А.М. Береснев Ошибки медицины опыт целителей Пришло время осознать что в окружающем нас мире само устройство Мирозданья сообразуется с канонами которые наука называет законами Природы и привести все свои знания и действия в соответствие с этими канонами. Если бы
16509. Создать программу в Delphi с задаными действиями 75 KB
  Лабораторная работа № 6 Создать программу в Delphi со следующими действиями. Задайте цвет формы свойство color. Часть первая: На событие мыши OnMouseDown переведите значение переменной Flag:Boolean в True выполните процедуру Form1.Canvas.MoveTox0y0 где x0y0 – позиция курсора мышки и откройте ...
16510. Изучение назначения, устройства, принципа действия и характеристик газореактивных исполнительных устройств систем автоматического управления ЛА 2.9 MB
  ЛАБОРАТОРНАЯ РАБОТА №3 Изучение назначения устройства принципа действия и характеристик газореактивных исполнительных устройств систем автоматического управления ЛА. 1.Цель работы. Изучение назначения устройства принципа действия и характеристик газо
16511. Основы эмбриологического рисунка 180.61 KB
  Основы эмбриологического рисунка Современные способы получения изображений биологических объектов становятся все более привычными для специалистовбиологов. Так классический фотопроцесс вытесняется методами видеомикроскопии объект исследования все чаще фотограф...
16512. ПРАВИЛА ВИКОНАННЯ ЕЛЕКТРИЧНИХ СХЕМ ЦИФРОВОЇ ТЕХНІКИ 143.5 KB
  Лабораторна робота 3 Тема: ПРАВИЛА ВИКОНАННЯ ЕЛЕКТРИЧНИХ СХЕМ ЦИФРОВОЇ ТЕХНІКИ Електрична схема – це конструкторський документ в якому умовними графічними позначеннями УГП показано складові частини виробу і зв’язки між ними. Їх виконують у відповідності д...
16513. Прикладная численная математика 134 KB
  Лабораторная работа №5 Прикладная численная математика 1.1 Вычисление определенных интегралов В MATLAB определены команды quad и quadl для приближенного вычисления определенных интегралов I = dx. Команда quad или quadl имеет следующие модификации: quad'fx' ab; quad'fx' a...
16514. Вычисление пределов – команда limit 62 KB
  Лабораторная работа №6 1.1 Вычисление пределов – команда limit Для вычисления пределов функции Fx заданной в аналитическом символьном виде служит команда limit которая используется в одном из следующих вариантов: limitFxa – возвращает предел символьного выражения F
16515. Разложение в ряд Тейлора – команда taylor 208.5 KB
  Лабораторная работа №7 1.1 Разложение в ряд Тейлора – команда taylor В задачах аппроксимации и приближения функций fx важное место занимает их разложение в ряд Тейлора в окрестности точки a: fx = . Частным случаем этого ряда при a = 0 является ряд Маклорена: fx = ...
16516. ИЗМЕРЕНИЕ ПАРАМЕТРОВ СИГНАЛОВ И ЦЕПЕЙ 789.5 KB
  ИЗМЕРЕНИЕ ПАРАМЕТРОВ СИГНАЛОВ И ЦЕПЕЙ Методические указания к лабораторной работе № 1 по курсам Основы теории цепей Теория электрических цепей для студентов направлений Радиотехника Телекоммуникации Информационная безопасность В методических...