Основные понятия

Вид материалаДокументы

Содержание


Программное изделие
Понятие качественного программного изделия исвязанные с ним характеристики
Экономическая эффективность программного изделия
Экономический эффект
Срок окупаемости
Свойства программы
Характеристика качества программы
Метрика качества программ
Номинальной шкале
Модель классификации критериев качества по
Метрики качества программ
Подобный материал:



Основные понятия


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

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

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

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

Исходя из вышеизложенного будем называть ПС, предназначенные для продажи, программным изделием и приведем его определение. Программное изделие (ПИ) - это программа на носителе данных, являющаяся продуктом промышленного производства (ГОСТ 19.004-80).

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

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

Специфические особенности ПИ проявляются также в отсутствии некоторых видов работ в процессе их создания и эксплуатации по сравнению с любым другим видом промышленной продукции:


Этапы создания и эксплуатации программных изделий


Наименование этапов

Содержание работы




Продукция производственно-технического назначения

Программное изделие

Разработка

Определение требований пользователя.

Определение конструктивных элементов.

Проектирование конструктивных элементов.

Изготовление опытного образца и его испытание.

Создание технологии массового производства.

Определение требований пользователя.

Определение конструктивных элементов.

Проектирование конструктивных элементов.

Реализация и тестирование.


Ввод в эксплуатацию

Массовое производство.

Поставка пользователю.

Копирование.

Поставка пользователю.

Эксплуатация и обслуживание

Техническое обслуживание (ремонт).

Возвращение на доработку.

Расширение функциональных возможностей.



Сопровождение.

Сопровождение.

Снятие с эксплуатации

Физический износ.

Моральный износ.

-

Моральный износ


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

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


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

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

Наиболее полный свод характеристик качества ПИ можно представить в виде дерева:

Общая полезность






Мобильность

Удобство эксплуатации

Исходная полезность



Понятность

Оцениваемость

Надежность

Учет человеческого фактора


Модифицируемость


Эффективность

Элементарные характеристики являются составными частями более обобщенных.

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

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

Например, чтобы ПИ было мобильным, необходимо обеспечить максимальную независимость от типа ЭВМ (машино-независимость) и максимальную независимость от операционной системы.

Чтобы обеспечить свойство модифицируемости, ПИ должно быть хорошо структурировано, документировано, открыто к расширению существующих и добавлению новых функций.

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

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

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

Открытость ПИ дает возможность понять назначение каждого оператора ПИ при чтении ее текста, другими словами, каждый из идентификаторов должен нести смысловую нагрузку, например

SUM = CENA • KOL .


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

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

Следующая характеристика качественного ПИ, которая также является комплексной – надежность.

Остановимся на характеристиках, которые тесно связаны с ней.

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

Характерным примером незавершенности ПИ может служить отсутствие в нем одного из модулей, обеспечивающего какой-либо дополнительный (не основной) режим работы. Например, модуль, обеспечивающий просмотр исходного документа при вводе данных с определенной страницы. Кроме того, примером незавершенности ПИ может служить некомплектная документация либо отсутствие в каком-либо из сопровождающих документов отдельных разделов.

Точность – характеристика, определяющая точность результатов расчета в соответствии с их назначением. Например, если в программе ведутся расчеты по банковским операциям, то разумная точность – 3 знака после запятой с последующим округлением до двух знаков. Если в программе производятся расчеты по биологическим экспериментам, то может потребоваться точность до 10-12.

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

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

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

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


Экономическая эффективность программного изделия

Под экономической эффективностью ПИ понимают меру соотношения затрат и результатов функционирования ПИ.

К основным показателям экономической эффективности относятся: экономический эффект, коэффициент экономической эффективности капитальных вложений.

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


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

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

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

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

Предварительный экономический эффект рассчитывается до выполнения разработки на основе данных технических предложений и прогноза использования. Предварительный эффект является элементом технико-экономического обоснования разработки ПИ и используется при планировании разработки и внедрения ПИ.

