СодержаниеСодержание:
1 ВВЕДЕНИЕ 3
2 КАЧЕСТВО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 5
3 ПРОЦЕССЫ ЖИЗНЕННОГО ЦИКЛА ПРОГРАММ 6
4 ВЕРИФИКАЦИЯ 8
4.1 Методы верификации 9
4.2 Сертификация Red Hat Linux в России 11
5 ЗАКЛЮЧЕНИЕ 15
6 СПИСОК ЛИТЕРАТУРЫ 17Введение1 ВВЕДЕНИЕ
Различные производители программного обеспечения могут сопровождать свою продукцию следующими словами - «Наша компания гарантирует работу данного программного продукта 30 дней со дня установки программы». С точки зрения пользователя такая «гарантия» бесполезна и означает только то, что по истечении 30 дней производитель отказывается нести какую-либо ответственность за ошибки в программном продукте.
Проблема ошибок в программном обеспечении сегодня стоит как нельзя остро. Времена, когда программы, выходившие на рынок, были весьма небольшими и писались одним-двумя программистами, да и сами пользователи персональных компьютеров вполне могли самостоятельно писать небольшие программы – давно прошли. На сегодняшний день производство программного обеспечения поставлено на поток. В связи с постоянно растущим числом пользователей персональных компьютеров растет и рынок программного обеспечения. Различных фирм предоставляющих услуги по написанию программного кода – десятки тысяч. Разумеется, это приводит к конкуренции в среде написания программного кода. И даже если рассматривать всемирно известные программные продукты такие, как, например, Microsoft Office, которыми, как кажется на первый взгляд, пользуется весь мир – то и у таких продуктов существуют конкурирующие разработки, не уступающие по удобству и скорости работы. Также, нельзя не упомянуть тот факт, что с каждым годом мощность компьютеров возрастает, и - как следствие – возрастает техническая сложность программного обеспечения, его объем и функциональность. Все это в совокупности не может не влиять на растущее количество ошибок программном коде. В качестве небольшого примера, можно привести случай с одним из ранних процессоров компании Intel («прошивка» центрального процессора тоже является своеобразным программным обеспечением):
«Первые процессоры 386DX имели ошибку, которая, иногда, приводила к неверным результатам при работе с 32-разрядными числами в таких программах, как OS/2 2.x, UNIX/386, или Windows в расширенном режиме. Ошибка приводила к тому, что система зависала. Вследствие некоторых проблем, в том числе из-за отсутствия 32-битных операционных систем устранить ошибку удалось лишь в апреле 1987 года» [5].
Дальнейшая история утверждает, что количество известных ошибок в последующих процессорах фирмы Intel стало исчисляться десятками и сотнями, в результате чего, компания отказалась от своей первоначальной идеи – отзывать продукцию, содержащую ошибки, поскольку это просто привело бы компанию к банкротству.
В качестве подтверждения факта наличия ошибок в программах можно привести шутливые аксиомы одного из ранних советских программистов М.Р. Шура-Буры:
а) В каждой программе есть ошибка.
б) Если в программе нет ошибок, значит, в исходном алгоритме есть ошибка.
Эти аксиомы нашли подтверждение и у других, зарубежных ученых. Смысл, который можно из них вынести, такой: любое программное обеспечение, в силу своей сложности, содержит ошибки – критические, способные нанести вред пользователю, и не критические; с первыми из них нужно бороться. К чему и призывает, например, лидер информационной службы General Motors Тони Скотт: «В интервью еженедельнику eWeek Скотт призывает поставщиков программных продуктов предоставлять гарантию, ограждающую потребителей от любых ошибок, которые могли бы нанести ущерб их организациям. В таком случае поставщик будет нести ответственность за поставку программы с известными ошибками, например, в системе безопасности, которые впоследствии приведут к отказу компьютеров потребителя или причинению вреда его продуктам» [6].
Улучшение этой ситуации будет выгодно не только пользователям программного обеспечения, но и производителям. Стоимость некоторых ошибок бывает слишком велика, чтобы ими пренебрегать. «По данным американского Национального института стандартов и технологии (NIST), ошибки в программном обеспечении только экономике США ежегодно обходятся в 60 млрд. долл.» [6]. В случае общемирового рынка это число еще больше.
Разумеется, исправление ситуации с ошибками в программном обеспечении особенно выгодно и необходимо для программ, которые используются в правительственных, государственных и военных организациях, а также там, где необходимо сохранение информации конфиденциально. Решение проблемы с ошибками может привести к появлению более качественного и, что более важно, проверенного и подтвержденного компетентными органами на отсутствие критических уязвимостей программного обеспечения.
2 КАЧЕСТВО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Прежде чем говорить о программных продуктах, их тестировании и соответствии их каким-либо критериям качества нужно дать несколько определений – что такое программные продукты и что такое качество.
Согласно [1], «программный продукт - набор машинных программ, процедур и, возможно, связанных с ними документации и данных».
Понятно, что наиболее критичным в этом списке с точки зрения возникающих ошибок является «набор машинных программ».
«Качество - совокупность свойств и характеристик продукции или услуги, которые придают им способность удовлетворять обусловленные или предполагаемые потребности» [4].
Требования к продукции могут быть выполнены благодаря разработке системы качества:
«Система качества - совокупность организационной структуры, методик, процессов и ресурсов, необходимых для всеобщего управления качеством» [4].
Все это применимо и к программному обеспечению как к продукции. Действительно, программные продукты, как и любая другая продукция, должны удовлетворять требованиям, предъявляемым к ним как к продукции. Программные средства должны уметь выполнять те действия, описанные в их ТЗ (техническом задании), сопровождаться документацией и обеспечивать надежность, в зависимости от области применения – как данных пользователя,Литература6 СПИСОК ЛИТЕРАТУРЫ
1. ГОСТ Р ИСО/МЭК 12207-99. Информационная технология. Процессы жизненного цикла программных средств.
2. ГОСТ Р ИСО/МЭК 12119-2000. Информационная технология. Пакеты программ. Требования к качеству и тестирование.
3. ГОСТ Р ИСО/МЭК 9126-93. Информационная технология. Оценка программного продукта. Характеристики качества и руководство по их применению.
4. ИСО 8402-86. Управление качеством и обеспечение качества.
5. Intel 80386 [Электронный ресурс]: Материал из Википедии — свободной энциклопедии. – Режим доступа: http://ru.wikipedia.org/wiki/Intel_80386, свободный
6. Вудкок, Джим. Первые шаги к решению проблемы верификации программ. [Электронный ресурс] / Д. Вудкок - Открытые системы #08/2006 — Электрон. журн. – Режим доступа: http://www.osp.ru/os/2006/08/3584577, свободный
7. Верификация программ с помощью моделей / А. Аграновский, В. Зайцев, Б. Телеснин, Р. Хади [Электронный ресурс] / - Открытые системы #12/2003 — Электрон. журн. – Режим доступа: http://www.osp.ru/os/2003/12/183691, свободный
8. Рузайкин Г.И. Программы и их модели [Электронный ресурс] / Г.И. Рузайкин - Открытые системы #11/2003 — Электрон. журн. – Режим доступа: http://www.osp.ru/os/2003/11/183642, свободный
9. Карбасов Д. Теоретические основы тестирования [Электронный ресурс] / Д. Карбасов, К. Пасевич – Электрон. текстовые дан – Режим доступа: http://software-testing.ru/lib/kubansoft/software-testing.htm, свободный
10. GNU General Public License [Электронный ресурс]: Материал из Википедии — свободной энциклопедии. – Режим доступа: http://ru.wikipedia.org/wiki/GNU_General_Public_License, свободный
|
|