Управление качеством программного обеспечения

Автор работы: Пользователь скрыл имя, 02 Апреля 2014 в 21:02, курсовая работа

Краткое описание

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

Содержание

Введение 6
1.Теоретические основы управления качеством программного обеспечения 8
1.1Развитие мировой программной индустрии и ее особенности в РФ 8
1.2 Современные требования к программному обеспечению 14
1.3 Развитие подходов к управлению качеством программного обеспечения 21
2. Анализ управления качеством программного обеспечения в ООО «Microsoft» 31
2.1 Характеристика деятельности предприятия и разрабатываемого программного обеспечения 31
2.2 Анализ системы управления качеством в организации 35
2.3 Оценка качества разрабатываемого программного обеспечения 40
3. Рекомендации по улучшению качества программного обеспечения в ООО «Microsoft» 47
Заключение 50
Список использованной литературы 52

Прикрепленные файлы: 1 файл

Курсовая 1.docx

— 326.19 Кб (Скачать документ)

 

Отраслевые и международные стандарты в сфере информационных технологий являются суммой опыта, накопленного экспертами в инженерии программного обеспечения на основе огромного количества проектов, проводившихся в рамках коммерческих структур США, Европы и в рамках военных контрактов. Большая часть стандартов создавалась как набор критериев для отбора поставщиков программного обеспечения для Министерства обороны США, и эту задачу они решают достаточно успешно. Стандарты содержат описание выработанных на основе реальных проектов подходов к построению сложных программных систем.[5]

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

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

Программы для вычислительных машин обычно являются компонентами программно-аппаратных комплексов или технических систем. Программы и данные в системах и вычислительных комплексах являются наиболее гибкими компонентами и подвержены изменениям в течение всего их ЖЦ. Для обеспечения нужного уровня интеграции программной и аппаратной составляющих информационной системы довольно часто различные аспекты ЖЦ программного обеспечения рассматриваются в связи с элементами жизненного цикла системы в целом.[13, стр. 45]

Типовая модель процессов жизненного цикла сложной системы начинается с концепции идеи системы или потребности в ней, охватывает проектирование, разработку, применение и сопровождение системы и заканчивается снятием системы с эксплуатации. Программные средства служат для выполнения определенных функций систем на компьютерах. Модель жизненного цикла системы обычно разделяют на последовательные периоды реализации: стадии или этапы. Каждый подобный период включает основные реализуемые в нем процессы, работы и задачи. [5]

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

  • определение требований;
  • анализ и проектирование;
  • разработка;
  • испытание системы;
  • тестирование;
  • производство;
  • распространение и продажа;
  • эксплуатация;
  • сопровождение и мониторинг;
  • снятие с эксплуатации (утилизация).

Современные стандарты не предписывают четких и однозначных схем построения структуры жизненного цикла ПО. Это сделано намеренно, поскольку достаточно жесткие схемы препятствуют использованию более прогрессивных технологий разработки, которых в последнее десятилетие появилось достаточно много и которые продолжают интенсивно наращиваться и развиваться. Международные стандарты максимально общим образом определяют некоторый набор видов деятельности, из которых должен состоять процесс разработки, и на этих видах деятельности, выделяя их элементы, вводят ту или иную структуру жизненного цикла ПО..[14 стр. 45]

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

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

    • ISO/IEC 12207:2008 System and software engineering - Software life cycle processes. Разработка систем и программного обеспечения - Процессы жизненного цикла программного обеспечения.

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

  • ISO/IEC 15288:2008 System and software engineering - System life cycle processes. Разработка систем и программного обеспечения - Процессы жизненного цикла систем.

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