Потенциальный экономический эффект рассчитывается по окончании разработки на основе достигнутых технико-экономических характеристик и прогнозных данных о максимальных объемах использования ПИ в народном хозяйстве. Потенциальный эффект используется при оценке деятельности организаций-разработчиков ПИ.

Гарантированный экономический эффект рассчитывается в виде гарантированного экономического эффекта для конкретного объекта внедрения и общего гарантированного внедрения по ряду объектов.

Гарантированный экономический эффект для конкретного объекта внедрения рассчитывается после окончания разработки для одного программовнедрения на основе данных о гарантированном разработчиком удельном эффекте от применения ПИ и гарантированных пользователем сроках и годовом объеме использования ПИ. Гарантированный эффект от одного внедрения ПИ рассчитывается при оформлении договорных отношений между организацией-разработчиком и организацией-пользователем.

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

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

Показатели экономической эффективности ПИ определяются:

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



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


Качество программного обеспечения


Качество программ - понятие, аккумулирующее противоречивые природы самих программ и противоречия, возникающие при их создании.

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

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

Иногда определяют понятие качества ПО через фиксированный набор свойств программ: качество ПО представляет собой степень соответствия ПО установленным критериям качества. Критерии качества включают следующие характеристики:
  1. экономичность; 2) документированность; 3) гибкость; 4) модульность; 5) надежность; 6) обоснованность; 7) тестируемость; 8) упругость; 9) ясность; 10) портативность; 11) полноту; 12) понятность; 13) способность к взаимодействию; 14) точность; 15) модифицируемость; 16) общность; 17) легкость применения; 18) легкость сопровождения; 19) эффективность.

Приведенный набор характеристик не является исчерпывающим и может быть расширен.

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

Исходя из изложенного, дадим определение качеству ПО.

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

При изучении проблем качества ПО, можно выделить два взаимосвязанных направления исследований:

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

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

Оценка качества ПО включает два основных этапа:

1)получение информации о фактическом состоянии контролируемого обьекта;

2)сопоставление этой информации с предъявленными требованиями , т.е. установление факта соответствия реальных свойств требуемым.

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

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

Свойства программы – это объективные особенности программы, проявляющиеся при ее разработке, эксплуатации или сопровождении.

Показатель качества программы – понятие, отражающее определенную часть свойств программы и поддающееся интуитивной оценке. Характеризует одно или несколько свойств программы.

Характеристика качества программы – понятие, отражающее отдельные факторы, влияющие на качество программы и поддающиеся изменению.

Критерий качества – численный показатель, характеризующий степень, в которой программе присуще оцениваемое свойство.

Основные требования к критериям качества программ:

А) критерий должен численно характеризовать основную целевую функцию программы;

Б) критерий должен обеспечивать возможность определения затрат, необходимых для достижения требуемого уровня качества, а также степени влияния на показатель качества различных внешних факторов;

В) критерий должен быть по возможности простым, хорошо измеримым и иметь малую дисперсию.

Для измерения характеристик и критериев качества необходим соответствующий математический аппарат. Рассмотрим математическое определение метрики.

Метрика – отношение, определяющее расстояние между элементами множества, причем метрика:
  1. Всегда неотрицательна и равна 0, если элементы множества совпадают (аксиома тождества);
  2. Метрика симметрична (аксиома симметрии);
  3. Метрика подчиняется аксиоме треугольника.

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

Метрика качества программ – система измерений качества программ. Эти измерения могут приводиться на уровне критериев качества программ или на уровне отдельных характеристик качества. В первом случае система измерений, давая значение уровня качества по критериям, позволяет непосредственно сравнивать программы по качеству. При этом сами измерения не могут быть проведены без субъективных оценок свойств программ. Во втором случае измерения характеристик можно выполнить объективно и достоверно, но оценки качества ПО в целом будут связаны с субъективной интерпретацией получаемых оценок.

