Управление качеством программного обеспечения
Содержание
Введение 6
1.Теоретические основы
управления качеством
1.1Развитие мировой
1.2 Современные требования к программному обеспечению 14
1.3 Развитие подходов к
управлению качеством
2. Анализ управления качеством
программного обеспечения в
2.1 Характеристика деятельности
предприятия и
2.2 Анализ системы управления качеством в организации 35
2.3 Оценка качества
3. Рекомендации по улучшению
качества программного
Заключение 50
Список использованной литературы 52
Аппаратно-программных комплексов(АПК)
Введение
Информационные технологии с каждым годом оказывают все большее влияние как на экономику и обороноспособность страны, так и на повседневную жизнь людей. Следующие этапы качественного развития большинства отраслей (включая энергетику, медицину, образование, торговлю, финансовый сектор, страхование), а также государственного управления на всех уровнях и военной сферы связаны с внедрением ИТ. В повседневной жизни онлайн-коммуникация, интернет-поиск и социальные сети уже стали неотъемлемой частью современности. С каждым годом ИТ открывают все более широкие перспективы повышения эффективности бизнеса и качества жизни граждан.
Отрасль ИТ является одной из наиболее динамично развивающихся отраслей как в мире, так и в России. Объем мирового ИТ-рынка оценивается в 1,7 трлн долл.; до 2016 г. его рост составит в среднем не менее 5% в год, что выводит его в 25% наиболее быстро растущих крупных рынков в мировой экономике. Средний темп роста российского ИТ-рынка за последние 10 лет превосходит среднемировой, при этом российская ИТ- отрасль имеет потенциал значительно более быстрого роста - на 10 и более процентов в год в ближайшие 5 - 7 лет.
Мировой опыт показывает, что конкурентоспособность национальной экономики в целом также связана с развитием ИТ. В частности, по данным Всемирного экономического форума (WEF) и McKinsey, индекс конкурентоспособности экономики государств имеет высокий уровень корреляции с индексом развития в них информационно-коммуникационных технологий.
Программное обеспечение – это совокупность программ, предназначенная для решения задач на ПК, которое является неотъемлемой частью компьютерной системы. Оно является логическим продолжением технических средств. Сфера применения конкретного компьютера определяется созданным для него программным обеспечением.
Все это свидетельствует об актуальности темы исследования.
Объектом исследования выступает ООО «Microsoft»
Предметом исследования являются проблемы качества программного обеспечения корпорации Microsoft
Научная и практическая значимость указанных проблем определила цель и задачи данной работы.
Цель работы – изучение программного обеспечения корпорации Майкрософт, исследование стандартов информационной безопасности в корпорации.
1 Теоретические основы управления качеством программного обеспечения
1.1 Развитие мировой программной индустрии и ее особенности в РФ
Анализ собранных компанией IDC данных об экономической роли индустрии Информационных Технологий (далее ИТ-индустрии) позволяет выявить величину влияния на экономику. С ростом этого сектора связаны прямые преимущества для работников, государства и экономики во всем мире.
ИТ-индустрия является двигателем глобального экономического роста и предоставляет ряд ключевых преимуществ:
Сегодня ИТ-индустрия непосредственно обеспечивает работой 9 млн. высокооплачиваемых квалифицированных сотрудников в более чем 4 тыс. компаний во всем мире. Кроме того, этот сектор экономики создает занятость еще для 21 млн. ИТ-специалистов в самых разных сферах деятельности – от консалтинга до грузовых автоперевозок. Число рабочих мест в ИТ-индустрии в целом за период с 2002 по 2012 год выросло на 40%, а в отрасли программного обеспечения – на 76%. [1]
ИТ-индустрия приносит в бюджеты своих стран свыше 700 млрд. долл. налоговых поступлений в год. Эти налоговые доходы от деятельности, связанной с информационными технологиями, выросли за 2002–2012 годы на 37% и помогают финансировать жизненно важные государственные службы и предоставлять государственные льготы, в том числе обеспечивают общественную безопасность, работу школ и транспортной системы. Таким образом, можно сделать вывод, что рост ИТ-индустрии выгоден для государства и общества в целом.
Вклад ИТ-индустрии в мировую экономику составляет почти 1 трлн. долл. в год, в том числе 330 млрд. долл. поступают от отрасли производства компьютерного оборудования, 180 млрд. долл. – от отрасли “тиражного” программного обеспечения и еще 420 млрд. долл. – от отрасли ИТ-услуг.
Благодаря более высоким темпам роста по сравнению с традиционными отраслями экономики ИТ-индустрия может обеспечить более значительные преимущества: создание новых рабочих мест, увеличение налоговых поступлений и развитие экономики. Чем быстрее этот рост, тем большие экономические преимущества он приносит. Одной из основных движущих сил ускорения развития ИТ-индустрии является отрасль программного обеспечения.
Отрасль программного обеспечения и связанная с нею отрасль ИТ-услуг представляют собой два основных двигателя роста ИТ-индустрии и превосходят по вкладу отрасль компьютерного оборудования. В 2010 году программное обеспечение и ИТ-услуги составляли более 60% расходов в ИТ-индустрии. Кроме того, они отличаются и более высокими темпами роста. Так, в 2007-2012 годах расходы на программное обеспечение увеличивались в 11 раз быстрее, чем расходы на компьютерное оборудование. Ускорение темпов роста индустрии программного обеспечения в сочетании с воздействием на повышение значимости отрасли ИТ-услуг позволили ей стать основной движущей силой развития информационных технологий, и в свою очередь привело к расширению предоставляемых ими преимуществ. [2]
Общий объем российского ИТ-рынка, рассчитанный как совокупный объем продаж ИТ-продукции на внутреннем рынке, составил по итогам 2011 г. около 620 млрд руб. (не включая телекоммуникационное и офисное оборудование, мобильные устройства), из которых более 350 млрд руб. - это ИТ-оборудование и Аппаратно-программные комплексы (далее АПК). Объем продаж программных продуктов и ИТ-услуг внутри страны достиг 120 млрд руб. и 150 млрд руб. соответственно. Общий рост ИТ-рынка в 2012 г. составил по различным оценкам от 3,9% до 6% по отношению к результатам предыдущего года, при этом рост неаппаратной части этого рынка превысил 10%. Основными заказчиками ИТ-продукции на российском рынке остаются государство и компании с государственным участием.[2]
Из потребляемой в России ИТ-продукции внутри страны произведено программных продуктов на сумму около 30 млрд руб. и ИТ-услуг на сумму до 120 млрд руб., т.е. отечественная ИТ-отрасль удовлетворяет потребности российского ИТ-рынка на 25% в основном за счет сегмента услуг. В сегменте ИТ-оборудования практически все потребности внутреннего рынка восполняются за счет импорта.
Наряду с продажами на внутреннем рынке, компании российской ИТ- отрасли экспортируют свою продукцию в объеме более 4 млрд долл. в год (2012 г.), из которых 1,6 млрд долл. составляет Программное Обеспечение (далее ПО) и 2,4 млрд долл. - услуги. Средний темп роста экспорта ИТ-продукции - более 15% в год в течение последних 7 лет.
Общий объем ИТ-продукции, производимой компаниями российской ИТ-отрасли как для внутреннего потребления, так и за рубеж, составляет около 0,6% от мирового ИТ-рынка.
В удовлетворение внутреннего спроса на ИТ в стране основной вклад вносят системные интеграторы и дистрибуторы, основным бизнесом которых является поставка оборудования, АПК и оказание услуг по созданию корпоративных информационных систем. В этом сегменте доминируют крупные российские компании (IBS, Ланит, Техносерв, НКК и др.). В последние годы некоторые из них диверсифицировали свой бизнес в сторону производства ПО и предоставления услуг по его доработке.
В стране также достаточно развит сегмент сервисных ИТ-компаний, осуществляющих услуги по разработке, тестированию и сопровождению заказного ПО (Auriga, Luxsoft, MERA и др.); компании работают не только на внутреннем рынке, но и на рынках Европы, США и др. стран. Общий объем экспорта таких услуг в 2012 г. составил более 2 млрд долл., а доля российских компаний на мировом рынке - около 1%, причем отечественные компании больше сосредоточены в нише высококвалифицированного аутсорсинга. Добавленная стоимость, создаваемая компаниями этого отраслевого сегмента внутри страны, относительно невысока.
В сегменте производства программных продуктов и сервисов присутствуют российские компании, успешно работающие на глобальных рынках (KasperskyLab, Abbyy и др.). Общий объем производства ПО за 2012 г. составил более 75 млрд руб., из которых экспорт - более 45 млрд руб. (1,6 млрд долл.). Компании этой категории создают внутри страны максимальную добавленную стоимость среди всех отраслевых сегментов.
Еще один важный сегмент российской ИТ-отрасли
- интернет- компании, включая области
интернет-программирования, онлайн- развлечений
и оказание услуг российским гражданам
посредством использования информационно-
Сегмент производства АПК не получил должного развития в течение последних 20 лет и представлен во многом компаниями, занимающимися сборкой оборудования под локальными брендами в основном из произведенных за рубежом компонентов. Уровень используемых технологий и производительность труда отстают от мировых стандартов. Доля сегмента на мировом рынке незначительна, компании сегмента сфокусированы на российском рынке. При этом в области программного обеспечения АПК существуют примеры глобального успеха российских компаний (Spirit в части производства программных продуктов для обработки звука и др.).
Появившиеся после распада Советского Союза условия для ведения бизнеса, фактическое долгосрочное невмешательство государства в развитие отрасли, значительный инженерный и алгоритмический потенциал в России и большой рынок сбыта с растущими качественными характеристиками позволили сформировать в стране основу имеющейся сегодня отрасли ИТ.
В то же время незначительная доля российской ИТ-отрасли на мировом рынке и отсутствие крупных глобальных отечественных ИТ-компаний - факторы недостаточной стабильности и неустойчивой позиции отрасли в глобальном плане в будущем.
В ИТ-отрасли России работают более 300 тыс. высококвалифицированных специалистов. Для ИТ-компаний основной частью расходов является фонд оплаты труда (далее - ФОТ) сотрудников, поэтому они высокочувствительны к уровню необходимых отчислений с ФОТ. От сравнительных условий ведения бизнеса (в первую очередь - налогового режима и стоимости специалистов на рынке труда) в России относительно других стран, в том числе стран СНГ, зависят решения ИТ- компаний о запуске новых бизнесов, создании дополнительных рабочих мест в стране, переводе имеющихся рабочих мест в другие юрисдикции.
Отрасль ИТ предлагает высокие зарплаты для специалистов, при этом для молодых специалистов - самые высокие на рынке труда. По данным Adecco, в 2012 г. средняя зарплата программиста в Екатеринбурге составила 41 тыс. руб., руководителя группы ИТ в Екатеринбурге - 65,4 тыс. руб., в Москве аналогичные цифры составили 83,3 и 122,4 тыс. руб. соответственно. По данным SuperJob, рост средних зарплат в ИТ-секторе за 2012 г. составил 17,4%. На сегодняшний день средние зарплаты ИТ-специалистов в России превосходят аналогичные зарплаты в большинстве стран Азии, сравнимы с зарплатами в ИТ-секторе на Украине и странах Восточной Европы и пока ниже соответствующих показателей стран Западной Европы и США.
Для российского ИТ-бизнеса характерна высокая степень офшоризации. По экспертным оценкам, более 90% создаваемой интеллектуальной собственности в ИТ регистрируется вне России. Основная часть создаваемой в стране добавленной стоимости остается за границей, в России сосредотачиваются расходы на персонал (в первую очередь, разработку ПО) и маркетинг.
Несмотря на высокий темп роста, российская отрасль ИТ не является высоко привлекательной для инвесторов (по данным исследования E&Y в 2013 г., ИТ-отрасль не вошла в перечень отраслей, по мнению респондентов определяющих рост российской экономики в течение следующих двух лет, в то время как для Европы эта отрасль воспринимается как основной источник роста до 2015 г.).
Высокие темпы развития показывают российские ИТ-стартапы. Ряд начинающих компаний, включая региональные, уже получили признание на мировом рынке и наращивают доли рынка в своих сегментах. Среди сегментов-лидеров находятся мобильные приложения и ПО сегмента B2B. За последние 10 лет в России появились десятки венчурных фондов, объем инвестиций которых в ИТ-отрасль составляет более 18 млрд руб. в год (2012 г.) и стабильно растет. Крупнейшие зарубежные фонды пока не стали активными игроками на российском рынке. Ограничениями развития сегмента являются, в частности, недостаток навыков в области развития бизнеса, маркетинга, предпринимательства среди граждан;
недостаточноеколичество высокопрофессиональных консультантов по созданию ИТ- бизнесов (менторов) в стране.
Среди факторов, ограничивающих развитие ИТ в России, необходимо отметить низкий престиж ИТ в стране, недостаточное количество и уровень подготовки ИТ-специалистов, высокий уровень коррупции и недостаточный спрос на ИТ со стороны государства (по данным McKinsey, в 2011 г. 13% всех затрат на ИТ в России произвело государство, в то время как доля госсектора в общих ИТ-затратах мировой экономики приближается к 20%).
Выводы: Необходимыми условиями увеличения вклада России в мировой ИТ-рынок и укрепления позиций страны в глобальном разделении труда в области ИТ являются: реализация предлагаемого Стратегией системного подхода государства к улучшению условий для развития ИТ-отрасли в России и повышению привлекательности российской юрисдикции для работы ИТ-компаний при сохранении возможностей свободного рыночного развития отрасли.
1.2 Современные требования к программному обеспечению
В результате, созданные программно-технические комплексы автоматизированных систем, не соответствуют в требуемом объеме своему назначению. Их приходится долго дорабатывать для достижения необходимого качества функционирования, что приводит к дополнительным затратам средств и времени. [3]
Некоторые проекты были провалены из-за недостаточной организации работ и небрежного программирования, но исследования ведущих специалистов и ученых убедительно показали, что плохо организованное и недостаточно формализованное управление требованиями может стать основной причиной провала проекта.
В технических заданиях недостаточно формализуются понятия и метрики необходимого качества конечного программного продукта (характеристики, методы их измерения и сравнения с исходными требованиями). Больше того, требования к характеристикам качества часто вообще отсутствуют в технических заданиях и согласованных документах на программное обеспечение.
Неопределенность применяемых понятий и характеристик качества, особенно присуща крупным, наукоемким проектам. Самоуверенность и снобизм ряда программистов, приводят к тому, что реальные характеристики качества функционирования программных средств остаются неизвестными даже для самих разработчиков.
А между тем, в жизненном цикле разработки программного обеспечения наиболее важными стадиями являются именно начальные, так как ошибки, допущенные на них, требуют значительных затрат на исправление на завершающих стадиях и в процессе сопровождения.
Требования к программному обеспечению, правильно сформулированные в техническом задании, обеспечивают до 40% успеха конечного программного продукта.
Применение систематизированного анализа и согласования состава требований к свойствам и значениям характеристик качества программных средств, позволит избежать нецелесообразного завышения требований и использования ресурсов, а также неоправданного снижения, случайных пропусков, пробелов и неопределенностей в составе и содержании утверждаемых заказчиком технических заданиях.Техническое задание (частное техническое задание на программное обеспечение) с полной спецификацией требований к программному обеспечению - должно быть таким документом, который определяет полный (всеобъемлющий) набор требований к программному обеспечению, удовлетворяя всем требованиям к системе в степени, требуемой уровнем безопасности программно-технических комплексов автоматизированных систем железнодорожного транспорта.
При разработке технического задания на программное обеспечение необходимо четко представлять себе и иметь формализованный набор исходных документов, в которых должны содержаться требования к системе, требования к безопасности системы, описание архитектуры системы и план обеспечения качества программного обеспечения.
В техническом задании на программное обеспечение или в отдельной спецификации требований должны отражаться требуемые свойства разрабатываемого программного обеспечения, но не процедуры его разработки.
Требования по функциональной безопасности программного обеспечения систем, критичных по безопасности, также должны быть однозначно определены и записаны в спецификации требований.
Фактически существуют следующие способы определения требований к программному обеспечению:
- при разработке требований, управляемой пользователем;
- при разработке требований, контролируемой пользователем;
- при разработке требований, независимой от пользователя.
Разработка требований, управляемая пользователем происходит обычно в тех случаях, когда организация пользователейзаключает договор на разработку программного продукта с коллективом разработчиков (требования являются частью договора). Разработчик, приэтом, должен определить, насколько понятны ему эти требования, и найтиобщий язык с пользователем. В процессе заключения договора этоприводит к довольно длительному согласованию требований. [3]
Под требованиями понимается - совокупность утверждений относительно атрибутов, свойств или качеств программной системы, подлежащей реализации. Создаются в процессе разработки требований к программному обеспечению, в результате анализа требований.
Требования могут выражаться в виде текстовых утверждений и графических моделей. В классическом техническом подходе совокупность требований используется на стадии проектирования ПО. Требования также используются в процессе проверки ПО, так как тесты основываются на определённых требованиях. Этапу разработки требований, возможно, предшествовало технико-экономическое обоснование, или концептуальная фаза анализа проекта. Фаза разработки требований может быть разбита на выявление требований (сбор, понимание, рассмотрение и выяснение потребностей заинтересованных лиц), анализ (проверка целостности и законченности), спецификация (документирование требований) и проверка правильности.
На сегодняшний день существует 3 основных требования по уровням это:
- Бизнес-требования — определяют назначение ПО, описываются в документе о видении и границах проекта
- Пользовательские требования — определяют набор пользовательских задач, которые должна решать программа, а также способы (сценарии) их решения в системе. Пользовательские требования могут выражаться в виде фраз утверждений, в виде способов применения, пользовательских историй, сценариев взаимодействия.
- Функциональные требования — охватывают предполагаемое поведение системы, определяя действия, которые система способна выполнять.
Рассмотрим более подробно данные уровни.
Бизнес-требования содержат высокоуровневые цели организации или заказчиков системы. Как правило, их высказывают те, кто финансируют проект, покупатели системы, менеджер реальных пользователей, отдел маркетинга. В этом документе объясняется, почему организации нужна такая система, то есть описаны цели, которые организация намерена достичь с ее помощью. Необходимо записывать бизнес-требования в форме документа об образе и границах проекта, который еще иногда называют уставом проекта или документом рыночных требований. Определение границ проекта представляет собой первый этап управление общими проблемами увеличения объема работ.
Требования пользователей – описывают цели и задачи, которые пользователям даст система. К отличным способам представления этого вида требований относятся варианты использования, сценарии и таблицы «событие – отклик». Таким образом, в этом документе указано, что клиенты смогут делать с помощью системы.
И третий вид или третий уровень
Функциональные требования определяют
функциональность, ПО, которую разработчики
должны построить, чтобы пользователи
смогли выполнить свои задачи в рамках
бизнес-требований. Иногда они называются
требованиями поведения, они содержат
положения с традиционным «должен» или
«должна»: «Система должна по электронной
почте отправлять пользователю подтверждение
о заказе».
Функциональные требования документируются
в спецификации требований к ПО, где описывается
так полно, как необходимо, ожидаемое поведение
системы.
После определения основных уровней ПО, необходимо рассмотреть Источники требований, на которые необходимо ссылаться при разработке программного обеспечения.
- Федеральное и муниципальное отраслевое законодательство (конституция, законы, распоряжения)
- Нормативное обеспечение организации (регламенты, положения, уставы, приказы)
- Текущая организация деятельности объекта автоматизации
- Модели деятельности (диаграммы бизнес-процессов)
- Представления и ожидания потребителей и пользователей системы
- Журналы использования существующих программно-аппаратных систем
- Конкурирующие программные продукты
Для корректного выбора и определения требований к характеристикам качества, прежде всего, необходимо определить особенности проекта:
- класс, назначение и основные функции создаваемых программных средств;
- комплект стандартов и их содержание, которые целесообразно использовать при выборе характеристик качества программных средств;
- состав потребителей характеристик качества программных средств, для которых важны соответствующие атрибуты качества;
- реальные ограничения всех видов ресурсов проекта.
Разработку и утверждение требований к характеристикам и атрибутам качества, целесообразно проводить итерационно на этапах системного, предварительного и детального проектирования программных средств.
Характеристики качественных требований по-разному определены различными источниками. Следующие характеристики являются общепризнанными, и приведены в таблице 1.
Таблица 1 – Характеристика качественных требований к программному обеспечению.
Характеристика |
Объяснение |
Единичность |
Требование описывает одну и только одну вещь. |
Завершенность |
Требование полностью определено в одном месте и вся необходимая информация присутствует. |
Последовательность |
Требование не противоречит другим требованиям и полностью соответствует внешней документации. |
Атомарность |
Требование «атомарно». То есть оно не может быть разбито на ряд более детальных требований без потери завершённости. |
Отслеживаемость |
Требование полностью или частично соответствует деловым нуждам как заявлено заинтересованными лицами и документировано. |
Актуальность |
Требование не стало устаревшим с течением времени. |
Выполнимость |
Требование может быть реализовано в пределах проекта. |
Недвусмысленность |
Требование кратко определено без обращения к техническому жаргону, акронимам и другим скрытым формулировкам. Оно выражает объективные факты, не субъективные мнения. Возможна одна и только одна интерпретация. Определение не содержит нечётких фраз. Использование отрицательных утверждений и составных утверждений запрещено. |
Обязательность |
Требование представляет определённую заинтересованным лицом характеристику, отсутствие которой приведёт к неполноценности решения, которая не может быть проигнорирована. Необязательное требование – противоречие самому понятию требования. |
Проверяемость |
Реализованность требования может быть определена через один из четырёх возможных методов: осмотр, демонстрация, тест или анализ. |
При разработке требований часто возникают проблемы двусмысленности, неполноты, и несогласованности отдельных требований. Устранение этих проблем на этапе разработки требований стоит на несколько порядков меньше, чем устранение этих же проблем на поздних стадиях разработки. Для решения и устранения этих проблем существует процесс разработки требований.
При разработке требований существует технический компромисс между слишком неопределёнными требованиями и требованиями столь детализированными, что они:
- требуют много времени для разработки, иногда даже рискуют устареть к концу разработки;
- ограничивают возможные способы реализации;
- являются слишком дорогостоящими.
Для поддержания работоспособности программного обеспечения и соответствия требований, необходимо проводить проверку.
Все требования должны быть поддающимися проверке. Наиболее общепринятая методика проверки — тесты. Если проверка тестами невозможна, тогда должен использоваться другой метод проверки (анализ, демонстрация, осмотр или обзор дизайна).
Определённые требования, по своей сути, не являются поддающимися проверке. Они включают требования, которые говорят, что система никогда не должна или всегда должна показывать специфическое свойство. Надлежащее тестирование этих требований потребовало бы бесконечного цикла тестирования. Такие требования должны быть переопределены так, чтобы они стали поддающимися проверке. Как указано выше все требования должны быть поддающимися проверке.
Нефункциональные требования, которые являются неподдающимися проверке на программном уровне, все равно должны быть сохранены как документация намерений клиента; Такие требования к продукту могут быть преобразованы в требования к процессу. Например, нефункциональное требование, чтобы ПО не содержало «потайных ходов», может быть удовлетворено заменой на требование использовать парное программирование.
Вывод: Разработчик должен обеспечить, чтобы требования к качеству были технически реализуемыми, разумными, взаимно дополняющими, достижимыми и проверяемыми. Для этого необходимо провести анализ реализуемости требований, выходящих за пределы современных технических возможностей или того, что уже достигнуто в организации.В любом случае окончательный состав требований должен быть согласован сторонами.
1.3 Развитие подходов
к управлению качеством