Эффективность разработки ПОвцелом зависит от точности и корректности формулировки требований к программному продукту. Правила работы с требованиями к ПО и более общими системными требованиями к программно-аппаратной системе в целом определяются следующими двумя стандартами IEEE:

  • IEEE 830-1998 Recommended practice for software requirements specifications. Описывает структуру документов для фиксации требований к ПО, определяет характеристики, которыми должен обладать правильно составленный набор требований (корректность, однозначность, полнота, непротиворечивость, упорядоченность и т.д.).
  • IEEE 1233-1998 Guidefordevelopingsystemrequirementsspecifications .Описывает правила построения требований для программно-аппаратных систем в целом, определяет необходимые свойства и атрибуты набора требований. Разработка требований включает определение, организацию, представление и модификацию требований.

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

  • IEEE 1016-1998 Recommended Practice for Software Design Descriptions. Стандарт делает акцент на принципах построения архитектуры, а не на наборе структур, которые лежат в ее основе.
  • ISO/IEC 42010 IEEE Std 1471-2000 System and software engineering - Recommended practice for architectural description of software-intensive systems. Архитектура может иметь несколько представлений, отражающих структуру с разных точек зрения. Стандарт рекомендует для каждого представления фиксировать отраженные в нем взгляды и интересы, причины, обуславливающие необходимость такого рассмотрения системы, несоответствия между элементами одного представления или между различными представлениями, а также различную служебную информацию.

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

  • ISO 9001:2008 Quality management systems - Requirements. Системы управления качеством - Требования. Этот стандарт определяет общие правила обеспечения качества результатов во всех процессах жизненного цикла изделия.
  • ISO/IEC 90003:2004 Software engineering - Guidelines for the application of ISO 9001:2000 to computer software. Разработка программного обеспечения - Руководящие положения по применению стандарта ISO 9001:2000 к программному обеспечению. Этот стандарт конкретизирует положения ISO 9001 для разработки программного обеспечения с упором на обеспечение качества при процессе проектирования. Он также определяет некоторый набор техник и процедур, которые рекомендуется применять для контроля и обеспечения качества разрабатываемых программ.
  • ISO/IECTR 90005:2008 Software engineering – Guide lines for the application of ISO 9001:2000 to system life cycle processes.Разработка программного обеспечения - Руководящие положения по применению стандарта ISO 9001:2000 к процессам жизненного цикла программных систем. Этот стандарт конкретизирует положения по применению ISO 9001:2000 для приобретения, поставки, разработки, применения и сопровождения программных систем. Он не добавляет и не изменяет требования ISO 9001:2000. ISO/IECTR90005:2008 использует ISO/IEC15288 как отправную точку для формирования требований обеспечения качества при проектировании программных систем.

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

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

  • ISO/IEC 9126-1:2001 Software engineering - Product quality - Part 1: Quality model.

Определяет набор характеристик и атрибутов качества программного обеспечения.

  • ISO/IEC 9126-2:2003 Software engineering - Product quality - Part 2: External metrics.
  • ISO/IEC 9126-3:2003 Software engineering - Product quality - Part 3: Internal metrics.
  • ISO/IEC 9126-4:2004 Software engineering - Product quality - Part 4: Quality in use metrics.

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

  • ISO/IEC 25051:2006 Software engineering - Software product Quality Requirements and Evaluation (SQuaRE) - Requirements for quality of Commercial Off-The-Shelf (COTS) software product and instructions for testing. Разработка программного обеспечения – Требования для качества готового коммерческого программного продукта и инструкций для испытания. Определяет требования качества к программным продуктам и к документации по тестированию. Регламентирует содержание документации по тестированию, которая должна включать план тестирования, описание используемых методов тестирования, описание наборов тестов и результатов тестирования. Этот стандарт в 2006 году пришел на смену ISO/IEC 12119:1994.
  • IEEE 829-1998 Standard for Software Test Documentation. Описывает базовый набор документов для тестирования программного обеспечения. Стандарт также определяет форму и содержание тестовых документов.
  • IEEE 829-2008 Standard for Software and System Test Documentation. Стандарт применяется к программным системам.
  • IEEE 1008-1987 (R1993, R2002) Standard for Software Unit Testing. Описывает организацию модульного тестирования.

Информация о работе Управление качеством программного обеспечения