Введение в разработку приложений на платформе Atom/MeeGo. Граничин О.Н - 162 стр.

UptoLike

162
невозможности добиться удовлетворительного функционирования. Средний проект разработки
программного обеспечения затягивается на половину первоначально запланированного срока,
крупные проекты и того хуже. Три четверти всех больших систем либо выполняют не все функции,
которые на них возлагались, либо не используются вовсе».
По данным Департамента по Торговле и Промышленности Великобритании (DTI) при внедрении
проектов информационных технологий на предприятиях потери из-за некачественного программного
обеспечения составляют в среднем около 20% от общего объема потерь. По разным оценкам
аналогичный показатель для России достигает величины от 30 до 50%.
Может показаться, что управлять количеством ошибок в коде невозможно и их число зависит
только от способностей конкретного разработчика. Это не совсем так. В конце 80-хначале 90-х
годов в программной индустрии был проведен ряд серьезных исследований эффективности труда
программистов. Вот данные американского Института программной инженерии (Software Engineering
Institute SEI). Профессиональные программисты со стажем 10 и более лет на 1000 строк кода (СК
строка исходного текста, которая содержит программную инструкцию) допускают в среднем 131,3
ошибки. Следовательно, большая система размером миллион СК может содержать 100 тысяч ошибок!
Если транслятор имеет развитую систему предупреждений, то до 50% из них выявляется на этапе
компиляции.
На этапе тестирования отдельных модулей (типичный программный модуль по определению SEI
содержит от 50 СК до 5 тысяч СК) обнаруживается половина оставшихся ошибок. Получается, что
перед этапами внедрения и комплексного тестирования в продукте еще скрывается 25 тыс. ошибок.
Для их устранения на заключительных этапах тратится от 10 до 40 человекоасов на ошибку, т. е. на
доведение продукта до идеального состояния потребуется 125 человеко-лет работы! Это, конечно,
сильное преувеличение, но суть именно такована исправление ошибок за весь период
сопровождения продукта суммарные затраты времени (в человекоесяцах) могут быть весьма
значительными!
Можно привести другой пример. Типичный небольшой продукт имеет объем до 50 тысяч СК.
Пусть его создают 5 программистов, делая при этом 100 ошибок на тысячу СК. 50% ошибок
выявляется на этапе компиляции с незначительными расходами времени, устранение ошибок на этапе
тестирования занимает 90% времени. Стоимость устранения одной ошибки в готовом продукте по
данным Microsoft оценивается в 4 тыс. долл. (по данным IBM устранение ошибок в ее продуктах,
выпущенных в эксплуатацию, обходится от 2-х до 20 тысяч долларов на ошибку) [2].
Корень зла кроется в неправильных акцентах при управлении качеством ПО!
Корреляция между числом ошибок, обнаруженных при тестировании отдельных модулей, и
числом ошибок, найденных пользователями в готовом продукте, равна 0,91. Отсюда выводесли на
тестирование поступит некачественный продукт, он таким и будет выпущен в продажу! Таким
образом, организация производства качественного программного обеспечения является ключевой
проблемой управления процессом разработки ПО, которой в индустриально развитых странах стали
активно заниматься примерно с середины 60-х годов. К числу бесспорных достижений теории
менеджмента качества относятся современное понятие качества и его смысловое наполнение, а также
известные модели систем качества серии ISO 9000:2000 (ISO 9001, ISO 9002 и ISO 9003), построенные
на базе процессного подхода.
Согласно современному определению из международного стандарта, качество программного
обеспечения, как и любого другого продукта, это его соответствие потребностям потребителя
(пользователя). Самый верный путь повысить качество ПОпостоянно улучшить и совершенствовать
процесс создания и сопровождения продукта в масштабах компании, включающий процессы
взаимодействия с внешней средой!
Анализ нормативных документов показывает, что к числу наиболее значимых показателей
качества, основанных на обоснованных претензиях пользователей, можно отнести:
· неадекватность функционирования программного продукта;
· недостаточное взаимодействие продукта с другими программными, аппаратными и
телекоммуникационными средствами;
· отказы программного продукта в процессе применения по назначению;