Введение метрики весьма важно, поскольку позволяет говорить о формализации оценки разработки ПО. В исследовании метрики ПО различают два основных направления:
  1. Поиск метрик, характеризующих наиболее специфические свойства программ, т.е. метрик оценки самого ПО;
  2. Использование метрик для оценки технических характеристик и факторов разработки программ, т.е. метрик оценки условий разработки программ.

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

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

В зависимости от характеристик и особенностей применяемых метрик им ставятся в соответствие различные измерительные шкалы. Существует три вида шкал: номинальная, порядковая и интервальная.

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

Второму виду шкалы – порядковой шкале соответствуют метрики, позволяющие ранжировать некоторые характеристики путем сравнения с опорными значениями, т.е. измерение по этой шкале фактически определяет взаимное положение конкретных программ. Например, мы могли бы не только сказать, что некоторые программы A, B и С относятся к разряду “умеренно трудных для понимания”, но и то, что программа В труднее программы А, а программа А труднее программы С.

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

Предлагается еще один вид шкалы – относительная шкала, которая позволяет не только расположить программы определенным образом и оценить положение программ относительно друг друга, но и определить, как далеко оценки отстоят от границы, начиная с которой характеристика может быть измерена. Например, мы могли бы сказать, что программа В в два раза труднее программы А.

Вариант взаимосвязи показателей и критериев качества программы можно описать с помощью двухуровневой модели:

Корректность




Прослеживаемость Согласованность Полнота

Надежность






Устойчивость Согласованность Точность Простота

к ошибкам

Эффективность




Эффективность по времени Эффективность по памяти

Целостность




Контроль доступа Регистрация доступа

Применимость







Управляемость Объем Изучаемость Интенсивность Коммертативность

ввода-вывода ввода-вывода

Удобство сопровождения







Согласованность Простота Компактность Способность к Модульность

самоописанию

Гибкость






Модульность Общность Расширяемость Способность к самоописанию

Тестируемость







Простота Модульность Оснащенность средствами Способность к самоописанию



Мобильность




Модульность Машинонезависимость Независимость Способность к самоописанию

от системного ПО

Адаптируемость






Общность Модульность Машинонезависимость Независимость от системного ПО

Совместимость







Модульность Обобщенность средств Обобщенность представления

коммуникации данных


Рис. Модель связи критериев и показателей качества ПО.

(Показатели качества обведены рамками)


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

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

Развитием иерархического подхода можно также считать модель классификации критериев качества:

Критерии

качества

программ



Функциональные критерии качества программ

Конструктивные критерии качества программ

Факторы и параметры, влияющие на основные критерии качества программ





Критерии этапа проектирования программ

Критерии этапа эксплуатации программ

Критерии этапа сопровождения программ

МОДЕЛЬ КЛАССИФИКАЦИИ КРИТЕРИЕВ КАЧЕСТВА ПО


При сохранении общего принципа иерархичности критерии классифицированы на несколько групп по характеру оценок и признаку связи с конкретным этапом разработки программного комплекса. Наиболее интересным в этой модели представляется введение двух основных групп критериев: функциональных и конструктивных.

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

Конструктивные критерии белее универсальны и предназначены для оценки системы аспектов разработки программ, не зависящих от целевого назначения.

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


Управление качеством


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

Исходя из ГОСТа можно утверждать, что управление качеством – это действия по установлению, обеспечению и поддержанию качества при создании и эксплуатации или потреблении продукции.

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

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

При планировании качества определяются требования к свойствам создаваемого ПО. Каждая программная система уникальна по тем требованиям, которые предъявляются к ее качеству. Однако, всегда можно определить базовые характеристики системы, влияющие на уровень требований к качеству. Именно по этим функциональным свойствам и должна анализироваться каждая создаваемая система. Примером таких характеристик могут быть: влияние на безопасность для жизни людей; длительный жизненный цикл; применение к задачам реального времени; обработка классификационной информации; взаимодействие с другими системами.

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

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

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


Метрики качества программ


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

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

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