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

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

Существует множество определений качества, в основе понятия качества продукта или услуги лежит идея об удовлетворении потребностей конечного пользователя – реального или потенциального потребителя. Вот определение этого понятия в соответствии со стандартом ISO 8402:1994.

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

Можно выделить три большие группы факторов, влияющих на качество программного обеспечения:

функциональная – связана с полнотой и удобством использования реализованных функций программного средства;

административная – связана с квалификацией персонала, организационной структурой и управлением персоналом;

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

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

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

– сильное влияние человеческого фактора на производство программного продукта, так как производство программного продукта – интеллектуальная и творческая деятельность;

– в жизненном цикле программного продукта, как правило, отсутствует этап утилизации;

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

Все эти, а также многие другие особенности должны быть учтены в программе оценки качества и управления качеством.

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

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

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

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

К административным можно отнести следующие мероприятия:

1 Проведение обучения персонала, переподготовки.

2 Тщательное документирование всех изменений в структуре программного средства. Для этого используются средства поддержки версионности.

3 Назначение ответственных лиц за каждую доработку программного средства.

4 Уделение внимания текущему контролю качества и заключительному контролю качества.

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

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

7 Организация отдела тестирования как самостоятельного подразделения.

8 Проведение совместных аттестаций с пользователем.

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

К технологическим относятся следующие мероприятия.

1 Выбор стандарта качества и четкое следование ему на всех этапах. Создание модели проекта с регулярными проверками, которые будут выполняться независимыми командами экспертизы. Такая модель может быть построена, например, на основе стандартов качества (например, ISO 9000).

2 Единая среда разработки. Лучшие результаты дают программные продукты разработки, которые поддерживают несколько или все этапы жизненного цикла программного обеспечения. На данный момент такими комплексными решениями являются, например, продукты Oracle Designer, продукты фирмы Rational.

3 Использовать формальный язык спецификаций (например, UML, DESIGN IDEF).

4 Выбор надежной СУБД (если программное средство работает с массивами информации и использование СУБД оправдано).

5 Тщательное тестирование программного обеспечения.

6 Широкое внедрение автоматизации тестирования.

7 Использование полностью проверенной программной среды окружения (ОС) и языка программирования, которые минимизируют опасность внесения ошибки.

8 Использование статистических методов для сбора информации о качестве ПС.

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

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: