Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции - Безруков.doc
Скачиваний:
7
Добавлен:
01.04.2025
Размер:
1.07 Mб
Скачать

Программно-информационный продукт – особый вид товара Что такое программный продукт

Чтобы одинаково понимать даже всем известные термины давайте дадим их точные определения. В различных нормативных документах приводятся разные определения даже основных терминов. Ниже приводятся наиболее часто применяемые определения, приведенные в отечественных терминологических стандартах, гармонизированных (согласованных) с международными стандартами в области программного обеспечения. Определяемые термины выделены курсивом, в скобках указаны английские названия этих терминов.

программа (program) - данные, предназначенные для управления конкретными компонентами системы обработки информации в целях реализации определенного алгоритма. (ГОСТ 19781)

программное средство (software) (ПС) - объект, состоящий из программ, процедур, правил, а также, если предусмотрено, сопутствующих им документации и данных, относящихся к функционированию системы обработки информации (ГОСТ 19781).

Объем понятия, выражаемого производным термином «программные средства», включает в себя как частный случай объем понятия «программное обеспечение», определяемого по ГОСТ 19781.

программный продукт (software product) (ПП) - программное средство, предназначенное для поставки, передачи, продажи пользователю (ГОСТ 28806-901).

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

Характеристики качества программного продукта

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

При выборе программы, потребителя, как правило, не интересует, как она устроена внутри. Для него гораздо важнее, как она поведет себя в деле. Такой взгляд на программу получил название пользовательское качество. В терминологическом стандарте2 ИСО 8402 дано следующее определение:

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

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

Рис. 1.1. Комплексные характеристики пользовательского качества ПП

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

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

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

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

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

В тоже время, понятие ‘качество программы’ является трудным для формализации и измерения. Приведем примеры.

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

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

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

Из сказанного видно, как важно обеспечить единство понимания качества и измеримость его характеристик.

Для упорядочения использования характеристик качества программного обеспечения разработан стандарт ГОСТ Р ИСО/МЭК 9126-93 [1.4]. Стандарт придерживается определения качества, данного стандартом ИСО 8402 [1.5]. В стандарте определяется шесть групп характеристик, которые с минимальным дубли­рованием описывают различные аспекты качества программного обеспечения (ПС). Эти характеристики определены так, что могут применяться к любому виду ПС. В своей совокупности группы характеристик обра­зуют основу для дальнейшего уточнения и описания качества ПС.

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

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

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

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

Программа должна делать то, что мне нужно. Делать правильно, в приемлемые сроки и с приемлемой трудоемкостью. Для оценки этого аспекта стандарт предлагает группу характеристик “функциональные возможности” (Functionality). Это совокупность свойств программного средства, определяемая наличием и конкретными особенностями набора функций, способных удовлетворять заданные или подразумеваемые потребности.

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

База данных, используемая программой, содержит верную и актуальную информацию. Если я своевременно введу в ЭВМ правильные данные и правильно ей воспользуюсь, то гарантированно получу правильные результаты в нужные мне сроки.

Приведём некоторые конкретные характеристики этой группы:

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

Правильность (Accuracy) Степень правильности получаемых результатов и соответствия реакции программы ожидаемой

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

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

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

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

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

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

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

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

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

Осваиваемость (learn ability)" - совокупность свойств, характеризующая затраты усилий, необходимые для освоения правил использования ПС.

Управляемость (operability) - совокупность свойств, характеризующая затраты усилий пользователя непосредственно на эксплуатацию и управление функционированием ПС.

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

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

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

  • труд специалистов;

  • другие программные и технические средства; материалы (например, бумага и машинные носители);

  • услуги (например, трафик, консультации) и т.д.

Подхарактеристики этой группы:

Характер изменения во времени (time behavior) – время выполнения функций и обработки, пропускная способность и время реакции программы.

Характер изменения ресурсов (resource behavior) - объемы используемых ресурсов и продолжительность их использования.

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

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

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

В таблице 1.1 приведены группы и составляющие их характеристики качества ПС, предлагаемые стандартом ГОСТ Р ИСО/МЭК 9126-93.

Таблица 1.1

Группы характеристик качества программного обеспечения

Группа

Характеристики

Функциональность (Functionality)

Пригодность (Suitability)

Правильность (Accuracy)

Способность к взаимодействию (Interoperability)

Защищенность (Security)

Согласованность (с действующими стандартами) (Compliance)

Надежность (Reliability)

Стабильность (Maturity)

Устойчивость к ошибке (Fault tolerance)

Восстанавливаемость (Recoverability)

Согласованность (со стандартами надежности) (Reliability compliance)

Удобство использования (Usability)

Понятность (Understand ability)

Обучаемость (Learn ability)

Простота использования (Operability)

Привлекательность (Attractiveness)

Согласованность(со стандартами удобства) (Compliance)

Эффективность (Efficiency)

Характер изменения во времени (Time behavior)

Характер изменения ресурсов (Resource behavior)

Согласованность (со стандартами эффективности) (Compliance)

Сопровождаемость (Maintainability)

Анализируемость (Analyzability)

Изменяемость (Changeabi1ity)

Устойчивость (Stabi1ity)

Тестируемость (Testabi1ity)

Согласованность (со стандартами сопровождаемости) (Compliance)

Мобильность (Portability)

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

Простота внедрения (Installabi1ity)

Совместимость (Co-existence)

Взаимозаменяемость (Rep1aceabi1i1y)

Согласованность (со стандартами мобильности) (Compliance)

Критерий Тагути

Как видим, перечень требований к программе, как к товару весьма разнообразен. Как же оценить качество конкретного программного продукта? Как сопоставить характеристики различных программ? Японский ученый Тагути сформулировал следующий критерий оценки качества товара: «Качество товара (продукта или услуги) тем выше, чем меньше совокупные затраты и потери всего общества, связанные с его разработкой, изготовлением, применением и утилизацией».

Если внимательно просмотреть перечисленные раньше требования к программе, мы убедимся: все они удовлетворяют критерию Тагути. Критерий позволяет не только сформулировать требования к качеству, но и:

  • Оценить полноту перечня требований. Для этого достаточно задать вопрос: «А все ли виды затрат и потерь мы учли?»

  • Отделить характеристики качества от других характеристик, может быть влияющих на продажу, но к качеству не имеющих прямого отношения. Например, красочность упаковки программного продукта и «раскрученность» его рекламы могут повлиять на объемы продаж. Но характеристиками качества они не являются, так как не влияют на сокращение потерь.

  • Дать общее правило измерения (сопоставление) качества различных программ. Нужно просто правильно подсчитать все потери и затраты.

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